Developer guide for docs/pages
Goal
This page explains exactly how to add, edit, test, and publish documentation pages in the current Jekyll format used by docs/pages.
This is an internal authoring guide and is intentionally not indexed in the sidebar.
Architecture summary
- Source of truth is Markdown in
docs/pages/*.md. - Shared UI comes from
_layoutsand_includes. - Sidebar is generated from page metadata (
doc_type,order). - Back/Next buttons are generated from
sequence. - Pages are built by Jekyll and deployed by GitHub Actions.
Required tools
- Ruby + Jekyll installed.
- A terminal that can run
jekyll. - Access to this repository and push permission to
main.
If jekyll is not available in your terminal session:
$env:Path='C:\Ruby33-x64\bin;'+$env:Path
jekyll -v
Add a new page (step by step)
1. Choose the page type
Pick one doc_type:
tutorialhow-toreferenceexplanation
2. Create the file
Create docs/pages/<slug>.md.
Use this template:
---
title: Page title
description: One sentence summary.
doc_type: reference
order: 3
sequence: 10
permalink: /your-page.html
---
Rules:
title: short and clear.description: what the page solves.doc_type: controls sidebar group.order: controls order inside the group.sequence: controls Back/Next flow.permalink: public URL, keep.html.
3. Write the content
Use a single page purpose:
- Tutorial: learning path.
- How-to: task execution.
- Reference: exact behavior and values.
- Explanation: architecture and reasoning.
Formatting rules:
- Start sections with
##. - Use fenced blocks with language, for example
json,yaml,bash,skript. - Use callouts with GitHub alert syntax when needed:
> [!NOTE],> [!TIP],> [!IMPORTANT],> [!WARNING],> [!CAUTION]. - Keep links relative, for example
[Installation](installation.html).
4. Decide if the page should be indexed
For normal docs pages:
- keep
nav_excludeunset (orfalse) - include
doc_type,order,sequence
For internal pages (like this one):
- set
nav_exclude: true - omit
doc_type,order,sequenceunless you want Back/Next
5. Build locally
$env:Path='C:\Ruby33-x64\bin;'+$env:Path
jekyll build --source docs/pages --destination docs/pages/_site_test
6. Validate generated output
Open generated files in docs/pages/_site_test/ and confirm:
- No Liquid errors during build.
- Sidebar placement is correct.
- Back/Next appears and points to expected pages.
- Code blocks show copy button.
- URL matches
permalink.
7. Commit and push
git add docs/pages
git commit -m "docs: add <page-name>"
git push
Do not commit docs/pages/_site_test/.
Edit an existing page
- Update the target
.mdfile. - If the title or purpose changed, review links in related pages.
- If sequence changed, review Back/Next neighbors.
- Build locally and verify.
- Commit and push.
Add a new feature to docs (recommended update order)
When a new plugin feature is added, update docs in this order:
- Reference page first (
schema-keywords,validation-behavior, or new reference page). - How-to page for operational usage.
- Tutorial/examples page showing a practical scenario.
- Architecture page only if internal flow changed.
Version labels (docs vs plugin)
Version settings live in docs/pages/_config.yml:
docs_versionlatest_docs_versionlatest_docs_urlplugin_version_range
Behavior:
- Header badge uses
docs_version. - Article meta line uses
plugin_version_range. - Warning banner appears only if
docs_version != latest_docs_version.
Common mistakes and fixes
- Sidebar entry missing:
- check
doc_type,order, andnav_exclude.
- check
- Back/Next missing:
- check
sequenceexists and is unique.
- check
- Page opens but style/script is broken:
- check
baseurland deployment path.
- check
- 404 on GitHub Pages:
- check Actions run status and Jekyll build output.
- Code block not copyable:
- ensure fenced block syntax is valid and builds into
<pre><code>.
- ensure fenced block syntax is valid and builds into
Files you will edit most often
docs/pages/*.mddocs/pages/_config.ymldocs/pages/_layouts/default.htmldocs/pages/_includes/sidebar.htmldocs/pages/_includes/nav-arrows.htmldocs/pages/assets/js/modern-docs.jsdocs/pages/assets/css/modern-docs.css