From d8bc9ff75e76992592b065c41d2e433c0de9b72c Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 23 Jun 2026 21:19:01 +0800 Subject: Rename internal docs --- docs/TEMPLATE.md | 14 ---- docs/TRANSLATION_RULE.md | 21 ----- docs/_ABOUT_CODE_VERIFY.md | 195 +++++++++++++++++++++++++++++++++++++++++++++ docs/_ABOUT_TRANSLATION.md | 25 ++++++ docs/_DOCS_TEMPLATE.md | 15 ++++ 5 files changed, 235 insertions(+), 35 deletions(-) delete mode 100644 docs/TEMPLATE.md delete mode 100644 docs/TRANSLATION_RULE.md create mode 100644 docs/_ABOUT_CODE_VERIFY.md create mode 100644 docs/_ABOUT_TRANSLATION.md create mode 100644 docs/_DOCS_TEMPLATE.md (limited to 'docs') diff --git a/docs/TEMPLATE.md b/docs/TEMPLATE.md deleted file mode 100644 index 047d92b..0000000 --- a/docs/TEMPLATE.md +++ /dev/null @@ -1,14 +0,0 @@ -
- Description -
- -Content here - - - -- Written by @Your-Name -
diff --git a/docs/TRANSLATION_RULE.md b/docs/TRANSLATION_RULE.md deleted file mode 100644 index 9c77faa..0000000 --- a/docs/TRANSLATION_RULE.md +++ /dev/null @@ -1,21 +0,0 @@ -# Translation Style Guide - -## 1. Tone & Voice -- **保持原语气** (Preserve original tone): Maintain the author's attitude, formality, and emotional register exactly as in the source. -- **近似词替换** (Synonymous substitution): Use words with close or equivalent meaning where direct translation is awkward or unnatural. - -## 2. Vocabulary & Abbreviation -- **缩写** (Abbreviation): Apply standard English abbreviations (e.g., *info* for information, *dept* for department) to avoid overlong words, but only when clarity is not sacrificed. -- **简明表述** (Concise expression): Prefer shorter, more common alternatives (e.g., *use* over *utilize*, *help* over *facilitate*) unless the original tone demands formality. - -## 3. Structural Rules -- **段落一致** (Paragraph integrity): Keep the original paragraph breaks and line spacing. -- **标记保留** (Tag preservation): Any inline Markdown formatting (bold, italic, code, links, lists) must be replicated exactly in translation. -- **例示** (Example): - - 原句: “请保持专业语气,但避免使用过长的学术词汇。” - - 译文: “Keep a prof. tone, but avoid long academic words.” -- **最小化改动** (Minimal diff): When translating or syncing English content against a known Chinese original, if the Chinese original's meaning is extremely close to the current English meaning, do not modify the English text. This is to keep git diffs friendly (only modify parts that have truly changed). - -## 4. Exceptions -- If a term has no common abbreviation, use the full word. -- If preserving tone requires a longer phrase, prioritize tone over brevity. diff --git a/docs/_ABOUT_CODE_VERIFY.md b/docs/_ABOUT_CODE_VERIFY.md new file mode 100644 index 0000000..e28f59d --- /dev/null +++ b/docs/_ABOUT_CODE_VERIFY.md @@ -0,0 +1,195 @@ +# Doc Code Block Verification System + +This system automatically extracts and compiles Rust code blocks from docs, ensuring all example code stays usable in CI. + +## Config + +Specify which Markdown files to verify via [`verified-docs.toml`](https://github.com/mingling-rs/mingling/blob/main/verified-docs.toml) in the project root. + +You can also test a single file via command-line arg: + +```sh +./run-tools.sh test-all-markdown-code docs/pages/1-getting-started.md +``` + +```powershell +.\run-tools.ps1 test-all-markdown-code docs/pages/1-getting-started.md +``` + +## Default Rules + +Every verified ` ```rust ` code block gets the following injected automatically at compile time — no need to write them explicitly in the block: + +### 1. `#![allow(dead_code)]` and `#![allow(unused)]` + +Added at the top of the generated `main.rs` to suppress dead-code warnings from partial code snippets. + +### 2. `use mingling::prelude::*;` + +If the block already has `use mingling::prelude::*;`, it won't be inserted again. + +Otherwise it's inserted automatically (with `#[allow(unused_imports)]`). + +### 3. `fn main() {}` + +If the block **does not contain** a `fn main` definition, an empty `fn main() {}` is appended, + +so the block can compile as a standalone binary project. + +### 4. `mingling::macros::gen_program!();` + +If the block **does not contain** a `gen_program!()` call, + +`mingling::macros::gen_program!();` is appended automatically. + +This call is required by the mingling framework. + +### 5. Build Cache Dedup — Shared Dep Hash + +Code blocks with the same `Features` and `Dependencies` are automatically grouped into the same compile group, sharing one `Cargo.toml` and build artifacts, avoiding redundant compilations. + +> [!NOTE] +> +> Hash input (all sorted): +> +> 1. Feature list +> 2. External dep name list +> 3. External dep version list +> 4. `name=version` pairs +> +> Uses FNV-1a 64-bit hash, stable across runs. + +## Verification Steps + +After the **default rules** are applied, each block goes through: + +### 1. Block Extraction + +- Only ` ```rust ` fenced code blocks are extracted. +- Empty blocks (no code lines) are skipped. +- Blocks with `// NOT VERIFIED` alone are skipped. + +### 2. Temp Project Generation + +Each block (or each dedup-hash group) gets its own Cargo project: + +``` +.temp/doc-test/+ Description +
+ +Content here + + + + ++ Written by @Your-Name +
-- cgit