文章摘要
doxx 是一个基于 Rust 开发的终端工具,能够快速、安全地查看 .docx 文件内容,无需安装 Microsoft Word。它支持美观的渲染、智能表格处理和强大的导出功能,目前正在积极开发中,持续更新新特性。
文章总结
doxx:终端中的.docx文件查看器
doxx 是一款专为终端设计的快速、高效的 Microsoft Word 文件查看器。它使用 Rust 语言开发,能够在终端中直接查看 Word 文档,支持精美的渲染、智能表格处理和强大的导出功能,无需安装 Microsoft Office。
主要功能
文档查看:
- 支持语法高亮和格式化的终端渲染。
- 智能对齐和 Unicode 边框的专业表格显示。
- 支持多级嵌套列表,带有适当的缩进。
- 全文搜索功能,支持高亮和上下文显示。
- 文档大纲,便于快速导航。
- 多种视图模式:文档、大纲、搜索和帮助。
智能表格支持:
- 自动检测表头的表格解析。
- 智能对齐:数字右对齐,文本左对齐,布尔值居中。
- 支持货币、百分比、日期等数据类型的检测。
- 可扩展的 Unicode 边框,提供专业的 ASCII 渲染。
- 支持在表格内进行搜索。
复制与剪贴板:
- 直接从终端界面复制渲染内容。
- 根据当前视图复制不同内容:文档视图复制完整格式文档,大纲视图复制文档结构,搜索视图复制搜索结果。
导出与集成:
- 支持 Markdown、CSV、纯文本和 JSON 导出。
- 适合脚本和自动化的 CLI 友好设计。
快速开始
安装:
- 从源代码安装(需要 Rust 环境):
bash git clone https://github.com/bgreenwell/doxx.git cd doxx cargo install --path .
- 从源代码安装(需要 Rust 环境):
基本使用:
- 查看文档:
doxx quarterly-report.docx - 启动大纲视图:
doxx document.docx --outline - 搜索特定内容:
doxx contract.docx --search "payment terms" - 导出为不同格式:
doxx spreadsheet.docx --export csv > data.csv
- 查看文档:
终端 UI
doxx 提供直观的键盘快捷键和鼠标支持,方便用户导航文档。例如,使用 ↑/↓ 滚动,o 切换大纲视图,s 打开搜索,c 复制内容到剪贴板等。
与其他工具的比较
- 与 Microsoft Word 相比:doxx 启动更快(50ms vs 8+秒),内存占用更少(15MB vs 500MB+),无需许可证费用,且支持 SSH 远程访问和脚本自动化。
- 与文本提取工具(如 docx2txt、antiword)相比:doxx 保留格式(如粗体、斜体、结构),提供智能表格渲染和交互式界面。
- 与终端文档查看器(如 glow、bat、mdcat)相比:doxx 原生支持 DOCX 文件,专注于商业文档,提供高级表格处理和多种导出格式。
开发与贡献
doxx 正在积极开发中,欢迎贡献。项目结构清晰,主要文件包括 main.rs(CLI 参数解析)、document.rs(文档解析)、ui.rs(终端界面渲染)等。
未来计划
- AI 集成:支持文档摘要和问答功能。
- 超链接支持:在文档内导航。
- 图像描述:使用 AI 生成替代文本。
- 主题定制:个性化查看体验。
- Web 界面:支持浏览器查看。
许可证
doxx 采用 MIT 许可证,详细信息请参阅 LICENSE 文件。
doxx 为终端开发者而生,致力于提供高效、便捷的文档查看体验。
评论总结
评论内容总结:
对项目的积极评价:
- 多位评论者对项目表示赞赏,认为其具有实用性和创新性。
- 引用:treetalker:“Great project! Looking forward to trying it out in my law practice.”(很棒的项目!期待在我的法律实践中使用。)
- 引用:BrouteMinou:“It looks fantastic! That's going into my toolbox that's for sure.”(看起来很棒!肯定会加入我的工具箱。)
对项目名称的批评:
- 部分评论者认为项目名称容易引起误解或带有负面含义。
- 引用:treetalker:“The name causes miscues and carries negative connotations, though, on account of its homonym verb (doxxing).”(由于与动词“doxxing”同音,名称容易引起误解并带有负面含义。)
- 引用:zipping1549:“Not so good of a name.”(名称不太好。)
对功能的建议与疑问:
- 有评论者提出对功能的疑问,并与其他工具进行比较。
- 引用:firesteelrain:“Can you use this to basically cat the output and then you can grep the docx? pandoc can do this”(你能用它来输出内容然后用grep处理docx吗?pandoc可以做到这一点。)
- 引用:pylotlight:“Install from source with git surely cannot be your only deployment plan here?”(通过git从源码安装肯定不能是你唯一的部署计划吧?)
对项目细节的批评:
- 有评论者对项目中的某些细节表示不满。
- 引用:acedTrex:“Very unfortunate”(非常不幸。)
对其他文件格式的期待:
- 有评论者希望类似项目能支持其他文件格式。
- 引用:greazy:“I wish something like this for pdf files.”(我希望有类似的项目支持PDF文件。)
总结:评论者对项目整体持积极态度,认为其具有实用性和创新性,但也对项目名称、功能细节和部署方式提出了批评和建议。