Last update: 2023-11-21

HTMLでkbdタグをExportしたい   Emacs OrgMode

kbd というHTMLタグがあり、CSSによっては <kbd>Ctrl-A</kbd> とするとKeybordの押下を表現してくれる。 Ctrl-A という具合に。Org Modeで書いたテキストからExportでこのタグを使いたいと思っていたら、 うまく実現する方法を書いている記事を見つけた。

通常のExport

デフォルトではverbatimとcodeは同じタグを出力する。

(org-export-string-as "=code=
~kbd~" 'html)
...
<code>code</code>
<code>kbd</code>
...

ちょっともったいないですね。 変換される対象のHTML TAGは org-html-text-markup-alist 変数を見ればわかる。

((bold . "<b>%s</b>")
 (code . "<code>%s</code>")
 (italic . "<i>%s</i>")
 (strike-through . "<del>%s</del>")
 (underline . "<span class=\"underline\">%s</span>")
 (verbatim . "<code>%s</code>"))

codeを kbd タグで出力してほしいところ。

解決策

冒頭で紹介した記事で、まさにこれを解決してくれている。 まあ、上述の内容はこれを踏まえて噛み砕いて書いたものなのだが。

(eval-after-load 'ox-html
  ;; If you prefer to use ~ for <code> tags. Replace "code" with
  ;; "verbatim" here, and replace "~" with "=" below.
  '(push '(code . "<kbd>%s</kbd>") org-html-text-markup-alist))
https://endlessparentheses.com/inserting-the-kbd-tag-in-org-mode.html