diogovitzo / statamic-toc
为 Statamic 3 自动生成 Markdown 字段目录
Requires
- php: ^8.0 | ^8.1
- league/commonmark: ^2.3.5
- statamic/cms: ^3.3 | ^4.0 | ^5.0
Requires (Dev)
- orchestra/testbench: ^6.24.1 | ^7.4
- phpunit/phpunit: ^9.5.21
This package is auto-updated.
Last update: 2024-09-18 19:09:10 UTC
README
Toc
为 Statamic 3 自动生成 Markdown 字段目录
这将从 Markdown 字段生成目录。
将标题列表保存为 html 到条目中,可以使用 {{ table_of_contents }}
直接渲染,或者通过提供的标签 {{ toc }}
与可定制的包装视图一起渲染。
安装
使用 Composer 安装。
composer require jedamzik/statamic-toc
设置集合
从 Njed\Toc\ServiceProvider
发布包装视图和包配置
php artisan vendor:publish
在 config/toc.php
中提供集合处理程序和字段处理程序以激活给定集合的 Toc
return [ 'collections' => [ 'posts' => 'content' ], ... ];
标题深度
默认情况下,目录只使用 h1
和 h2
。如果您想包含更多标题级别,请将它们添加到配置中。
return [ ... 'includeLevels' => [3, 4] ];
所有级别 > 2
的标题都将添加 .child
类,以便您可以单独样式化它们。
标题的锚链接
目录中的项目可以作为锚链接到标题片段
return [ ... 'anchorLinks' => true ];
链接的页面片段是标题字符串的 slug 版本(示例标题
-> #example-title
)。
您可以使用提供的 Njed\Toc\Extensions\CommonMark\TitleAnchorIdExtension
扩展您的 Markdown 解析器,以在您的渲染视图中提供这些 id。
要将默认解析器添加到 Statamic 实例中的所有 Markdown 字段,请将其添加到 AppServiceProvider
的 boot
方法中。
Markdown::addExtension(function () { return new \Njed\Toc\Extensions\CommonMark\TitleAnchorIdExtension; });
要仅将此扩展用于特定的 Markdown 字段,您可以创建一个新的解析器并指定它用于您的 Markdown 字段。
Markdown::extend('special', function ($parser) { return $parser ->withStatamicDefaults() ->addExtension(function () { return new \Njed\Toc\Extensions\CommonMark\TitleAnchorIdExtension; }); });
您可以在控制面板中或通过蓝图文件中的 parser
属性设置 markdown 字段的自定义解析器。
- handle: content field: ... type: markdown parser: special
更新日志
有关最近更改的更多信息,请参阅 更新日志。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。