2022-04-29 14:29:00+09:00

自家製CMS進捗

四月の進捗状況

1. 進捗まとめ

04/17 : 日記の基本変換手順はできて次は目次

markdownのツリーを変換して静的htmlのサイトを自動生成するという 自家製CMSプロジェクト。 markdownツリーからひとまずの出力先であるGitHub Pagesへ、の基本の流れができた。

ここで問題になったのは主に2つで、

だった。

公開/非公開の内容を一元的に管理

人間ですもの誰だって他人様にお見せしたいものしたくないものはある。

しかし、いろいろ書いたり作ったりしたものを一元的に管理できるのが CMSの便利さなので、下書き段階も含めてこっちは公開用、こっちは自分だけとか ツリーを分けないといけないとかだったらバカバカし過ぎる。

01_01.svg

下書きだって非公開のまま進めるだけでなくて、 公開しちゃって書き進めたいこともあるだろうし。

内容それぞれに「公開|非公開」のフラグは必要としても、 それはあくまで一つのツリーになってて、 そこから自分だけ見られる非公開サイトツリーと公開用サイトツリーを 切り替えてさくっと出力できる、というのでなければならない。

Front matterに"private"のキーを設けて、 script実行時にそれによって出力するかどうかを決めることにした。

いったんfix|publishした内容を更新した時の管理方法

Front matterキーに通常は"date"キーがあるが、 それだけだといったん作成後変更した時の日付時刻を入れるところがない。

ので、"date-origin"キーを追加して"date"キーと両方に作成時の日付時刻を入れ、 更新したら"date"の日付時刻を更新することにする。

目次を作るときにはどちらの日付時刻を使うこともできよう。

ということで、やらなければならないことはいろいろあるが、次はひとまず目次づくりを考えよう。

04/24 : index.htmlのベースができた

CMS作ってる間でもコンテンツは作るわけで、作成中とはいえ多少なりともコンテンツが作りやすい 環境を早く整えたいわけで、目次がないと一旦書いた後の更新とか編集とかが超絶面倒なのでともかく 目次を作りましたぞ。

公開版には公開フラグを立てたものしか載らないので記事数は少ないが目次から記事にいけて すぐ目次に戻ったり記事から記事へ辿っていけるように、というところがポイントで、 だいたいその流れには乗れてるのではないかと自負する。

検索としては、これにタグクラウドと全文検索があればほぼ要は満たせると思う。

今後はその辺を考えつつ、過去記事をここに載せていく、その過程で記事のデザインとか自動化とか を進めていく感じになりそう。

04/26 : 目次使い勝手改良

ローカルではprivate込み、パブリックでは非privateのみでサイト生成し、 目次もできた、 が、目次および記事でprivateの文書を確認できるようになっていないので 更新に不便である。

解決は、

04/29 : youtubeのembedと img のレイアウト調整 frontmatterキー追加

markdown上では div class="youtubeset" class="imgset" で囲むこととし、 含まれるメディアの数(1 or >1)によってレイアウトを定義したclass変えて追加する。

目次のソートはfrontmatterの date キーでやっている。 が、これを更新日付としてアップデートしてしまうと当然ながら目次の並びが変わる。

当初はもう一つの日付を持つ date-origin とで切り替えられるようにしておけばいいか と思ったがそこまでするのもどうかと、まだその辺はっきりしないので、 date-update キーも追加して手動で調整することにした。

さらに、CMS内では思うように既存記事も更新していいのだが、外部にshareした記事だと、 それを丸ごと見えなくしてしまうとリンク切れになったりして具合が悪い。

ひとまず share キーを追加、 これを手動で更新してshareされているかどうかがわかるようにする。

TODO

一記事ごとにページにジャンプして読むのは結構かったるい時があるので、 もっと長いspanで一気通貫に読めるページも別に生成したい。 weeklyとか、monthlyとか。

内部のリンクを処理するのが面倒そうだけどなんとかなるか。

文を書くときの決まりごとを増やせば生成処理は簡単になるけど本末転倒だし…。

ページ内に自分を指すaタグがあるとよい。 target="_blank" を極力使わず、 タブ内で遷移するように作っているが、そうするとページに対するタブを複数 作りたくなることがある。