jedamzik / statamic-toc
为 Statamic 从 Markdown 字段自动生成目录。
Requires
- php: ^8.0 | ^8.1 | ^8.2
- league/commonmark: ^2.3.5
- statamic/cms: ^3.3 | ^4.0 | ^5.0
Requires (Dev)
- orchestra/testbench: ^6.24.1 | ^7.4 | ^8.23 | ^v9.1
- phpunit/phpunit: ^9.5.21 | ^10.5 | ^11.0
README
目录
为 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 ];
链接的页面片段是标题字符串的缩写版本(示例标题
-> #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)。有关更多信息,请参阅 许可文件。