pagerange / metaparsedown
为 eursev/parsedown 或 eruseve/parsedown-extra 解析的 markdown 文件添加元数据功能
Requires
- php: ^7 || ^8
- erusev/parsedown: ^1.7.4
- symfony/yaml: ^5.0 || ^6.0
Requires (Dev)
- phpunit/phpunit: ^9
README
MetaParsedown 扩展了 erusev/parsedown 和 eruseve/parsedown-extra,非常优秀的 markdown 解析器,通过添加在 markdown 或 markdown-extra 文件中以有效 yaml 格式的元数据功能。MetaParsedown 使用 Symfony Yaml 组件来解析和提取元数据。我创建这个是因为我们正在创建一个 markdown 文档管理系统,需要为每个文件添加元数据。另一种选择是为每个 markdown 文件创建一个单独的元数据文件,这是可行的,但对于创建文档的人来说似乎比较麻烦。这种方法看起来更简单,而且使用起来也很简单。
MetaParsedown 保留了 erusev/parsedown 的所有功能,但增加了两个方法
-
meta($markdown) -- 返回 markdown 中的键/值元数据标签数组
-
stripMeta($markdown) 返回去除 yaml 前置信息的纯 markdown
Parsedown 的原始 text($markdown) 方法继续返回 HTML,不带元数据标签
MetaParsedown 还可以作为 Wordpress 插件 使用。
安装
请使用 composer 包 将 Metaparsedown 包含到您的项目中。
composer require pagerange/metaparsedown
添加元数据
将元数据作为有效的 yaml 键/值对添加,以三个短横线开始和结束。这个 yaml 块必须出现在文档的开头。
--- title: 'My Great Document' author: 'Yours Truly' description: 'A short document with very little to say' status: 'public' created_at: '2017-11-18 12:01:00' --- # My Great Document This is the rest of the markdown document * bullet list item * bullet list item
用法
use Pagerange\Markdown\MetaParsedown; $mp = new MetaParsedown(); echo $mp->text($markdown); // prints HTML, without meta data $meta = $mp->meta($markdown); // returns an array of key/value pairs $bare_markdown = $mp->stripMeta($markdown); // returns markdown without yaml block
请参阅 erusev/parsedown
git 页面 或 erusev/parsedown-extra
git 页面 获取更多信息以及如何使用和工作的详细文档。
许可证
MIT 许可证
版权所有 (c) 2017 Steve George
本软件及其相关文档文件(以下简称“软件”)的副本由任何个人免费获得后,授予在软件上无限制地处理的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供者提供软件的个人处理该软件,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何形式的质量保证,明示或暗示的,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是由合同、侵权或其他方式引起的,是否与软件或其使用或其他相关事宜有关。