## Summary The docs preprocessor was configured with `renderer = ["html"]`, but the actual output renderer is `zed-html`. This mismatch caused mdbook to skip the preprocessing step, leaving YAML frontmatter unprocessed in the rendered HTML. **Symptoms:** - YAML frontmatter (`---\ntitle: ...\n---`) leaked into rendered HTML - `---` rendered as `<hr />` - Frontmatter fields appeared as `<h2>` headings (setext heading interpretation) - Meta description tags showed default values instead of page-specific descriptions ## Root Cause The `renderer = ["html"]` config was introduced in August 2024 (#16883) when the preprocessor was first added. At that time, the output was the standard `html` renderer. In July 2025 (#35112), the `[output.zed-html]` custom renderer was added for frontmatter/postprocessing support, but the preprocessor's `renderer` filter wasn't updated to match. **Why it broke now (April 12, 2026):** The mismatch was latent - it worked inconsistently depending on CI environment conditions. Comparing two deploys from the same day: | Deploy | Network Errors | Preprocessing | |--------|---------------|---------------| | 19:00 UTC | 0 | ✓ Runs correctly | | 21:54 UTC | Many (`static.crates.io` connection failures) | ✗ Skipped | The 21:54 deploy had network errors during `cargo run -p docs_preprocessor`. mdbook appears to have silently skipped the preprocessor and proceeded directly to the renderer. The postprocessor still ran (via the renderer's separate cargo command), but without preprocessing, frontmatter wasn't converted to metadata. **The fix:** Change `renderer = ["html"]` to `renderer = ["html", "zed-html"]` to support both the custom renderer and any fallback to the standard html renderer (e.g., during local development or if mdbook commands internally use html). ## Test plan - [x] Local build produces correct HTML without frontmatter leaking - [x] Meta descriptions correctly populated from frontmatter - [x] CI `check_docs` shows all 3 preprocessor steps running: - `docs_preprocessor supports zed-html` - `docs_preprocessor` (preprocessing) - `docs_preprocessor postprocess` Release Notes: - N/A
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
On macOS, Linux, and Windows you can download Zed directly or install Zed via your local package manager (macOS/Linux/Windows).
Other platforms are not yet available:
- Web (tracking issue)
Developing Zed
Contributing
See CONTRIBUTING.md for ways you can contribute to Zed.
Also... we're hiring! Check out our jobs page for open roles.
Licensing
License information for third party dependencies must be correctly provided for CI to pass.
We use cargo-about to automatically comply with open source licenses. If CI is failing, check the following:
- Is it showing a
no license specifiederror for a crate you've created? If so, addpublish = falseunder[package]in your crate's Cargo.toml. - Is the error
failed to satisfy license requirementsfor a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to theacceptedarray inscript/licenses/zed-licenses.toml. - Is
cargo-aboutunable to find the license for a dependency? If so, add a clarification field at the end ofscript/licenses/zed-licenses.toml, as specified in the cargo-about book.
Sponsorship
Zed is developed by Zed Industries, Inc., a for-profit company.
If you’d like to financially support the project, you can do so via GitHub Sponsors. Sponsorships go directly to Zed Industries and are used as general company revenue. There are no perks or entitlements associated with sponsorship.