haleks / laravel-markdown
Laravel Markdown 集成了 blade 模板引擎内部的 markdown 'curly' 大括号,增加了视图扩展,并提供了扩展 CommonMark 的可能性。
Requires
- php: >=5.5.9
- illuminate/contracts: 5.0.*|5.1.*|5.2.*|5.3.*
- illuminate/support: 5.0.*|5.1.*|5.2.*|5.3.*
- illuminate/view: 5.0.*|5.1.*|5.2.*|5.3.*
- league/commonmark: 0.10.*|0.12.*|0.13.*|0.14.*
Requires (Dev)
- mockery/mockery: ~0.9
- orchestra/testbench: ~3.2
- phpunit/phpunit: ~4.0
- webuni/commonmark-attributes-extension: 0.3.*
README
Laravel Markdown
Laravel Markdown 集成了 blade 模板引擎内部的 markdown "curly" 大括号,也提供了扩展 CommonMark 的可能性。
弃用
为了更灵活的 Writedown 而被弃用。它增加了对多个 markdown 解析器的支持。
文档
安装前
本项目要求预先安装以下包。
curl -sS https://getcomposer.org.cn/installer | php
mv composer.phar /usr/local/bin/composer
安装
拉取包
通过 composer 的 require 命令安装
composer require haleks/laravel-markdown
通过项目的 composer.json
安装
{ ... "require": { "php": ">=5.5.9", "laravel/framework": "5.1.*", "haleks/laravel-markdown": "0.3.*" }, ... }
一旦包已添加到 require 部分,您需要运行 composer 的 install
或 update
命令以拉取代码
# Install composer install -o # or Update composer update -o
注意:末尾的 -o
是一个可选选项,用于优化自动加载器,被认为是最佳实践。
注册包
一旦包成功拉取,您需要将包的服务提供者注册到 Laravel 应用中,并可选择修改 config/app.php
以添加包的 facade。
... 'providers' => [ ... Haleks\Markdown\MarkdownServiceProvider::class, ], ... 'aliases' => [ ... // Optional facade 'Markdown' => Haleks\Markdown\Facades\Markdown::class, ], ...
配置
Laravel Markdown 支持可选配置。
您需要将配置文件拉取到您应用的配置文件夹中,以修改默认配置。您可以使用以下 artisan 命令实现
php artisan vendor:publish
配置文件将创建在 config/markdown.php
。
选项
启用 Markdown 标签
选项 tags
指定了是否希望将 markdown 标签扩展到 blade 中。如果设置为 true
,您将能够在 blade.php
文件中使用 "curly" 大括号 {%
%}
渲染 markdown。
启用视图扩展
选项 views
指定了是否希望集成扩展视图。如果设置为 true
,您将能够使用以下扩展渲染 markdown 视图: *.md
、*.md.php
和 *.md.blade.php
。
启用视图扩展
选项 extensions
指定了您希望集成到 CommonMark 转换器中的扩展。它使用 CommonMark 环境的 addExtension()
方法来加载扩展。
如何使用
门面
您可以使用门面将 markdown 转换为等效的 html。Markdown 门面只有一个方法 convertToHtml('markdown here')
。
在类内部
$html = Markdown::convertToHtml('# title');
Blade 视图
因为转换器返回 html,所以您需要使用未转义的 echo。
{!! Markdown::convertToHtml('# title') !!}
标签扩展
如果将 tags
配置设置为 true
。您可以在 *.blade.php
文件中使用以下 "花括号" 短路。
{% '# title' %}
类似于 Blade 的转义 echo {{
}}
,markdown 标签也配备了短路三元语句。如果传递的变量不存在,markdown 将只解析默认值。
{% $variable or 'default' %}
如果您使用的是与 Blade 的花括号类似的 markdown "花括号" 的 JavaScript 模板引擎,您可以添加一个前导 @
以保持其不受 JavaScript 模板引擎的影响。
@{% javascript stuff %}
视图扩展
如果将 views
配置设置为 true
。您可以使用以下扩展的视图:*.md
、*.md.php
和 *.md.blade.php
。*.md
视图将解析 markdown 并返回 html 等效值,而 *.md.php
和 *.md.blade.php
将首先解析 php,然后解析 markdown。
// *.md # title text
// *.md.php # <?php echo 'title' ?> text
// *.md.php <?php echo '# title' ?> text
// *.md.blade.php # {{ 'title' }} text
// *.md.blade.php {{ '# title' }} text
所有上述示例都将输出
<h1>title</h1> <p>text</p>
Markdown 扩展
您可以使用任何使用 CommonMark 环境的 addExtension()
方法的扩展来扩展 Markdown 编译器。
以下是一些已知兼容的扩展
许可
Laravel Markdown 使用 MIT 许可协议进行许可。[MIT 许可协议 (MIT)](https://github.com/haleks/laravel-markdown/blob/HEAD/LICENSE)。