Skip to content

Releases: LingNc/dir2txt

v1.8.2

Choose a tag to compare

@LingNc LingNc released this 17 Feb 18:25

更新内容

  1. 新增:--unwrap 核心重磅功能!支持将由 dir2txt 打包的单文件内容(_context.md)完整解析并还原回原本的文件夹结构。并在底层重构了解包逻辑,完美支持超大文件的安全流式解包。
  2. 新增:--wrap/-w 参数(可替代 --dir/-d 使用)。开启打包模式,支持将图片、音视频、可执行程序等非文本的二进制内容以 Base64 形式嵌入到 Markdown 中,并可通过 --unwrap 无损还原。
  3. 新增:--view 预览模式(配合 --wrap 使用)。可将嵌入的二进制文件转为能被 Markdown 直接解析展示的语法(例如图片渲染为 ![图片名](data:image/png;base64,...),音视频渲染为 HTML 标签 <audio controls> 等)。不加此参数时,默认以代码块包裹 Base64 数据。
  4. 新增:--recursive/-R 递归展开选项(配合 --unwrap 使用)。在解包完成后,会自动识别并就地递归展开内部嵌套的 *_context.md 模块文件,实现类似文件夹的树状释放,并自动清理冗余释放源。
  5. 新增:--version/-v 选项,用于快速查看当前程序版本号与署名。
  6. 更新:全面优化 CLI 命令行错误提示。采用类似 Git 的紧凑型语法摘要排版,去除冗长的刷屏报错,提示更加精简、直观且专业。
  7. 修复:解决了 --gitignore 在特定情况下未能正确忽略 .git 隐藏目录的问题。
  8. 修复:解决了在 Windows 环境下使用 --install 自动配置环境变量时,控制台输出中文出现乱码(Mojibake)的问题。
  9. 移除:全面废弃并移除了旧版的指令式配置选项 -Fc/-fc(保留 --config,为未来支持全新的声明式配置文件做准备)。

使用说明:

  1. dir2txt --version 或者 dir2txt -v 可以快速打印当前工具的版本信息。
  2. dir2txt -w ./assets --view -o assets_context.md 可以将 assets 目录进行二进制打包,并将里面的媒体文件转化为能在 Markdown 阅读器中直接渲染预览的格式。
  3. dir2txt --unwrap project_context.md 可以读取打包好的 Markdown 文件,并将其内部的所有代码和二进制文件原样解包还原到当前目录下。
  4. dir2txt --unwrap complex_test_context.md -o output_dir/ -R 可以将文件解包到指定的 output_dir/ 目录中,并自动搜索里面嵌套的其他 *_context.md,将它们像文件夹一样就地递归解压出来。
  5. 若输入了错误的参数(如 dir2txt --unwrap 未加路径),程序将不再刷屏输出整篇帮助文档,而是精准提示 错误: --unwrap 需要指定一个 markdown 文件路径 并附带简短的语法摘要。

Full Changelog: v1.7.4...v1.8.2

v1.7.4

Choose a tag to compare

@LingNc LingNc released this 07 Jan 12:33

更新内容

  1. 修复:-f/-F 参数情况下如果有范围过滤选项会覆盖掉后面的 ! 排除项。例如 dir2txt -d xxxx -f '*' '!xxxx.file' 会导致 xxxx.file 一起被排除。
  2. 新增:--gitignore 配置项(默认硬过滤),会按照 git 的排除方法对该文件夹中包含的 .gitignore 进行排除,包括子文件夹的 .gitignore 就像 git 一样。并且使用该选项的时候会忽略原本自带的 build 等忽略项,只会根据 .gitignore 中的规则进行过滤(但是会过滤 .git 文件夹)。该选项和 -Fc/-fc 互斥。使用 -f 修饰该选项可以修改其过滤性质。
  3. 新增:--default 命令用来添加默认排除规则。
  4. 新增:--all 命令用来清除前面所有的规则,默认将所有文件加入。
  5. 调整:采用顺序优先级,默认排除规则首先添加(优先级最低),其次按照从左到右优先级依次升高,后面的规则可以覆盖前面的规则,实现更精细化操作。

使用说明:

  1. dir2txt 无参数,默认相当于 dir2txt -F '.git' '.idea' '.vscode' 'node_modules' '__pycache__' 'dist' 'build' 'vendor' 'bin' 'obj' 'target' '.next' 'coverage' -f '*.png' '*.jpg' '*.jpeg' '*.gif' '*.ico' '*.svg' '*.mp4' '*.mp3' '*.wav' '*.webp' '*.zip' '*.tar' '*.gz' '*.7z' '*.rar' '*.exe' '*.dll' '*.so' '*.dylib' '*.class' '*.pyc' '*.o' '*.ttf' '*.woff' '*.woff2' '*.eot' '*.lock' '*.pdf' '*.ds_store'
  2. dir2txt -f node_modules 可以将 node_modules 目录保留在目录树中,但是不输出内容。
  3. dir2txt -f --gitignore 可以根据 .gitignore 规则进行软过滤。
  4. dir2txt --all --gitignore 可以先清除所有规则之后再应用 --gitignore 规则。
  5. dir2txt -F src/ -f src/main.go 可以将 src 目录完全过滤掉,但是保留 main.go 文件。
  6. dir2txt complex_test -f --gitignore '!app.log' -F 'temp/' 可以先将 gitignore 变成软过滤保留排除目录,之后还原 app.log 内容,最后移除 temp/ 在目标文件中的显示。

Full Changelog: v1.7.0...v1.7.4

v1.7.0

Choose a tag to compare

@LingNc LingNc released this 18 Dec 14:21

更新内容

  1. 新增 --install/--uninstall 参数,控制是否安装到系统中并添加环境变量。

v1.6.3

Choose a tag to compare

@LingNc LingNc released this 18 Dec 14:19

更新内容

  1. 修复了帮助界面没有增加v1.6.0新功能的提示

v1.6.0

Choose a tag to compare

@LingNc LingNc released this 16 Dec 09:15

更新内容

  1. 新增支持 --config=路径 形式,支持提供配置文件过滤;-c/--config/-fc 将模式加载到软过滤器中,-Fc 加载到硬过滤器中。
  2. 软过滤会被记录操作[SKIP],显示在控制台。
  3. 新增 --no-fold 不折叠目录选项。

使用说明

dir2txt v1.6
用法: dir2txt [--dir <path> ...] [--filter <pattern> ...] [dir|filter ...]
示例:
  dir2txt --dir . ../other --filter '*.png *.jpg' '!keep.png'
  dir2txt --filter '*.png' --filter '!keep.png' src test
  dir2txt -F 'dist/**' -f '*.png' src
参数:
  --dir/-d      指定要扫描的目录,可重复;也可用位置参数追加目录
  --filter/-f   软过滤:仅跳过文件内容输出,目录和树仍显示;支持 * ? [] 与 ! 反向
  --Filter/-F   硬过滤:目录树和文件内容都不显示;支持 * ? [] 与 ! 反向
  Pattern 语法: ? 单字符 (test?.log); * 任意串 (*.go); [] 字符范围 (file[0-9].txt); 前缀 ! 取反 (!important.txt)
  --out/-o      指定输出文件路径或输出目录
  --no-fold     在目录树中不折叠长文件列表,始终显示全部文件 (默认超过 24 个文件折叠)
  位置参数      未被 --dir 消耗的参数:若含 * ? [] 或以 ! 开头视为软过滤,其它视为目录
  --help/-h     显示此帮助