[obsidian] vault backup: 2025-10-29 22:16:14
Some checks failed
Build / build (push) Failing after 5m22s

This commit is contained in:
2025-10-29 22:16:14 -04:00
parent 8a418c2198
commit 974389c037
10 changed files with 60 additions and 148 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,36 @@
#quartz #software
[[テロメア]]をObsidian-git
[[テロメア]]をObsidian-gitのLine Authoring機能でそれっぽく実現したら割と有益だったので、Quartzにも入れてみたくなった。
プラグインとして実装することにした。8割ぐらいcopilotに助けてもらったが一応作れた。
https://github.com/tomoyanonymous/quartz-line-age
## 実装メモ
quartzのプラグインにはtransformer/filter/emitterの3種類ある。
transformerにもさらに3種類あって、
1. テキスト変換プラグイン
2. Markdownツリー変換プラグイン
3. HTMLツリー変換プラグイン
の3つ。基本はconfigに並んだ順で読み込まれるが、実行される順は↑の順が優先されるそりゃそうだ
HTMLに変換された後では行数が元のファイルとは異なってしまう。
そこで、line-authoringを実現するためには、
1. まずプレーンテキスト用プラグイン`LineAgePre``git blame`の情報を元に、行末にHTMLコメントとして`<!--line:10-->`のような行番号をつけるこれはMarkdownプロセス時には単なる文字列として扱われる
2. HTML変換後に、HTMLプラグイン`LineAgePost`プラグインで、コメントードを拾ってきて、親ードのchildrenの先頭兄弟要素の一番先頭部分`<span class="line-age-bar" data-line-age="10.0" style="background-color:#xxxxxx;">`みたいなードを埋め込む。data-line-ageはビルド時-最終更新日時を日数単位で表記。
3. スタイルシートではdata-line-ageの日数に応じて、background-colorを割り当てる。今はとりあえずテロメアと同じように1年経ったら完全グレーアウトにしてるが、太さの変更とかは特にやっていない。
基本的にはこれで良いのだが、実際には目次生成プラグインが、目次用のHTMLを2のMakrdownプラグインとして実装しており、`<!--line:10-->`みたいなのがHeadingについた状態で変換してしまい、それがHTMLまで残ってしまう。
なので、Markdownプラグインとして一度生成されたtocから正規表現でマーカー部分を削除するという処理をする`LineAgeMid`というプラグインもいる。
なので、たった1つの機能実現のためにプラグインを3つもインストールしなければならない。これはどうかと思うが致し方ない。
ダークモード用に色切り替えられるようにしないとな。