Pandoc允许您使用标题
在Markdown文档的开头包含元数据---
title: The Song That Never Ends
subtitle: It Goes On and On My Friends
author: Abraham Lincoln
lang: en_US
---
当输入格式不 Markdown时,有没有办法将此信息传达给Pandoc?我对HTML输入特别感兴趣。我尝试用--from=html+yaml_metadata_block
调用Pandoc,但这似乎没有改变行为 - YAML块只被解释为HTML。
(可以在the “pandoc_title_block” section of the manual中显示的“百分比格式”中包含一些元数据,但似乎没有办法用该语法提供单独的标题和副标题。也可以在HTML之前包含YAML标头并强制Pandoc将输入解释为Markdown,但这似乎很麻烦,如果您尝试将其转换为“真实”Markdown,则输出将包含HTML标记而不是Markdown格式字符。)
答案 0 :(得分:3)
您可以使用--metadata
(简-M
)或--metadata-file
options在命令行中提供元数据,例如:
pandoc -M title="The Song That Never Ends"
答案 1 :(得分:2)
一个简单的解决方案是使用Lua过滤器将从HTML文件读取的元数据扩充为described in the Lua filters doc。以下是更新版本:
-- file: additional-metadata.lua
function read_file_as_markdown_yaml (filename)
-- read metadata file into string
local metafile = io.open(filename, 'r')
local content = metafile:read('*a')
metafile:close()
-- get metadata
return pandoc.read(content, 'markdown').meta
end
function Meta (meta)
-- read YAML file and add its content to the metadata
local yaml_meta = read_file_as_markdown_yaml(meta.default_meta_file)
for k, v in pairs(yaml_meta) do
-- use YAML metadata as fallback
meta[k] = meta[k] or v
end
return meta
end
与
一起使用pandoc --lua-filter additional-metadata.lua \
--metadata default_meta_file:YOUR-FILE-HERE.yaml \
your-input-file.html