我正在github上创建一个库,因此我使用具有以下结构的Markdown文件:
# My main title
## My first section
...
## My second section
...
但不幸的是,当我使用pandoc将文档转换为乳胶时:
pandoc README.md --number-sections -f markdown -t latex -s -o doc.tex
该文档没有任何标题,并且编号从主标题开始:
1. My main title
1.1. My first section
...
1.2. My second section
...
虽然我想要这样的东西
My main title <=== document title
1. My first section
...
2. My second section
...
我当然可以使用sed将所有##更改为#,并用替换主标题,% Document My main title
但对我来说似乎很脏。什么是进行的好方法?
谢谢!
最好使用pandoc过滤器执行此操作。这是一个Lua过滤器,可以满足您的需求。将其存储在文件中,例如,promote-headers.lua
然后使用调用pandoc pandoc --lua-filter=promote-headers.lua
。
local title
-- Promote all headers by one level. Set title from level 1 headers,
-- unless it has been set before.
function promote_header (header)
if header.level >= 2 then
header.level = header.level - 1
return header
end
if not title then
title = header.content
return {}
end
local msg = '[WARNING] title already set; discarding header "%s"\n'
io.stderr:write(msg:format(pandoc.utils.stringify(header)))
return {}
end
return {
{Meta = function (meta) title = meta.title end}, -- init title
{Header = promote_header},
{Meta = function (meta) meta.title = title; return meta end}, -- set title
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句