我需要一种开放式格式来以通用方式编写故事(使用占位符/变量)。为了使故事具体化,我想设置一个键/值对列表,并在发布时应用它们。我还想将样式与内容分开,以便我可以轻松地发布到网页,pdf等。
示例:@varname@ is a great place.
我选择Markdown来解决内容/样式分离,但我不知道一种简单的方法来参数化文本的某些部分,并在使用像pandoc这样的工具生成html / pdf输出时填写它们。
有什么建议吗?这可以通过降价来完成,还是有合适的降价延期?
答案 0 :(得分:2)
就个人而言,我使用sed
甚至funnelweb
之类的东西,但是您可以使用pandoc过滤器,在haskell或(可能更容易)使用{{1 python库可用here
答案 1 :(得分:0)
对于网络,您可以使用Jekyll templates with Liquid。转换为HTML时,将解释由双括号{{}}
包围的复杂表达式。示例(来自链接):
{{ site.time | date_to_string }}
2008年11月7日
我认为也可以定义自定义变量。
答案 2 :(得分:0)
Pandoc 的 Markdown 允许嵌入原始 LaTeX,甚至可以替换简单的定义,这些定义可以使用 Lua filter 加以利用。例如;
\def\varname{Berlin}
\varname is a great place.
将在生成 PDF 输出时立即工作。
下面是一个 Lua 过滤器,它使这个技巧适用于所有输出格式:
-- file: tex-macros.lua
function RawInline (r)
-- Inline expanded TeX commands.
if r.format == 'tex' and r.text:match '^[^\\]' then
return pandoc.Str(r.text)
end
end
通过 --lua-filter
(或 -L
)命令行选项传递它来使用它:
pandoc --lua-filter tex-macros.lua ...