Pandoc Markdown 到纯文本格式
Pandoc Markdown to Plain Text Formatting
我机器上最新安装的 Pandoc 版本 (pandoc 1.13.2.1) 似乎有问题。使用之前安装的版本,从 markdown 到纯文本的转换将生成 'Setext-style headers---'=' for H1 and '-' for H2---
in 纯文本输出。此外,我还注意到另外两个问题:
- Pandoc 现在自动为标题生成大写字母
- Pandoc 现在在标题之前有两个新行 (\n)
我花了最后几分钟尝试不同的 pandoc 选项,但运气不佳。
如何将插图#1转换为插图#3
环境
潘多克(潘多克 1.13.2.1)
Ubuntu 15.10
插图 #1:输入 markdown 文件
# Title
## Section
* This is the section.
### Subsection
* This happens to be the subsection
插图 #2:在 运行 pandoc -f markdown -t plain pandoc_markdown_issue.md
之后输出纯文本
TITLE
Section
- This is the section.
Subsection
- This happens to be the subsection
插图 #3:期望的输出
Title
=====
Section
-------
- This is the section.
Subsection
----------
- This happens to be the subsection
纯文本编写器已更改为使用 Project Gutenberg 纯文本书籍的通用格式。当然,任何选择都不会令所有人满意。对于您提供的示例,使用 markdown writer 会很好。
我可以通过完全省略 -f
和 -t
标志并让 Pandoc 从输出文件扩展名推断转换格式来实现您想要的输出:
pandoc file.md -o file.txt
或者,使用 -t plain
似乎也有效:
pandoc -f markdown -t plain file.md -o file.txt
不太确定为什么第一个示例有效。我的猜测是它是降价阅读器之一,因为有多个。
这很奇怪,但是您可以通过导出到 rst
reStructuredText 来接近所需的输出,因为它使用 setext-style 标题。
然而,您可能会遇到其他问题,但它只是以防万一,如果它可能有用。
$ pandoc pandoc_markdown_issue.md -t rst
Title
=====
Section
-------
- This is the section.
Subsection
~~~~~~~~~~
- This happens to be the subsection
Pandoc now automatically generates uppercase letters for title
我在 -t plain
将粗体从 docx 变为 UPPER 时遇到了这个问题,解决了一个小 lua 过滤器。我先做了
$ pandoc -t native foo.docx
并且看到变成 UPPER 的文本被包围在 Strong
中,例如[Para [Strong [Str "some text"]]]
。非粗体文本类似于 [Para [Str "moar", Space, Str "text"]]
。所以过滤器变成:
function Strong(element)
return element.content
end
我把它放在一个文件中 weaken.lua
然后
$ pandoc --lua-filter=weaken.lua -f docx -t plain foo.docx -o foo.txt
我机器上最新安装的 Pandoc 版本 (pandoc 1.13.2.1) 似乎有问题。使用之前安装的版本,从 markdown 到纯文本的转换将生成 'Setext-style headers---'=' for H1 and '-' for H2---
in 纯文本输出。此外,我还注意到另外两个问题:
- Pandoc 现在自动为标题生成大写字母
- Pandoc 现在在标题之前有两个新行 (\n)
我花了最后几分钟尝试不同的 pandoc 选项,但运气不佳。
如何将插图#1转换为插图#3
环境 潘多克(潘多克 1.13.2.1) Ubuntu 15.10
插图 #1:输入 markdown 文件
# Title
## Section
* This is the section.
### Subsection
* This happens to be the subsection
插图 #2:在 运行 pandoc -f markdown -t plain pandoc_markdown_issue.md
TITLE
Section
- This is the section.
Subsection
- This happens to be the subsection
插图 #3:期望的输出
Title
=====
Section
-------
- This is the section.
Subsection
----------
- This happens to be the subsection
纯文本编写器已更改为使用 Project Gutenberg 纯文本书籍的通用格式。当然,任何选择都不会令所有人满意。对于您提供的示例,使用 markdown writer 会很好。
我可以通过完全省略 -f
和 -t
标志并让 Pandoc 从输出文件扩展名推断转换格式来实现您想要的输出:
pandoc file.md -o file.txt
或者,使用 -t plain
似乎也有效:
pandoc -f markdown -t plain file.md -o file.txt
不太确定为什么第一个示例有效。我的猜测是它是降价阅读器之一,因为有多个。
这很奇怪,但是您可以通过导出到 rst
reStructuredText 来接近所需的输出,因为它使用 setext-style 标题。
然而,您可能会遇到其他问题,但它只是以防万一,如果它可能有用。
$ pandoc pandoc_markdown_issue.md -t rst
Title
=====
Section
-------
- This is the section.
Subsection
~~~~~~~~~~
- This happens to be the subsection
Pandoc now automatically generates uppercase letters for title
我在 -t plain
将粗体从 docx 变为 UPPER 时遇到了这个问题,解决了一个小 lua 过滤器。我先做了
$ pandoc -t native foo.docx
并且看到变成 UPPER 的文本被包围在 Strong
中,例如[Para [Strong [Str "some text"]]]
。非粗体文本类似于 [Para [Str "moar", Space, Str "text"]]
。所以过滤器变成:
function Strong(element)
return element.content
end
我把它放在一个文件中 weaken.lua
然后
$ pandoc --lua-filter=weaken.lua -f docx -t plain foo.docx -o foo.txt