Markdown 替换标记文本中占位符(变量)的最简单方法?

Markdown 替换标记文本中占位符(变量)的最简单方法?,markdown,placeholder,pandoc,Markdown,Placeholder,Pandoc,我需要一个开放的格式以一种通用的方式写故事(带有占位符/变量)。为了使故事区分大小写,我想设置一个键/值对列表,并在发布时应用它们。我还想从内容中分离样式,这样我就可以轻松地发布到web、pdf等 示例:@varname@是个好地方。 我选择Markdown来解决内容/样式分离问题,但我不知道一种简单的方法来参数化文本的某些部分,并在使用pandoc之类的工具生成html/pdf输出时填充它们 有什么建议吗?这可以通过markdown实现,还是有合适的markdown扩展?就我个人而言,我会使用

我需要一个开放的格式以一种通用的方式写故事(带有占位符/变量)。为了使故事区分大小写,我想设置一个键/值对列表,并在发布时应用它们。我还想从内容中分离样式,这样我就可以轻松地发布到web、pdf等

示例:
@varname@是个好地方。

我选择Markdown来解决内容/样式分离问题,但我不知道一种简单的方法来参数化文本的某些部分,并在使用pandoc之类的工具生成html/pdf输出时填充它们


有什么建议吗?这可以通过markdown实现,还是有合适的markdown扩展?

就我个人而言,我会使用类似于
sed
,甚至
funnelweb
,但是你可以使用pandoc过滤器来实现,可以使用haskell,也可以(可能更容易)使用
pandocfilters
python库,你可以使用。转换为HTML时,将解释由双大括号
{{}}
包围的复杂表达式。示例(来自链接):

2008年11月7日


我认为也可以定义自定义变量。

Pandoc的降价允许嵌入原始乳胶,甚至可以替换简单的定义,这些定义可以使用。例如:

\def\varname{Berlin}
\瓦纳姆是个好地方。
将在生成PDF输出时立即工作

下面是一个Lua过滤器,它使此技巧适用于所有输出格式:

--文件:tex-macros.lua
函数RawInline(r)
--内联扩展TeX命令。
如果r.format=='tex'和r.text:匹配'^[^\\\]',则
返回pandoc.Str(r.text)
结束
结束
通过
--lua filter
(或
-L
)命令行选项传递它来使用它:

pandoc --lua-filter tex-macros.lua ...

您是否也在使用特定的编程语言?在我看来,构建输出降价的模板是最好的选择,但这种方法的细节将在很大程度上取决于您的堆栈。@Chris:不使用特定的编程语言。我只是在寻找一种易于使用/可配置的键/值解决方案,例如pandoc扩展,在将标记内容发布到任何输出类型(pdf、html、docx)时,用相应的值替换某些字符串(键)。
pandoc --lua-filter tex-macros.lua ...