Docs README.md small fixes (#43904)
Correct punctuation marks, style keywords in Markdown so it rendered correctly (e.g. HTML tags, paths), capitalize abbreviations (HTML, YAML, ASCII), fix typos for consistency (e.g. mdBook). Release Notes: - N/A --------- Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
This commit is contained in:
committed by
GitHub
parent
1d6b5e72a1
commit
a996fa4320
@@ -20,10 +20,9 @@ cd docs && pnpm dlx prettier@3.5.0 . --write && cd ..
|
||||
|
||||
## Preprocessor
|
||||
|
||||
We have a custom mdbook preprocessor for interfacing with our crates (`crates/docs_preprocessor`).
|
||||
We have a custom mdBook preprocessor for interfacing with our crates (`crates/docs_preprocessor`).
|
||||
|
||||
If for some reason you need to bypass the docs preprocessor, you can comment out `[preprocessor.zed_docs_preprocessor]
|
||||
` from the `book.toml`.:
|
||||
If for some reason you need to bypass the docs preprocessor, you can comment out `[preprocessor.zed_docs_preprocessor]` from the `book.toml`.
|
||||
|
||||
## Images and videos
|
||||
|
||||
@@ -34,7 +33,7 @@ Putting binary assets such as images in the Git repository will bloat the reposi
|
||||
## Internal notes:
|
||||
|
||||
- We have a Cloudflare router called `docs-proxy` that intercepts requests to `zed.dev/docs` and forwards them to the "docs" Cloudflare Pages project.
|
||||
- CI uploads a new version to the Pages project from `.github/workflows/deploy_docs.yml` on every push to `main`.
|
||||
- The CI uploads a new version to the Cloudflare Pages project from `.github/workflows/deploy_docs.yml` on every push to `main`.
|
||||
|
||||
### Table of Contents
|
||||
|
||||
@@ -46,15 +45,15 @@ Since all this preprocessor does is generate the static assets, we don't need to
|
||||
|
||||
When referencing keybindings or actions, use the following formats:
|
||||
|
||||
### Keybindings:
|
||||
### Keybindings
|
||||
|
||||
`{#kb scope::Action}` - e.g., `{#kb zed::OpenSettings}`.
|
||||
|
||||
This will output a code element like: `<code>Cmd+,|Ctrl+,</code>`. We then use a client-side plugin to show the actual keybinding based on the user's platform.
|
||||
This will output a code element like: `<code>Cmd + , | Ctrl + ,</code>`. We then use a client-side plugin to show the actual keybinding based on the user's platform.
|
||||
|
||||
By using the action name, we can ensure that the keybinding is always up-to-date rather than hardcoding the keybinding.
|
||||
|
||||
### Actions:
|
||||
### Actions
|
||||
|
||||
`{#action scope::Action}` - e.g., `{#action zed::OpenSettings}`.
|
||||
|
||||
@@ -62,19 +61,20 @@ This will render a human-readable version of the action name, e.g., "zed: open s
|
||||
|
||||
### Creating New Templates
|
||||
|
||||
Templates are just functions that modify the source of the docs pages (usually with a regex match & replace). You can see how the actions and keybindings are templated in `crates/docs_preprocessor/src/main.rs` for reference on how to create new templates.
|
||||
Templates are functions that modify the source of the docs pages (usually with a regex match and replace).
|
||||
You can see how the actions and keybindings are templated in `crates/docs_preprocessor/src/main.rs` for reference on how to create new templates.
|
||||
|
||||
### References
|
||||
|
||||
- Template Trait: crates/docs_preprocessor/src/templates.rs
|
||||
- Example template: crates/docs_preprocessor/src/templates/keybinding.rs
|
||||
- Client-side plugins: docs/theme/plugins.js
|
||||
- Template Trait: `crates/docs_preprocessor/src/templates.rs`
|
||||
- Example template: `crates/docs_preprocessor/src/templates/keybinding.rs`
|
||||
- Client-side plugins: `docs/theme/plugins.js`
|
||||
|
||||
## Postprocessor
|
||||
|
||||
A postprocessor is implemented as a sub-command of `docs_preprocessor` that wraps the builtin `html` renderer and applies post-processing to the `html` files, to add support for page-specific title and meta description values.
|
||||
A postprocessor is implemented as a sub-command of `docs_preprocessor` that wraps the built-in HTML renderer and applies post-processing to the HTML files, to add support for page-specific title and `meta` tag description values.
|
||||
|
||||
An example of the syntax can be found in `git.md`, as well as below
|
||||
An example of the syntax can be found in `git.md`, as well as below:
|
||||
|
||||
```md
|
||||
---
|
||||
@@ -85,7 +85,7 @@ description: A page-specific description
|
||||
# Editor
|
||||
```
|
||||
|
||||
The above will be transformed into (with non-relevant tags removed)
|
||||
The above code will be transformed into (with non-relevant tags removed):
|
||||
|
||||
```html
|
||||
<head>
|
||||
@@ -97,15 +97,16 @@ The above will be transformed into (with non-relevant tags removed)
|
||||
</body>
|
||||
```
|
||||
|
||||
If no front-matter is provided, or If one or both keys aren't provided, the title and description will be set based on the `default-title` and `default-description` keys in `book.toml` respectively.
|
||||
If no front matter is provided, or if one or both keys aren't provided, the `title` and `description` will be set based on the `default-title` and `default-description` keys in `book.toml` respectively.
|
||||
|
||||
### Implementation details
|
||||
|
||||
Unfortunately, `mdbook` does not support post-processing like it does pre-processing, and only supports defining one description to put in the meta tag per book rather than per file. So in order to apply post-processing (necessary to modify the html head tags) the global book description is set to a marker value `#description#` and the html renderer is replaced with a sub-command of `docs_preprocessor` that wraps the builtin `html` renderer and applies post-processing to the `html` files, replacing the marker value and the `<title>(.*)</title>` with the contents of the front-matter if there is one.
|
||||
Unfortunately, mdBook does not support post-processing like it does pre-processing, and only supports defining one description to put in the `meta` tag per book rather than per file.
|
||||
So in order to apply post-processing (necessary to modify the HTML `head` tags) the global book description is set to a marker value `#description#` and the HTML renderer is replaced with a sub-command of `docs_preprocessor` that wraps the built-in HTML renderer and applies post-processing to the HTML files, replacing the marker value and the `<title>(.*)</title>` with the contents of the front matter if there is one.
|
||||
|
||||
### Known limitations
|
||||
|
||||
The front-matter parsing is extremely simple, which avoids needing to take on an additional dependency, or implement full yaml parsing.
|
||||
The front matter parsing is extremely simple, which avoids needing to take on an additional dependency, or implement full YAML parsing.
|
||||
|
||||
- Double quotes and multi-line values are not supported, i.e. Keys and values must be entirely on the same line, with no double quotes around the value.
|
||||
|
||||
@@ -119,7 +120,7 @@ title: Some
|
||||
---
|
||||
```
|
||||
|
||||
And neither will:
|
||||
neither this:
|
||||
|
||||
```md
|
||||
---
|
||||
@@ -127,6 +128,5 @@ title: "Some title"
|
||||
---
|
||||
```
|
||||
|
||||
- The front-matter must be at the top of the file, with only white-space preceding it
|
||||
|
||||
- The contents of the title and description will not be html-escaped. They should be simple ascii text with no unicode or emoji characters
|
||||
- The front matter must be at the top of the file, with only white-space preceding it.
|
||||
- The contents of the `title` and `description` will not be HTML escaped. They should be simple ASCII text with no unicode or emoji characters.
|
||||
|
||||
Reference in New Issue
Block a user