技术文档必备工具:注释目录树神器 Annotree,我的第一个正式开源项目
hi,大家好,我是爱听书的程序员阿超
非常开心能在这里介绍我的第一个正式开源项目 Annotree,项目具体情况如下,请继续阅读~

Annotree 注释树
一款生成带注释的目录树工具,大大方便技术文档的编写
项目介绍
本项目基于 folder-explorer 进行二次开发,感谢 FairyEver 的创意和贡献!
- GitHub 地址:https://github.com/itchaox/annotree
- 官方文档:https://www.annotree.com
- 视频讲解:https://www.bilibili.com/video/BV1fS421R7UM
这是我在 B 站发布的第 2 个技术视频,如果对你有帮助的话,感谢一键三连,加关注~
- 使用场景:编写技术文档的目录注释树,帮助你高效地编写技术文档。
效果演示 ︎

官方文档首页

功能展示
扫描
点击扫描按钮后打开文件选择器,选择需要扫描的文件夹,即可开始扫描。

自动打开文件
导出文件后自动打开。

忽略文件夹
忽略不需要扫描的文件夹,避免性能损失甚至程序失去响应,比如:node_modules 文件夹,程序内部已自动忽略 node_modules 文件夹。

忽略以 "." 开头的文件夹
这类文件夹在 MacOS 和 Linux 上是默认隐藏的文件夹。

只扫描文件夹
忽略所有文件,只扫描文件夹。

忽略以 "." 开头的文件
这类文件在 MacOS 和 Linux 上是默认隐藏的文件。

忽略文件类型
在扫描一次后,会生成此次扫描后的所有文件类型,可以选择忽略不需要的文件类型,以提高扫描效率。

扫描深度
设置扫描目录的深度,0 为所有深度,每递增一个数字则代表扫描深度 +1。

默认名称
导出文本的默认名称配置。

注释格式化
填充注释的格式

桥梁最短字符数
路径最长的地方,显示的桥梁字符数

桥梁填充字符
输入一个单字节填充字符,比如:*,#,$,-,@,_ 等。

始终显示桥梁
配置没有注释的地方是否显示桥梁。

导出
设置好相关配置,编写好注释后,导出注释目录树。

下载地址 ️

