8fold / commonmark-partials
PHP League's CommonMark库的扩展,用于启用部分功能。
1.0.0
2023-05-15 19:47 UTC
Requires
- php: ^8.1
- league/commonmark: ^2.3
Requires (Dev)
- phpstan/phpstan: ^1.7
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-16 02:00:21 UTC
README
这个库是PHP League的CommonMark解析器的扩展,增加了插入可渲染部分的能力。
换句话说,并且非常谦虚,我们可能错了,Markdown可以感觉更像是一个模板引擎。
安装
composer require 8fold/commonmark-partials
用法
⚠️ 警告:此库的使用者负责对内容进行清理。
创建你的部分类
<?php namespace My\Namespace; use Eightfold\CommonMarkPartials\PartialInterface; class MyPartial implements PartialInterface { public function __invoke( PartialInput $input, array $extras = [] ): string { return 'Will be processed like any other Markdown input.' } }
用你的部分编写Markdown
# CommonMark Partials
{!! my_partial !!}
实例化CommonMark
use Eightfold\CommonMarkPartials\PartialsExtension; use My\Namespace\MyPartial; $environment = new Environment([ 'partials' => [ 'partials' => [ 'my_partial' => MyPartial::class ] ] ]); $environment->addExtension(new CommonMarkCoreExtension()) ->addExtension(new PartialsExtension()); $converter = new MarkdownConverter($environment);
渲染Markdown
$html = $converter->convertToHtml($markdown)->getContents();
打印结果
print $html;
结果应该是
<h1>CommonMark Partials</h1> <p>Will be processed like any other Markdown input.</p>
如果你想让你的部分返回HTML,你需要更新CommonMark配置以允许HTML
$environment = new Environment([ 'allow_html' => 'allow', 'partials' => [ 'partials' => [ 'my_partial' => MyPartial::class ] ] ]);
详细信息
我们希望允许内容创建者使用Markdown创建大部分内容;通过服务器端渲染。有时,我们想要(或需要)根据逻辑代码和数据注入HTML。
我们在一两个网站上实现了这一点,效果很好。现在我们使我们的Markdown库(CommonMark)成为可能。
其他
{链接或描述或许可,版本控制和治理}