yivoff/commonmark-bundle

Symfony 6.2+ 应用程序集成的 League CommonMark Bundle

安装次数: 1,895

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.2.0 2023-12-19 13:08 UTC

This package is auto-updated.

Last update: 2024-09-19 14:36:54 UTC


README

一个 Symfony 5+ 扩展包,用于集成 league/commonmark v2,允许您设置多个 Commonmark 转换器。

PHP Version Require Latest Stable Version Total Downloads Latest Unstable Version License Tests

需求

此扩展包需要 PHP 8+ 和 Symfony 5+。

安装

composer require yivoff/commonmark-bundle

如果您由于某些原因在未使用 Symfony Flex 的情况下运行,请像往常一样启用扩展包,将 Yivoff\CommonmarkBundle\YivoffCommonmarkBundle 添加到扩展包数组中。

配置

您需要启用至少一个转换器才能使用此扩展包。在路径 config/packages/aymdev_commonmark.yaml 处创建一个 YAML 配置文件。以下是一个示例配置,声明了 2 个转换器

yivoff_commonmark:
   converters:
      commonmark:
         options:
            commonmark:
               enable_em: false

      github:
         type: github
         
      my_custom:
         type: custom
            extensions:
               - League\CommonMark\Extension\Autolink\AutolinkExtension
               - League\CommonMark\Extension\InlinesOnly\InlinesOnlyExtension

设置至少一个转换器是强制性的,但所有设置都是可选的。默认情况下,未设置 type 的转换器将作为 CommonMark 转换器创建。

转换器类型

可以使用 type 键在 CommonMarkGitHub Flavoured自定义 转换器之间进行选择。

默认情况下,如果没有选择 type,则选择 CommonMark。

转换器选项

可以使用 options 键以数组形式传递给转换器的配置。

请参阅 CommonMark 文档 了解更多关于可用选项的信息。

转换器扩展

CommonMark 和 GitHub Flavoured 都安装了预定义的一组扩展,这不能更改。

custom 开始时没有扩展,您可以使用 extensions 键选择您想要启用的 扩展

keygithubcommonmark 类型转换器没有影响。

使用转换器

作为服务

定义的每个转换器都作为容器中的服务可用。

标识符的生成格式如下:yivoff_commonmark.converters.converter_name

对于配置示例中的转换器,将生成三个服务

  • yivoff_commonmark.converters.commonmark
  • yivoff_commonmark.converters.github
  • yivoff_commonmark.converters.my_custom

此外,此扩展包为每个服务注册了一个别名,因此可以直接用于自动装配。

再次,对于上述示例,注册的别名将是

  • League\CommonMark\ConverterInterface $commonmark
  • League\CommonMark\ConverterInterface $github
  • League\CommonMark\ConverterInterface $myCustom

在模板中使用

此扩展包定义了一个 Twig 过滤器:commonmark

如果您定义了多个转换器,则需要传递您想要使用的转换器的名称

{{ some_markdown_content|commonmark('github') }}

但如果您只定义了一个转换器,则可以省略参数。

{{ some_markdown_content|commonmark }}