反馈渠道
如果你有任何意见或建议,欢迎通过以下方式与我联系:
- 提交 GitHub Issue
- 飞书群 点击入群
我为何选择飞书群作为社区沟通渠道:
- 我平时飞书用的较多,沟通方便。
- 飞书话题群沟通问题,效率更高。
开发 Annotree 的故事 ️
本项目基于 folder-explorer 进行二次开发,感谢 FairyEver 的创意和贡献!
起源
- 2023 年 6 月,我负责搭建公司内部前端基础框架。框架搭建完成后,我希望通过注释来帮助团队成员快速理解目录结构。
- 我发现 tree 命令可以扫描项目目录结构,但注释需要手动添加,不够便捷。
- 之后发现了 folder-explorer,这个工具提供了目录注释和对齐功能,但仍不完全符合我的需求。
- 为了解决上述问题,我基于 folder-explorer 进行了二次开发,创建了 Annotree。
- 由于其他工作和对 Electron 不熟悉,直到 2024 年 7 月我才开始开发 Annotree。
为何二次开发
- folder-explorer 的部分功能对我而言冗余,不符合我的使用习惯。
- folder-explorer 导出文本后才看到效果,我希望有实时预览功能。
- folder-explorer 编辑备注需要右键打开菜单,操作不便。
期望
- 这是我做的第一个正式开源项目,大家的反馈和支持,对我很重要 ,谢谢
- 现在项目还处于快速迭代中,期待大家的反馈与 pr,期待与大家一起共建更好的 Annotree
致谢
- 感谢 electron-vite 提供的 electron 框架,大大提升我的开发效率。
- 感谢 md 提供给我的 README.md 文档思路。
谁在使用
如果你使用了本 Annotree 工具生成带注释的项目文件树形结构,并且希望在本项目 README 中展示你的项目,请到 Discussions #2 留言。
技术文档必备工具:注释目录树神器 Annotree,我的第一个正式开源项目的更多相关文章
- showdoc 开源在线api&&技术文档管理工具
showdoc 是一个很不错的api 以及技术文档管理工具 环境准备 doker-copose 文件 version: "3" services: doc: image: regi ...
- 技术文档生成工具:appledoc
做项目一般都会要求写技术文档,特别是提供SDK或者基础组件的.如果手写这类技术文档的话,工作量比编写代码也少不了多少.比如 Java 语言本身就自带 javadoc 命令,可以从源码中抽取文档.本篇我 ...
- DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)
前言: 距离上一个版本V3.3版本的文章发布,已经是1年10个月前的事了. 其实版本一直在更新,但也没什么大的功能更新,总体比较稳定,所以也不怎么写文介绍了. 至于工作上的事,之前有半年时间跑去学英语 ...
- 使用Jupyter Notebook编写技术文档
1.jupyter Notebook的组成 这里它的组件及其工程构成,帮助大家更好的用好jupyter Notebook 组件 Jupyter Notebook结合了三个组件: 笔记本Web应用程序: ...
- .NET平台开源项目速览(4).NET文档生成工具ADB及使用
很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧 ...
- (转)Doxygen文档生成工具
http://blog.csdn.net/lostaway/article/details/6446786 Doxygen 是一个支持 C/C++,以及其它多种语言的跨平台文档生成工具.如同 Java ...
- Kafka 技术文档
Kafka 技术文档 目录 1 Kafka创建背景 2 Kafka简介 3 Kafka好处 3.1 解耦 3.2 冗余 3.3 扩展性 3.4 灵活性 & 峰值处理能力 3.5 可恢复性 ...
- RabbitMq 技术文档
RabbitMq 技术文档 目录 1 AMQP简介 2 AMQP的实现 3 RabbitMQ简介 3.1 概念说明 3.2 消息队列的使用过程 3.3 RabbitMQ的特性 4 RabbitMQ使用 ...
- [转]unity3d 脚本参考-技术文档
unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...
- 使用Objective-C的文档生成工具:appledoc
使用Objective-C的文档生成工具:appledoc 前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象 Ja ...
随机推荐
- Vue——安装
Vue.js 设计的初衷就包括可以被渐进式地采用.这意味着它可以根据需求以多种方式集成到一个项目中. 将 Vue.js 添加到项目中主要有四种方式: 1.在页面上以 CDN 包的形式导入. <s ...
- 记一次 .NET某工控WPF程序被人恶搞的 卡死分析
一:背景 1. 讲故事 这一期程序故障除了做原理分析,还顺带吐槽一下,熟悉我的朋友都知道我分析dump是免费的,但免费不代表可以滥用我的宝贵时间,我不知道有些人故意恶搞卡死是想干嘛,不得而知,希望后面 ...
- 11种排序算法(Python实现)
10种排序算法(Python实现) 冒泡排序 1. 两重循环,每次都将一个点移动到最终位置 def BubbleSort(lst): n=len(lst) if n<=1: return lst ...
- css制作骰子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- npm包管理器 切换npm源 使用nrm来管理npm镜像源
npm是NodeJs项目模块管理工具,它已经集成了nodejs安装包中,在npm从从5.2版开始,增加了 npx 命令(解决的主要问题,就是调用项目内部安装的模块,很多工具不再需要npm -g 全局来 ...
- INFINI Labs 产品更新 | Agent 全新重构,优化指标采集,支持集中配置管理,支持动态下发等功能
INFINI Labs 产品又更新啦~ 本次更新主要有 Agent.Console.Loadgen 等产品,其中 Agent 进行全新重构升级,新版限制了 CPU 资源消耗,优化了内存,相比旧版内存使 ...
- C#.NET根据不同业务类别类型写入不同文件中,动态创建log4net实例验证
C#.NET根据不同业务类别类型写入不同文件中,动态创建log4net实例验证 参考了:https://www.cnblogs.com/-dawn/p/8598566.html GetLog4netI ...
- JS获取表单所有内容
var formData = {}; var t = $('#Form').serializeArray(); $.each(t, function() { formData[this.name] = ...
- RSA算法中,为什么需要的是两个素数?
PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. RSA算法中,为什么需要的是两个素数? RSA算法是一种广泛使用 ...
- spring.jackson 相差8小时,restful接收Date参数处理
spring.jackson 相差8小时,restful接收Date参数处理 前端提交字符串到后台映射日期类型的话,加上@DateTimeFormat(pattern = "yyyy-M ...