Emacs org-mode - 导出到 html 没有语法高亮

Emacs org-mode - Export to html without syntax highlighting

我正在使用 org-mode 写博客 post(wordpress)。 因为我用的是语法高亮插件,所以不需要用org-mode的语法高亮

这是例子。

emacs 中的源代码。

导出的输出。

当我删除 BEGIN_SRC 后面的语言字段时,语法突出显示也消失了。但我只想在不删除语言字段(emacs-lisp)的情况下仅在导出时禁用语法突出显示。

下面我也测试了,但是不行。

(setq org-src-fontify-natively t)

============更新============

我在下面申请了。 (感谢@Picaud Vincent) (setq org-html-htmlize-output-type 'nil)

它在没有语言字段的源代码块中工作正常。但它不适用于带有语言字段的源代码块。

这里是例子。

在 .emacs 文件中.. (setq org-html-htmlize-output-type 'nil)

  1. 没有语言字段 起源

#+BEGIN_SRC
      (setq org-todo-keywords
            '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
#+END_SRC

出口

<pre class="example">
    (setq org-todo-keywords
          '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
</pre>

  1. 有语言字段 起源

#+BEGIN_SRC emacs-lisp
      (setq org-todo-keywords
            '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
#+END_SRC

出口

<div class="org-src-container">

<pre class="src src-emacs-lisp"></pre>

============更新============

终于找到解决办法了。

  1. 关注@Picaud Vincent 的回答。 (setq org-html-htmlize-output-type无)`

  2. 如果语言字段的源代码块中没有代码,则在语言字段中添加exports: code。 例如> #+BEGIN_SRC emacs-lisp:exports code

虽然添加“exports: code”会禁用 org-mode 缓冲区中的语法突出显示,但它解决了我的问题。

或许您可以尝试自定义 org-html-htmlize-output-type 变量:

通常的 HTML 导出看起来像:

但是,通过这种定制

(setq org-html-htmlize-output-type `nil)

你得到纯文本:

此变量和其他可自定义的变量在 ox-html.el 文件中定义。


更新:完成 html 来源

之前:

<div class="org-src-container">
<pre class="src src-emacs-lisp">(<span style="color: #a020f0;">defcustom</span> <span style="color: #a0522d;">org-html-htmlize-output-type</span> 'inline-css
  <span style="color: #8b2252;">"Output type to be used by htmlize when formatting code snippets.</span>
<span style="color: #8b2252;">Choices are `</span><span style="color: #008b8b;">css</span><span style="color: #8b2252;">' to export the CSS selectors only,`</span><span style="color: #008b8b;">inline-css</span><span style="color: #8b2252;">'</span>
<span style="color: #8b2252;">to export the CSS attribute values inline in the HTML or `</span><span style="color: #008b8b;">nil</span><span style="color: #8b2252;">' to</span>
<span style="color: #8b2252;">export plain text.  We use as default `</span><span style="color: #008b8b;">inline-css</span><span style="color: #8b2252;">', in order to</span>
<span style="color: #8b2252;">make the resulting HTML self-containing.</span>

<span style="color: #8b2252;">However, this will fail when using Emacs in batch mode for export, because</span>
<span style="color: #8b2252;">then no rich font definitions are in place.  It will also not be good if</span>
<span style="color: #8b2252;">people with different Emacs setup contribute HTML files to a website,</span>
<span style="color: #8b2252;">because the fonts will represent the individual setups.  In these cases,</span>
<span style="color: #8b2252;">it is much better to let Org/Htmlize assign classes only, and to use</span>
<span style="color: #8b2252;">a style file to define the look of these classes.</span>
<span style="color: #8b2252;">To get a start for your css file, start Emacs session and make sure that</span>
<span style="color: #8b2252;">all the faces you are interested in are defined, for example by loading files</span>
<span style="color: #8b2252;">in all modes you want.  Then, use the command</span>
<span style="color: #8b2252;">`\[</span><span style="color: #008b8b;">org-html-htmlize-generate-css</span><span style="color: #8b2252;">]' to extract class definitions."</span>
  <span style="color: #483d8b;">:group</span> 'org-export-html
  <span style="color: #483d8b;">:type</span> '(choice (const css) (const inline-css) (const nil)))

(<span style="color: #a020f0;">defcustom</span> <span style="color: #a0522d;">org-html-htmlize-font-prefix</span> <span style="color: #8b2252;">"org-"</span>
  <span style="color: #8b2252;">"The prefix for CSS class names for htmlize font specifications."</span>
  <span style="color: #483d8b;">:group</span> 'org-export-html
  <span style="color: #483d8b;">:type</span> 'string)
</pre>
</div>

之后:

<div class="org-src-container">
<pre class="src src-emacs-lisp">(defcustom org-html-htmlize-output-type 'inline-css
  "Output type to be used by htmlize when formatting code snippets.
Choices are `css' to export the CSS selectors only,`inline-css'
to export the CSS attribute values inline in the HTML or `nil' to
export plain text.  We use as default `inline-css', in order to
make the resulting HTML self-containing.

However, this will fail when using Emacs in batch mode for export, because
then no rich font definitions are in place.  It will also not be good if
people with different Emacs setup contribute HTML files to a website,
because the fonts will represent the individual setups.  In these cases,
it is much better to let Org/Htmlize assign classes only, and to use
a style file to define the look of these classes.
To get a start for your css file, start Emacs session and make sure that
all the faces you are interested in are defined, for example by loading files
in all modes you want.  Then, use the command
`\[org-html-htmlize-generate-css]' to extract class definitions."
  :group 'org-export-html
  :type '(choice (const css) (const inline-css) (const nil)))

(defcustom org-html-htmlize-font-prefix "org-"
  "The prefix for CSS class names for htmlize font specifications."
  :group 'org-export-html
  :type 'string)
</pre>
</div>