为 github markdown 文件生成目录(toc)
业务需要
在编写 github 项目时,有时候会编写各种 README.md 等 markdown 文件,但是 github 默认是没有目录的。
于是就自己写了一个小工具。
markdown-toc
markdown-toc 可以用来生成 markdown 页面的目录,便于 github 页面展现。
Features
Github Markdown 文件一键生成目录
支持 fluent 优雅的写法
支持多次生成
支持重复标题的生成
支持特殊字符的过滤
支持指定不同的文件编码
支持文件夹的文件批量处理(可指定是否包含子文件夹文件)
支持是否写入文件,可返回目录的内容,便于用户自行处理
...
环境依赖
JDK
JDK7+, 请确保 JDK 设置正确。
Maven
Jar 使用 Maven 进行统一管理。
快速入门
maven 引入
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>markdown-toc</artifactId>
<version>1.0.2</version>
</dependency>
md 文件
本项目支持的 md 文件后缀名称为 .md 或者 .markdown
快速开始
- 单个文件
AtxMarkdownToc.newInstance().genTocFile(path);
其中 path 为 md 文件的路径
- 指定文件夹
AtxMarkdownToc.newInstance().genTocFile(path);
其中 path 为 md 文件的父类文件夹
属性配置
- 代码示例
AtxMarkdownToc.newInstance()
.charset("UTF-8")
.write(true)
.subTree(true);
属性说明
| 序号 | 属性 | 默认值 | 说明 |
|---|---|---|---|
| 1 | charset | UTF-8 |
文件编码 |
| 2 | write | true |
是否将 toc 写入文件(默认写入) |
| 3 | subTree | true |
是否包含子文件夹的文件(默认包含) |
返回值说明
genTocFile() 返回 TocGen,genTocDir() 返回 List
- TocGen 属性说明
| 序号 | 属性 | 类型 | 说明 |
|---|---|---|---|
| 1 | filePath | String | 当前 md 的文件路径 |
| 2 | tocLines | List | 当前 md 文件对应的目录内容 |
测试案例
github 地址
为 github markdown 文件生成目录(toc)的更多相关文章
- 为Markdown文件生成目录
缘由 思路 效果 代码实现 缘由 Markdown源生文件源生不支持目录,目前比较主流的生成目录的方式(各式插件),都是转化为HTML文件.虽然HTML文件可以生成眼花缭乱的目录,但是修改起来又没有M ...
- GitHub README文件生成目录导航
效果 环境说明 [root@C61 ~]# cat /etc/redhat-release CentOS release 6.10 (Final) [root@C61 ~]# uname -a Lin ...
- Markdown自动生成目录
Markdown自动生成目录 使用npm语法生成 1.安装npm 2.安装doctoc插件 3.执行生成 参考 Markdown自动生成目录 使用npm语法生成 1.安装npm 我的系统是deepin ...
- 解析Markdown文件生成React组件文档
前言 最近做的项目使用了微前端框架single-spa. 对于这类微前端框架而言,通常有个utility应用,也就是公共应用,里面是各个子应用之间可以共用的一些公共组件或者方法. 对于一个团队而言,项 ...
- 对扫描的pdf文件生成目录
很多pdf文件是直接扫描生成的,于是它的内容都是一张张的图片,当然就更没有目录索引了. 有的时候想找某些内容,只能一点点的移动滚动条,非常不方便. 那么有什么方法能生成目录呢? 方法一:使用福昕pdf ...
- markdown自动生成侧边栏TOC /目录
http://blog.csdn.net/haleypku/article/details/51226704 此文可以只了解一下概念: http://i5ting.github.io/i5ting_z ...
- 几种编辑器的markdown-toc生成目录在github上的表现
Vscode vscode的markdown-toc插件的实现是比较好的, 目前发现的问题就只有在自动生成带链接目录的时候无法正确识别和生成一些特殊的字符. 例如: ▶ 这导致在标题中不能加入特殊字符 ...
- 为Github的README.md生成目录的小工具
1 概述 因为Github的README.md文件[TOC]不生效,因此封装了一个别人已封装好的JAR包供大家使用. 2 使用方法 用Java做的,只需要JDK11以上的环境: java -jar t ...
- Markdown 中的目录自动生成功能 TOC
目录 Markdown 中的目录自动生成功能 TOC 1. 标题一 1.1 标题二 1.标题二 2. 标题一 2.1 标题二 2.2 标题二 Markdown 中的目录自动生成功能 TOC 1. 标题 ...
随机推荐
- Vertical-align + 表单
Vertical-align 垂直对齐方式 定义行内元素的基线相对于该元素所在的基线的垂直对齐. inline inline-clock img图片标签具有,块级元素没有. vertical-alig ...
- flask-session 在redis中存储session
依赖: Flask Flask-Session redis import os from flask import Flask, session, request from flask_session ...
- VSTO:使用C#开发Excel、Word【16】
使用工作表对象Worksheet对象表示Excel工作簿中的工作表.Worksheet有一个Name属性,返回工作表的名称(例如“Sheet1”). 工作表管理Worksheet对象具有一个Index ...
- [IntelliJ IDEA入门] 新建一个Java项目
新建一个Project 是否有JDK配置 选择JavaEE 点击Next 项目路径和文件 .idea (directory based) 创建项目的时候自动创建一个 .idea 的项目配置目录来保存项 ...
- h5页面 内嵌h5页面遇到的问题
1.input框无法获取焦点输入内容 input { -webkit-user-select: auto; } 2.div里面放img标签有3px的距离 div { font-size: 0; } i ...
- Python全栈之路----函数进阶----装饰器
Python之路,Day4 - Python基础4 (new版) 装饰器 user_status = False #用户登录后改为True def login(func): #传入想调用的函数名 de ...
- php环境和使用方法
下载好所需要的软件 (含phpmywind phpstudy navicat for my sql ) 如果Navicat 的试用期过期,请使用通杀navicat 的通杀Navica11_2-XX ...
- solr实现动态加载分词
版本是5.3.0 在core(自己创建的模块)的schema.xml里面增加类型: <fieldType name="text_lj" class="solr.Te ...
- LeetCode - Fruit Into Baskets
In a row of trees, the i-th tree produces fruit with type tree[i]. You start at any tree of your cho ...
- 用Redis存储Tomcat集群的Session实现session共享
一.存储 前段时间,我花了不少时间来寻求一种方法,把新开发的代码推送到到生产系统中部署,生产系统要能够零宕机.对使用用户零影响. 我的设想是使用集群来搞定,通过通知负载均衡Nginx,取下集群中的To ...