From 232f31c6649e6348a5b0b64362f185f7f4db1dc0 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sun, 21 Jun 2026 18:33:32 +0800 Subject: Add intro content and merge getting started page --- docs/pages/1-getting-started.md | 69 +++++++++++++++++++++++++++++++++++++++++ docs/pages/1-intro.md | 32 ------------------- docs/pages/2-getting-started.md | 62 ------------------------------------ 3 files changed, 69 insertions(+), 94 deletions(-) create mode 100644 docs/pages/1-getting-started.md delete mode 100644 docs/pages/1-intro.md delete mode 100644 docs/pages/2-getting-started.md (limited to 'docs/pages') diff --git a/docs/pages/1-getting-started.md b/docs/pages/1-getting-started.md new file mode 100644 index 0000000..4832191 --- /dev/null +++ b/docs/pages/1-getting-started.md @@ -0,0 +1,69 @@ +

Getting Started

+ +## Create a New Project + +```bash +cargo new my-cli +cd my-cli +``` + +## Add Dependency + +Add the following to `Cargo.toml`: + +```toml +[dependencies.mingling] +version = "0.2" +features = [] +``` + +## Enable Features + +**Mingling** has all features disabled by default and does not provide an all-in-one feature like `full`. + +Some features will **directly affect the behavior of the entire lifecycle**, so you need to enable them as needed, for example: + +```toml +[dependencies.mingling] +version = "0.2" +features = [ + "parser", + "comp", +] +``` + +> [!NOTE] +> Visit [docs.rs](https://docs.rs/mingling/latest/mingling/feature/index.html) or [Features](pages/other/features) to learn about all available features. + +## Write the Basic Entry Point + +Edit `src/main.rs` with the following code: + +```rust +use mingling::prelude::*; + +fn main() { + let mut program = ThisProgram::new(); + + program.exec_and_exit(); +} + +gen_program!(); +``` + +> [!IMPORTANT] +> Almost all Rust code blocks in the documentation have been compiled through the CI pipeline and are guaranteed to be usable. +> +> However, code blocks starting with `// NOT VERIFIED` have **not been verified**. +> +> Want to know which `*.md` files have been compiled? Check [`verified-docs.toml`](https://github.com/mingling-rs/mingling/blob/main/verified-docs.toml) + +## Verify Compilation + +```plaintext +~# cargo check +``` + +--- + +Once everything is good, start building! diff --git a/docs/pages/1-intro.md b/docs/pages/1-intro.md deleted file mode 100644 index edf83bb..0000000 --- a/docs/pages/1-intro.md +++ /dev/null @@ -1,32 +0,0 @@ -

Introduction

- -If you're troubled by these issues — - -1. Too many subcommands make `main.rs` bloat rapidly; -2. Handler logic mixed with side effects; -3. Logging, auth, and other cross-cutting concerns are hard to inject non-invasively; -4. Maintaining shell completion scripts for multiple platforms wears you out; -5. Global resources everywhere, making testing difficult. - -… then you've come to the right place. - -Of course, if you're just curious about "how to write maintainable CLIs in Rust," you've also come to the right place — it'll be fun. - -## What is Mingling? - -> **Mìng Lìng** is the pinyin of the Chinese word **命令**, -> which translates to **Command** in English. - -Mingling is a CLI framework built with Rust. It's free, open-source, and licensed under the permissive MIT / Apache 2.0 license. - -Mingling's design goals: - -- **Extensible**: From 3 subcommands to 30, same pattern, no framework swap -- **Decoupled**: Parse args once, write business logic once, define output format once. Each independent. -- **Type-driven**: Clear, typed data flows through the pipeline — not `Vec` -- **Lightweight deps**: Minimal core deps, low cost to pull in; advanced features on demand, no compile-time drag -- **Efficient**: Dispatch logic generated at compile time, no unnecessary runtime overhead - ---- - -Alright, wanna give it a try? diff --git a/docs/pages/2-getting-started.md b/docs/pages/2-getting-started.md deleted file mode 100644 index 35da464..0000000 --- a/docs/pages/2-getting-started.md +++ /dev/null @@ -1,62 +0,0 @@ -

Getting Started

- -## Create a New Project - -```bash -cargo new my-cli -cd my-cli -``` - -## Add Dependency - -Add the following to `Cargo.toml`: - -```toml -[dependencies.mingling] -version = "0.2" -features = [] -``` - -## Enable Features - -**Mingling** has all features disabled by default and does not provide an all-in-one feature like `full`. - -Some features will **directly affect the behavior of the entire lifecycle**, so you need to enable them as needed, for example: - -```toml -[dependencies.mingling] -version = "0.2" -features = [ - "parser", - "comp", -] -``` - -> [!NOTE] -> Visit [docs.rs](https://docs.rs/mingling/latest/mingling/feature/index.html) or [Features](pages/other/features) to learn about all available features. - -## Write the Basic Entry Point - -Edit `src/main.rs` with the following code: - -```rust -use mingling::prelude::*; - -fn main() { - let mut program = ThisProgram::new(); - - program.exec_and_exit(); -} - -gen_program!(); -``` - -## Verify Compilation - -```plaintext -~# cargo check -``` - ---- - -Once everything is good, start building! -- cgit