投稿のタイトルに記事へのパーマリンクを張るようにした

投稿日: 2022-08-14 日
Diary Org

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-templateCUSTOM_ID に日付を自動的にプレフィックスとして付けるようにしておけば CUSTOM_ID の衝突について考える必要はない。

過去の投稿のタイトルにもパーマリンクを張ることを考えたが面倒なのでやめた。

日記の一覧に戻る