kakajun / auto-generate-md

自动生成工程md目录及注释、统计工程代码量、自动化一键统一文件kabel-case命名、自动补充文件名后缀、自动改写绝对路径为相对路径

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

agmd(auto generate md)

在任何需要生成文档的,文件夹下的控制台中输入agmd, 就能自动生成目录 md 说明, 同时能够统计分析当前工程的各类型文件总量和代码总量

简体中文 | English

🚀 功能特性

😍 一键统计工程的文件数和代码总量

🔥 用TypeScript书写,80%的代码全部书写了测试用例

🔋 用esbuild进行打包

💡 一键拿到文件和文件夹名字

📦 一键补充缺省后缀名 .js .vue 这样子能方便vscode编辑器的查看下钻引用

✈️ 全程界面命令选择操作

😍 得到一个包含整个工程结构树的json

把工程所有引用更改绝对路径为相对路径(方便点击下钻查看文件)

♨️ 把工程所有引用文件都加上后缀(方便点击下钻查看文件)

👏 把工程按路由标记分类(对拆分工程很重要)

☝️ 把工程按分类对拆分工程(自动拆分的错误可控, 手动拆分会有各种问题)

🚘 一键更改文件名,驼峰命名为kable-case

🛸 对路由进行自动分析

案例

image

使用方法

需要有node环境

  1. 全局安装

npm i agmd -g

安装完成后,在需要记录 md 的文件夹下面输入agmd,会自动生成相对路径下的文件夹和文件的名字,如果文件里面还有在头部写注释的话,那么会一并带过来自动生成 md 文件。生成的文件名为readme-md.md, 路径为刚刚输入命名的路径同级别下,对于工程比较大的开发来说,这个脚本或许会帮你省下些许时间。

  1. 作为依赖安装

npm i agmd -D

在package.json的scripts 中配置 agmd: npx agmd --ignore lib,node_modules,dist --include .js,.ts,.vue 可以在每次启动或打包时,带上命令行来自动更新文档

example,是我为演示准备的一些文件,并没有其他用

  1. 命令说明
  • Generate All 执行所有操作
  • Generate MD 只生成md文档
  • Change Path 所有绝对路径修改为相对路径
  • Mark File 给需要分类的都打上标记
  • Wirte Json Nodes 把node树写出来
  • Wirte Nodes With Import(may change path) 把node树写出来,包含依赖关系, 但会修改路径
  1. 代码结构说明(由本插件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
  1. 高级用法 给文件打标记分类, 需要在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 }

命令行参数说明

  1. 使用agmd -h 来查看帮助
  2. 可以带上 --ignore 忽略输出文件或文件夹, 默认为: img,styles,node_modules,LICENSE,.git,.github,dist,.husky,.vscode,readme-file.js,readme-md.js
  3. 可以带上 --include 要求只输出带此后缀文件, 默认只输出 .js,.vue,.ts, 可自己加jsx,json 等

创作背景

  1. 大家有没有被要求写一个目录文件的 md 说明呢?
  2. 或者工程目录和文件被移动位置重构了,这时还需要重新修改 md 文件里面的目录说明
  3. 接手老工程,看了 md 说明,能对文件夹里面的文件功能做到一目了然,而不是点开对应文件去看
  4. 分析源码工程需要做点笔记
  5. 拆分老代码工程, 手工量大还容易出错, 程序控制又快又好
  6. 为什么绝对路径要改相对路径? 大家用vscode重命名文件时, 有没发现, 引用文件是绝对路径时, 文件没变化.....而且点击下钻查看文件详情还点不下去????但是相对路径不会有这个问题
  7. 文件有后缀能一目了然文件是js文件还是vue文件
  8. 一切需要手工重复操作的, 都可以用插件脚本搞定, 留时间学新知识更好

功能

  1. 自动生成匹配目录的文件夹名和文件(已经按名称进行排序)
  2. 自动进行层级目录判断进行缩进
  3. 如果文件顶部有注释, 那么会自动进行判断
  4. 支持在任意文件目录下递归查找下级文件(不要在很大目录下执行啊!!!递归直到该级目录下没有文件为止)
  5. 支持命令行参数配置, 可以自定义忽略文件和过滤后缀名文件
  6. 命令行解析

控制台命令: 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`

相关文章

掘金-自动生成目录 md 文件

更新记录

0.1.3

  1. 采用esbuild 进行打包
  2. 并且用eslint, preter规范写法, 规范
  3. 用ts进行改写
  4. 支持gitee一键同步

0.2.0 支持命令行解析参数,可以动态传参

0.2.6 修复全局安装报错

0.2.9 新增文件统计功能

0.3.0 ✈️ 全程界面命令选择操作

把工程所有引用更改绝对路径为相对路径(方便点击下钻查看文件)

♨️ 把工程所有引用文件都加上后缀(方便点击下钻查看文件)

👏 把工程按路由标记分类(对拆分工程很重要)

☝️ 把工程按分类对拆分工程(自动拆分的错误可控, 手动拆分会有各种问题)

0.3.3 优化提示日志打印 对路由进行自动分析 增加单元测试到26个,覆盖率达到84%,一些没必要的方法就没测试

0.3.7 升级所有依赖到最新111

About

自动生成工程md目录及注释、统计工程代码量、自动化一键统一文件kabel-case命名、自动补充文件名后缀、自动改写绝对路径为相对路径

License:MIT License


Languages

Language:TypeScript 87.2%Language:Vue 8.4%Language:JavaScript 4.3%Language:Shell 0.1%