jedamzik/statamic-toc

为 Statamic 从 Markdown 字段自动生成目录。

安装数: 1,558

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 3

开放问题: 0

类型:statamic-addon

v1.4.0 2024-09-24 14:47 UTC

This package is auto-updated.

Last update: 2024-09-24 14:57:10 UTC


README

Latest Version Tests

目录

为 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'
    ],
    ...
];

标题深度

默认情况下,仅使用 h1h2 为目录。如果您想包含更多标题级别,请将它们添加到配置中

return [
    ...
    'includeLevels' => [3, 4]
];

所有级别大于 > 2 的标题列表将添加 .child 类,以便您可以单独样式化它们。

标题的锚点链接

目录中的项可以作为锚点链接到标题片段

return [
    ...
    'anchorLinks' => true
];

链接的页面片段是标题字符串的缩写版本(示例标题 -> #example-title)。

您可以使用提供的 Njed\Toc\Extensions\CommonMark\TitleAnchorIdExtension 扩展您的 Markdown 解析器,以便为您的渲染视图中的标题节点提供这些 id。

要扩展 Statamic 实例中所有 Markdown 字段的默认解析器,请将其添加到 AppServiceProviderboot 方法中

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