Last update: 2023-12-06

ID linkをExportした時に #ID がつくのをどうにかしたい   Emacs OrgMode

Org Modeで挿入したリンクで、IDを使っているものをHTMLにExportすると、 毎回IDへのハッシュがついてしまって見栄えが良くない。

<a href="/path/to/link#ID-HJKLHJKLHJK">link description</a>

#ID-HJKLHJKLHJK の部分が冗長だ。 しかも、ExportしたHTMLに付与されるIDは CUSTOM_ID propertyに設定した値が使われるので、 このIDの要素は実際には存在しない。何のためにあるのだ…

上手く解決する方法が見つからなかったので、adviceして力技で解決する。

(defun my/org-html-link-post-process (old-func &rest args)
  (let ((linktext (apply old-func args)))
    (if (string-match-p "href=\"#" linktext)
        linktext

      (replace-regexp-in-string "#.*\"" "\"" linktext))))

(advice-add #'org-html-link :around #'my/org-html-link-post-process)