Learning tracks are a collection of articles that help you master a particular subject. Learning tracks are defined on a per-product basis. For example, see https://docs.github.com/en/actions/guides.
Learning track data for a product is defined in two places:
-
A simple array of learning track names is defined in the product sublanding index page frontmatter.
For example, in
content/actions/guides/index.md
:learningTracks: - getting_started - continuous_integration - continuous_deployment - deploy_to_the_cloud - hosting_your_own_runners - create_actions
-
Additional data for each track is defined in a YAML file named for the product in the
data
directory.For example, in
data/learning-tracks/actions.yml
, each of the items from the list in #1 is represented with additional data such astitle
,description
, and a list ofguides
links.One, and only one, learning track in this YAML must be designated as a "featured" learning track via
featured_track: true
, which will set it to appear at the top of the product sublanding page. A test will fail if this property is missing.
Versioning for learning tracks is processed at page render time. The code lives in lib/learning-tracks.js
, which is called by page.render()
. The processed learning tracks are then rendered by layouts/product-sublanding.html
.
The schema for validating the learning track YAML lives in tests/helpers/schemas/learning-tracks-schema.js
and is exercised by tests/content/lint-files.js
.