orchardcore-docs-writer
OrchardCMS/OrchardCore/.agents/skills/orchardcore-docs-writer/SKILL.md
Authors OrchardCore documentation — MkDocs Material pages, module README docs, nav entries, admonitions, tabbed content, and redirects. Use when the user needs to add or edit a docs page, document a new module, build/serve the docs site, or wire a page into the navigation.
Skill8.2k starsChanged 9 days ago
- Installs packages
What's in it
- OrchardCore Docs Writer
- Where pages live
- Workflow A: add a page to an existing area
- Step 1: Write the Markdown
- Step 2: Add it to the nav
- Step 3: Build / preview
- Workflow B: document a new module
- Markdown conventions
- Admonitions
- Tabbed content
- Code fences
- YouTube embeds
- Moving / renaming a page
- Quick Reference
- Toolchain
- Enabled Markdown extensions
- Module header
- Gotchas
- References
---
name: orchardcore-docs-writer
description: Authors OrchardCore documentation — MkDocs Material pages, module README docs, nav entries, admonitions, tabbed content, and redirects. Use when the user needs to add or edit a docs page, document a new module, build/serve the docs site, or wire a page into the navigation.
---
# OrchardCore Docs Writer
This skill guides you through writing OrchardCore documentation following project conventions.
Docs are **MkDocs** + **Material for MkDocs**. Config: `mkdocs.yml` at repo root; pages live under `src/docs/`. The nav is **explicit** in `mkdocs.yml` — a new `.md` file is invisible until you add it to `nav:`.
## Where pages live
| Section | Path under `src/docs/` |
|---------|------------------------|
| Home | `README.md` |
| Getting started | `getting-started/` |
| Guides (tutorials) | `guides/<name>/README.md` |
| Key topics | `topics/<topic>/README.md` |
| Module reference | `reference/modules/<Name>/README.md` |
| Releases | `releases/` |
| Contributing | `contributing/` |
Module name in the path drops the `OrchardCore.` prefix: `OrchardCore.Title` → `reference/modules/Title/README.md`.
## Workflow A: add a page to an existing area
### Step 1: Write the Markdown
Create the file under the right section. For a module, use the header convention:
```markdown
# Title (`OrchardCore.Title`)
Short description of what the module does.
## Section
...
```
### Step 2: Add it to the nav
Edit `mkdocs.yml` `nav:` under the matching parent. Format `- Page Title: path/to/file.md`:
```yaml
nav:
- Reference:
- Modules:
- Core Modules:
- Display Management: reference/modules/DisplayManagement/README.md
- My Module: reference/modules/MyModule/README.md # added
```
### Step 3: Build / preview
```bash
pip install -r src/docs/requirements.txt # first time (Python 3.11+)
python -m mkdocs serve # http://127.0.0.1:8000
python -m mkdocs build # static site
```
## Workflow B: document a new module
1. Create `src/docs/reference/modules/<Name>/README.md` (no `OrchardCore.` prefix) with the `# Name (`OrchardCore.Name`)` header.
2. Link it from `src/docs/reference/modules/README.md` (the module index).
3. Add a `nav:` entry in `mkdocs.yml` under the right category (CMS Modules / Core Modules / Content Parts / …).
4. If it's a content part, also link from `reference/modules/ContentParts/README.md`.
Module docs are **not** auto-discovered from the manifest — every link is manual.
## Markdown conventions
### Admonitions
```markdown
!!! note
A neutral aside.
!!! warning
Something that can bite.
!!! tip
A helpful suggestion.
```
### Tabbed content
```markdown
=== "App.razor"
```razor
<!DOCTYPE html>
```
=== "_Imports.razor"
```csharp
@using System.Net.Http
```
```
### Code fences
Always tag the language: ` ```csharp `, ` ```json `, ` ```bash `, ` ```liquid `.
### YouTube embeds
Use privacy mode — `https://www.youtube-nocookie.com/embed/<id>`.
## Moving / renaming a page
Add a redirect so old links survive. In `mkdocs.yml` under `plugins: redirects: redirect_maps:`:
```yaml
redirect_maps:
'old/path/README.md': 'new/path/README.md'
```
## Quick Reference
### Toolchain
| Item | Value |
|------|-------|
| Generator | MkDocs + Material for MkDocs |
| Config | `mkdocs.yml` (root) |
| Docs dir | `src/docs` |
| Deps | `src/docs/requirements.txt` |
| Serve | `python -m mkdocs serve` |
| Build | `python -m mkdocs build` |
### Enabled Markdown extensions
Admonitions (`!!! type`), `pymdownx.superfences` (code), `pymdownx.tabbed` (`=== "Tab"`), `pymdownx.snippets` (file embed), `pymdownx.tasklist`, `toc` with permalinks.
### Module header
```markdown
# <Display Name> (`OrchardCore.<Id>`)
```
## Gotchas
- A new page must be added to `nav:` in `mkdocs.yml` or it won't appear (build warns about pages not in nav).
- Tabbed content needs a blank line after `=== "Label"` and 4-space indentation of the block.
- Use repo-relative Markdown links between docs pages (`../Placement/README.md`), not absolute URLs.
- When moving a page, add a `redirect_maps` entry — broken inbound links otherwise.
- Match the module-header convention exactly; the docs are scanned for consistency.
## References
- `references/docs-structure.md` — full directory map, nav anatomy, extensions, redirects
- `src/docs/contributing/contributing-documentation.md` (repo) — official guide
- `mkdocs.yml` (repo root) — config + nav
- `AGENTS.md` (repo root) — build commands
More agent context in OrchardCMS/OrchardCore
16 other files this repository gives its agents.
AGENTS.md
Skill
- orchardcore-admin-edit-views.agents/skills/orchardcore-admin-edit-views/SKILL.md
- orchardcore-asset-manager.agents/skills/orchardcore-asset-manager/SKILL.md
- orchardcore-breadcrumbs.agents/skills/orchardcore-breadcrumbs/SKILL.md
- orchardcore-data-migration.agents/skills/orchardcore-data-migration/SKILL.md
- orchardcore-display-management.agents/skills/orchardcore-display-management/SKILL.md
- orchardcore-localization.agents/skills/orchardcore-localization/SKILL.md
- orchardcore-module-creator.agents/skills/orchardcore-module-creator/SKILL.md
- orchardcore-nswag-regenerate.agents/skills/orchardcore-nswag-regenerate/SKILL.md
- orchardcore-query-indexing.agents/skills/orchardcore-query-indexing/SKILL.md
- orchardcore-recipe-creator.agents/skills/orchardcore-recipe-creator/SKILL.md
- orchardcore-tenants.agents/skills/orchardcore-tenants/SKILL.md
- orchardcore-tester.agents/skills/orchardcore-tester/SKILL.md
- orchardcore-theme-creator.agents/skills/orchardcore-theme-creator/SKILL.md
- orchardcore-unit-test.agents/skills/orchardcore-unit-test/SKILL.md
- orchardcore-workflow-activity.agents/skills/orchardcore-workflow-activity/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

