Skip to content

Commit 83e5bea

Browse files
guntripethanpalm
andauthored
Splitting up the content model (#42868)
Co-authored-by: Ethan Palm <[email protected]>
1 parent bc0f928 commit 83e5bea

30 files changed

+725
-665
lines changed

content/contributing/collaborating-on-github-docs/about-contributing-to-github-docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ For content changes, make sure that you:
5353

5454
- Confirm that the changes meet the user experience and goals outlined in the content design plan (if there is one).
5555
- Review the content for technical accuracy.
56-
- Check your changes for grammar, spelling, and adherence to the [AUTOTITLE](/contributing/writing-for-github-docs/style-guide).
56+
- Check your changes for grammar, spelling, and adherence to the [AUTOTITLE](/contributing/style-guide-and-content-model/style-guide).
5757
- Make sure the text in your pull request will be easy to translate. For more information, see "[AUTOTITLE](/contributing/writing-for-github-docs/writing-content-to-be-translated)."
5858
- Check new or updated Liquid statements to confirm that versioning is correct. For more information, see "[AUTOTITLE](/contributing/syntax-and-versioning-for-github-docs/versioning-documentation)."
5959
- Check the preview of any pages you have changed. A preview is automatically generated after you submit a pull request and links are added to the pull request. The preview sometimes takes several minutes before it is ready to view. Confirm that everything is rendering as expected. Checking the preview will help you identify problems such as typos, content that doesn't follow the style guide, or content that isn't rendering due to versioning problems. Make sure to check the rendered output for lists and tables, which can sometimes have problems that are difficult to identify in the Markdown.

content/contributing/collaborating-on-github-docs/self-review-checklist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ Before you submit your changes to the {% data variables.product.prodname_docs %}
1212
- After opening your pull request, view your changes on staging to confirm the article renders as expected and matches the source. This helps spot issues like typos, content that doesn't follow the style guide, or content that isn't rendering due to versioning problems.
1313
- Review your changes for technical accuracy.
1414
- Review your entire pull request to ensure it follows our guidance on creating content that can be translated. For more information, see "[AUTOTITLE](/contributing/writing-for-github-docs/writing-content-to-be-translated)."
15-
- Check your changes for grammar, spelling, and adherence to the style guide. For more information, see "[AUTOTITLE](/contributing/writing-for-github-docs/style-guide)."
15+
- Check your changes for grammar, spelling, and adherence to the style guide. For more information, see "[AUTOTITLE](/contributing/style-guide-and-content-model/style-guide)."
1616
- If you have added new versioning or made changes to existing versioning, confirm your changes render as expected while viewing each available version of the article.
1717
- If there are any failing checks in your pull request, troubleshoot them until they're all passing.

content/contributing/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ versions:
99
featuredLinks:
1010
startHere:
1111
- /contributing/writing-for-github-docs/about-githubs-documentation-philosophy
12-
- /contributing/writing-for-github-docs/style-guide
13-
- /contributing/writing-for-github-docs/content-model
12+
- /contributing/style-guide-and-content-model/style-guide
13+
- /contributing/style-guide-and-content-model/about-the-content-model
1414
- /contributing/collaborating-on-github-docs/about-contributing-to-github-docs
1515
changelog:
1616
label: docs
1717
children:
1818
- /writing-for-github-docs
19-
- /syntax-and-versioning-for-github-docs
19+
- /style-guide-and-content-model
2020
- /collaborating-on-github-docs
2121
- /setting-up-your-environment-to-work-on-github-docs
2222
---
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
title: About combining multiple content types
3+
shortTitle: Combining multiple types
4+
intro: 'You can combine multiple content types in a single article to help people complete complex tasks.'
5+
product: '{% data reusables.contributing.product-note %}'
6+
versions:
7+
feature: 'contributing'
8+
---
9+
10+
Often, it's helpful to group information in context to help people complete a complex task, understand a set of related tasks, or illustrate an entire workflow. Use longer articles combining content types to ensure people find contextual content in the right place. Longer articles also help eliminate duplication of content and prepare content to scale as more options are added to the product. People most often need longer articles while actively using the product, and they may need to consult the article at different points on their journey.
11+
12+
## How to combine multiple content types in an article
13+
14+
- Use conceptual, procedural, referential, troubleshooting, or known issue content in a longer article, and do not use quickstart or tutorials.
15+
- Use sections of different content types in the article as needed, and follow title guidelines for the content type.
16+
- Most often, these articles will contain at least one procedural section plus at least one additional conceptual, referential, or procedural section.
17+
- Use the content ordering guidelines to organize headers within the article.
18+
- Use troubleshooting information as frequently as possible.
19+
- You can replicate the article’s title in a header if needed.
20+
21+
## Title guidelines for articles that combine multiple content types
22+
23+
- If there is a procedure within the article, use a task-based title that begins with a gerund.
24+
- Titles are general enough to describe the range of information and tasks contained within the article.
25+
- Titles describe the setting being toggled and are agnostic about what setting the reader chooses, e.g., "Setting repository visibility” instead of "Making a private repository public.”
26+
27+
## Examples of articles that combine multiple content types
28+
29+
- [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility)
30+
- [AUTOTITLE](/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise)
31+
- [AUTOTITLE](/free-pro-team@latest/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription)
32+
- [AUTOTITLE](/enterprise-server@latest/admin/configuration/enabling-and-scheduling-maintenance-mode)
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
title: About the content model
3+
shortTitle: About the content model
4+
intro: 'The content model describes the structure and types of content that we publish.'
5+
product: '{% data reusables.contributing.product-note %}'
6+
redirect_from:
7+
- /contributing/writing-for-github-docs/content-model
8+
versions:
9+
feature: 'contributing'
10+
---
11+
12+
Our content model explains the purpose of each type of content we create within {% data variables.product.prodname_docs %}, and what to include when you write or update an article. We use a content model to ensure that our content consistently, clearly, and comprehensively communicates the information that people need to achieve their goals with {% data variables.product.prodname_dotcom %}.
13+
14+
We use these types across all documentation sets to provide a consistent user experience––any content type applies to any product or audience. Our content types evolve over time and we add new types as needed. We only publish content that follows the model.
15+
16+
Consistency helps people form mental models of the documentation and understand how to find the information they need as they return to {% data variables.product.prodname_docs %} over time. It is also more efficient to maintain and update consistent content, making it easier and quicker to contribute to docs whether you are an open source contributor making your first commit or a writer on the {% data variables.product.prodname_dotcom %} staff documenting an entire new product.
17+
18+
## Content structure
19+
20+
Docs are organized into multiple levels of hierarchy on our site.
21+
22+
- Top-level doc set
23+
- Categories
24+
- Map topics
25+
- Articles
26+
27+
## Homepage content
28+
29+
The {% data variables.product.prodname_docs %} homepage, [docs.github.com](/), highlights the most important topics that people want to find. We limit the number of doc sets on the homepage so that people can find information and the homepage does not become overcrowded and difficult to search.
30+
31+
The homepage includes all top-level doc sets and some categories. Content on the homepage is organized around {% data variables.product.prodname_dotcom %} concepts and practices. For example, the "CI/CD and DevOps" group includes top-level doc sets for {% data variables.product.prodname_actions %}, {% data variables.product.prodname_registry %}, and {% data variables.product.prodname_pages %}.
32+
33+
### Adding a doc set to the homepage
34+
35+
The goal of the homepage is to help people find information about the {% data variables.product.prodname_dotcom %} feature or product that they want to learn about. Every item added to the homepage dilutes the discoverability of every other item, so we limit the number of doc sets included on the homepage.
36+
37+
If a new top-level doc set is created, it is added to the homepage.
38+
39+
If a category serves as the starting point for using a {% data variables.product.prodname_dotcom %} product or feature, it can be added to the homepage.
40+
41+
For example, under the "Security" grouping on the homepage, in addition to the "[Code security](/code-security)" top-level doc set, the "[Supply chain security](/code-security/supply-chain-security)," "[Security advisories](/code-security/security-advisories)," "[{% data variables.product.prodname_dependabot %}](/code-security/dependabot)," "[{% data variables.product.prodname_code_scanning_caps %}](/code-security/code-scanning)," and "[{% data variables.product.prodname_secret_scanning_caps %}](/code-security/secret-scanning)" categories are included because each of those categories are the entry point to {% data variables.product.prodname_dotcom %} products and features. "[Security overview](/code-security/security-overview)" is not included on the homepage because it provides additional information for using code security products and is not an introduction to a product or feature.
42+
43+
## Top-level doc set
44+
45+
Top-level doc sets are organized around a {% data variables.product.prodname_dotcom %} product, feature, or core workflow. All top-level doc sets appear on the {% data variables.product.prodname_docs %} homepage. You should only create a top-level doc set when there is a large amount of content to be contained in the new doc set, multiple categories that are broken down into map topics, and the topic applies across products, features, or account types. If the content could fit in any existing top-level doc set, it probably belongs in that existing doc set.
46+
- Top-level doc sets are of roughly equal importance to one another (each is centered on a {% data variables.product.prodname_dotcom %} product or major feature).
47+
- Most top-level doc sets have a landing page layout, unless there is a significant exception. For example, the "[Site policy](/free-pro-team@latest/site-policy)" doc set does not have guides or procedural articles like other doc sets, so it does not use a landing page layout.
48+
49+
### Titles for top-level doc sets
50+
51+
- Feature or product based.
52+
- Describes what part of {% data variables.product.prodname_dotcom %} someone is using.
53+
- Examples
54+
- [AUTOTITLE](/organizations)
55+
- [AUTOTITLE](/issues)
56+
57+
## Category
58+
59+
Categories are organized around a feature or a discrete set of tasks within a top-level doc set aligned with product themes. A category's subject is narrow enough that its contents are manageable and does not grow too large to use. Some categories appear on the homepage.
60+
- Categories often start small and grow with the product.
61+
- Large categories may contain map topics to subdivide content around more specific user journeys or tasks.
62+
- Use long procedural articles to group related chunks of content and keep articles within the category streamlined.
63+
- When categories have more than ten articles, consider breaking the content into map topics or additional categories.
64+
65+
### Titles for categories
66+
67+
- Task-based (begins with a gerund).
68+
- Describes the big-picture purpose or goal of using the feature or product.
69+
- General or high-level enough to scale with future product enhancements.
70+
- Category titles must be 67 characters or shorter and have a [`shortTitle`](https://github.com/github/docs/tree/main/content#shorttitle) less than 27 characters.
71+
- Examples
72+
- [AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github)
73+
- [AUTOTITLE](/pull-requests/committing-changes-to-your-project)
74+
75+
### Intros for categories
76+
77+
All categories have intros. Intros should be one sentence long and general or high-level enough to scale with future product changes. If you significantly change a category’s structure, check its intro for needed updates.
78+
79+
## Map topic
80+
81+
Map topics introduce a section of a category, grouping articles within a category around more specific workflows or subjects that are part of the category’s larger task.
82+
83+
Map topics contain at least three articles. When map topics have more than eight articles, it may be useful to consider breaking the content into more specific map topics.
84+
85+
### Titles for map topics
86+
87+
- Task-based (begins with a gerund).
88+
- Describes a more specific task within the larger workflow of the category it’s in.
89+
- General or high-level enough to scale with future additions to the product.
90+
- Map topic titles must be 63 characters or shorter and have a [`shortTitle`](https://github.com/github/docs/tree/main/content#shorttitle) less than 30 characters.
91+
- Examples
92+
- [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain)
93+
- [AUTOTITLE](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise)
94+
95+
### Intros for map topics
96+
97+
All map topics have intros. Intros should be one sentence long and general or high-level enough to scale with future product changes. If you add or remove articles in a map topic, check its intro for needed updates.
98+
99+
## Article
100+
101+
An article is the basic unit of content for {% data variables.product.prodname_docs %}––while we use multiple content types, they are all published as articles. Each content type has its own purpose, format, and structure, yet we use standard elements in every article type, like intros, to ensure articles provide a consistent user experience.
102+
103+
## Content order
104+
105+
We organize content predictably within categories, map topics, and articles. From broadest applicability to most specific, narrow, or advanced information, following this order:
106+
- Conceptual content
107+
- Referential content
108+
- Procedural content for enabling a feature or setting
109+
- Procedural content on using a feature
110+
- Procedural content on managing a feature or setting
111+
- Procedural content on disabling a feature or setting
112+
- Procedural content on destructive actions (e.g. deletion)
113+
- Troubleshooting information
114+
115+
## Reusing content
116+
117+
We use reusable and variable strings to use the same chunk of content, such as a procedural step or a conceptual paragraph, in multiple places. We generally don't reuse large sections of articles without a specific reason. When an entire section of an article might be relevant in more than one article, take a look at the purpose of both. Is there an opportunity to create a single, long-form article? Refer to the content models to clarify the best permanent home for the information, and link to it from the other article.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
title: About topics
3+
shortTitle: About topics
4+
intro: 'Use topics to make articles searchable.'
5+
product: '{% data reusables.contributing.product-note %}'
6+
versions:
7+
feature: 'contributing'
8+
---
9+
10+
Topics are used to filter articles and are searchable across the {% data variables.product.prodname_docs %} site. For some layouts, such as landing pages or guides, people can select which articles are displayed by filtering topics. Use these guidelines to help choose which topics to add to an article's frontmatter. For more information on adding topics to an article see, "[Topics](https://github.com/github/docs/tree/main/content#topics)" and for a list of all allowed topics, see [`allowed-topics`](https://github.com/github/docs/blob/main/data/allowed-topics.js).
11+
12+
## Topics for all content types
13+
14+
- All articles should have at least one topic
15+
- Use nouns as topics
16+
- Topics help people meaningfully group content
17+
- When possible, use more specific topics that are relevant and not just broad topics. For example, `REST` or `GraphQL` rather than just `API`
18+
- Ensure that topics on similar articles are consistent so that people who filter by a topic get all of the relevant articles. For example, all articles about CI should have the `CI` topic plus more specific topics
19+
- Avoid ambiguous topics. For example, `Actions` may not be a useful topic within the Actions product since it could refer to the product {% data variables.product.prodname_actions %} or the product element called an action
20+
- Topics add value beyond and do not replicate the article’s title, type, or category
21+
- For example, within the Actions product, `Actions` does not add value since someone in this section of the docs would already know that they are looking at Actions docs
22+
- Use `Fundamentals` for articles related to the core concepts of a product area.
23+
- Use: `Fundamentals` in an article like “Introduction to {% data variables.product.prodname_actions %}”
24+
- Avoid: `Actions` in an article like "Introduction to {% data variables.product.prodname_actions %}"
25+
- Commonly-recognized abbreviations can be used, but obscure or ambiguous abbreviations should be avoided
26+
- Use: `CI` instead of `Continuous integration`
27+
- Avoid: `AS` instead of `Advanced Security`
28+
- Use the short forms of {% data variables.product.prodname_dotcom %} product names
29+
- Use: `Actions` instead of `GitHub Actions`
30+
31+
## Checklist for choosing topics
32+
33+
Consider these questions to help choose topics for an article. Not every article will have a topic for each item in the checklist.
34+
35+
- What is the feature or product area?
36+
- Example: `Enterprise`
37+
Is the article about a sub-feature (unless the product name matches the feature name)?
38+
- Example: `Dependabot`
39+
- Is the feature part of a restricted program?
40+
- Example: `Advanced Security`
41+
- What element of the feature or product is the article?
42+
- Example: `Organizations`
43+
- What is the broad purpose of the article?
44+
- Example: `Permissions`
45+
- What programming languages, package managers, or ecosystems does the article explicitly address? Only include these topics if it adds value to someone filtering the docs, not just if an article lists supported languages, package managers, or ecosystems.
46+
- Example: `Ruby`

0 commit comments

Comments
 (0)