org-mode:エクスポート時にsrcブロックの行を強調表示


7

Githubには、コードで強調表示されているように、いくつかの行を表示する便利な方法があります。

(私のユースケースでは、HTMLに)エクスポートするときに、組織モードのコードブロックで同様のものをセットアップする方法があるかどうか知りたいので、コンテキストの長いコードブロックを表示しながら、読者をすばやく線に向けることができます追加または変更されたもの。

ドキュメントに明らかなものは見つかりませんでした。これを自分で実装するための研究をどこから始めればよいかわかりません。

これはできますか?すでに実装されていますか?そうでない場合、自分で実装できますか?どこから始めますか?

org-modeがHTMLにエクスポートし、.code-highlightedクラスを提供することを発見しましたが、これは(ref:xx)ツールのみのようです。参照にカーソルを合わせると、対応するコードが強調表示されます。


私が思うにいくつかのコードを書くことなしには方法はありません。おそらく、コードブロックをコメントのようなものでマークアップし、org-filterを使用して、強調表示に必要なhtmlマークアップで出力を変更する必要があります。
John Kitchin

回答:


2

coderefラベル構文に基づいて、(hl:line)org-export-filter afunction に置き換えられる疑似ラベルを使用します。参照される行はdiv、style属性でにラップされます。

(defun org-html-hl-line (src backend info)
  (when (org-export-derived-backend-p backend 'html)
    (replace-regexp-in-string
     "\\([^\n]+\\)(hl:line)\n"
     "<div style=\"background-color: rgb(248, 238, 199);\">\\1\n</div>" src)))

(add-to-list 'org-export-filter-src-block-functions
             'org-html-hl-line)

次の例に示すように、ラベルは行末にある必要があります。

(functionp &rest form)           (hl:line)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.