【问题标题】:Org-Mode: Controlling html output of code blocksOrg-Mode:控制代码块的 html 输出
【发布时间】:2016-04-29 05:31:43
【问题描述】:

是否可以调整 emacs org-mode 以微调代码块的 html 输出?内联代码按预期输出

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

正如预期的那样,但代码块(在 #+BEGIN_SRC clojure .. #+END_SRC 块标记内)输出为

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

我更喜欢标准

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

我想要,因为这意味着不需要对 css 进行任何更改,并且(托管)代码突出显示 (highlight.js) 可以开箱即用。 我已经阅读了 org-mode 手册并在网上搜索了很长时间,但没有运气。该行为似乎可能是 org-mode 文件 ox-html.el 设置的,但调整它有点超出我目前的 elisp 知识水平。 谢谢!

【问题讨论】:

    标签: clojure org-mode


    【解决方案1】:

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

    您可能希望将其更改为:

    (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))))))
    

    【讨论】:

    • 非常感谢!将关键行更改为:(format "&lt;pre&gt;&lt;code class=\"example\"%s&gt;\n%s&lt;/code&gt;&lt;/pre&gt;" label code) 实现了我所追求的并允许 highlight.js 按预期工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多