2016-04-29 10 views
0

emacs org-modeを微調整して、コードブロックに出力するHTMLを微調整できますか?Org-Mode:コードブロックのhtml出力を制御する

<code> ..my code.. </code> 

を予想通り予想通り、インラインコードが出力されるが、コードブロックが(#+ BEGIN_SRCのClojureの内部..#+ END_SRCブロック・マーカー)

<pre class="src src-clojure> ..my code..</pre> 

として出力されるIは、標準

を好みます
<pre><code> ..my code..</code></pre> 

私は、CSSの変更は必要ありませんし、(ホストされた)コードハイライト(highlight.js)がすぐに使えることを意味したいと思います。 私はorg-modeマニュアルを読んで、オンラインで長い間検索しました。この動作はおそらくorg-modeファイルox-html.elに設定されているようですが、これは現在のレベルのelisp知識を超えています。感謝! ありがとう!

答えて

0

HTMLエクスポートエンジンがその出力を生成するために使用する変換機能を再定義することができます。 C-h f(関数の説明)を押し、org-html-src-blockと入力すると、ドキュメントが表示され、関数定義に移動できます。 defunをあなたのドットマックにコピーしてそれをカスタマイズします。

あなたはそれを変更する場合があります

(defun org-html-src-block (src-block contents info) 
    "Transcode a SRC-BLOCK element from Org to HTML. 
CONTENTS holds the contents of the item. INFO is a plist holding 
contextual information." 
    (if (org-export-read-attribute :attr_html src-block :textarea) 
     (org-html--textarea-block src-block) 
    (let ((lang (org-element-property :language src-block)) 
     (caption (org-export-get-caption src-block)) 
     (code (org-html-format-code src-block info)) 
     (label (let ((lbl (and (org-element-property :name src-block) 
       (org-export-get-reference src-block info)))) 
      (if lbl (format " id=\"%s\"" lbl) "")))) 
     (if (not lang) (format "<pre><code>\n%s</code></pre>" label code) 
    (format 
    "<div class=\"org-src-container\">\n%s%s\n</div>" 
    (if (not caption) "" 
     (format "<label class=\"org-src-name\">%s</label>" 
      (org-export-data caption info))) 
    (format "\n<pre><code>%s</code></pre>" lang label code)))))) 
+0

どうもありがとうございました!キーラインを: '(フォーマット"

\n%s
"ラベルコード)に変更すると、私はハイライトを期待通りに動作させることができました。 – judep

関連する問題