1記事を書くチャレンジを再スタートさせたんですが、どうせだからブログシステム自体をリニューアルしようと考えています。思って使ってみた所感。1.xVue.jsベースの静的サイトジェネレータ。Vue.jsの開発者であるEvanさん自ら開発しています。Vue系のドキュメントはもともとHexoという別の静的サイトジェネレータで作られていたんですが、それを載せかえようという背景があるみたいですね。現在の最新バージョンは1.0alpha34。v1代はアルファリリースという位置付けなのでまだまだ鋭意開発中という感じです。#Gatsby.jsやNuxt.jsよりももっと純粋な静的サイトジェネレータ。開発中はVue.jsとホットローディングでサクサク開発していけて、最終的にbuildコマンドで出力されるのは完全に静的なサイト。Nuxt.jsのgenerateに似ている感じがしますね。公式、非公式含めすでに幾つかの主要なプラグインやテーマは存在して、必要最小限の環境はありそうです。ブログ特化というわけではなく、むしろドキュメント特化方向なのでブログとしては自分でいろいろ手をかけてあげる必要がありそうです。Vue.jsと同じように公式ドキュメントが良くできているので、Vue.jsやNuxt.jsをすでに触っている人ならかなり楽に入っていくことができますね。自分で拡張するにあたって簡単にVue.jsのコンポーネントを増やして使うことができるのでサクサク行けます。拡張はテーマ、プラグイン、エンハンサー(ミドルウェア的な位置付け?)と十分なレイヤーが整っています。テーマのカラースキームはオーバーライド可能な前提で作られてたり、いろいろと気が効いてる感じです。1つのコンテンツ(ブログで言えば1記事)はMarkdownで書けます。Frontmatterも使えるので本文以外の付加情報を持たせることももちろん可能です。記事内で自作Vue.jsコンポーネントを使うこともできるので、ウィジェット的な用法もできそうです。外部の参考リンクをブログカード的に表示するコンポーネントとか楽に作れそうですね。高機能を求めない、Vue.jsのコンポーネントを自分で作るスキルがある、という条件下であれば十分に実用可能な選択肢として入ってくるように思いました。#Hexo今のこのブログでも使われているHexoですが、Hexoは静的サイトジェネレータの中でもブログ特化しています。HugoのNode.js版とかそういう位置付けでしょうね。上にも書きましたがVuePressはまだそこは弱そうですね。通常インデックスページに載るような投稿の一覧は自分で作る必要があります。いえ、全投稿を必要に応じてフィルタして、日付などで並び変えて、という感じで配列を作りv-forで回してやれば良さそうです。Hexoはすでにある程度成熟していて便利なプラグインもいろいろ出そろっています。VuePressはVue.jsをすでに扱える人にとっては楽に拡張していける感じがすごいです。Vue.jsの単一ファイルコンポーネントによる、テンプレート、ロジック、スタイルがスコープに閉じているものとして開発できるのは楽ですね。将来性を考えてもEvanさん自ら開発しているという点も強いですね。Hexoはいつまで開発が継続されるかわかりませんし、まだこれからもJS系の技術はかなりのスピードで移り変わっていきそうです。Vue.jsの仕組みにのっかっているVuePressも完全に保証があるわけではないですが、コアな部分はVue.jsのレールに乗れる恩恵は大きそうですね。個人的には、これから新しく作るならVuePressでやるかなあ。僕も今、冒頭で言ったようにHexoからVuePressに移行するためにシコシコ書いています。Hexoの機能や、プラグインをそのまま実現しようとすると、機能がけっこう足りませんし、デフォルトのテーマではしっくり決ませんね。そこまで高機能なブログにしてたわけではないですが、ちょっと頑張ればそこまで苦労なく移行できそうな気がします。ちなみに現段階での移行はこんな感じです。VuePress触ってない状態から1日程度でガワだけは移行できたのはVue.jsは普段から触っててそれなりにわかるHexoの時、Pugでコンポーネント的にテンプレートファイルを分割して作ってたHexoの時、Stylusで書いてた(VuePressのデフォルトCSSはStylus)という条件が上手く噛み合わさったからかな、と思います。いえ、まだ関連記事の実装とかメニューとか細ごまとしたものを実装しなければですし、今後の記事に有用そうな画像やブログカード的なコンポーネントも作っていかなきゃなあという感じですね。Nuxt.jsNust.jsはVue.jsベースのアプリケーションフレームワークでSPA的なサイトを作るのが得意です。generateコマンドがあり、これはサーバーサイドを使わずに静的サイトとしてファイルを生成できます。VuePressはのNuxt.jsのgenerateにかなり近い感じはします。Nuxtはそもそもが静的サイトジェネレータではないので、そこは注意したほうが良いかも。逆に言えば静的サイトが欲しいだけでNuxt.jsのgenerateを使っててそれがオーバースペック気味ならば、VuePressを検討してみても良いかもしれません。Nuxtのほうがノウハウが共有されているのでその面では分があるかもしれません。#GatsbyJSGatsby.jsはちょっとだけしか触ってないので厳密な比較は難しいことさきにお断りしておきます。Reactを日常的に使っていない身からしたらGatsbyは自分でカスタマイズしていくのに少々学習コストがかかるなぁという印象でした。いえ、Gatsby自体の仕組みがとてもよくできていて、少しの気概があればそれほど苦にならない気もしていますが。