Skip to content

Add related learning catalogue - #3877

Open
lcawl wants to merge 4 commits into
mainfrom
learning-links
Open

Add related learning catalogue#3877
lcawl wants to merge 4 commits into
mainfrom
learning-links

Conversation

@lcawl

@lcawl lcawl commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Relates to #1328

Summary

docs-builder now appends a Related learning section on mapped documentation pages. Links come from a global catalog in docs-builder, not from page authors.

Catalog

  • File: config/related-learning.yml (embedded like products.yml)
  • Each entry has a stable ID, title, absolute https:// URL, and a list of pages
  • Pages must be qualified cross-links (docs-content://path.md). Unqualified paths fail catalog load
  • Destinations can be mixed (training, labs, etc.). The first four entries are training modules:
    • apm-with-elasticdocs-content://solutions/observability/apm/index.md
    • elastic-agentdocs-content://reference/fleet/index.md
    • index-basicsdocs-content://manage-data/data-store/index-basics.md
    • data-types-and-mappingsdocs-content://manage-data/data-store/mapping.md

Matching is {current-repository}://{path-relative-to-docset}, case-sensitive, catalog file order. Missing files do not fail the build; the link simply does not appear.

How it renders

After parse, if the page matches the catalog, docs-builder appends:

  1. A real Markdown H2 (Related learning, slug related-learning-heading)
  2. A list of external links (target="_blank" + rel="noopener noreferrer")

The H2 is a normal heading, so On this page includes it automatically. If the page has footnotes, the section is inserted before the footnotes group.

Config loading

The catalog is loaded only on BuildContext from ConfigurationFileProvider. It is not part of IConfigurationContext, DI, or AssembleContext. Isolated and assembler builds both pick it up because they construct BuildContext.

Screenshots

When I run ./build.sh publishbinaries then use that build to serve the docs-content docs, I see the new section:

image

Generative AI disclosure

  1. Did you use a generative AI (GenAI) tool to assist in creating this contribution?
  • Yes
  • No
  1. If you answered "Yes" to the previous question, please specify the tool(s) and model(s) used (e.g., Google Gemini, OpenAI ChatGPT-4, etc.).

Tool(s) and model(s) used: Cursor Grok 4.6

@KOTungseth

Copy link
Copy Markdown
Contributor

Welcome to the first episode of vibe coding with Lisa and Kaarina.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants