diogovitzo / statamic-toc

为 Statamic 3 自动生成 Markdown 字段目录

安装: 1

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 0

分支: 3

类型:statamic-addon

dev-master 2024-06-18 18:28 UTC

This package is auto-updated.

Last update: 2024-09-18 19:09:10 UTC


README

Latest Version Tests

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

标题深度

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

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

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

标题的锚链接

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

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

链接的页面片段是标题字符串的 slug 版本(示例标题 -> #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)。有关更多信息,请参阅 许可证文件