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)。有关更多信息,请参阅 许可证文件。