HexoとAsciidocでブログ構築

この記事の目的

  • AsciidocとHexoというStatic Site Generatorを使用してブログを構築する。

  • ブログはGithub Pagesにホスティングする

モチベーション

  • 何よりも、なんでもAsciidocで書きたい。
    ここ数年のメモ取りはすべてAsciidocで書いている。Markdownより少し難しいくらいの文法で、かなり記述性が高いと思う。 ただ、ほとんどのブログサービスはAsciidocをサポートしておらず、Markdownのみをサポートしているのが現状と思われる。

  • したがって、Asciidocでブログを書くために、構築方法を検討した。

検討した選択肢

  • Static Content Generation系が良さそうということに。

  • ただし、この業界は大量に似たものがあるようで、その中から使いやすいものを選定する必要があった。

hubpress

  • hubpressはブラウザ上でlive previewしながら記事をかけるといった期待できそうなプロジェクトだが、現段階ではまだ問題が多そう。現に使ってみると、投稿時に無限ループになり、うまく行かなかった。

Hexo

  • これにした。CLIもシンプルだし、themesやpluginも比較的多く、拡張しやすそうだと思った。

  • ページ生成も早い。

Hexoを使ってのブログ構築

Installation

  • npm install hexo

  • npm install node-sass

  • npm install hexo-deployer-git

  • github向けには公開鍵を登録しておくこと

プラグイン

Hexoの使いかた

  • とっても簡単。基本は以下の4ステップ

hexo clean

  • source配下に配置された記事ファイル(adoc,md)から過去に生成されたファイルも削除する

    • publicフォルダ配下にある

$ hexo clean

hexo new で記事を作成

  • postで公開記事を作成する

$ hexo new

hexo generateで記事を生成

  • sourceに存在する記事ファイルから、記事を生成

$ hexo generate // 記事を生成
$ hexo generate -d // -d: 記事を生成後、デプロイ

生成した記事をgithub pagesにdeployする

$ hexo deploy

採用したテーマ

いろいろ試す

画像の貼り方

  • 公式ドキュメントどおり、設定する

    • Asset Folders | Hexo

      post_asset_folder: true
    • hexo newすると、記事と同名のフォルダが作成される。ここのファイルも一緒にdeployされるようになる

  • github pagesの画像

    • このブログはgithub pagesにホスティングしているため、画像もそれを参照する

    • hexo deployすると、こんな感じで、ページと同階層に画像ファイルがpushされる hexo deployしたときのgithub上のファイル状態

    • pushしたら、画像のRaw URLを指定して表示できる イメージ表示のテスト

    • 書き方(普通のasciidocの記法)

// asciidocでURL直指定
* image:https://raw.githubusercontent.com/sukehisa/sukehisa.github.io/master/2018/08/23/hoge/testimg.png[イメージ表示のテスト]
  • もっと楽に各方法がないか模索中。。

gistのソースコード埋め込み

  • 普通に埋め込める

  • こうやって書く

++++
<script src="https://gist.github.com/sukehisa/8f4eaa849f59dd395dacca8a30107e6f.js"></script>
++++

Excerpt(記事概要)機能

  • 公式のドキュメントはMarkdownのやり方なのでうまくいかない

  • このように、そのままmoreラベルを出力するように回避

++++
<!-- more -->
++++

categories, tagsページの生成

  • 各postで設定したcategory, tagをサマリーするページをhexo自体の機能で作れるが、少しハマったのでメモ

  • まず、tagsとcategories用の page を作る

$ hexo new page tags
$ hexo new page categories
  • 次に、生成されたindex.mdのヘッダ部分に書きを追記する

その他TODO

  • このブログの検索どうやるんだろう

© 2022 blah blah blah All Rights Reserved.
Theme by hiero