Clojure 组织模式:控制代码块的html输出

Clojure 组织模式:控制代码块的html输出,clojure,org-mode,Clojure,Org Mode,是否可以调整emacs组织模式以微调代码块的html输出?内联代码按预期输出 <code> ..my code.. </code> <pre><code> ..my code..</code></pre> 正如预期的那样,但代码块(在#+BEGIN#U SRC clojure...#+END#U SRC块标记内)输出为 <pre class="src src-clojure> ..my code..<

是否可以调整emacs组织模式以微调代码块的html输出?内联代码按预期输出

<code> ..my code.. </code> 
<pre><code> ..my code..</code></pre>
正如预期的那样,但代码块(在#+BEGIN#U SRC clojure...#+END#U SRC块标记内)输出为

<pre class="src src-clojure> ..my code..</pre>
我希望如此,因为这意味着不需要对css进行任何更改,并且(托管)代码高亮显示(highlight.js)可以开箱即用。 我已经阅读了组织模式手册,并在网上搜索了很长时间,但运气不佳。这种行为似乎是由组织模式文件ox-html.el设置的,但对其进行调整有点超出了我目前对elisp的了解水平。
谢谢

您可以重新定义HTML导出引擎用于生成该输出的转换器函数。按
C-h f
(描述函数)并键入
org html src block
查看文档并导航到函数定义。将该defun复制到dotemacs以进行自定义

您可能希望将其更改为:

“标签代码) (格式 “\n%s%s\n” (如果(不是标题)” (格式为“%s” (组织导出数据标题信息) (格式“\n”语言标签代码()()()))
非常感谢!将关键行更改为:
(格式“\n%s
”标签代码)实现了我的目标,并允许highlight.js按预期工作
(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))))))