Repository navigation
Releases: LingNc/dir2txt
Releases · LingNc/dir2txt
Release list
v1.8.2
更新内容
- 新增:
--unwrap核心重磅功能!支持将由dir2txt打包的单文件内容(_context.md)完整解析并还原回原本的文件夹结构。并在底层重构了解包逻辑,完美支持超大文件的安全流式解包。 - 新增:
--wrap/-w参数(可替代--dir/-d使用)。开启打包模式,支持将图片、音视频、可执行程序等非文本的二进制内容以 Base64 形式嵌入到 Markdown 中,并可通过--unwrap无损还原。 - 新增:
--view预览模式(配合--wrap使用)。可将嵌入的二进制文件转为能被 Markdown 直接解析展示的语法(例如图片渲染为,音视频渲染为 HTML 标签<audio controls>等)。不加此参数时,默认以代码块包裹 Base64 数据。 - 新增:
--recursive/-R递归展开选项(配合--unwrap使用)。在解包完成后,会自动识别并就地递归展开内部嵌套的*_context.md模块文件,实现类似文件夹的树状释放,并自动清理冗余释放源。 - 新增:
--version/-v选项,用于快速查看当前程序版本号与署名。 - 更新:全面优化 CLI 命令行错误提示。采用类似 Git 的紧凑型语法摘要排版,去除冗长的刷屏报错,提示更加精简、直观且专业。
- 修复:解决了
--gitignore在特定情况下未能正确忽略.git隐藏目录的问题。 - 修复:解决了在 Windows 环境下使用
--install自动配置环境变量时,控制台输出中文出现乱码(Mojibake)的问题。 - 移除:全面废弃并移除了旧版的指令式配置选项
-Fc/-fc(保留--config,为未来支持全新的声明式配置文件做准备)。
使用说明:
dir2txt --version或者dir2txt -v可以快速打印当前工具的版本信息。dir2txt -w ./assets --view -o assets_context.md可以将assets目录进行二进制打包,并将里面的媒体文件转化为能在 Markdown 阅读器中直接渲染预览的格式。dir2txt --unwrap project_context.md可以读取打包好的 Markdown 文件,并将其内部的所有代码和二进制文件原样解包还原到当前目录下。dir2txt --unwrap complex_test_context.md -o output_dir/ -R可以将文件解包到指定的output_dir/目录中,并自动搜索里面嵌套的其他*_context.md,将它们像文件夹一样就地递归解压出来。- 若输入了错误的参数(如
dir2txt --unwrap未加路径),程序将不再刷屏输出整篇帮助文档,而是精准提示错误: --unwrap 需要指定一个 markdown 文件路径并附带简短的语法摘要。
Full Changelog: v1.7.4...v1.8.2
v1.7.4
更新内容
- 修复:
-f/-F参数情况下如果有范围过滤选项会覆盖掉后面的!排除项。例如dir2txt -d xxxx -f '*' '!xxxx.file'会导致xxxx.file一起被排除。 - 新增:
--gitignore配置项(默认硬过滤),会按照git的排除方法对该文件夹中包含的.gitignore进行排除,包括子文件夹的.gitignore就像git一样。并且使用该选项的时候会忽略原本自带的build等忽略项,只会根据.gitignore中的规则进行过滤(但是会过滤.git文件夹)。该选项和-Fc/-fc互斥。使用-f修饰该选项可以修改其过滤性质。 - 新增:
--default命令用来添加默认排除规则。 - 新增:
--all命令用来清除前面所有的规则,默认将所有文件加入。 - 调整:采用顺序优先级,默认排除规则首先添加(优先级最低),其次按照从左到右优先级依次升高,后面的规则可以覆盖前面的规则,实现更精细化操作。
使用说明:
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'dir2txt -f node_modules可以将node_modules目录保留在目录树中,但是不输出内容。dir2txt -f --gitignore可以根据.gitignore规则进行软过滤。dir2txt --all --gitignore可以先清除所有规则之后再应用--gitignore规则。dir2txt -F src/ -f src/main.go可以将src目录完全过滤掉,但是保留main.go文件。dir2txt complex_test -f --gitignore '!app.log' -F 'temp/'可以先将gitignore变成软过滤保留排除目录,之后还原app.log内容,最后移除temp/在目标文件中的显示。
Full Changelog: v1.7.0...v1.7.4
v1.7.0
v1.6.3
v1.6.0
更新内容
- 新增支持 --config=路径 形式,支持提供配置文件过滤;-c/--config/-fc 将模式加载到软过滤器中,-Fc 加载到硬过滤器中。
- 软过滤会被记录操作[SKIP],显示在控制台。
- 新增 --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 显示此帮助