Repository navigation
docs: publish user docs at docs.coder.ddev.com with Zensical, add freeform guide - #231
Merged
Merged
Conversation
…eform guide ## Short Summary (TL;DR) Moves the Markdown docs into a Zensical site, set up the same way as ddev/ddev's, to be published by Read the Docs at docs.coder.ddev.com. Adds user docs for hosted coder.ddev.com, including a freeform guide, and puts a Documentation button at the top of start.coder.ddev.com. ## The Issue Jekyll rendered the Markdown docs on start.coder.ddev.com with no navigation or search, and the landing page linked only the Drupal quickstart. Freeform had no user guide, and its README was out of date: it still described single-project URLs and showed `enable_adminer` as a user choice, but it is an admin-only template variable. User and admin material were mixed together. ## How This PR Solves The Issue - The docs move to `docs/content/` with a root `mkdocs.yml`, `docs/requirements.txt` and `.readthedocs.yaml`, all taken from ddev/ddev. GitHub Pages serves one custom domain per repository, and start.coder.ddev.com keeps it for the landing pages and deep-link builders. - New pages for coder.ddev.com users: getting started, access, choosing a template, the freeform guide (every parameter, first project, multiple projects, recipes, services and add-ons, sharing), workspace lifecycle (persistence, the idle-deletion policy, the startup hook, disk), editors/SSH/files, Claude Code and troubleshooting. Existing docs move under Drupal, Reference and Self-Hosting. - Landing page: a top bar with a Documentation button, docs links in the intro box, the freeform tile and Resources, and a Documentation link in the drupal-issue and drupal-core page headers. Jekyll excludes `docs/content/`, and `jekyll-redirect-from` stubs send the old `/user/*`, `/admin/*`, `/architecture/*` and `/reference/*` URLs to the new pages. - `freeform/README.md` is cut down to a contributor summary that links to the docs. README and AGENTS.md now describe the two sites and the docs checks. ## Manual Testing Instructions - Open the Read the Docs PR preview and check the navigation, search and the freeform pages. - Open the start.coder.ddev.com PR preview. The Documentation button should be at the top, and `/user/quickstart` should redirect to `https://docs.coder.ddev.com/drupal/quickstart/`. - On staging-coder.ddev.com, follow the freeform pages: create a workspace with two project names, then do the first project, add a second project, try a few recipes and turn on Public Sharing. The recipes, especially WordPress, Node.js and Vite, have not been run in a workspace yet. ## Automated Testing Overview A new `docs-check.yml` workflow runs `zensical build --strict`, markdownlint (ddev's `.markdownlint.jsonc`), linkspector and `scripts/check-doc-params.sh`. That script fails when a `param.<name>` deep link under `docs/` names a `coder_parameter` that no template or shared module defines. `make docs-check` runs the same checks locally, except linkspector. Fixing the existing docs for markdownlint also fixed lists and code blocks that were rendering as plain paragraphs. Five dead external links were fixed by hand. ## Release/Deployment Notes Before merging, create a Read the Docs project for ddev/coder-ddev with PR builds and single-version URLs, add the custom domain `docs.coder.ddev.com`, and add the DNS CNAME. Until then, the redirect stubs on start.coder.ddev.com point at a domain that doesn't resolve. 🤖 Developed with assistance from [Claude Code](https://claude.ai/code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrTUMw3UoHt66UH5tSoYTd
|
The `docs-check` linkspector step failed on a placeholder link in the sponsor notification template, which markdownlint's auto-fix had turned into a broken URL. A full linkspector run, which pull request mode skips because it checks only added lines, found two more problems in the Drupal quickstart: links to `/drupal-issue` and `/drupal-core` that only worked when the page was served from start.coder.ddev.com, and a moved repository (`ddev-drupal-contrib` now lives under `ddev`). - Write the template's org URL placeholder as code instead of a link, and exclude the `coder-ddev-com` message templates from linkspector, since they contain placeholder URLs by design. - Replace the quickstart's Jekyll-styled HTML tiles, which Zensical doesn't style, with Zensical cards that link to the pickers on start.coder.ddev.com. - Point the `ddev-drupal-contrib` link at `ddev/ddev-drupal-contrib`. A full local linkspector run (0.5.6) now reports all links valid. 🤖 Developed with assistance from [Claude Code](https://claude.ai/code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrTUMw3UoHt66UH5tSoYTd
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Short Summary (TL;DR)
Moves the Markdown docs into a Zensical site, set up the same way as ddev/ddev's, to be published by Read the Docs at docs.coder.ddev.com. Adds user docs for hosted coder.ddev.com, including a freeform guide, and puts a Documentation button at the top of start.coder.ddev.com.
The Issue
Jekyll rendered the Markdown docs on start.coder.ddev.com with no navigation or search, and the landing page linked only the Drupal quickstart. Freeform had no user guide, and its README was out of date: it still described single-project URLs and showed
enable_admineras a user choice, but it is an admin-only template variable. User and admin material were mixed together.How This PR Solves The Issue
docs/content/with a rootmkdocs.yml,docs/requirements.txtand.readthedocs.yaml, all taken from ddev/ddev. GitHub Pages serves one custom domain per repository, and start.coder.ddev.com keeps it for the landing pages and deep-link builders.docs/content/, andjekyll-redirect-fromstubs send the old/user/*,/admin/*,/architecture/*and/reference/*URLs to the new pages.freeform/README.mdis cut down to a contributor summary that links to the docs. README and AGENTS.md now describe the two sites and the docs checks.Manual Testing Instructions
/user/quickstartshould redirect tohttps://docs.coder.ddev.com/drupal/quickstart/.Automated Testing Overview
A new
docs-check.ymlworkflow runszensical build --strict, markdownlint (ddev's.markdownlint.jsonc), linkspector andscripts/check-doc-params.sh. That script fails when aparam.<name>deep link underdocs/names acoder_parameterthat no template or shared module defines.make docs-checkruns the same checks locally, except linkspector. Fixing the existing docs for markdownlint also fixed lists and code blocks that were rendering as plain paragraphs. Dead external links were fixed, and a full local linkspector run (0.5.6, all pages rather than only added lines) reports every link valid. Thecoder-ddev-commessage templates are excluded from linkspector because they contain placeholder URLs by design.Release/Deployment Notes
Before merging, create a Read the Docs project for ddev/coder-ddev with PR builds and single-version URLs, add the custom domain
docs.coder.ddev.com, and add the DNS CNAME. Until then, the redirect stubs on start.coder.ddev.com point at a domain that doesn't resolve.🤖 Developed with assistance from Claude Code
https://claude.ai/code/session_01UrTUMw3UoHt66UH5tSoYTd