Emacs org-mode markdown 导出 : #+TITLE option not exported

标签 emacs export markdown org-mode

我使用出色的 org-mode 轻松将 README.md 的修改推送到 GitHub 项目。 Markdown 导出效果很好,除了 #+TITLE 选项没有被导出到 Markdown - 它完美地适用于 HTML 导出。

我想保留文件名 README.org 以便于转换成 Markdown,否则我可以选择标题作为文件名,这样可以在 GitHub 上正确显示标题。

关于如何实现这一点的任何建议?

最佳答案

根据您的问题和随后的评论,您似乎想要实现三件事:

  1. 定义一个导出为顶级标题的自定义标题。

  2. 在标题之后插入目录

  3. 目录不应包含标题。


目录的自定义位置

在自定义位置插入 TOC 很简单,所以让我们从这个开始:添加

#+OPTIONS: toc:nil

README.org 顶部的导出选项。就其本身而言,这告诉 org-mode 在导出时不要包含默认目录。然后,您可以通过插入将 TOC 放置在您想要的位置

#+TOC: headlines

在所需的位置。 (此 method 并非特定于 Markdown 导出。)


未显示在目录中的自定义标题

定义一个不包含在 TOC 中的自定义标题有点棘手,但基本想法是通过将标题格式化为 Markdown 标题而不是 org 标题。第一步,将 README.org 更改为如下所示:

#+OPTIONS: toc:nil

# Emacs als Python-Power-Editor für den RasPi

#+TOC: headlines

* Wieso nur ausgerechnet Emacs???
...

开箱即用这不会产生所需的结果,因为 org 会将标题解释为注释,并且默认情况下 Markdown 导出器配置为忽略注释。但是,为了更改默认行为,您可以

  1. 为您的 .emacs 中的注释定义自定义转码器:

    (defun org-md-comment (comment contents info)
      "Transcode COMMENT object into Markdown format.
    CONTENTS is nil.  INFO is a plist holding contextual information."
      (format "# %s" (org-element-property :value comment)))
    
  2. 重新定义 Markdown 导出后端以使用此转码器:

    (org-export-define-derived-backend 'md 'html
      ;; ...
      :translate-alist '((bold . org-md-bold)
                         (code . org-md-verbatim)
                         (comment . org-md-comment) ;; <--- Use custom transcoder
                         (comment-block . (lambda (&rest args) ""))
                         ;; ...
                         ))
    

    后端的原始定义可以在文件ox-md.el中找到;该文件位于 org-mode 安装目录中。您需要将完整的定义复制到您的 .emacs 文件并更改行

    (comment . (lambda (&rest args) ""))
    

    如上图。


结果

通过这些自定义,生成的 README.md 文件如下所示:

# Emacs als Python-Power-Editor für den RasPi

<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">1. Wieso nur ausgerechnet Emacs???</a></li>
<li><a href="#sec-2">2. Die Maus ist tot, es leben die shortcuts!</a></li>
<li><a href="#sec-3">3. Auf den Emacs, fertig, los!</a></li>
</ul>
</div>
</div>

# Wieso nur ausgerechnet Emacs???
...

关于Emacs org-mode markdown 导出 : #+TITLE option not exported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24123769/

相关文章:

java - Java中带有换行符 "\n"的字符串=>如何转换为markdown?

emacs - 在 emacs 中显示 Octave 图输出?

php - 如何从 phpmyadmin 导出和导入存储过程

html - 如何在 README.md 中水平堆叠图像

java.io.IOException : mark/reset not supported

function - Erlang - 未定义的函数

javascript - 当标题出现时分割 Markdown 片段

java - 有什么方法可以在 Vim/Emacs 中提供 Eclipse 自动错误发现功能?

Emacs epa 和 gnupg2 : "no usable configuration"

linux - 从 Linux 通过 SSH 连接到 Mac OS X(使用 XForwarding)时如何运行 Emacs?