undefinedoffset/silverstripe-markdown

添加一个字段和数据类型,允许Markdown编辑,使用GitHub API渲染HTML

安装数: 6,426

依赖项: 1

建议者: 0

安全: 0

星标: 12

关注者: 2

分支: 7

类型:silverstripe-vendormodule

2.0.1 2019-05-31 16:17 UTC

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');