一个正在开发中的命令行工具,目标是将语雀(Yuque)的 Lake 格式文档转换为标准 HTML 格式。
注意:此项目目前处于早期开发阶段,功能尚不完整。
- ✅ 基础项目架构搭建
- ✅ Rust 开发环境配置
- ✅ CLI 命令行接口框架
- ✅ 基础数据模型定义
- ✅ 简单的 Lake 格式解析(标题、段落)
- ✅ 基础 HTML 输出功能
- ✅ 基础测试框架
- 🚧 完整的 Lake 格式解析
- 🚧 复杂元素支持(表格、列表、图片等)
- 🚧 Lake 特有组件处理
- 🚧 样式和模板系统
# 克隆仓库
git clone https://github.com/ChHsiching/lake2html.git
cd lake2html
# 编译安装
cargo build --release
# 运行
./target/release/lake2html --helpcargo install lake2html# 转换单个文件(目前仅支持基础元素)
cargo run -- examples/个人规划.lake -o output.html
# 查看帮助信息
cargo run -- --help
# 运行测试
cargo test将语雀 Lake 格式文档转换为 HTML
Usage: lake2html [OPTIONS] [INPUT] [COMMAND]
Commands:
convert 转换单个文件
batch 批量转换目录
help Print this message or the help of the given subcommand(s)
Arguments:
[INPUT] 输入文件或目录
Options:
-o, --output <OUTPUT> 输出文件或目录
-r, --recursive 递归处理目录
-t, --template <TEMPLATE> 自定义模板文件
--style-mode <MODE> 样式处理模式 [inline|external|none]
--format <FORMAT> 输出格式 [full-page|fragment]
-v, --verbose 详细输出
-h, --help 显示帮助信息
-V, --version 显示版本信息
# 基础转换测试
cargo run -- examples/个人规划.lake -o test.html
# 目前输出的 HTML 包含:
# - 文档标题
# - 基础标题(H1-H6)
# - 段落文本
# - 简单的内联样式lake2html/
├── src/
│ ├── main.rs # 程序入口
│ ├── lib.rs # 库接口
│ ├── cli.rs # CLI 接口定义
│ ├── parser/ # 解析器模块
│ │ ├── mod.rs
│ │ ├── lake_parser.rs # Lake 格式解析器
│ │ └── components.rs # 组件解析器
│ ├── converter/ # 转换器模块
│ │ ├── mod.rs
│ │ ├── html_converter.rs # HTML 转换器
│ │ └── template.rs # 模板处理
│ ├── models/ # 数据模型
│ │ ├── mod.rs
│ │ ├── document.rs # 文档结构
│ │ └── config.rs # 配置结构
│ └── utils/ # 工具函数
│ ├── mod.rs
│ ├── file_handler.rs # 文件处理
│ └── error.rs # 错误定义
├── tests/ # 测试文件
├── examples/ # 示例文件
├── docs/ # 文档
└── templates/ # HTML 模板
- Rust 1.89.0 或更高版本
- Cargo(随 Rust 一起安装)
# 调试构建
cargo build
# 发布构建
cargo build --release
# 运行测试
cargo test
# 检查代码
cargo check# 运行所有测试
cargo test
# 运行特定测试
cargo test test_basic_lake_parsing
# 显示测试输出
cargo test -- --nocapture- 📋 文档标题和元数据提取
- 📖 基础标题解析(H1-H6)
- 📄 段落文本提取
- 📌 列表(有序、无序、任务列表)
- 📊 表格解析
- 💬 引用块
- 🖼️ 图片和链接
- 💻 代码块和内联代码
- ➖ 分隔线
- 🃏 Card 组件
- 🧠 思维导图(board 组件)
- 📈 图表和复杂媒体
- 🎨 完整样式系统
- 📎 文件附件处理
- 完整的 Lake 组件支持
- 自定义主题和模板
- 插件系统
- 配置文件支持
- Web 服务 API
- GUI 桌面应用
- VS Code 扩展
- 在线转换服务
- React/Vue 组件库
- 静态站点生成器集成
- 博客系统支持
- 文档站点主题
欢迎贡献代码、报告问题或提出建议!
- Fork 这个仓库
- 创建您的特性分支 (
git checkout -b feature/AmazingFeature) - 提交您的更改 (
git commit -m '✨ Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
我们使用 gitmoji 和 conventional commits 规范:
✨ feat: 添加新功能
🐛 fix: 修复bug
📚 docs: 更新文档
🎨 style: 代码格式调整
♻️ refactor: 重构代码
✅ test: 添加测试
🔧 chore: 构建过程或辅助工具的变动
本项目采用 MIT 或 Apache-2.0 双重许可证。详见 LICENSE 文件。
- 问题报告:GitHub Issues
- 功能请求:GitHub Discussions
- 邮箱:[email protected]
Made with ❤️ by Lake2HTML Contributors