php-school / cli-md-renderer
用于league/commonmark兼容AST的CLI Markdown渲染器
1.0.0
2022-11-21 21:02 UTC
Requires
- php: >=7.1
- kevinlebrun/colors.php: ^1.0
- league/commonmark: ^1.5.6
- php-school/keylighter: ^0.8.4
Requires (Dev)
- phpstan/phpstan: ^0.12.50
- phpunit/phpunit: ^7.0 | ^8.0 | ^9.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-10 14:50:50 UTC
README
<img src="https://github.com/AydinHassan/cli-md-renderer/workflows/CliMdRenderer/badge.svg">
使用方法
<?php require_once 'vendor/autoload.php'; use League\CommonMark\DocParser; use League\CommonMark\Environment; use PhpSchool\CliMdRenderer\CliRendererFactory; $parser = new DocParser(Environment::createCommonMarkEnvironment()); $cliRenderer = (new CliRendererFactory)->__invoke(); $ast = $parser->parse(file_get_contents('path/to/file.md')); echo $cliRenderer->renderBlock($ast);
语法高亮
FencedCode
可以进行语法高亮。默认情况下,仅使用 kadet/keylighter 对PHP源代码进行语法高亮。如果您想为其他语言添加语法高亮,您应该创建一个实现 \AydinHassan\CliMdRenderer\SyntaxHighlighterInterface
的类
它接受代码作为字符串,并应该返回高亮后的代码作为字符串。您可以通过以下方式注册您的语法高亮器
<?php use PhpSchool\CliMdRenderer\Renderer\FencedCodeRenderer; $codeRenderer = new FencedCodeRenderer; $codeRenderer->addSyntaxHighlighter('js', new JsSyntaxHighlighter);
如果您需要进行此操作,则不能使用工厂,构建过程将类似于
<?php require_once 'vendor/autoload.php'; use Colors\Color; use League\CommonMark\Environment; $environment = new Environment(); $environment->addExtension(new CliExtension()); $colors = new Color(); $colors->setForceStyle(true); return new CliRenderer($environment, $colors);
待办事项
- 可配置(行结束符、颜色、样式)
- 图片渲染器
- 列表渲染器
- 代码语法高亮
- 文档