lutdev/table-contents

目录生成

3.0.0 2024-06-05 22:33 UTC

This package is auto-updated.

Last update: 2024-09-05 23:07:47 UTC


README

License GitHub version Build Status

关于

用于生成文本目录的软件包。

例如,你有以下文本

<h1>Header first level</h1>
Some text here
<h2>Header second level</h2>
Some text here
<h4>Header fourth level</h4>
Some text here
<h3>Header third level</h3>
Some text here

目录将如下所示

 - Header first level
    - Header second level
            - Header fourth level
         - Header third level

目录支持多严格层次嵌套和自由嵌套,即可以是:1-2-4-3-6-2-4-1-3-7 或 1-2-3-2-4-1-2-3-4-3-5-2-3。

目录只与 1-10 级别(h1 - h10)的 <h*> 标签一起工作。

入门指南

要求

PHP 8.2

安装

  1. 您可以使用 composer 安装此软件包。
"lutdev/table-contents": "^3.0"

或者在项目根目录下运行以下命令安装

composer require lutdev/table-contents
  1. PHP 类
use Lutdev\TOC\TableContents

或者您可以直接下载软件包并通过 require 包含它

使用方法

$tableContents = new TableContents();
//return string table contents
$tableContents->tableContents($text);

目录具有以下结构

"0": {
    "title": "Title",
    "link": "link"
},
"1": {
    "title": "Title",
    "link": "link"
},
"2": {
    "title": "Title",
    "link": "link"
    "subItems": {
        "3": {
            "title": "Title",
            "link": "link"
            "subItems": {
                "1": {
                    "subItems": {
                        "2": {
                            "subItems": {
                                "4": {
                                    "title": "Title",
                                    "link": "link"
                                },
                            }
                        }
                    }
                }
            }
        }
    }
}
  • (0,1,2,3,4)- 标题索引号。(1,2 子项)- 中间空标题;
  • 标题 - 内容项的标题;
  • 链接 - 锚点链接。如果文本有多个相同标题,则链接将命名为 <链接>-<数字>(例如:链接-1,链接-2,链接-3)。
//Add ID attribute to the headers. Need for anchors.
$tableContents->headerLinks($text)

反馈

谢谢!如果您有建议或发现错误/错误,请告诉我。

许可证

MIT