mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
fix: correct invalid inline HTML in hand-written docs (#27298)
## What
Fixes three classes of invalid inline HTML in hand-written docs, all of
which
render incorrectly (or only render by accident) today. Found via a
systematic,
markdown-aware audit of every `.md` under `docs/` (ignores code blocks,
inline
code, comments, and autolinks), so this is a complete sweep of the
hand-written
surface, not a spot fix.
## Changes
1. **`<kdb>` → `<kbd>` (72 tags).** The keyboard element is `<kbd>`;
`<kdb>` is
a typo that is not a real element, so renderers drop/mangle it and the
keystrokes lose their styling. Corrected across the IDE access guides
(`cursor.md`, `windsurf.md`, `antigravity.md`). The correct `<kbd>` is
already used in the JetBrains Gateway guide.
2. **Unclosed `<div class="tabs">` in `docs/admin/users/idp-sync.md`.**
The
"Provider-Specific Guides" section opened a `.tabs` container (rendered
as
the `DocsTabs` component) that was never closed, so the wrapper leaked
over
the rest of the page. Added the missing `</div>` before `## Next Steps`,
matching the three other tab sections in the same file.
3. **`<Image>` → `<img>` (6 tags).** `<Image>` is not a registered docs
component — it renders only because the HTML5 parser rewrites the legacy
`<image>` tag to `<img>`. Converted to lowercase `<img>` for correctness
and
clarity; rendering is unchanged. (`organizations.md`, `idp-sync.md`,
`add-envbuilder.md`.)
## Scope / what is intentionally not here
- **Generated reference docs.** The audit also found swallowed
placeholders in
generated pages (`<server>` in `reference/api/{chats,schemas}.md`;
`<glob>`/`<host>` in `agent-firewall`; `<region>` in `server`). Those
are
fixed at the generator source (codersdk comments / CLI flag help) and
tracked
in DOCS-551.
- **`<b>Resource<b>`** in the generated audit-logs table was fixed
separately in
#27293 (merged) and is not duplicated here.
- **`<children></children>`** is an intentional, renderer-implemented
docs
component (child-page card grid) with no HTML equivalent, so it is left
as-is.
It is well-formed; a follow-up CI checker will still verify its
open/close
balance.
A follow-up adds CI enforcement so invalid inline HTML can't regress.
<details>
<summary>Verification</summary>
Run against the changed files:
- `markdownlint-cli2` — 0 errors
- `markdown-table-formatter --check` — no changes needed
- `typos --config .github/workflows/typos.toml` — clean
- Re-running the audit scanner: hand-written `unclosed`, `<kdb>`, and
capitalized-component findings all drop to 0 (only the generated-doc
placeholders tracked in DOCS-551 remain).
</details>
## Linear
DOCS-581:
https://linear.app/codercom/issue/DOCS-581/audit-and-fix-all-invalid-html-across-the-docs
> This PR was created with AI assistance (Coder Agents).
This commit is contained in:
@@ -84,7 +84,7 @@ choose a template from the
|
||||
To set variables such as the namespace, go to the template in your Coder
|
||||
dashboard and select **Settings** from the **⋮** (vertical ellipsis) menu:
|
||||
|
||||
<Image height="255px" src="../../../../images/templates/template-menu-settings.png" alt="Choose Settings from the template's menu" align="center" />
|
||||
<img height="255px" src="../../../../images/templates/template-menu-settings.png" alt="Choose Settings from the template's menu" align="center" />
|
||||
|
||||
## Envbuilder Terraform provider
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ You can limit which groups from your identity provider can log in to Coder with
|
||||
[CODER_OIDC_ALLOWED_GROUPS](../../reference/cli/server.md#--oidc-allowed-groups).
|
||||
Users who are not in a matching group will see the following error:
|
||||
|
||||
<Image height="412px" src="../../images/admin/group-allowlist.png" alt="Unauthorized group error" align="center" />
|
||||
<img height="412px" src="../../images/admin/group-allowlist.png" alt="Unauthorized group error" align="center" />
|
||||
|
||||
## Role Sync
|
||||
|
||||
@@ -575,6 +575,8 @@ Steps to troubleshoot.
|
||||
groups claim field.
|
||||
Use [this answer from Stack Overflow](https://stackoverflow.com/a/55570286) for an example.
|
||||
|
||||
</div>
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [Configure OIDC Refresh Tokens](./oidc-auth/refresh-tokens.md)
|
||||
|
||||
@@ -27,7 +27,7 @@ are added to this organization by default.
|
||||
To edit the organization details, select **Admin settings** from the top bar, then
|
||||
**Organizations**:
|
||||
|
||||
<Image height="255px" src="../../images/admin/users/organizations/admin-settings-orgs.png" alt="Organizations Menu" align="center" />
|
||||
<img height="255px" src="../../images/admin/users/organizations/admin-settings-orgs.png" alt="Organizations Menu" align="center" />
|
||||
|
||||
From there, you can manage the name, icon, description, users, and groups:
|
||||
|
||||
@@ -59,11 +59,11 @@ To create a new organization:
|
||||
|
||||
1. Select the current organization to expand the organizations dropdown, then select **Create Organization**:
|
||||
|
||||
<Image height="212px" src="../../images/admin/users/organizations/org-dropdown-create.png" alt="Organizations dropdown and Create Organization" align="center" />
|
||||
<img height="212px" src="../../images/admin/users/organizations/org-dropdown-create.png" alt="Organizations dropdown and Create Organization" align="center" />
|
||||
|
||||
1. Enter the details and select **Save** to continue:
|
||||
|
||||
<Image height="579px" src="../../images/admin/users/organizations/new-organization.png" alt="New Organization" align="center" />
|
||||
<img height="579px" src="../../images/admin/users/organizations/new-organization.png" alt="New Organization" align="center" />
|
||||
|
||||
In this example, we'll create the `data-platform` org.
|
||||
|
||||
@@ -111,7 +111,7 @@ From **Admin settings**, select **Organizations**, then **Members** to add membe
|
||||
your organization. Once added, members will be able to see the
|
||||
organization-specific templates.
|
||||
|
||||
<Image height="365px" src="../../images/admin/users/organizations/organization-members.png" alt="Add members" align="center" />
|
||||
<img height="365px" src="../../images/admin/users/organizations/organization-members.png" alt="Add members" align="center" />
|
||||
|
||||
### 5. Create a workspace
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ Antigravity connects to your Coder workspaces using the Coder extension:
|
||||
Alternatively:
|
||||
|
||||
1. Open the Command Palette
|
||||
(<kdb>Ctrl</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb> or <kdb>Cmd</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb>) and search for `vsix`.
|
||||
(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> or <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>) and search for `vsix`.
|
||||
|
||||
1. Select **Extensions: Install from VSIX** and select the vscode-coder extension you downloaded.
|
||||
|
||||
@@ -42,7 +42,7 @@ Antigravity connects to your Coder workspaces using the Coder extension:
|
||||
|
||||
## Open a workspace in Antigravity
|
||||
|
||||
1. From the Antigravity Command Palette (<kdb>Ctrl</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb> or <kdb>Cmd</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb>),
|
||||
1. From the Antigravity Command Palette (<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> or <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>),
|
||||
enter `coder` and select **Coder: Login**.
|
||||
|
||||
1. Follow the prompts to login and copy your session token.
|
||||
|
||||
@@ -38,7 +38,7 @@ Cursor can connect to a Coder workspace using the Coder extension:
|
||||
Alternatively:
|
||||
|
||||
1. Open the Command Palette
|
||||
(<kdb>Ctrl</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb> or <kdb>Cmd</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb>)
|
||||
(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> or <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>)
|
||||
and search for `vsix`.
|
||||
|
||||
1. Select **Extensions: Install from VSIX** and select the vscode-coder extension you downloaded.
|
||||
@@ -52,7 +52,7 @@ Cursor can connect to a Coder workspace using the Coder extension:
|
||||
## Open a workspace in Cursor
|
||||
|
||||
1. From the Cursor Command Palette
|
||||
(<kdb>Ctrl</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb> or <kdb>Cmd</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb>),
|
||||
(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> or <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>),
|
||||
enter `coder` and select **Coder: Login**.
|
||||
|
||||
1. Follow the prompts to login and copy your session token.
|
||||
|
||||
@@ -42,7 +42,7 @@ Windsurf can connect to your Coder workspaces via SSH:
|
||||
Alternatively:
|
||||
|
||||
1. Open the Command Palette
|
||||
(<kdb>Ctrl</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb> or <kdb>Cmd</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb>) and search for `vsix`.
|
||||
(<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> or <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>) and search for `vsix`.
|
||||
|
||||
1. Select **Extensions: Install from VSIX** and select the vscode-coder extension you downloaded.
|
||||
|
||||
@@ -50,7 +50,7 @@ Windsurf can connect to your Coder workspaces via SSH:
|
||||
|
||||
## Open a workspace in Windsurf
|
||||
|
||||
1. From the Windsurf Command Palette (<kdb>Ctrl</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb> or <kdb>Cmd</kdb>+<kdb>Shift</kdb>+<kdb>P</kdb>),
|
||||
1. From the Windsurf Command Palette (<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> or <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>),
|
||||
enter `coder` and select **Coder: Login**.
|
||||
|
||||
1. Follow the prompts to login and copy your session token.
|
||||
|
||||
Reference in New Issue
Block a user