以下、ctx
は MarkdownPostProcessorContext を表すものとする。
この場合、ctx.getSectionInfo
は MarkdownPreviewRenderer の getSectionInfo
メソッドを内部で呼ぶ実装になるので、ちゃんと信頼できる line numbers を返してくれる。よってめちゃくちゃ簡単。
ctx.getSectionInfo
は一応ちゃんと非自明な情報を返してくれるのだが、 heading link or block link の場合、line numbers は信用できない。なぜなら埋め込み対象の範囲内での相対的な line numbers を返すため。
よって、位置情報が必要なときはたとえば MetadataCache から適切にオフセットを読み取ったりする必要がある。
setTimeout
すると親要素に src
属性として linktext が格納されるので、これを読めばブロック ID なり heading なりがわかる。.hover-popover
に linktext は格納されない。LaTeX-like Theorem & Equation Referencer では、こんなふうに 最後にトリガーされた link-hover
イベントの linktext を盗聴してプラグインインスタンスに保存してしまうという汚い技でなんとか linktext を取得した。もっといい方法があれば知りたい。曲者。ctx.getSectionInfo
は常に null
を返す実装になる。このせいで、 LaTeX-like Theorem & Equation Referencer version 1 では数式番号を PDF に表示するのに失敗していた。Version 2 では、以下のような前処理でこの問題を回避している。
Obsidian built-in のものだと、たとえば callouts がこれにあたる。この場合も ctx.getSectionInfo
は常に null
を返すので、位置情報が必要なときはひと工夫いる。