summaryrefslogtreecommitdiff
path: root/doc/development/documentation/structure.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/development/documentation/structure.md')
-rw-r--r--doc/development/documentation/structure.md398
1 files changed, 7 insertions, 391 deletions
diff --git a/doc/development/documentation/structure.md b/doc/development/documentation/structure.md
index a5d1290a17a..35a93f08f66 100644
--- a/doc/development/documentation/structure.md
+++ b/doc/development/documentation/structure.md
@@ -1,395 +1,11 @@
---
-stage: none
-group: Style Guide
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
-description: What to include in GitLab documentation pages.
+redirect_to: 'topic_types/index.md'
+remove_date: '2022-11-16'
---
-# Documentation topic types (CTRT)
+This document was moved to [another location](topic_types/index.md).
-At GitLab, we have not traditionally used types for our content. However, we are starting to
-move in this direction, and we now use four primary topic types (CTRT):
-
-- [Concept](#concept)
-- [Task](#task)
-- [Reference](#reference)
-- [Troubleshooting](#troubleshooting)
-
-In general, each page in our docset contains multiple topics. (Each heading indicates a new topic.)
-Each topic on a page should be a specific topic type. For example,
-a page with the title `Pipelines` can include topics that are concepts and tasks.
-
-A page might also contain only one type of information. These pages are generally one of our
-[other content types](#other-types-of-content).
-
-## Concept
-
-A concept introduces a single feature or concept.
-
-A concept should answer the questions:
-
-- What is this?
-- Why would I use it?
-
-Think of everything someone might want to know if they've never heard of this concept before.
-
-Don't tell them **how** to do this thing. Tell them **what it is**.
-
-If you start describing another concept, start a new concept and link to it.
-
-Concepts should be in this format:
-
-```markdown
-# Title (a noun, like "Widgets")
-
-A paragraph that explains what this thing is.
-
-Another paragraph that explains what this thing is.
-
-Remember, if you start to describe about another concept, stop yourself.
-Each concept should be about one concept only.
-```
-
-### Concept headings
-
-For the heading text, use a noun. For example, `Widgets` or `GDK dependency management`.
-
-If a noun is ambiguous, you can add a gerund. For example, `Documenting versions` instead of `Versions`.
-
-Avoid these heading titles:
-
-- `Overview` or `Introduction`. Instead, use a more specific
- noun or phrase that someone would search for.
-- `Use cases`. Instead, incorporate the information as part of the concept.
-- `How it works`. Instead, use a noun followed by `workflow`. For example, `Merge request workflow`.
-
-## Task
-
-A task gives instructions for how to complete a procedure.
-
-Tasks should be in this format:
-
-```markdown
-# Title (starts with an active verb, like "Create a widget" or "Delete a widget")
-
-Do this task when you want to...
-
-Prerequisites (optional):
-
-- Thing 1
-- Thing 2
-- Thing 3
-
-To do this task:
-
-1. Location then action. (Go to this menu, then select this item.)
-1. Another step.
-1. Another step.
-
-Task result (optional). Next steps (optional).
-```
-
-Here is an example.
-
-```markdown
-# Create an issue
-
-Create an issue when you want to track bugs or future work.
-
-Prerequisites:
-
-- You must have at least the Developer role for the project.
-
-To create an issue:
-
-1. On the top bar, select **Menu > Projects** and find your project.
-1. On the left sidebar, select **Issues > List**.
-1. In the top right corner, select **New issue**.
-1. Complete the fields. (If you have reference content that lists each field, link to it here.)
-1. Select **Create issue**.
-
-The issue is created. You can view it by going to **Issues > List**.
-```
-
-### Task headings
-
-For the heading text, use the structure `active verb` + `noun`.
-For example, `Create an issue`.
-
-If you have several tasks on a page that share prerequisites, you can use the title
-`Prerequisites` and link to it.
-
-## Reference
-
-Reference information should be in an easily-scannable format,
-like a table or list. It's similar to a dictionary or encyclopedia entry.
-
-```markdown
-# Title (a noun, like "Pipeline settings" or "Administrator options")
-
-Introductory sentence.
-
-| Setting | Description |
-|---------|-------------|
-| **Name** | Descriptive sentence about the setting. |
-```
-
-### Reference headings
-
-Reference headings are usually nouns.
-
-Avoid these heading titles:
-
-- `Important notes`. Instead, incorporate this information
- closer to where it belongs. For example, this information might be a prerequisite
- for a task, or information about a concept.
-- `Limitations`. Instead, move the content near other similar information.
- If you must, you can use the title `Known issues`.
-
-## Troubleshooting
-
-Troubleshooting topics should be the last topics on a page.
-
-Troubleshooting can be one of three categories:
-
-- **An introductory topic.** This topic introduces the troubleshooting section of a page.
- For example:
-
- ```markdown
- ## Troubleshooting
-
- When working with <x feature>, you might encounter the following issues.
- ```
-
-- **Troubleshooting task.** The title should be similar to a [standard task](#task).
- For example, "Run debug tools" or "Verify syntax."
-
-- **Troubleshooting reference.** This information includes the error message. For example:
-
- ```markdown
- ### The error message or a description of it
-
- You might get an error that states <error message>.
-
- This issue occurs when...
-
- The workaround is...
- ```
-
- If multiple causes or workarounds exist, consider putting them into a table format.
- If you use the exact error message, surround it in backticks so it's styled as code.
-
-If a page has more than five troubleshooting topics, put the content on a separate page that has troubleshooting information exclusively. Name the page `Troubleshooting <featurename>`.
-
-### Troubleshooting headings
-
-For the heading of a **Troubleshooting reference** topic:
-
-- Consider including at least a partial error message.
-- Use fewer than 70 characters.
-
-If you do not put the full error in the title, include it in the body text.
-
-### Related topics
-
-If inline links are not sufficient, you can create a topic called **Related topics**
-and include an unordered list of related topics. This topic should be above the Troubleshooting section.
-
-```markdown
-# Related topics
-
-- [Configure your pipeline](link-to-topic)
-- [Trigger a pipeline manually](link-to-topic)
-```
-
-## General heading text guidelines
-
-In general, for heading text:
-
-- Be clear and direct. Make every word count.
-- Use articles and prepositions.
-- Follow [capitalization](styleguide/index.md#capitalization) guidelines.
-- Do not repeat text from earlier headings. For example, if the page is about merge requests,
- instead of `Troubleshooting merge requests`, use only `Troubleshooting`.
-
-See also [guidelines for headings in Markdown](styleguide/index.md#headings-in-markdown).
-
-## Other types of content
-
-There are other types of content in the GitLab documentation that don't
-classify as one of the four primary [topic types](#documentation-topic-types-ctrt).
-These include:
-
-- [Tutorials](#tutorials)
-- [Get started pages](#get-started)
-- [Topics and resources pages](#topics-and-resources-pages)
-
-In most cases, these pages are standalone.
-
-### Tutorials
-
-A tutorial is an end-to-end walkthrough of a complex workflow or scenario.
-In general, you might consider using a tutorial when:
-
-- The workflow requires a number of sequential steps where each step consists
- of sub-steps.
-- The steps cover a variety of GitLab features or third-party tools.
-
-Tutorials are learning aids that complement our core documentation.
-They do not introduce new features.
-Always use the primary [topic types](#documentation-topic-types-ctrt) to document new features.
-
-Tutorials should be in this format:
-
-```markdown
-# Title (starts with "Tutorial:" followed by an active verb, like "Tutorial: Create a website")
-
-A paragraph that explains what the tutorial does, and the expected outcome.
-
-To create a website:
-
-1. [Do the first task](#do-the-first-task)
-1. [Do the second task](#do-the-second-task)
-
-Prerequisites (optional):
-
-- Thing 1
-- Thing 2
-- Thing 3
-
-## Do the first task
-
-To do step 1:
-
-1. First step.
-1. Another step.
-1. Another step.
-
-## Do the second task
-
-Before you begin, make sure you have [done the first task](#do-the-first-task).
-
-To do step 2:
-
-1. First step.
-1. Another step.
-1. Another step.
-```
-
-### Get started
-
-A get started page is a set of steps to help a user get set up
-quickly to use a single GitLab feature or tool.
-It might consist of more than one task.
-
-Get started pages should be in this format:
-
-```markdown
-# Title ("Get started with <feature>")
-
-Complete the following steps to ... .
-
-1. First step.
-1. Another step.
-1. Another step.
-
-If you need to add more than one task,
-consider using subsections for each distinct task.
-```
-
-### Topics and resources pages
-
-This page has a list of links that point to important sections
-of documentation for a specific GitLab feature or tool.
-
-We do not encourage the use of these types of pages.
-Lists like this can get out of date quickly and offer little value to users.
-We've included this type here because:
-
-- There are existing pages in the documentation that follow this format,
- and they should be standardized.
-- They can sometimes help navigate a complex section of the documentation.
-
-If you come across a page like this
-or you have to create one, use this format:
-
-```markdown
-# Title ("Topics and resources for <feature>")
-
-Brief sentence to describe the feature.
-
-Refer to these resources for more information about <this feature>:
-
-- Link 1
-- Link 2
-- Link 3
-```
-
-## Help and feedback section
-
-This section ([introduced](https://gitlab.com/gitlab-org/gitlab-docs/-/merge_requests/319) in GitLab 11.4)
-is displayed at the end of each document and can be omitted by adding a key into
-the front matter:
-
-```yaml
----
-feedback: false
----
-```
-
-The default is to leave it there. If you want to omit it from a document, you
-must check with a technical writer before doing so.
-
-### Disqus
-
-We also have integrated the docs site with Disqus (introduced by
-[!151](https://gitlab.com/gitlab-org/gitlab-docs/-/merge_requests/151)),
-allowing our users to post comments.
-
-To omit only the comments from the feedback section, use the following key in
-the front matter:
-
-```yaml
----
-comments: false
----
-```
-
-We're hiding comments only in main index pages, such as [the main documentation index](../../index.md),
-since its content is too broad to comment on. Before omitting Disqus, you must
-check with a technical writer.
-
-Note that after adding `feedback: false` to the front matter, it will omit
-Disqus, therefore, don't add both keys to the same document.
-
-The click events in the feedback section are tracked with Google Tag Manager.
-The conversions can be viewed on Google Analytics by navigating to
-**Behavior > Events > Top events > docs**.
-
-## Guidelines for good practices
-
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/36576/) in GitLab 13.2 as GitLab Development documentation.
-
-*Good practice* examples demonstrate encouraged ways of writing code while
-comparing with examples of practices to avoid. These examples are labeled as
-*Bad* or *Good*. In GitLab development guidelines, when presenting the cases,
-it's recommended to follow a *first-bad-then-good* strategy. First demonstrate
-the *Bad* practice (how things *could* be done, which is often still working
-code), and then how things *should* be done better, using a *Good* example. This
-is typically an improved example of the same code.
-
-Consider the following guidelines when offering examples:
-
-- First, offer the *Bad* example, and then the *Good* one.
-- When only one bad case and one good case is given, use the same code block.
-- When more than one bad case or one good case is offered, use separated code
- blocks for each. With many examples being presented, a clear separation helps
- the reader to go directly to the good part. Consider offering an explanation
- (for example, a comment, or a link to a resource) on why something is bad
- practice.
-- Better and best cases can be considered part of the good cases' code block.
- In the same code block, precede each with comments: `# Better` and `# Best`.
-
-Although the bad-then-good approach is acceptable for the GitLab development
-guidelines, do not use it for user documentation. For user documentation, use
-*Do* and *Don't*. For examples, see the [Pajamas Design System](https://design.gitlab.com/content/punctuation/).
+<!-- This redirect file can be deleted after <2022-11-16>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html --> \ No newline at end of file