| @@ -19,14 +19,6 @@ |
| } |
| ] |
| }, |
| - "output_dir": { |
| - "description": "Where to output generated files. Defaults to `public`.", |
| - "type": [ |
| - "string", |
| - "null" |
| - ], |
| - "default": "public" |
| - }, |
| "site": { |
| "description": "Metadata about the site.", |
| "allOf": [ |
| @@ -220,6 +212,24 @@ |
| "required": [ |
| "type" |
| ] |
| + }, |
| + { |
| + "description": "Renders a directory of Markdown files to standalone HTML5 documents.\n\nEvery `.md` file is rendered to a mirrored `.html` file in the output\ndirectory. Non-Markdown files referenced by local links or image\nembeds are copied to the output directory so that relative URLs remain\nvalid. Files excluded by `.gitignore` rules are automatically skipped.\n\n```toml\n[[builders]]\ntype = \"markdown\"\ninput = \"docs/\"\noutput = \"docs-html/\" # optional\nrecursive = true # optional, default true\n```", |
| + "type": "object", |
| + "properties": { |
| + "type": { |
| + "type": "string", |
| + "const": "markdown" |
| + } |
| + }, |
| + "allOf": [ |
| + { |
| + "$ref": "#/definitions/MarkdownBuilderConfig" |
| + } |
| + ], |
| + "required": [ |
| + "type" |
| + ] |
| } |
| ] |
| }, |
| @@ -242,6 +252,11 @@ |
| "null" |
| ] |
| }, |
| + "parallel": { |
| + "description": "Run cross-compilation targets in parallel using isolated temporary\ntarget directories.\n\nWhen `true` (the default), each target triple is given its own\n`--target-dir` backed by a [`tempfile::TempDir`], so multiple\n`cargo build` processes can compile simultaneously without contending\non cargo's file lock (`target/.cargo-lock`). Compiled artifacts are\ncopied to the canonical `target/<triple>/release/` paths and the\ntemporary directories are then removed automatically.\n\nSet this to `false` when:\n\n- **Disk space is tight.** Each temporary build tree can occupy several\n gigabytes for dependency-heavy crates. Four targets running in\n parallel means roughly four times the peak disk usage of a single\n build.\n- **Incremental compilation matters.** Temporary target directories\n always start cold, discarding Rust's incremental cache. Disabling\n parallelism lets all targets share the persistent `target/` directory\n and reuse previously compiled artefacts on subsequent runs.\n- **The build host is resource-constrained.** Parallel `cargo build`\n processes each consume significant CPU and RAM. On CI machines with\n limited memory, running them sequentially avoids thrashing or\n out-of-memory failures.\n- **Your cross-compilation toolchain is not concurrency-safe.** Some\n custom linkers or build-script tools assume exclusive access and may\n produce corrupt output when invoked concurrently.", |
| + "type": "boolean", |
| + "default": true |
| + }, |
| "targets": { |
| "description": "Cargo target triples to build for (e.g. `\"x86_64-unknown-linux-musl\"`).\n\nEach entry is passed as `--target <triple>` in a separate `cargo build`\ninvocation. When the list is empty, cargo builds for the host target.", |
| "type": "array", |
| @@ -314,6 +329,31 @@ |
| } |
| } |
| }, |
| + "MarkdownBuilderConfig": { |
| + "description": "Configuration for [`MarkdownBuilder`].", |
| + "type": "object", |
| + "properties": { |
| + "input": { |
| + "description": "Directory containing `.md` files to render.\n\nEvery `.md` file in the directory is rendered to a corresponding\n`.html` file in the output directory, preserving the subdirectory\nstructure. Non-Markdown files referenced (linked or embedded) inside\nany Markdown source — images, PDFs, downloadable assets, etc. — are\ncopied into the output directory next to the rendered HTML so that all\nrelative URLs remain valid.\n\nDefaults to `\".\"` (the current working directory).", |
| + "type": [ |
| + "string", |
| + "null" |
| + ] |
| + }, |
| + "output": { |
| + "description": "Directory to write rendered files into.\n\nDefaults to `<input-name>-html` placed next to the input directory.\n\n```toml\n[[builders]]\ntype = \"markdown\"\ninput = \"docs/\"\noutput = \"public/docs/\"\n```", |
| + "type": [ |
| + "string", |
| + "null" |
| + ] |
| + }, |
| + "recursive": { |
| + "description": "Also descend into subdirectories of `input`.\n\nDefaults to `true`. Files matched by a `.gitignore` in the directory\nhierarchy are always excluded, mirroring the behaviour of the `archive`\nbuilder.", |
| + "type": "boolean", |
| + "default": true |
| + } |
| + } |
| + }, |
| "OpenGraphConfig": { |
| "description": "OpenGraph configuration for the website.", |
| "type": "object", |
| @@ -442,6 +482,11 @@ |
| } |
| ] |
| }, |
| + "output_dir": { |
| + "description": "Where to output generated files. Defaults to `public`.", |
| + "type": "string", |
| + "default": "public" |
| + }, |
| "readme": { |
| "description": "Path to the README file rendered on each version page.\nDefaults to `README.md` in the current working directory.", |
| "type": [ |