krisanalfa / bono-markdown
Bono 基础项目 Markdown 支持
Requires
- kzykhys/ciconia: ~1.0.0
This package is auto-updated.
Last update: 2024-08-29 04:39:05 UTC
README
此包将使您能够在 Bono 基础项目中使用 Markdown 作为 Norm 架构或输入类型 markdown。
注意: 此包需要 PHP >5.4
安装
将此包添加到您的 composer.json
文件中
"require": { "krisanalfa/bono-markdown": "~0.0.1", }
将 Bono Markdown 提供者注册到您的 Bono 提供者配置中
'bono.providers' => [ 'Bono\\Markdown\\Provider\\MarkdownProvider' => [ 'gfm' => true, // activate Github Flavored Markdown ], ],
注意: 对于其他配置选项,请参阅下面的配置部分。
示例用法
$app = App::getInstance(); $markdown = '**Markdown is awesome**'; // render markdown syntax echo $app->container['markdown']->render($markdown); // render markdown form input echo $app->container['markdown.form']->renderInput($markdown);
输入表单使用 Bootstrap 3 作为其主题,如果您想覆盖此主题,应使用自定义视图,并在那里渲染您自己的部分模板。
选项
以下是您 Markdown 配置中可用的完整选项示例
use App\MyCustomViewEngine; 'bono.providers' => [ 'Bono\\Markdown\\Provider\\MarkdownProvider' => [ 'gfm' => true, // default false 'service' => true, // default false 'endpoint' => '/md-parser', // default '/md' 'requestKeyName' => 'entry', // default 'markdown', 'view' => function () { // default is not set, fallback to Slim\View return new MyCustomViewEngine; }, 'partialTemplatePath' => 'templates/partials', // default is not set, using our own partials ], ],
选项 –– gfm
启用 GitHub 风格 Markdown,默认为 false
选项 –– service
如果您想启用能够解析 Markdown 的网络服务,请将此设置为 true
,默认为 false
选项 –– endpoint
您的网络服务的端点 URL,需要 service
设置为 true
,默认为 md
选项 –– requestKeyName
您的网络服务的请求键名,默认为 markdown
选项 –– view
您的自定义视图引擎,默认为 Slim\View
选项 –– partialTemplatePath
您的自定义部分模板,默认未设置(使用我们自己的部分模板)
Norm 架构
您也可以使用此包作为 Norm 架构。请注意,当您调用 formatInput()
方法时,该方法会调用 $app->container['markdown.form']->renderInput($markdown)
方法;默认部分仍使用 _markdown/form
和 Slim\View
视图引擎。因此,如果您想覆盖此行为,必须在配置文件中设置您自己的视图。
'bono.providers' => [ 'Bono\\Markdown\\Provider\\MarkdownProvider' => [ 'view' => function() { return new MyCustomViewEngine(); } ], ],
注意: 确保您的自定义视图是
Slim\View
的扩展
网络服务
要启用此功能,您必须更改您的配置,并将 service
设置为 true
。通过 POST
请求访问它们。以下是一个访问您的网络服务的简单 JavaScript 示例
$.ajax({ url: 'http://yourdomain.com/md', data: { 'markdown': '**Markdown is awesome**' }, type: 'POST' }).done(function(html) { $('div').html(html); });
注意: 如您所见,给定的 URL,
/md
基于您的endpoint
配置。
另一种方法
表单输入使用 Slim\View
来获取和加载视图。如果您想更改此默认值,可以使用 $app->container['markdown.form']->setView($view)
。
$view = new MyCustomViewEngine(); $app->container['markdown.form']->setView($view); // after this, form should use your custom view engine
再一个。默认要渲染的部分是 _markdown/form
,如果您想渲染其他部分,只需在 Form::renderInput()
方法中传递第二个参数。示例
$app->container['markdown.form']->renderInput($markdown, '_partials/markdown');
有关更多信息,请参阅 Bono\Markdown\Helper\Form.php
文件。
注意: 您的自定义视图应扩展自
Slim\View