美文网首页
node 基于标准注释的通用文档自动生成器

node 基于标准注释的通用文档自动生成器

作者: 非常帅气的昵称吧 | 来源:发表于2021-10-25 20:11 被阅读0次

开发中文档是必不可少的, 但是目前前端可谓是百花齐放, 各种自定义的编译器,后缀名, 导致目前还没有一个很好用的文档生成工具, 可以快速生成整个项目的文档, 随着项目越来越大, 越来越多, 对企业整体的技术管控也带来越来越大的挑战, 如何知道企业内部已经开发了哪些组件, 哪些功能有写好的库可以直接调用, 这些都需要一个文档工具来进行归纳汇总

基于以上问题, 笔者使用node + vue3 + vite 开发了一个文档生成器 特性如下

  1. 基于标准注释 /* */ 只需要正常开发中写好注释 文档就已经好了

  2. 不限定语言 框架, 只读取文件里的/* /标准注释 不管是vue项目 react项目还是其他的 只要文件里能写 / */ 这种形式的注释

  3. 开发模式 实时获取文档数据 打包模式 打包数据随意部署

  4. 自定义文件分类, 自定义文件内变量 方法分类

  5. 显示文件引用链 可以清晰看到当前文件都引用了其他哪些文件

界面展示如下:

企业微信截图_c004dcf6-819f-495f-9dde-58767ca4e368.png

原理其实很简单, 就是解析 /* */形式的注释 并根据指定的@开头的key值 解析相关数据

目前定义的key值如下:

@doc

此段注释是否要解析成文档

@fileDoc

是否文件描述文档

@type

文档分类 文件描述注释和文件内的注释根据这个字段进行分类

@author

作者 文件作者和文件内部方法 变量等的作者

@name

展示到页面上的名称

@desc

描述

@param

入参

@returns

返回

文件注释如下

/**
 * @doc true
 * @fileDoc true
 * @author xupengfei
 * @name Utils.js
 * @type core
 * @desc global method extend
 */
const fs = require('fs')
const path = require('path')

/**
 * @doc true
 * @name findFile
 * @desc find all file by location dir path
 * @param base location dir path
 * @returns [] all file in location dir path
 */
const findFile = (base) => {
  const files = []
  fs.readdirSync(base).forEach((file) => {
    const curPath = path.join(base, file)
    if (fs.existsSync(curPath)) {
      const stat = fs.lstatSync(curPath)
      if (!stat.isSymbolicLink()) {
        if (stat.isFile()) {
          files.push(curPath)
        } else if (stat.isDirectory()) {
          const sub = findFile(curPath)
          files.push(...sub)
        }
      }
    }
  })
  return files
}

/**
 * @doc true
 * @name uuid
 * @desc make uuid string
 * @param length uuid string length
 * @returns string uuid string
 */
const uuid = (length = 32) => {
  const num = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
  let str = ''
  for (let i = 0; i < length; i++) {
    str += num.charAt(Math.floor(Math.random() * num.length))
  }
  return str
}

module.exports = {
  findFile,
  uuid
}

可以看出都是标准注释

安装使用

项目已打成npm包, 可以在任意项目里使用, 或者全局安装也可以

npm install @xpf0000/docs
docs  // 展示此项目的文档
docs src // 展示src目录下的文档
docs src --build outSrc  // 打包src目录下的文档到outSrc

github: https://github.com/xpf0000/docs

相关文章

  • node 基于标准注释的通用文档自动生成器

    开发中文档是必不可少的, 但是目前前端可谓是百花齐放, 各种自定义的编译器,后缀名, 导致目前还没有一个很好用的文...

  • 利用apidoc在注释里写API文档

    本文基于node.js的代码注释编写。 程序员都不喜欢写文档,但是程序员习惯写注释。所以今天给大家安利一个注释文档...

  • Swagger离线文档生成

    离线接口文档自动生成器 适用范围: 将标准的swagger.json文件解析并转换成一定格式的接口文档,其中文档的...

  • 你的文档安全吗

    福昕互联文档管理平台是福昕软件在其领先的版式文档核心技术基础上,基于通用、标准、服务、云化、集成、开放的理念,通过...

  • 基于thinkphp的模型文件自动注释生成器

    thinkphp 一个模型对应一个数据表,所以数据表里面字段也是模型的一些属性,但是因为php是动态语言,模型里面...

  • 搭建基于express框架的运行环境

    搭建基于Express框架运行环境 安装express generator生成器 通过生成器自动创建项目 配置分析...

  • Hugo Doc - Introduction

    Hugo 类似与 Hexo Jekyll Octopress 都是 静态网站生成器, Hexo 基于 Node.j...

  • 理解JPA注解@GeneratedValue

    一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hib...

  • xcode创建文档

    使用AppleDoc自动生成项目文档(XCode8)修改Xcode自动生成的文件注释来导出API文档使用Xcode...

  • [html] DOCTYPE了解一下

    DOCTYPE标签是一种标准通用标记语言的文档类型声明,其目的是要告诉标准通用标记语言解析器,应该使用什么样的文档...

网友评论

      本文标题:node 基于标准注释的通用文档自动生成器

      本文链接:https://www.haomeiwen.com/subject/stjsaltx.html