本项目是一个使用 Rust 编写的命令行工具 (md2tex),用于将 Markdown 语法转换为高质量的中文 LaTeX 源码,以便后续使用 Tectonic 编译为 PDF。
- 语言:Rust (最新的稳定 Edition)。严格遵守
cargo clippy的建议。 - CLI 框架:使用
clap(derive 模式) 处理命令行参数(如输入文件路径、输出文件路径)。 - Markdown 解析:强制使用
pulldown-cmark库处理 AST(抽象语法树)的遍历和解析,不要手写正则来解析 Markdown。
- 用户是逻辑严密的开发者,熟悉底层系统架构和现代 C++ (C++17/20/23),但不熟悉rust。
- 在编写或修改 Rust 代码后,必须向用户解释核心逻辑。
- 当涉及 Rust 的特有概念(如 Ownership, Borrowing, Lifetimes, Traits)时,请务必使用 C++ 的概念(如 RAII,
std::unique_ptr,std::move, 虚表, Concepts)进行类比,帮助用户快速理解。
转换器生成的 .tex 文件,必须套用以下基础模板架构:
- 文档类:
\documentclass{ctexart} - 页面样式:
\pagestyle{plain}(禁止显示默认的章节页眉) - 自动编号修复:使用
\ctexset{section = {name = {,、}, number = \chinese{section}}}规范标题。 - Markdown 的
# 标题映射为\section{},## 标题映射为\subsection{}。 - Markdown 的代码块映射为
verbatim环境或引入listings宏包处理。
格式:<type>: <description>
类型:feat(新功能) | fix(修复) | docs(文档) | ci(CI/CD) | refactor(重构)
示例:feat: 添加数学公式支持
重要:必须严格按顺序执行
-
环境检查:执行
gh --version确认 GitHub CLI 可用 -
更新
Cargo.toml版本号,在执行 git commit 之前,必须先运行 cargo fmt --check, cargo clippy 和 cargo test。只有当本地检查全部通过时,才允许进行发布流程 -
提交代码并 push 到远程仓库:
git add . && git commit -m "..." && git push origin main,这会触发 CI 流程进行自动测试 -
监控 CI 状态:执行
gh run watch实时监控工作流状态- 如果返回
completed且为success,继续执行第 4 步 - 如果返回
failed,执行gh run view --log获取错误日志,在本地修复 Bug 后重新提交,严禁继续发布
- 如果返回
-
创建 Git 标签并附加版本说明,如:
git tag -a v0.2.0 -m "Release version 0.2.0: 添加数学公式支持" -
推送标签到远程仓库,如:
git push origin v0.2.0,这会触发 Release 流程进行自动构建和发布