hi,大家好,我是爱听书的程序员阿超

非常开心能在这里介绍我的第一个正式开源项目 Annotree,项目具体情况如下,请继续阅读~

Annotree 注释树

一款生成带注释的目录树工具,大大方便技术文档的编写

项目介绍

本项目基于 folder-explorer 进行二次开发,感谢 FairyEver 的创意和贡献!

效果演示 ︎

官方文档首页

功能展示

扫描

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

自动打开文件

导出文件后自动打开。

忽略文件夹

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

忽略以 "." 开头的文件夹

这类文件夹在 MacOS 和 Linux 上是默认隐藏的文件夹。

只扫描文件夹

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

忽略以 "." 开头的文件

这类文件在 MacOS 和 Linux 上是默认隐藏的文件。

忽略文件类型

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

扫描深度

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

默认名称

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

注释格式化

填充注释的格式

桥梁最短字符数

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

桥梁填充字符

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

始终显示桥梁

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

导出

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

下载地址 ️

反馈渠道

如果你有任何意见或建议,欢迎通过以下方式与我联系:

我为何选择飞书群作为社区沟通渠道:

  1. 我平时飞书用的较多,沟通方便。
  2. 飞书话题群沟通问题,效率更高。

开发 Annotree 的故事 ️

本项目基于 folder-explorer 进行二次开发,感谢 FairyEver 的创意和贡献!

起源

  • 2023 年 6 月,我负责搭建公司内部前端基础框架。框架搭建完成后,我希望通过注释来帮助团队成员快速理解目录结构。
  • 我发现 tree 命令可以扫描项目目录结构,但注释需要手动添加,不够便捷。
  • 之后发现了 folder-explorer,这个工具提供了目录注释和对齐功能,但仍不完全符合我的需求。
  • 为了解决上述问题,我基于 folder-explorer 进行了二次开发,创建了 Annotree。
  • 由于其他工作和对 Electron 不熟悉,直到 2024 年 7 月我才开始开发 Annotree。

为何二次开发

  1. folder-explorer 的部分功能对我而言冗余,不符合我的使用习惯。
  2. folder-explorer 导出文本后才看到效果,我希望有实时预览功能。
  3. folder-explorer 编辑备注需要右键打开菜单,操作不便。

期望

  • 这是我做的第一个正式开源项目,大家的反馈和支持,对我很重要 ,谢谢
  • 现在项目还处于快速迭代中,期待大家的反馈与 pr,期待与大家一起共建更好的 Annotree

致谢

  1. 感谢 electron-vite 提供的 electron 框架,大大提升我的开发效率。
  2. 感谢 md 提供给我的 README.md 文档思路。

谁在使用

如果你使用了本 Annotree 工具生成带注释的项目文件树形结构,并且希望在本项目 README 中展示你的项目,请到 Discussions #2 留言。

技术文档必备工具:注释目录树神器 Annotree,我的第一个正式开源项目的更多相关文章

  1. showdoc 开源在线api&&技术文档管理工具

    showdoc 是一个很不错的api 以及技术文档管理工具 环境准备 doker-copose 文件 version: "3" services: doc: image: regi ...

  2. 技术文档生成工具:appledoc

    做项目一般都会要求写技术文档,特别是提供SDK或者基础组件的.如果手写这类技术文档的话,工作量比编写代码也少不了多少.比如 Java 语言本身就自带 javadoc 命令,可以从源码中抽取文档.本篇我 ...

  3. DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)

    前言: 距离上一个版本V3.3版本的文章发布,已经是1年10个月前的事了. 其实版本一直在更新,但也没什么大的功能更新,总体比较稳定,所以也不怎么写文介绍了. 至于工作上的事,之前有半年时间跑去学英语 ...

  4. 使用Jupyter Notebook编写技术文档

    1.jupyter Notebook的组成 这里它的组件及其工程构成,帮助大家更好的用好jupyter Notebook 组件 Jupyter Notebook结合了三个组件: 笔记本Web应用程序: ...

  5. .NET平台开源项目速览(4).NET文档生成工具ADB及使用

    很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧 ...

  6. (转)Doxygen文档生成工具

    http://blog.csdn.net/lostaway/article/details/6446786 Doxygen 是一个支持 C/C++,以及其它多种语言的跨平台文档生成工具.如同 Java ...

  7. Kafka 技术文档

    Kafka 技术文档   目录 1 Kafka创建背景 2 Kafka简介 3 Kafka好处 3.1 解耦 3.2 冗余 3.3 扩展性 3.4 灵活性 & 峰值处理能力 3.5 可恢复性 ...

  8. RabbitMq 技术文档

    RabbitMq 技术文档 目录 1 AMQP简介 2 AMQP的实现 3 RabbitMQ简介 3.1 概念说明 3.2 消息队列的使用过程 3.3 RabbitMQ的特性 4 RabbitMQ使用 ...

  9. [转]unity3d 脚本参考-技术文档

    unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...

  10. 使用Objective-C的文档生成工具:appledoc

    使用Objective-C的文档生成工具:appledoc 前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象 Ja ...

随机推荐

  1. Django中的ORM转换为SQL语句日志

    如果想打印ORM转换过程中的SQL,需要在settings中进行如下配置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, ' ...

  2. go append的坑

    b := []int{1,2,3,4,5} slice := b[:2] newSlice := append(slice, 50) fmt.Println(b) fmt.Println(newSli ...

  3. win11通过注册表禁用鼠标右键

    本经验分为5个步骤,详情如下. 工具/原料 华硕K5 win11专业版21H2 注册表22000.556 方法/步骤   同时按下"win"+"R"键,打开运行 ...

  4. Prism IoC 依赖注入

    现有2个项目,SinglePageApp是基于Prism创建的WPF项目,框架使用的是Prism.DryIoc,SinglePageApp.Services是C#类库,包含多种服务,下面通过使用Pri ...

  5. 像阿里OSS一样的文件对像存储服务,容器实现 docker初探及minio测试

    像阿里OSS一样的文件对像存储服务,容器实现 docker run -p 8000:9000 --name oss-minio -d -e "MINIO_ACCESS_KEY=AKIAIOS ...

  6. Pyomo基础学习笔记:建模组成要素的编写方法

    1.Pyomo 简介 pyomo文档[数学建模]优化模型建模语言 Pyomo 入门教程 - 知乎 (zhihu.com) Pyomo 是基于 Python 的开源软件包,主要功能是建立数学规划模型,包 ...

  7. 【Effective C++】设计与声明——考虑写出一个不抛异常的swap函数

    wap是个有趣的函数.原本它只是STL的一部分,而后成为异常安全性编程的脊柱,以及用来实现自我赋值可能性的一个常见机制.所谓swap两对象值,就是将两对象的值交换. 典型实现 缺省情况下的swap动作 ...

  8. 对于 EI K 逆序对排列计数的另一种自然求和方法的理解

    有一个简单的 \(O(n^3)\) DP,考虑 \(f_{x + 1, k} = \sum_{j = 0}^{x} f_{x, k - j}\),利用前缀和优化即可. 考虑这实际上是 \(f_{x + ...

  9. .net core .net6 webapi 连接mysql 8

    1.表结构: CREATE TABLE `table2` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `myname` varchar(255) NOT NULL, ...

  10. C#.NET Winform使用线程承载WCF (硬编码配置)

    winform同步承载WCF时,遇到大量请求,可能会阻塞UI线程.这时就需要开个线程来承载WCF. 1.硬编码形式创建WCF服务,WCFServer类: using CommonUtils; usin ...