docx-handlebars-0.1.6 has been yanked.
docx-handlebars
一个用于处理 DOCX 文件 Handlebars 模板的 Rust 库,支持多平台使用:
- 🦀 Rust 原生
- 🌐 WebAssembly (WASM)
- 📦 npm 包
- 🟢 Node.js
- 🦕 Deno
- 🌍 浏览器端
- 📋 JSR (JavaScript Registry)
功能特性
- ✅ 解析和处理 DOCX 文件
- ✅ Handlebars 模板引擎集成
- ✅ 支持复杂的模板语法(循环、条件等)
- ✅ 跨平台兼容性
- ✅ TypeScript 类型定义
- ✅ 零依赖的 WASM 二进制文件
安装
Rust
npm
Deno
import { DocxHandlebars } from "https://deno.land/x/docx_handlebars/mod.ts";
JSR
使用示例
Rust
use ;
use HashMap;
JavaScript/TypeScript (Node.js)
import from 'docx-handlebars';
import fs from 'fs';
.;
浏览器端
DOCX Handlebars Demo
处理模板
下载结果
Deno
import { DocxHandlebars } from "https://deno.land/x/docx_handlebars/mod.ts";
const processor = new DocxHandlebars();
// 加载模板
const templateBytes = await Deno.readFile("template.docx");
await processor.loadTemplate(templateBytes);
// 渲染数据
const data = {
name: "张三",
company: "ABC公司"
};
const result = await processor.render(data);
// 保存结果
await Deno.writeFile("output.docx", result);
模板语法
支持完整的 Handlebars 语法:
{{name}} 在 {{company}} 工作
{{#if hasItems}}
产品列表:
{{#each items}}
- {{product}}: ¥{{price}}
{{/each}}
{{/if}}
{{#unless isEmpty}}
总计: ¥{{total}}
{{/unless}}
项目结构
docx-handlebars/
├── src/ # Rust 源代码
├── examples/ # 使用示例
├── tests/ # 集成测试
│ ├── jsr_test/ # JSR 包测试
│ └── npm_test/ # npm 包测试
├── tools/ # Python 调试工具
├── releases/ # 发版说明文档
├── pkg-npm/ # npm 包构建输出
└── pkg-jsr/ # JSR 包构建输出
调试工具
tools/ 目录包含用于调试和分析DOCX文件的Python工具:
check_template.py- 检查DOCX文件内容debug_extract.py- 调试文本提取过程debug_lines.py- 调试渲染后文本的行分布debug_specific.py- 特定DOCX文件调试debug_template.py- 分析模板文件的段落结构
详细使用说明请参考 tools/README.md。
发版包目录
pkg-npm/ 目录包含用于 npm 发版的包:
- 支持 Node.js 和浏览器环境
- 使用 web target 构建
pkg-jsr/ 目录包含用于 JSR 发版的包:
- 支持 Deno 和 Node.js 环境
- 包含 JSR 特定的配置文件
发版文档
releases/ 目录包含项目的发版说明和版本历史:
FINAL_RELEASE_SUMMARY_0.1.4.md- v0.1.4 最终发版总结JSR_RELEASE_0.1.4_SUMMARY.md- JSR 平台发版说明MULTI_PLATFORM_RELEASE_0.1.4.md- 多平台发版详情RELEASE_SUMMARY.md- 通用发版总结
详细信息请参考 releases/README.md。
开发
前置条件
- Rust 1.70+
- wasm-pack
- Node.js 16+
构建
# 构建所有包(推荐)
# 或者分别构建:
# 构建 Rust 库
# 单独构建各平台包
# 运行测试
发布
# 1. 首先构建所有包
# 2. 发布到各平台
# 发布到 crates.io
# 发布到 npm
&&
# 发布到 JSR
&&
许可证
本项目采用 MIT 许可证。
贡献
欢迎提交 Issue 和 Pull Request!
更新日志
0.1.0
- 初始版本
- 基本的 DOCX 模板处理功能
- 支持多平台部署
测试
浏览器兼容性测试
本项目提供了完整的浏览器兼容性测试套件,确保 npm 包在各种浏览器环境中正常工作:
# 进入测试目录
# 启动测试服务器
# 在浏览器中访问
# http://localhost:8080/tests/npm_test/browser_test_npm.html
测试功能包括:
- ✅ 包加载测试(多种构建版本)
- ✅ WASM 模块初始化
- ✅ 基础功能验证
- ✅ 实际文件处理测试
- ✅ 文件下载功能
支持的构建版本:
pkg-npm/- npm 包,同时支持 Node.js 和浏览器环境pkg-jsr/- JSR 包,同时支持 Deno 和 Node.js 环境
JSR 包测试
# JSR 包综合测试
npm 包测试
# Node.js 环境测试