docs/.map/README.md
Publishing documentation to Learn involves a few key steps. Follow this guide carefully to avoid broken links or failed builds.
:warning: Before You Begin
| Step | Action | Output |
|---|---|---|
| 1 | Edit map.yaml alongside your doc changes. Update nodes and ordering as needed. | Docs mapped with proper sidebar labels, paths, and edit links. |
| 2 | Test locally with the ingest.py script. Optionally run a full local Learn deployment. | Confirms no broken links or build errors. |
| 3 | Merge the Docs PR (requires approval). | Docs + map.yaml merged into the repo. |
| 4 | Inspect the automatic Learn ingest PR. Check files + deploy preview. | Verified preview of Learn with changes. |
| 5 | Merge the Learn ingest PR. | Docs officially live on Learn. |
map.yamlAll docs must be mapped in the map.yaml file. The file is an ordered navigation tree under the top-level sidebar: key.
Each node is either:
meta object)meta + items)type: integration_placeholder)meta fields| Field | Purpose | Notes |
|---|---|---|
| label | The label shown in the sidebar. | For category overview pages, this should match the sidebar position. Categories are defined by having items. |
| path | Single path segment override (optional). | Used when the document's Learn path segment differs from the tree structure. Example: OpenTelemetry (not a full path). If omitted, the path is derived from the tree hierarchy. |
| edit_url | Full GitHub Edit link for the file. Used for the "Edit this page" button. | Must use the full link (supports repos beyond netdata/netdata). Can be omitted only for nodes with integration_placeholder children (the integrations themselves will have edit URLs). |
| keywords | List of keywords for search. | Example: ["install", "linux"] |
| description | Legacy metadata description. | Rarely used today. |
The full Learn path for each document is automatically reconstructed by walking the tree hierarchy and concatenating parent labels. The path field in meta is only needed when a document's path segment differs from its tree position.
For example, a document appearing under "Collecting Metrics" in the sidebar with path: OpenTelemetry will have Learn path OpenTelemetry instead of Collecting Metrics/OpenTelemetry Metrics.
- type: integration_placeholder
integration_kind: collectors
Placeholders are positional: the ingest pipeline replaces them in-place with generated integration entries while preserving list order.
- meta:
label: "Linux"
edit_url: "https://github.com/netdata/netdata/edit/master/docs/installation/linux.md"
description: "How to install Netdata Agent on Linux"
keywords:
- "install"
- "linux"
Before merging, always test the map file.
Clone Learn locally.
Prepare environment and dependencies (see ingest instructions).
Run the ingest command:
python3 ingest/ingest.py --repos OWNEROFREPO/netdata:YOURBRANCH
Inspect the ingested changes.
(Optional, advanced) Deploy Learn locally to confirm it builds correctly.
map.yaml.Once your docs PR is merged:
🍻 Done!
If you delete, move, or unpublish a file, redirects may break.
Ctrl+F) for the old GitHub link.