SHOWTEXT 使用说明
SHOWTEXT 是一款专为开发者、技术团队及 AI 辅助编程场景设计的命令行工具。它能够将分散在复杂目录结构中的源代码文件,智能聚合、解析依赖关系,并最终生成一份结构清晰、内容完整的 Markdown 报告。
无论是代码审查、项目交接、知识库沉淀,还是为 AI 模型提供精准的上下文,SHOWTEXT 都能帮你将庞杂的代码库瞬间转化为易于阅读和分享的静态文档。
✨ 核心特性
1. 灵活的源码收集策略
- 多源输入:支持同时指定多个文件或目录作为扫描起点。
- 全文本模式(默认) :自动识别并跳过二进制文件(如图片、压缩包、可执行文件),安全高效。
- 白名单模式:你可自定义允许的扩展名(如仅收集
.js和.ts),实现精准过滤。
2. 强大的依赖解析(智能关联)
- 内置支持 JavaScript/TypeScript(
require/import)、Python、PHP、C/C++(#include)以及 HTML(src/href)的导入语句解析。 - 自动追踪并引入被依赖的文件,确保文档的完整性与关联性。
- 支持设置解析深度(默认无限制),避免因依赖链过长导致文档膨胀。
3. 颗粒化的忽略控制
- 内置默认忽略库:预置了
node_modules、.git、dist、package-lock.json等常见非必要内容。 - 自定义忽略:支持忽略特定名称(如
temp)或精确路径(如C:/project/legacy),灵活适配各种项目结构。
4. 结构化输出与视觉优化
- 文件结构一览:生成文件树状列表,并可选择展示每个文件的体积大小(KB)。
- 双重组网模式:内容区域支持按 目录结构 或 文件扩展名 进行分组,方便按功能模块或技术栈阅读。
- 语法高亮:根据文件扩展名自动匹配代码块语言标识(如
javascript、python、cpp),在 Markdown 渲染器中呈现赏心悦目的代码风格。
5. 高度可配置
- 通过简单的 JSON 配置文件 定义所有参数(
showtext.json),无需记忆复杂的命令行参数。 - 可作为 Node.js 模块 嵌入到你的自动化构建脚本中。
📦 安装与运行
环境要求
- Node.js (建议 v14 及以上版本)
获取工具
将代码库克隆或下载到本地目录(例如 C:/tools/showtext)。
基础用法(命令行)
# 使用默认配置(自动寻找当前目录下的 showtext.json)
node index.js
# 指定自定义配置文件路径
node index.js /path/to/your-config.json
⚙️ 配置详解(showtext.json)
在项目根目录(或任意位置)创建 showtext.json,以下为完整的配置项说明:
{
// [必填] 源码路径数组(支持文件或目录,相对于 root_path)
"sources": [
"./src",
"./index.js"
],
// [必填] 输出 Markdown 文件的路径(支持相对或绝对路径)
"output": "./docs/codebase.md",
// [可选] 基准目录(默认为 process.cwd())。所有 sources 和相对路径都将基于此解析
"root_path": "C:/my-project",
// [可选] 忽略规则数组(支持名称或路径)
"ignore": [
"test-data", // 忽略名为 test-data 的目录或文件
"./deprecated" // 忽略当前基准目录下的 deprecated 文件夹(精确路径)
],
// [可选] 白名单扩展名(注释掉或留空则启用“全文本模式”)
"allowedExts": [".js", ".ts", ".json"],
// [可选] 特殊文件名(即使不在白名单或被认为是二进制,也强制包含)
"specialFilenames": ["Dockerfile", ".env.example"],
// [可选] 是否启用依赖解析,默认 false
"resolveDependencies": true,
// [可选] 依赖解析深度(-1 表示无限制),默认 -1
"resolveDepth": 3,
// [可选] 是否跟随符号链接,默认 false
"followSymlinks": false,
// [可选] 最大文件大小(字节),超过则跳过,默认 0(无限制)
"maxFileSize": 1048576,
// [可选] 是否按扩展名分组显示内容,默认 false(按目录结构分组)
"groupByExtension": true,
// [可选] 是否在“文件结构”列表中显示文件大小,默认 true
"showFileSize": true,
// [可选] 开启调试日志,默认 false
"debug": false
}
🚀 典型使用场景
场景一:为 AI 编码助手准备上下文
当你需要将整个项目代码提交给 ChatGPT、Copilot 或本地大模型分析时,直接粘贴大量零散文件非常不便。使用 SHOWTEXT 生成一份整合的 Markdown 文件,一次性提供给 AI,模型能更完整地理解你的架构。
场景二:遗留系统交接与文档生成
面对一个没有文档、结构混乱的老项目,运行 SHOWTEXT 并开启 resolveDependencies,你不仅能快速浏览所有文件,还能清晰地看到模块之间的引用关系。
场景三:代码审查前的准备工作
在团队 Code Review 前,将变更涉及的核心目录生成文档,审查者无需在 IDE 和浏览器之间反复切换,通过一份渲染后的 Markdown 即可通览全局。
📋 输出报告样例
生成的 Markdown 文件包含三个核心部分:
- 配置信息表格
记录本次收集的基准目录、源路径、忽略规则及时间戳,确保文档可复现。
- 文件结构列表
| 文件路径 | 大小 (KB) |
|----------|-----------|
| src/utils/logger.js | 2.3 KB |
| src/index.js | 1.1 KB |
- 文件内容(代码块)
#### src/index.js
const logger = require('./utils/logger'); console.log('Hello World');
🛠 高级技巧
- 组合白名单与依赖解析:当你只关心核心逻辑文件(如仅
.ts文件)时,设置allowedExts并开启依赖解析,工具会将.ts文件引用的.d.ts或.json文件(即使不在白名单)也一同纳入,确保类型定义不丢失。 - 调试模式:遇到文件被意外跳过时,开启
"debug": true,控制台会输出详细的决策日志,方便排查忽略规则是否生效。
💡 结语
SHOWTEXT 解决了代码文档化过程中“收集难、整理烦、关联乱”的痛点。它不只是一个文件抓取器,更是一个智能的代码结构分析器。即刻配置,一键生成,让你的代码库从此清晰可见!