You can use YAML frontmatter to define versioning, add metadata, and control the layout for articles.
About YAML frontmatterYAML frontmatter is an authoring convention popularized by Jekyll that provides a way to add metadata to pages. It is a block of key-value content that lives at the top of every Markdown file within GitHub Docs. For more information, see the YAML frontmatter documentation.
YAML frontmatter valuesThe following frontmatter values have special meanings and requirements for GitHub Docs. There's also a schema that's used by the test suite to validate every page's frontmatter. For more information, see lib/frontmatter.js
.
versions
redirect_from
title
shortTitle
intro
permissions
product
layout
children
childGroups
featuredLinks
showMiniToc
allowTitleToDifferFromFilename
changelog
defaultPlatform
defaultTool
learningTracks
includeGuides
type
topics
communityRedirect
effectiveDate
versions
Object
. Allowable keys map to product names and can be found in the versions
object in lib/frontmatter.js
.*
is used to denote all releases for the version.index.md
files, but actual value is computed at runtime based on the children.This frontmatter value is used by the docs site to generate "permalinks" for each version of an article. For more information, see Permalinks.
Example that applies to Free, Pro, & Team and GitHub Enterprise Server version 3.11 and later:
title: About your personal dashboard
versions:
fpt: '*'
ghes: '>=3.11'
Example that applies only to GitHub Enterprise Server:
title: Downloading your license
versions:
ghes: '*'
You can also version a page for a range of releases. This would version the page for Free, Pro, & Team, and GitHub Enterprise Server versions 3.1 and 3.2 only:
versions:
fpt: '*'
ghes: '>=3.1 <3.3'
redirect_from
Array
Example:
title: Getting started with GitHub Desktop
redirect_from:
- /articles/first-launch
- /articles/error-github-enterprise-version-is-too-old
- /articles/getting-started-with-github-for-windows
For more information, see Configuring redirects.
title
<title>
tag and an h1
element at the top of the page.String
<title>
will still be set, albeit with a generic value like GitHub.com
or GitHub Enterprise
.shortTitle
String
title
will be used.Example:
title: Contributing to projects with GitHub Desktop
shortTitle: Contributing to projects
intro
title
.String
permissions
intro
.String
product
intro
and permissions
statement.String
layout
String
that matches the name of the layout. For a layout named components/landing
, the value would be product-landing
.DefaultLayout
is used.children
Array
. Default is false
.index.md
pages.childGroups
Array
. Default is false
.index.md
.featuredLinks
Object
.The list of popular links are the links displayed on the landing page under the title "Popular." Alternately, you can customize the title "Popular" by setting the featuredLinks.popularHeading
property to a new string.
Example:
featuredLinks:
gettingStarted:
- /path/to/page
startHere:
- /guides/example
popular:
- /path/to/popular/article1
- /path/to/popular/article2
popularHeading: An alternate heading to Popular
showMiniToc
Boolean
. Default is true
on articles, and false
on map topics and index.md
pages.allowTitleToDifferFromFilename
content/rest/reference/orgs.md
has a title of Organizations
instead of Orgs
. Pages with this frontmatter set to true
will not be flagged in tests or updated by src/content-render/scripts/reconcile-filenames-with-ids.js
.Boolean
. Default is false
.changelog
components/landing
). The one exception is Education, which pulls from https://github.blog/category/community/education.Object
, properties:
label
-- must be present and corresponds to the labels used in the GitHub Changelogprefix
-- optional string that starts each changelog title that should be omitted in the docs feed. For example, with the prefix GitHub Actions:
specified, changelog titles like GitHub Actions: Some Title Here
will render as Some Title Here
in the docs feed.defaultPlatform
String
, one of: mac
, windows
, linux
.Example:
defaultPlatform: linux
defaultTool
String
, one of: webui
, cli
, desktop
, curl
, codespaces
, vscode
, importer_cli
, graphql
, powershell
, bash
, javascript
.defaultTool: cli
learningTracks
String
. This should reference learning tracks' names defined in data/learning-tracks/*.yml
.Note
The featured track is set by a specific property in the learning tracks YAML. See that README for details.
includeGuides
type
and topics
. Only applicable when used with layout: product-guides
.Array
Example:
includeGuides:
- /actions/guides/about-continuous-integration
- /actions/guides/setting-up-continuous-integration-using-workflow-templates
- /actions/guides/building-and-testing-nodejs
- /actions/guides/building-and-testing-powershell
type
String
, one of the overview
, quick_start
, tutorial
, how_to
, reference
, rai
.topics
String
sAsk the GitHub community
link in the footer.Object
. Properties are name
and href
.effectiveDate
string
YEAR-MONTH-DAY e.g. 2021-10-04 is October 4th, 2021Note
The effectiveDate
frontmatter value is for use by GitHub staff only.
If you see two single quotes in a row (''
) in YAML frontmatter where you might expect to see one ('
), this is the YAML-preferred way to escape a single quote.
As an alternative, you can change the single quotes surrounding the frontmatter field to double quotes and leave interior single quotes unescaped.
Autogenerated mini TOCsEvery article displays a mini table of contents (TOC), which is an autogenerated "In this article" section that includes links to all H2
s in the article. Only H2
headers are included in the mini TOCs. If an article uses H3
or H4
headers to divide information in a way that only certain sections are relevant to a particular task, you can help people navigate to the content most relevant to them by using a sectional TOC.
You can use the showMiniToc
frontmatter value, set to false
, to prevent the mini TOC from showing up for an article.
Mini TOCs do not appear on product landing pages, category landing pages, or map topic pages.
Do not add hardcoded "In this article" sections in the Markdown source or else the page will display duplicate mini TOCs.
FilenamesWhen adding a new article, make sure the filename is a kebab-cased version of the title you use in the article's title
frontmatter. This can get tricky when a title has punctuation (such as "GitHub's Billing Plans"). A test will flag any discrepancies between title and filename. To override this requirement for a given article, you can add allowTitleToDifferFromFilename
frontmatter.
Index pages are the table of contents files for the Docs site. Every product, category, and map topic subdirectory has an index.md
file that provides an overview of the content and links to every child article. Each index.md
must contain a children
frontmatter property with a list of relative links to the child pages of the product, category, or map topic. Index pages require a versions
frontmatter property, and the actual value will be computed at runtime based on the versions of children articles.
Note
The site only knows about paths included in children
frontmatter. If a directory or article exists but is not included in children
, its path will return a 404.
The homepage is the main Table of Contents file for the docs site. The homepage must have a complete list of children
, like every Index page but must also specify the childGroups
frontmatter property that will be highlighted in the main content area.
childGroups
is an array of mappings containing a name
for the group, an optional icon
for the group, and an array of children
. The children
in the array must be present in the children
frontmatter property.
To create a product guides page (e.g. GitHub Actions Guide page), create or modify an existing markdown file with these specific frontmatter values:
layout: product-guides
.learningTracks
. Optional.includeGuides
. Optional.If using learning tracks, they need to be defined in data/learning-tracks/*.yml
. If using includeGuides
, make sure each of the articles in this list has topics
and type
in its frontmatter.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4