@effect/markdown-toc

中文文档
0.1.0发布于 2024/04/11MITCommonJS近 30 天下载 9.5万

生成可标记的 TOC(目录) .

中文使用文档
文档目录24 节
  1. 安装
  2. 黄金赞助商
  3. 快速启动
  4. 国 际
  5. 要点
  6. 使用量
  7. API 密码
  8. 托克插剂
  9. 托克·杰森(签名)
  10. 输入
  11. 工具函数
  12. 选项
  13. 选项
  14. 选项。 过滤器
  15. 选项
  16. 选项。 子弹
  17. 选项。最大深度
  18. 选项
  19. 选项。字符串标题标签
  20. 关于
  21. 相关项目
  22. 贡献者
  23. 作者
  24. 许可证

页:1 NPM version NPM monthly downloads NPM total downloads

生成可标记的 TOC(目录) .

请考虑跟随这个项目的作者, 乔恩·斯林克特,并考虑主演该项目以显示你的:心:和支持.

(技术选择委员会生成的 动词 使用 页:1(中文(简体) )

安装

安装方式 无数字 :

$ npm install --save markdown-toc

发起人

感谢下列公司、组织和个人支持持续维持和发展减记托克! 成为发起人 将您的标志添加到此 README 或任何 我的其他项目

黄金赞助商

https://jaake.tech/
https://jaake.tech/ (英语)

快速启动

假设您要在 README.md 中添加 TOC :

  1. $ npm install -g markdown-toc
  2. 编辑 README.md 并在您想要插入 TOC 的地方插入下行 :
    <!-- toc -->
  3. $ markdown-toc -i README.md

国 际

Usage: markdown-toc [options] <input>

  input:        The Markdown file to parse for table of contents,
                or "-" to read from stdin.

  -i:           Edit the <input> file directly, injecting the TOC at - [Highlights](#highlights)
- [Usage](#usage)
- [API](#api)
  * [toc.plugin](#tocplugin)
  * [toc.json](#tocjson)
  * [toc.insert](#tocinsert)
  * [Utility functions](#utility-functions)
- [Options](#options)
  * [options.append](#optionsappend)
  * [options.filter](#optionsfilter)
  * [options.slugify](#optionsslugify)
  * [options.bullets](#optionsbullets)
  * [options.maxdepth](#optionsmaxdepth)
  * [options.firsth1](#optionsfirsth1)
  * [options.stripHeadingTags](#optionsstripheadingtags)
- [About](#about)

_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_;
                (Without this flag, the default is to print the TOC to stdout.)

  --json:       Print the TOC in JSON format

  --append:     Append a string to the end of the TOC

  --bullets:    Bullets to use for items in the generated TOC
                (Supports multiple bullets: --bullets "*" --bullets "-" --bullets "+")
                (Default is "*".)

  --maxdepth:   Use headings whose depth is at most maxdepth
                (Default is 6.)

  --no-firsth1: Include the first h1-level heading in a file

  --no-stripHeadingTags: Do not strip extraneous HTML tags from heading
                         text before slugifying

  --indent:     Provide the indentation to use - defaults to '  '
                (to specify a tab, use the bash-escaped $'\t')

要点

特征

  • 可选择用作 显著 插件
  • 与制成的 TOC 返回对象( 在 content(a) 以及a json 带有原始 TOC 对象的属性,所以您可以使用模板或任意生成自己的 TOC
  • 与 重复标题
  • 使用理智默认,所以不需要定制,但需要时可以.
  • 过滤器 退出标题
  • 改进 您想要的标题
  • 使用自定义 拼写 函数以改变链接的创建方式

安全无虞!

  • 在 gfm 代码块中的代码示例中, 不会将标记下移到其它 TOC 生成器错误为实际标题的代码块中( 当标记下移标题显示于 实例意思是,它们实际上不是标题 应该是在toc。 也会发生在 yaml 和咖啡标注的评论, 或任何使用 #(中文(简体) )
  • 将不会像其他 TOC 生成器一样处理前题或错误前题属性

使用量

var toc = require('markdown-toc');

toc('# One\n\n# Two').content;
// Results in:
// - [One](#one)
// - [Two](#two)

为了允许对输出进行定制,一个对象的返回具有以下属性:

  • content {string}(string ) , [ 弦叫 ]: 生成的目录. 除非你想自定义渲染, 这就是你所需要的.
  • highest {数目}: 找到的最高水平标题 。 此用于调整缩进 .
  • tokens {箭头}: 可用于自定义渲染的标题符号

API 密码

托克插剂

用作一个 显著 插件 .

var Remarkable = require('remarkable');
var toc = require('markdown-toc');

function render(str, options) {
  return new Remarkable()
    .use(toc.plugin(options)) // <= register the plugin
    .render(str);
}

用法实例

var results = render('# AAA\n# BBB\n# CCC\nfoo\nbar\nbaz');

成果:

- [AAA](#aaa)
- [BBB](#bbb)
- [CCC](#ccc)

托克·杰森(签名)

创建自定义 TOC 对象 .

toc('# AAA\n## BBB\n### CCC\nfoo').json;

// results in
[ { content: 'AAA', slug: 'aaa', lvl: 1 },
  { content: 'BBB', slug: 'bbb', lvl: 2 },
  { content: 'CCC', slug: 'ccc', lvl: 3 } ]

输入

紧接后插入目录 打开 <!-- toc --> 代码注释,或如果两者兼有,则替换现有的 TOC 打开 评论和a 结束 评论意见(<!-- tocstop -->已找到.

(这一策略效果良好,因为下标中的代码注释在被看做HTML时被隐藏起来,比如在GitHub README上查看一个README时.

示例

<!-- toc -->
- old toc 1
- old toc 2
- old toc 3
<!-- tocstop -->

## abc
This is a b c.

## xyz
This is x y z.

会导致一些类似的东西:

<!-- toc -->
- [abc](#abc)
- [xyz](#xyz)
<!-- tocstop -->

## abc
This is a b c.

## xyz
This is x y z.

工具函数

为了方便想要创建定制TOC的人

var toc = require('markdown-toc');
  • toc.bullets(): 从一系列符号中制取出一个圆形列表
  • toc.linkify(): 链接标题 content 字符串
  • toc.slugify(): 打字头 content 字符串
  • toc.strip(): 从标题上取出单词或字符 content 字符串

示例

var result = toc('# AAA\n## BBB\n### CCC\nfoo');
var str = '';

result.json.forEach(function(heading) {
  str += toc.linkify(heading.content);
});

选项

选项

将字符串附加到 TOC 的末尾 .

toc(str, {append: '\n_(TOC generated by Verb)_'});

选项。 过滤器

类型 : Function

默认 : undefined

参数 :

  • str {string}(string ) , [ 弦叫 ] 实际标题字符串
  • ele {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢 标题符号对象
  • arr {箭头} 所有标题对象

示例

时不时地,我们可能会在技工中心里搞到这种垃圾.

[.aaa([foo], ...) another bad heading](#-aaa--foo--------another-bad-heading)

除非你喜欢这种东西, 你可能会想 过滤这些坏标题.

function removeJunk(str, ele, arr) {
  return str.indexOf('...') === -1;
}

var result = toc(str, {filter: removeJunk});
//=> beautiful TOC

选项

类型 : Function

默认:基本非单词字符替换.

示例

var str = toc('# Some Article', {slugify: require('uslug')});

选项。 子弹

类型 : String|Array

默认 : *

用于生成的 TOC 中每个项目的子弹 。 如果以数组方式传递( I)['*', '-', '+']),弹出点字符串将根据头部深度使用.

选项。最大深度

类型 : Number

默认 : 6

使用深度最高的标题 .

选项

类型 : Boolean

默认 : true

不包括文件中的第一个 h1 级标题 。 例如,这阻止了README中的第一个标题出现在TOC中.

选项。字符串标题标签

类型 : Boolean

默认 : true

在拼写前从标题中取出不相干 HTML 标记 。 这类似于GitHub markdown行为.

关于

捐款

拉出请求和星星总是受欢迎的. 对于错误和特性请求, 请创建一个问题。 。 。 .

运行测试

运行和审查单元测试是熟悉图书馆及其API的好办法。 您可以使用以下命令安装依赖性并运行测试:

$ npm install && npm test
大楼文件

(此工程的 readme.md 由 动词请不要直接编辑读取器。 读取器的任何改动必须在 动词 md 读取我的模板。 )

要生成读取, 请运行以下命令 :

$ npm install -g verbose/verb#dev verb-generate-readme && verb

您可能也对这些项目感兴趣:

  • gfm 码块: 从字符串取出 gfm (GitHub Flavored Markdown) 栅栏的代码块. | 主页
  • 下行链接: 用于生成单一标记下链接的微用户端. QQ 主页
  • 降级使用量: 微小的帮助者,用于创建有结构化的平分标记片段. | 主页
  • 相当显著: 用于使用自定义渲染器规则预加标记的插件 。\\\ x 主页
  • 显著Markdown 解析器,完成对了。 100%的通用标记支持,扩展,语法插件,高速 - 全部在 更多 | 主页

贡献者

提交贡献者
199 (韩语)扬施林克特
第9条鸽子
页:1dbooth - 波士顿
3个s
3个马苏普
2个dvcrn 数据
2个最大
2个黄2218
2个齐克
1个阀门 375
1个{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}这太糟糕了
1个丹尼尔-米德申
1个费德罗1co5ave
1个绿色
1个泰克史莱克
1个公民马特
1个克伦霍夫
1个拉法埃尔斯泰尔
1个理查德·布莱德利
1个设置
1个沙内胡斯3
1个布乔
1个卢22道

作者

乔恩·斯林克特

许可证

版权 2023, 乔恩·斯林克特。 。 。 . 释放 MIT 许可证。 。 。 .


此文件由 动词基因读取器,v0.8.0,于2023年7月12日查阅.

版本与发布记录

@effect/markdown-toc 共发布 1 个版本,首次发布于 2024/04/11;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.1.0latest2024/04/112 年前

关于 @effect/markdown-toc 的常见问题

@effect/markdown-toc 是什么?

生成可标记的 TOC(目录) .

如何安装 @effect/markdown-toc?

在项目目录运行 npm install @effect/markdown-toc,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 markdown-toc,可以用 npx markdown-toc 直接运行。

@effect/markdown-toc 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/effect__markdown-toc 是否存在。

@effect/markdown-toc 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@effect/markdown-toc 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=0.10.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@effect/markdown-toc 可以商用吗?

@effect/markdown-toc 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@effect/markdown-toc 的下载量有多少?

根据 npm 官方下载统计,@effect/markdown-toc 在 2026/10/13 – 2026/11/11 这 30 天内被下载 95,267 次,日均约 3,176 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@effect/markdown-toc 还在维护吗?

最新版本 0.1.0 发布于 2024/04/11(2 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/04/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。