お、こいついきなり何言ってるんだ?という感じですね。まあ、説明しましょう。

このサイトはHexoという静的サイトジェネレータを使用してMarkdownで記述した記事をhtmlに変換してサーバに送り込んでます。あなたがこのサイトにアクセスしてくるとnginxが対応するページのhtmlを配信して、そいつをブラウザが解析して表示して、その結果あなたはこうやって記事を読んでるわけです。で、まあそんな話どうでもいいんですよ。その辺の構成に興味のある人はこの辺りに書いてるので参考にでもしてください。今回書きたいのはそんなことではなくてですね。このっ!!Hexoが、なんかまたまた死のオーラを漂わせてるんですね…。

以前も一時期開発が停滞している時期がありました。その時は新手のメンテナの人達が入ってガンガンコミットすることで盛り返した…ように見えたのですが、最近また止まってるんすよ…。Hexoはパッケージ細分化されており、メインリポジトリにコミットが入らなくてもコアのライブラリ(本体が複数のコアライブラリに依存しているのでコアライブラリにコミットされているということは最終的に本体にその変更が入ることになります)に少しづつコミットは入ってます。Hexoにはプラグインシステムがあり、多くの機能はプラグインで提供されていますし、メジャーなプラグインはアップデートされ続けたりしています。そういう点を鑑みると、見えないところでは更新されてますし、エコシステムも出来上がってます。良い意味で枯れてきているとも言えます。

ですが、本体はほとんどコミットが入っていません。Issueにもあんまり回答ついてないですし。こういうのはプロダクトの印象が悪くなりますし、ああ、これはヤバそうだと…。

追記: こちらに書いているのですが外から見えているより活発なのでみんなガンガン使ってね!!

私が困るので死なない(でほしい)という願望


仮に死んだとしても、Node.jsが終わらない限りは一応使い続けることはできます。それがダメになっても、まあ、Markdownで書いているので別のジェネレータへの移行は容易です。ただ、今までかけてきた労力的なの(主にテーマの改造など)はめんどくさいし、できればこのまま使い続けたい…。そう、タイトルは私が困るので死なない(でほしい)という願望がこもってます。嗚呼、だれかメンテしてくれないだろうか…。

HexoはOSS


HexoはOSSですね。OSS。ということは… お前がやるんだよ!!

はい。プルリク出しまくればいいんですね。そういうことですよ。すごく単純な話ですね。「よーし、パパ Hexoにプルリク出しちゃうぞ~」というわけで、少し前からコア系のライブラリを中心にちょっとづつプルリクを出す活動を始めてみました。[1]

JavaScript & Node.js 全く分からん & 初めてOrganizationのリポジトリにドキュメント更新以外のプルリクを出すということで、かなりビビりマクリスティ。に加えてメンテナの皆様がMergeしてくださるかどうか冷や冷やしマクリスティだったのですが、あまり活動が活発でないのという状況に反して速攻でMergeしてもらえてます。まだ4件出したうちの3件だけど。

やること・やらないこと


というわけで、下記あたりをやってみようかな。と。

  • 依存ライブラリの整理
  • CI系の整理
  • ドキュメント修正
  • ES6対応

など、ちょっとした修正を中心にプルリクを出していきたいと思います。テストとかフォーマッティングとかの開発の基盤がかなり整っており、比較的安心して修正できます。また、既に私のPC内に環境が整っており私の大量の記事も実際の検証に利用することができます。

逆に、下記をやるつもりはありません。

  • 新機能開発
  • Issue応対 結局やってます

理由ですが、新機能開発できるだけの実力がないということと、Issueの方はさっと見た感じだと結構環境依存っぽいものとか「ちょっと調べたらわかるのでは??」みたいなのが結構起票されててカオスな感じがしているというのがあります。英語書けないし。

Hexoは死なないわ、私が守るもの


とは、流石に言えないのですが、いちユーザとして開発が停滞するのはいろいろと困りますし、やはり今まで使用してきたということで愛着も恩もあるので、できる範囲でやってみようというやっていき記事です。Hexoは今後も長く使っていくつもりなので、最後は「私が守るもの…」と言えたらいいですね。まずはJavaScriptとNode.jsのレベルを上げないといけませんが…

追記 Hexoのメンテナになりました


  1. ホントは他にもっとやりたいことあるんすよ。ElasticSearchとかScalaとかOCamlとかChrome拡張の開発とか… ↩︎