danhunsaker / markua
基于Markua规范的PHP Markdown解析器
Requires
- php: ^5.6.5|^7.0
- league/commonmark: ^0.17.0
Requires (Dev)
- codeclimate/php-test-reporter: ~0.1
- phpunit/phpunit: ~4.3
This package is auto-updated.
Last update: 2024-09-10 23:11:16 UTC
README
danhunsaker/markua是一个PHP Markdown解析器,旨在支持完整的Markua规范。Markua规范仍在演变中。
目标
本项目的目标是完全支持Markua规范,并将随着规范的演变而不断发展。
League\CommonMark
此包依赖于League\CommonMark,除了使用Markua规范外,功能完全相同。
安装
本项目可以通过Composer安装。
$ composer require danhunsaker/markua
基本用法
MarkuaConverter
类提供了一个将Markua转换为HTML的简单包装器。
use Danhunsaker\Markua\MarkuaConverter; $converter = new MarkuaConverter(); echo $converter->convertToHtml('# Hello World!'); // <h1>Hello World!</h1>
高级用法与自定义
实际的转换过程需要两个步骤
- 将Markdown输入解析为AST
- 将AST文档渲染为HTML
虽然MarkuaConverter
包装器简化了此过程,但高级用户可能会希望亲自完成此操作。
use League\CommonMark\DocParser; use League\CommonMark\Environment; use League\CommonMark\HtmlRenderer; use Danhunsaker\Markua\Environment\Markua; // Obtain a pre-configured Environment with all the Markua parsers/renderers ready-to-go $environment = Environment::createEnvironment(new Markua()); // Optional: Add your own parsers/renderers here, if desired // For example: $environment->addInlineParser(new TwitterHandleParser()); // Create the document parser and HTML renderer engines $parser = new DocParser($environment); $htmlRenderer = new HtmlRenderer($environment); // Here's our sample input $markdown = '# Hello World!'; // 1. Parse the Markdown to AST $documentAST = $parser->parse($markdown); // Optional: If you want to access/modify the AST before rendering, do it here // 2. Render the AST as HTML echo $htmlRenderer->renderBlock($documentAST); // The output should be: // <h1>Hello World!</h1>
这种方法允许您在渲染之前访问/修改AST。
您还可以通过使用Environment
类注册它们来添加自定义解析器/渲染器。league/commonmark文档提供了几个自定义示例,例如
您还可以参考核心CommonMark解析器/渲染器,因为它们使用您可用的相同功能。
与Markua的兼容性
本项目旨在完全支持整个Markua规范。其他Markdown版本可能可以工作,但不支持。对规范所做的任何/所有更改最终都将反映在此代码库中。
此包不是Markua的一部分,而是一个兼容的衍生品。
文档
待办事项。
测试
$ ./vendor/bin/phpunit
稳定性和版本控制
虽然此包运行良好,但底层代码尚不能被视为“稳定”。原始规范可能在不久的将来发生变化,这将导致对此代码的相应更改。任何标记为@api
的方法都不会改变,但其他方法/类可能会改变。
主版本1.0.0将保留在Markua和本项目都认为稳定时。0.x.x将一直使用到那时。
将严格遵守SemVer。
贡献
如果您在规范中发现错误,请将其报告给Markua项目。任何结果修复最终也将在此项目中实现。
有关更多信息,请参阅CONTRIBUTING。
致谢与认可
许可协议
danhusaker/markua 采用 BSD-3 许可协议。更多详细信息请参阅 LICENSE
文件。