3

如何使用 php检索MultiMarkdown文档元数据(定义见此处)?我很惊讶我找不到 MultiMarkdown php 解析器,PHP Markdown Extra不做 MultiMarkdown。

我担心MultiMarkdown 附带的脚本对于知道如何定义/使用自定义 XSLT 的人来说有所有答案,但遗憾的是,这不是我的情况。

MultiMarkdown文档元数据如下所示:

标题:新的 MultiMarkdown 文档
作者:Fletcher T. Penney
John Doe
日期:2005 年 7 月 25 日

我想使用我自己的属性并控制它们在输出中的显示位置。默认情况下,mmd2XHTML 在标签中输出上述(预定义)变量,但我需要在 HTML 正文中的某处显示它们。

谢谢

4

2 回答 2

0

我不是 php 专家,但最简单的方法可能是将 multimarkdown 二进制文件作为 shell 命令调用,例如

multimarkdown -e title foo.txt

此命令将输出 foo.txt 的标题元数据的值。

这基本上是我在 perl、Objective-C 和 shell 脚本中使用的方法,也是我一-e开始就将标志添加到 MultiMarkdown 的原因。

如果您使用 MMD 实际生成 HTML 结果,则 XSLT 方法非常有用,但在这种情况下可能没有那么有用。

你的另一个选择是编写一个自定义正则表达式来获取你需要的东西,但为什么要重新发明轮子呢?

于 2012-05-17T12:08:00.963 回答
0

要使用元数据解析 markdown 文件,您可以使用前端 yamlkurenai

我不确定与 multimarkdown 的确切兼容性。

前端yaml

$parser = new Mni\FrontYAML\Parser();

$document = $parser->parse($str);

$yaml = $document->getYAML();
$html = $document->getContent();

红内

kurenai 可以解析不同的元数据内容类型,如 yaml 和 json。

$kurenai = new \Kurenai\Parser(
    new \Kurenai\Parsers\Metadata\JsonParser,
    new \Kurenai\Parsers\Content\MarkdownParser
);

$document = $kurenai->parse('path/to/document.md');
$document->getRaw();
$document->getMetadata();
$document->getContent();
于 2017-04-29T16:25:12.970 回答