ブログの公開
はじめに
最近個人esaを始めてみてからなにか調べたりわかったりしたことをまとめる癖がついたような気がします
せっかく書いてるんだからいっそブログにも書いてみるかと思い立った次第です
とはいえesaとブログと二回同じことを書くのは普段コードを書いている習慣上なんとも気持ち悪いものがあります
実際メンテコストもかかるのでesaで書いたものをそのままブログとして公開できないものかなあと考えてみました
要件
esaにすべてまとめる 記事になるものもあれば個人メモのままになるものもある 簡単にブログとして公開できる 二重管理しない 任意の更新時刻を反映できる
構成
サービスの連携
esa, Github, CircleCI, Netlifyを組み合わせてブログを立ててみることにしました
流れとしてはこんな感じです esaにはgithubとの連携機能があり、特定のディレクトリ配下の記事がship itされるとgithubの指定されたブランチの指定されたディレクトリに追加することができます それを利用してesaからCIに流してstatic site generatorのhugoでhtmlに変換してnetlifyでホスティングしています これでおしまいだと簡単でよかったんですが、いくつかCircleCIのところでごにょごにょしています
esa記事のディレクトリ問題
この状態での問題は、esaの特定のディレクトリ配下の記事しかブログとして公開できない
、ということです
これではesaにブログディレクトリを作ってブログとして公開したい記事はその配下に移動しなくてはいけません
ブログとして公開するために本来分けたいディレクトリ構造とことなる場所に置くのは嫌だったので、この方法は使えません。
かといってコピーすると二重管理になってしまいます
どうにかしてディレクトリ構造を変えないままブログとして公開できる必要がありました
解決策
esaのタグを利用します
esaのタグにブログ
とついてる記事がship itされたらブログ記事として公開されるようにしました
esa記事がgithubにpushされるときにこういう形式で出力されます
|
|
このタグに"ブログ"が入っているかどうかをみてhugoに記事を渡すかどうかを分けることでディレクトリに依らず特定の記事を公開しています ついでに記事内容をちょっと変えて最新記事になるのは避けたいので更新日時を任意の時間にできるようにyyyy-mm-ddなタグがついていたら更新日時としてhugoに与えるようにしました
まとめ
ブログのために書いている記事なのでブログっぽい書き方になってしまいましたが、たぶんほとんどの記事は技術メモみたいな感じになるんじゃないかなーと思っています(ちゃんと続けば esaの出力ファイルからhugoの入力データの形式に変換するスクリプト公開するかどうかはちょっと考え中(汚すぎて
うまいこと公開されてくれよこの記事