对于我的程序,我有一个markdown文档,用于生成Unix手册页和纯文本文档。
pandoc -s -w plain -o program.txt program.md
pandoc --no-wrap -s -w man -o program.1 program.md
带有双星号(例如**foobar**
)的降价标记中的内容用于表示手册页中粗体文本的强调结果。但是在文本输出中,它会导致大写。
例如:
echo '**foobar**' | pandoc -w plain
结果:
FOOBAR
但我宁愿忽略强调标记,只是在纯文本输出中输出foobar
。
我能想到的最好的方法是使用sed
表达式删除所有强调标记:
cat program.md | sed s/\*\*//g | pandoc --no-wrap -s -w plain -o program.txt
有更正式的方法吗?
答案 0 :(得分:2)
您希望使用Pandoc过滤器,在输出到痛苦文本时将强文本转换为普通文本。
有一个过滤器就是这样做的:https://github.com/sergiocorreia/panflute-filters/blob/master/filters/remove-strong.py
(它使用Panflute所以你需要pip install panflute
,并且安装了python 2.7+)
您也可以替换此行:
if isinstance(elem, pf.Strong)
有了这个:
if isinstance(elem, pf.Strong) and doc.format=='plain'
(或者只是为文本输出运行过滤器!)