概要
ブログの生成プログラムにちょっと変更を加えました。
内容
目次の生成
まず大きく変わったところが目次の生成。どうやって実装するか悩んだけれども、自前Markdownパーサーをかなりいじって見出しにそれっぽいid属性をつけて、それをmain.js側で読み取ってHTML文字列を生成する感じにしました。
めっちゃ手抜きだけど自分しか使う人いないので大丈夫でしょう!!
最近の更新の生成プロセスの自動化
ホームページにある最近の更新をbuild時に自動で生成できるようにしました。これで毎回書かなくて済む…(まだ一回しか更新してないが)
というのも
いままでは更新するたびに手動でホームページの最新記事一覧を変えることを想定していたのですが、あらかじめmain.js側でページを更新日順に並べておいて、そのあとmdに埋め込んだ簡単なスクリプトでmdのリストを生成するというのをやりました。
簡単なスクリプトというのはAiScriptのことで、このブログのブログ生成プログラム(長いから以降はブログエンジン)はmdにAiScriptを埋め込んで実行させることができます。できるようにしました。といってもほぼほぼnpm installしてきただけですけど。
このブログエンジンはGAS (Google Apps Script)を目指してるところがあるので、文章内で簡単なスクリプトを回せるようにしたいなー、何か安全で手軽に回せてjsみたいなスクリプトないかなーというのと、単純にAiScriptを使ってみたかったのでAiScriptを組み込んでみました。実際組み込んでみると、最低限のうれしい機能はある感じで、使い心地がいいです。
最新の記事一覧を表示するにあたって、ページ一覧をAiSONといものでstringifyして生のソースコードにマクロ的に置き換えていれる感じにしました。問題なく動いてそうなので当面は大丈夫だと思います。変数を注入するなんて言う機能もあるみたいですが、めんどくさかったので文字列をjs側から置き換える感じにしました。まあほとんど任意コード実行してるようなものなのでよくないとは思いますが、自分しか使わないし…(言い訳、2回目)
その他
一気に変更しすぎてもうすべては思い出せないのですが…
- ブログ記事を書いているときに、保存したタイミングでbuildするスクリプトを書いた
- 最近の更新をAiScriptで処理するために処理の順番を変えた
- 404のページを追加
ぐらいか?もう本当に思い出せない…ちゃんとメモしておけばよかったですね…
次にやりたいこと
最近の更新を出せるようになったのでもうあんまり追加するようなことはない気がしますが、一応、ページにサムネイル画像とか出せたらいいなーとか、ボタンみたいな大きいリンク(Notionのリンクで言うブックマーク?)を出せるようになったらいいなーとか思ってます。
あとは、OGPとかつけないとな。あと、まだアナリティクスも入れてないので、入れたいですね。実はアナリティクスは入れるか迷っていますが多分入れます。
それじゃあ今日はここまでで。おやすみなさーい。