投稿のタイトルに記事へのパーマリンクを張るようにした
投稿日: 2022-08-14 日
org-capture の設定を下記のように変更することで記事へのパーマリンクを張れるようにした。
("p" "公開日記" entry (file "~/private/src/diary/index.org") "* [[#%<%Y-%m-%d>-%^{ID}][%^{TITLE}]]\n:PROPERTIES:\n:CUSTOM_ID: %<%Y-%m-%d>-%\\1\n:RSS_TITLE: %\\2\n:RSS_PERMALINK: #%<%Y-%m-%d>-%\\1\n:PUBDATE: %T\n:END:\n%t\n\n%?" :prepend t :jump-to-captured t)
これでパーマリンクをどうやったらコピーできるのかが分かりやすくなったと思う。 いままでは目次からクリックしないとパーマリンクを取得できないという残念な仕様だった。
RSS_TITLE は設定しないと RSS 側のタイトルが #add-permalink
のような感じになってしまうので設定している(RSS の xml ファイルの生成には ox-rss を使っている)。
二重に書いているのが嫌だがまあ org-capture
で二重に書くことを自動化できたのでよしとしよう……(RSS_TITLE の方を修正し忘れる未来がみえる)。
org-mode で [[#custom_id][カスタムID]] のようにリンクを張ると、
Emacs 内でもジャンプできることが分かった。
[[filename.org::#custom_id][別ファイルのヘッダー]] のようにすれば別ファイルでもオーケーだ。
CUSTOM_ID プロパティを設定していれば org-store-link を使ったときに、この #custom_id の形式のリンクが取得できるようだ。
いままで CUSTOM_ID を使用していなかったせいで、
リンクが壊れることがよくあったのでこれからは使っていきたい。
org-capture-template で CUSTOM_ID に日付を自動的にプレフィックスとして付けるようにしておけば CUSTOM_ID の衝突について考える必要はない。
過去の投稿のタイトルにもパーマリンクを張ることを考えたが面倒なのでやめた。