# markdown-toc
**Repository Path**: null_352_6000/markdown-toc
## Basic Information
- **Project Name**: markdown-toc
- **Description**: 🎄Generate toc for github markdown file.(为 markdown 文件生成 toc 目录)
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-04-15
- **Last Updated**: 2024-04-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Table of Contents
* 1 [markdown-toc](#markdown-toc)
* 1.1 [变更日志](#变更日志)
* 1.2 [Features](#features)
* 2 [环境依赖](#环境依赖)
* 2.1 [JDK](#jdk)
* 2.2 [Maven](#maven)
* 3 [快速入门](#快速入门)
* 3.1 [maven 引入](#maven-引入)
* 3.2 [md 文件](#md-文件)
* 3.3 [快速开始](#快速开始)
* 4 [属性配置](#属性配置)
* 4.1 [属性说明](#属性说明)
* 4.2 [返回值说明](#返回值说明)
* 5 [测试案例](#测试案例)
* 6 [其他](#其他)
# markdown-toc
```
_ __ ___ __ _ _ __| | ____| | _____ ___ __ | |_ ___ ___
| '_ ` _ \ / _` | '__| |/ / _` |/ _ \ \ /\ / / '_ \ _____| __/ _ \ / __|
| | | | | | (_| | | | < (_| | (_) \ V V /| | | |_____| || (_) | (__
|_| |_| |_|\__,_|_| |_|\_\__,_|\___/ \_/\_/ |_| |_| \__\___/ \___|
```
[](http://mvnrepository.com/artifact/com.github.houbb/markdown-toc)
[](https://www.travis-ci.org/houbb/markdown-toc?branch=release_1.0.2)
[](https://coveralls.io/github/houbb/markdown-toc?branch=release_1.0.2)
Markdown-toc 可以用来生成 markdown 页面的目录,便于 github 页面展现。
- 文档
[中文说明](README.md) | [English Readme](README-ENGLISH.md)
> 备注
对于标题,md 有两种语法 [setext](http://docutils.sourceforge.net/mirror/setext.html)
和 [atx](http://www.aaronsw.com/2002/atx/) 模式。
暂时只支持 **atx** 形式。
## 变更日志
[变更日志](doc/changelog/CHANGELOG.md)
## Features
- Github Markdown 文件一键生成目录
- 支持 fluent 优雅的写法
- 支持多次生成
- 支持重复标题的生成
- 支持特殊字符的过滤
- 支持指定不同的文件编码
- 支持文件夹的文件批量处理(可指定是否包含子文件夹文件)
- 支持是否写入文件,可返回目录的内容,便于用户自行处理
- 支持多线程写文件
- 支持 i18n
- 支持目录编号生成(1.0.5)
## v1.0.8 更新日志
1. 优化 github 对应的链接地址,修复中文符号 BUG
# 环境依赖
## JDK
1.0.5 及其以前为 jdk8 编译, 请确保 JDK 设置正确。
1.0.6 版本使用 jdk7 编译上传。
后续 1.XX 版本都将支持 jdk7,更便于使用。
## Maven
Jar 使用 [Maven](http://maven.apache.org/) 进行统一管理。
# 快速入门
## maven 引入
```xml
com.github.houbb
markdown-toc
${maven-version}
```
## md 文件
本项目支持的 md 文件后缀名称为 `.md` 或者 `.markdown`
## 快速开始
- 单个文件
```java
AtxMarkdownToc.newInstance().genTocFile(path);
```
其中 path 为 md 文件的路径
- 指定文件夹
```java
AtxMarkdownToc.newInstance().genTocFile(path);
```
其中 path 为 md 文件的父类文件夹
# 属性配置
- 代码示例
```java
AtxMarkdownToc.newInstance()
.charset("UTF-8")
.write(true)
.subTree(true);
```
## 属性说明
| 序号 | 属性 | 默认值 | 说明 |
|:----|:----|:----|:----|
| 1 | charset | `UTF-8` | 文件编码 |
| 2 | write | `true` | 是否将 toc 写入文件(默认写入) |
| 3 | subTree | `true` | 是否包含子文件夹的文件(默认包含) |
| 4 | order | `false` | 是否生成目录编号(默认不生成,1.0.5以后) |
## 返回值说明
`genTocFile()` 返回 TocGen,`genTocDir()` 返回 List
- TocGen 属性说明
| 序号 | 属性 | 类型 | 说明 |
|:----|:----|:----| :----|
| 1 | filePath | String | 当前 md 的文件路径 |
| 2 | tocLines | List | 当前 md 文件对应的目录内容 |
# 测试案例
[单个文件-目录生成测试案例](https://github.com/houbb/markdown-toc/blob/release_1.0.2/src/test/java/com/github/houbb/markdown/toc/core/impl/AtxMarkdownTocFileTest.java)
[文件夹-目录生成测试案例](https://github.com/houbb/markdown-toc/blob/release_1.0.2/src/test/java/com/github/houbb/markdown/toc/core/impl/AtxMarkdownTocDirTest.java)
# 其他
> [Issues & Bugs](https://github.com/houbb/markdown-toc/issues)