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.
74
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
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:.
| 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.
Create the file under the right section. For a module, use the header convention:
# Title (`OrchardCore.Title`)
Short description of what the module does.
## Section
...Edit mkdocs.yml nav: under the matching parent. Format - Page Title: path/to/file.md:
nav:
- Reference:
- Modules:
- Core Modules:
- Display Management: reference/modules/DisplayManagement/README.md
- My Module: reference/modules/MyModule/README.md # addedpip 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 sitesrc/docs/reference/modules/<Name>/README.md (no OrchardCore. prefix) with the # Name (OrchardCore.Name) header.src/docs/reference/modules/README.md (the module index).nav: entry in mkdocs.yml under the right category (CMS Modules / Core Modules / Content Parts / …).reference/modules/ContentParts/README.md.Module docs are not auto-discovered from the manifest — every link is manual.
!!! note
A neutral aside.
!!! warning
Something that can bite.
!!! tip
A helpful suggestion.=== "App.razor"
```razor
<!DOCTYPE html>
```
=== "_Imports.razor"
```csharp
@using System.Net.Http
```Always tag the language: ```csharp, ```json, ```bash, ```liquid.
Use privacy mode — https://www.youtube-nocookie.com/embed/<id>.
Add a redirect so old links survive. In mkdocs.yml under plugins: redirects: redirect_maps::
redirect_maps:
'old/path/README.md': 'new/path/README.md'| 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 |
Admonitions (!!! type), pymdownx.superfences (code), pymdownx.tabbed (=== "Tab"), pymdownx.snippets (file embed), pymdownx.tasklist, toc with permalinks.
# <Display Name> (`OrchardCore.<Id>`)nav: in mkdocs.yml or it won't appear (build warns about pages not in nav).=== "Label" and 4-space indentation of the block.../Placement/README.md), not absolute URLs.redirect_maps entry — broken inbound links otherwise.references/docs-structure.md — full directory map, nav anatomy, extensions, redirectssrc/docs/contributing/contributing-documentation.md (repo) — official guidemkdocs.yml (repo root) — config + navAGENTS.md (repo root) — build commandsb0e1e44
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.