zhenhaihou/commonmark-highlighter

使用升级league/commonmark版本、添加表格、删除线的转换突出显示您的Markdown代码块

v3.0.1 2020-03-19 15:24 UTC

This package is auto-updated.

Last update: 2024-09-20 11:46:06 UTC


README

Latest Version Build Status Quality Score StyleCI Total Downloads

league/commonmark的代码块突出显示渲染器,使用scrivo/highlight.php突出显示代码块。

highlight.php是一个用PHP编写的服务器端代码突出显示工具,目前支持185种语言。它是Ivan Sagalaev的highlight.js的移植版,充分利用了原始JavaScript项目的语言和样式定义。

输出HTML与highlight.js主题兼容,您可以在highlightjs.org/static/demo/上探索。

与highlight.js相比,使用此包有哪些好处?

  • 更少的JavaScript,意味着页面加载更快
  • 不再有未样式化的代码块闪烁

该项目受到sixlive/parsedown-highlight的启发。

安装

您可以通过composer安装此包

composer require spatie/commonmark-highlighter

用法

创建一个自定义CommonMark环境,并按照league/commonmark文档中所述注册FencedCodeRenderer和IndentedCodeRender。

use League\CommonMark\Block\Element\FencedCode;
use League\CommonMark\Block\Element\IndentedCode;
use League\CommonMark\CommonMarkConverter;
use League\CommonMark\Environment;
use Spatie\CommonMarkHighlighter\FencedCodeRenderer;
use Spatie\CommonMarkHighlighter\IndentedCodeRenderer;

$environment = Environment::createCommonMarkEnvironment();
$environment->addBlockRenderer(FencedCode::class, new FencedCodeRenderer());
$environment->addBlockRenderer(IndentedCode::class, new IndentedCodeRenderer());

$commonMarkConverter = new CommonMarkConverter([], $environment);

echo $commonMarkConverter->convertToHtml($markdown);

底层highlight库建议指定自动检测的语言子集。您可以将语言数组传递给任何渲染器。

new FencedCodeRenderer(['html', 'php', 'js']);

new IndentedCodeCodeRenderer(['html', 'php', 'js']);

突出显示特定行

行号从1开始。

```php - 不突出显示任何行
```php{4} - 只突出显示第4行
```php{4-6} - 突出显示从第4行到第6行(包括)的范围
```php{1,5} - 只突出显示第1行和第5行
```php{1-3,5} - 突出显示1到3,然后单独突出显示第5行
```php{5,7,2-3} - 行的顺序无关紧要
但是,指定3-2将不起作用。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全

如果您发现任何安全相关的问题,请通过电子邮件freek@spatie.be报告,而不是使用问题跟踪器。

明信片软件

您可以使用此包,但如果它进入您的生产环境,我们非常希望您从家乡寄给我们一张明信片,提及您正在使用我们的哪些包。

我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。

我们在我们的公司网站上发布所有收到的明信片

致谢

支持我们

Spatie是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述

您的业务依赖于我们的贡献吗?联系我们在Patreon上的支持。所有承诺都将用于分配人力进行维护和新酷炫的功能。

许可

MIT许可证(MIT)。有关更多信息,请参阅许可文件