agmd(auto generate md)
在任何需要生成文档的,文件夹下的控制台中输入
agmd
, 就能自动生成目录 md 说明, 同时能够统计分析当前工程的各类型文件总量和代码总量
简体中文 | English
🚀 功能特性
案例
使用方法
需要有node环境
- 全局安装
npm i agmd -g
安装完成后,在需要记录 md 的文件夹下面输入agmd
,会自动生成相对路径下的文件夹和文件的名字,如果文件里面还有在头部写注释的话,那么会一并带过来自动生成 md 文件。生成的文件名为readme-md.md
, 路径为刚刚输入命名的路径同级别下,对于工程比较大的开发来说,这个脚本或许会帮你省下些许时间。
- 作为依赖安装
npm i agmd -D
在package.json的scripts 中配置 agmd: npx agmd --ignore lib,node_modules,dist --include .js,.ts,.vue 可以在每次启动或打包时,带上命令行来自动更新文档
example,是我为演示准备的一些文件,并没有其他用
- 命令说明
- Generate All 执行所有操作
- Generate MD 只生成md文档
- Change Path 所有绝对路径修改为相对路径
- Mark File 给需要分类的都打上标记
- Wirte Json Nodes 把node树写出来
- Wirte Nodes With Import(may change path) 把node树写出来,包含依赖关系, 但会修改路径
- 代码结构说明(由本插件agmd生成)
├── bin
│ └── bin.js
├── lib
│ ├── commands
│ │ ├── get-file.d.ts
│ │ └── wirte-md.d.ts
│ ├── index.cjs.js
│ ├── index.d.ts
│ └── index.esm.js
├── script
│ ├── cli
│ │ ├── handle.ts
│ │ └── index.ts
│ ├── help
│ │ └── index.ts
│ ├── build.js
│ └── builder.js
├── src
│ ├── commands
│ │ ├── agmd.ts
│ │ ├── base.ts /* 界面命令注册在这里 */
│ │ ├── change-path.ts /* 整个文件主要把绝对路径修改为相对路径 */
│ │ ├── get-file.ts /* 获取文件相关方法 */
│ │ ├── mark-file.ts
│ │ ├── mark-write-file.ts
│ │ └── wirte-md.ts /* 生成md说明文档 */
│ ├── shared
│ │ ├── constant.ts
│ │ └── logger.ts
│ ├── bin.ts
│ └── index.ts /* 这里抛出一些高级操作方法 */
├── test
│ └── index.js
└── unuse
- 高级用法 给文件打标记分类, 需要在src的同级目录下, 设置一个文件叫classify.js, 从里面读取需要配置的信息, 注意路径一定是带@符号的绝对路径, 没有配置, 那么程序会自动退出
有些需要把自动生成的文档插入到某个自动生成的 md 当中, 该插件导出了自动生成的 md 数据方法, 还有getFileNodes
获得所有文件的具体信息, 可以 DIY 做出不同的文档( 方法名不用记忆, 由于是ts写的,所以会自动点出来)
const agmd = require('agmd')
es中:
import agmd from 'agmd'
-
其中 agmd.getFileNodes() 可以获得具体文件相关的信息, 该函数可传一个参数
-
agmd.getMd() 得到最终输出的信息 note: 上面两个方法均可传一个option入参,其格式为: option: { ignore: string[] | undefined; include: string[] | undefined }
命令行参数说明
- 使用agmd -h 来查看帮助
- 可以带上 --ignore 忽略输出文件或文件夹, 默认为: img,styles,node_modules,LICENSE,.git,.github,dist,.husky,.vscode,readme-file.js,readme-md.js
- 可以带上 --include 要求只输出带此后缀文件, 默认只输出 .js,.vue,.ts, 可自己加jsx,json 等
创作背景
- 大家有没有被要求写一个目录文件的 md 说明呢?
- 或者工程目录和文件被移动位置重构了,这时还需要重新修改 md 文件里面的目录说明
- 接手老工程,看了 md 说明,能对文件夹里面的文件功能做到一目了然,而不是点开对应文件去看
- 分析源码工程需要做点笔记
- 拆分老代码工程, 手工量大还容易出错, 程序控制又快又好
- 为什么绝对路径要改相对路径? 大家用vscode重命名文件时, 有没发现, 引用文件是绝对路径时, 文件没变化.....而且点击下钻查看文件详情还点不下去????但是相对路径不会有这个问题
- 文件有后缀能一目了然文件是js文件还是vue文件
- 一切需要手工重复操作的, 都可以用插件脚本搞定, 留时间学新知识更好
功能
- 自动生成匹配目录的文件夹名和文件(已经按名称进行排序)
- 自动进行层级目录判断进行缩进
- 如果文件顶部有注释, 那么会自动进行判断
- 支持在任意文件目录下递归查找下级文件(不要在很大目录下执行啊!!!递归直到该级目录下没有文件为止)
- 支持命令行参数配置, 可以自定义忽略文件和过滤后缀名文件
- 命令行解析
控制台命令: agmd--include str--ignore str
可选项: --include string / -i string.......... 包含解析的后缀 --ignore string / -in string........... 忽略文件名
例子: --ignore / -i img,styles,node_modules,LICENSE,.git,.github,dist,.husky,.vscode,readme-file.js,readme-md.js --include / -in .js,.vue,.ts
注意: 配置中的字符串之间不应有空格
命令行例子: $ agmd --ignore lib,node_modules,dist --include .js,.ts,.vue`
相关文章
更新记录
0.1.3
- 采用esbuild 进行打包
- 并且用eslint, preter规范写法, 规范
- 用ts进行改写
- 支持gitee一键同步
0.2.0 支持命令行解析参数,可以动态传参
0.2.6 修复全局安装报错
0.2.9 新增文件统计功能
0.3.0
0.3.3 优化提示日志打印 对路由进行自动分析 增加单元测试到26个,覆盖率达到84%,一些没必要的方法就没测试
0.3.7 升级所有依赖到最新111