krisanalfa/bono-markdown

Bono 基础项目 Markdown 支持

0.0.2 2014-08-12 09:56 UTC

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/formSlim\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