undefinedoffset / silverstripe-markdown
添加一个字段和数据类型,允许Markdown编辑,使用GitHub API渲染HTML
2.0.1
2019-05-31 16:17 UTC
Requires
- ext-curl: *
- ext-json: *
- michelf/php-markdown: ^1.8
- silverstripe/framework: ^4.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-29 03:10:44 UTC
README
添加一个字段和数据类型,允许Markdown编辑,使用支持渲染器(默认是GitHub API)来渲染HTML。
要求
- SilverStripe 4.x
- PHP cURL 支持
安装
- 使用 composer 安装:
composer require undefinedoffset/silverstripe-markdown ^2.0
- 运行
dev/build?flush=all
以重新生成清单
用法
将Markdown数据类型用作字段的数据类型,然后在cms中使用MarkdownEditor字段进行编辑。
页面类
use UndefinedOffset\Markdown\Forms\MarkdownEditor; class MyPage extends Page { public static $db = array( 'MarkdownContent' => 'Markdown' ); public function getCMSFields() { $fields = parent::getCMSFields(); $editor = new MarkdownEditor('MarkdownContent', 'Page Content (Markdown)'); $editor->setRows(15); //optional, set number of rows in CMS $editor->setWrapMode(true); //optional, turn on word wrapping $fields->addFieldToTab('Root.Main', $editor); return $fields; } }
模板
<div class="content"> $MarkdownContent <!-- Will show as rendered HTML --> </div>
您还可以通过在模板中调用 $YourField.AsHTML(true) 来请求Markdown,默认情况下,GitHub Flavored Markdown未使用,只使用常规Markdown。
<div class="content"> $MarkdownContent.AsHTML(true) <!-- Will render the content using Github Flavoured Markdown --> </div>
配置
默认渲染器是GitHub渲染器。但是,也支持其他渲染器。
要设置要使用的渲染器,在 _config.php
中执行以下操作
use UndefinedOffset\Markdown\Model\FieldTypes\Markdown; // Fully qualified (namespaced) class name of any implementation of IMarkdownRenderer will work: Markdown::setRenderer('UndefinedOffset\\Markdown\\Renderer\\GithubMarkdownRenderer');
GithubMarkdownRenderer
以下是在默认的GithubMarkdownRenderer中可用的选项
use UndefinedOffset\Markdown\Renderer\GitHubMarkdownRenderer; // authenticate to the Github API to get 5,000 requests per hour instead of 60 GithubMarkdownRenderer::useBasicAuth('github username', 'github password'); // whether or not to use Github Flavoured Markdown GithubMarkdownRenderer::setUseGFM(true);
PHPMarkdownMarkdownRenderer
PHPMarkdownMarkdownRenderer简单且没有选项。使用此选项可以避免使用GitHub渲染器导致的延迟(尤其是如果页面有很多Markdown部分)。您需要安装PHP Markdown才能使用此功能 - 它可以通过composer安装。
注意:此渲染器不支持GitHub Flavored Markdown。
use UndefinedOffset\Markdown\Model\FieldTypes\Markdown; Markdown::setRenderer('UndefinedOffset\\Markdown\\Renderer\\PHPMarkdownMarkdownRenderer');