From d64afc27578ca83aeb7f78b98e2469b995c07171 Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Fri, 12 Jun 2026 19:39:02 +0800 Subject: Remove Chinese documentation files for initial version --- docs/_zh_CN/pages/1-intro.md | 52 ---------------- docs/_zh_CN/pages/2-step1.md | 140 ------------------------------------------- 2 files changed, 192 deletions(-) delete mode 100644 docs/_zh_CN/pages/1-intro.md delete mode 100644 docs/_zh_CN/pages/2-step1.md (limited to 'docs/_zh_CN') diff --git a/docs/_zh_CN/pages/1-intro.md b/docs/_zh_CN/pages/1-intro.md deleted file mode 100644 index f0294f7..0000000 --- a/docs/_zh_CN/pages/1-intro.md +++ /dev/null @@ -1,52 +0,0 @@ -

介绍

-

- Mingling 能做什么? -

- -## 前言 - -首先,非常感谢您愿意尝试和体验 **Mingling** - -因为这是一个早期框架,所以尚不成熟。 - -若您在使用过程中遇到任何问题,欢迎提交 [Issue](https://github.com/mingling-rs/mingling/issues),我们乐意解决。 - -## Mingling 是什么? - -**Mingling** 是一款 Rust 命令行开发框架,更准确地说,它是一款在调度、执行、渲染等方面提供高度抽象的框架。 - -它的核心逻辑是 **"转换"** —— 您输入的命令行参数(`Vec`)会经过一系列的类型转换,最终变成您想要的结果。用一张图来说明: - -
- -
- -**这意味着**,您的执行逻辑和渲染逻辑是完全分离的:所有的状态、数据和结构都是类型,它们都只是转换过程中的一个环节,清晰又灵活。 - -## 它适合什么样的项目? - -如果您正在开发一个**子命令多、嵌套层次深、横切关注点多**,并且对**执行效率和动态补全**有要求的命令行工具,那么 **Mingling** 会是一个很好的选择。 - -这些能力得益于它高度抽象的宏系统,以及几乎全部在编译期完成的构建逻辑,让您在运行时能获得出色的性能。 - -## Mingling 能做些什么? - -**Mingling** 专注于命令行流程的调度与编排,为您提供以下能力: - -1. **核心调度** — 通过类型转换优雅地编排业务逻辑 -2. **纯函数设计** — 所有行为都是纯函数,可以直接测试 -3. **无限嵌套** — 支持无限嵌套的子命令系统,再复杂的结构也能驾驭 -4. **动态补全** — 为任意子命令插入完全动态的补全逻辑 **\[`comp`\]** -5. **帮助文档** — 为任意子命令插入帮助文档,让用户轻松上手 - -## Mingling 不做些什么? - -**Mingling** 专注于命令行**流程的调度与编排**,因此它不会提供以下功能(您可以自由搭配其他库来实现): - -1. ❌ 彩色文字、进度条等外观功能 -2. ❌ 国际化、本地化功能 -3. ❌ TUI 界面功能 - -

- Written by @Weicao-CatilGrass -

diff --git a/docs/_zh_CN/pages/2-step1.md b/docs/_zh_CN/pages/2-step1.md deleted file mode 100644 index 251f23b..0000000 --- a/docs/_zh_CN/pages/2-step1.md +++ /dev/null @@ -1,140 +0,0 @@ -

初次上手!

-

- 使用 Mingling 开发简易水果名搜索命令行程序 -

- -## 前言 - -在本篇示例中,我将介绍如何使用 **Mingling** 开发基本的命令行程序,它包括: - -1. `fruit-mgr list` 命令 -2. `fruit-mgr list --help` 帮助页面 - - - -## 一、导入依赖 - -首先,请确保您的项目依赖 **Mingling** - -若未导入依赖,您可以在 `Cargo.toml` 添加如下内容: - -```toml -[dependencies.mingling] -version = "0.1.9" -features = [""] -``` - -## 二、编写 `main.rs`,创建基本的项目 - -在 `src/main.rs` 中,我们将编写程序的入口函数: - - - -## 三、注册 `list` 子命令 - - - -## 四、实现 `EntryList` 行为 - - - -

- Written by @Weicao-CatilGrass -

- -## 五、渲染 `ResultFruits` - -在上一步中,`handle_entry_list` 链接收 `EntryList`,并输出了 `ResultFruits`。 - -接下来我们就要为 `ResultFruits` 渲染出最终的结果,使整个程序像下图这样排列: - -
- -
- -让我们开始编写代码吧: - - - -### 💡 关于 `r_println!` 宏 - -`r_println!` 宏并不是对 `println!` 的包装 - -它是为 `#[renderer]` 宏中 **隐式注入** 的 `&mut RenderResult` 值提供的便捷访问方案。 - -在 `r_println!` 调用时,不会立刻向 stdout 输出信息,而是会被累计到 `&mut RenderResult` 中,在程序结束时整体输出。 - -## 六、编译并运行 - -现在您已经完成了 `list` 命令,现在可以使用 `cargo run` 运行您的程序: - -```bash -cargo run -- list -``` - -您将会看到如下输出: - -``` -Apple -Banana -Orange -``` - -
-完整代码 - -```rust -use mingling::prelude::*; - -dispatcher!("list", CMDList => EntryList); - -fn main() { - let mut program = ThisProgram::new(); - program.with_dispatcher(CMDList); - program.exec_and_exit(); -} - -pack!(ResultFruits = Vec); - -#[chain] -fn handle_entry_list(_prev: EntryList) -> Next { - let fruits = vec![ - "Apple".to_string(), - "Banana".to_string(), - "Orange".to_string(), - ]; - ResultFruits::new(fruits) -} - -#[renderer] -fn render_fruits(result: ResultFruits) { - let vec: &Vec = &*result; - for fruit in vec { - r_println!("{}", fruit) - } -} - -gen_program!(); - -``` - -
- -

- Written by @Weicao-CatilGrass -

-- cgit