我在Windows上使用pandoc将.docx
文件转换为.md
文件。
我使用的标志如下:
pandoc --wrap none --to markdown_github --output fms.md "FMS.docx"
当我查看输出降价文件时,它有分隔每个列表项的换行符。文档将此定义为loose list,例如下面的那个。
- one
- two
- three
我想使用压缩列表作为输出,如下所示。
- one
- two
- three
是否有一个标志可以使pandoc输出一个紧凑的列表?
如果没有,我如何使用滤波器来实现所需的输出?
答案 0 :(得分:2)
没有标志可以实现这一点,但是有一个使用pandoc的过滤器功能的简单解决方案。在内部,列表项表示为块列表;如果所有块项仅包含Makefile
块,则列表是紧凑的。如果所有项目只包含一个段落,则只需将项目块的类型从Plain
(段落)更改为Para
即可。
下面的Lua程序就是这么做的。保存并将其用作Lua filter:Plain
(需要pandoc 2.1或更高版本):
pandoc -t markdown --lua-filter the-filter.lua your-document.docx
如果有人喜欢Haskell而不是Lua,那么也可以使用local List = require 'pandoc.List'
function compactifyItem (blocks)
return (#blocks == 1 and blocks[1].t == 'Para')
and {pandoc.Plain(blocks[1].content)}
or blocks
end
function compactifyList (l)
l.content = List.map(l.content, compactifyItem)
return l
end
return {{
BulletList = compactifyList,
OrderedList = compactifyList
}}
下面的过滤器:
pandoc -t markdown --filter the-filter.hs your-document.docx
使用Python过滤器也是可能的,以防Lua和Haskell都不是一个选项。有关详细信息,请参阅pandoc的filters页面。