今日もQuartzを触った。どうにかして繋がっていないリンクを色分けするかを試してた。
最初はlinkを作っているところを触ったのだけれど、非公開の記事へのリンクも繋がってる表記になってしまった。なぜかというと、HTMLを生成する部分よりフィルターを掛ける部分が後だったので、仕組み上どうしようも無い状態になってた。通りでこの問題が年単位で放置されるわけだ・・・
フィルター部分がHTML生成部分よりも先にくるように、QuartzFilterPluginの型を変えたりして対処しようと試みた。だけれど、処理の効率化のためかマルチプロセス処理が間の層に入っていて、ややこしくてコード改変もうまく行かなかった。
数時間悩んだ結果として、以下のスクリプトを実行して、パッチを当てたQuartzを動かすという組み合わせにした。スクリプトはすべてのマークダウンファイルを読み込んで、publish: "true"
が無い場合はすべて削除するというもの。パッチはリンク先のマークダウンファイルがない場合は赤いリンクにするというもの。この2つを組み合わせることで、存在しないページ、未公開のページへのリンクを赤くするように出来た。
結構悩んでる人も居そうなので、Remove links for pages that don’t exist · Issue #454 · jackyzha0/quartz · GitHubに方法をコメントしておいた。
19時半くらいからずっと悩んで、解決したのが1半時とかそんな感じ。6時間悩んでたのか。
- ファイルを読み込んで非公開のファイルを消すスクリプト
- パッチ