| `doc/user/` | User related documentation. Anything that can be done within the GitLab user interface goes here, including usage of the `/admin` interface. |
| `doc/administration/` | Documentation that requires the user to have access to the server where GitLab is installed. The admin settings that can be accessed via GitLab's interface exist under `doc/user/admin_area/`. |
| `doc/administration/` | Documentation that requires the user to have access to the server where GitLab is installed. The admin settings that can be accessed by using GitLab's interface exist under `doc/user/admin_area/`. |
| `doc/api/` | API related documentation. |
| `doc/development/` | Documentation related to the development of GitLab, whether contributing code or documentation. Related process and style guides should go here. |
| `doc/legal/` | Legal documents about contributing to GitLab. |
...
...
@@ -255,9 +254,11 @@ The table below shows what kind of documentation goes where.
### Work with directories and files
Refer to the following items when working with directories and files:
1. When you create a new directory, always start with an `index.md` file.
Do not use another file name and *do not* create `README.md` files.
1.*Do not* use special characters and spaces, or capital letters in file
Don't use another file name and _do not_ create `README.md` files.
1._Do not_ use special characters and spaces, or capital letters in file
names, directory names, branch names, and anything that generates a path.
1. When creating or renaming a file or directory and it has more than one word
in its name, use underscores (`_`) instead of spaces or dashes. For example,
...
...
@@ -270,32 +271,32 @@ The table below shows what kind of documentation goes where.
`development`.
1. The `doc/user/` directory has five main subdirectories: `project/`, `group/`,
`profile/`, `dashboard/` and `admin_area/`.
1.`doc/user/project/` should contain all project related documentation.
1.`doc/user/group/` should contain all group related documentation.
1.`doc/user/profile/` should contain all profile related documentation.
Every page you would navigate under `/profile` should have its own document,
for example, `account.md`, `applications.md`, or `emails.md`.
1.`doc/user/dashboard/` should contain all dashboard related documentation.
1.`doc/user/admin_area/` should contain all admin related documentation
describing what can be achieved by accessing GitLab's admin interface
(_not to be confused with `doc/administration` where server access is
required_).
1. Every category under `/admin/application_settings/` should have its
own document located at `doc/user/admin_area/settings/`. For example,
the **Visibility and Access Controls** category should have a document
located at `doc/user/admin_area/settings/visibility_and_access_controls.md`.
-`doc/user/project/` should contain all project related documentation.
-`doc/user/group/` should contain all group related documentation.
-`doc/user/profile/` should contain all profile related documentation.
Every page you would navigate under `/profile` should have its own document,
for example, `account.md`, `applications.md`, or `emails.md`.
-`doc/user/dashboard/` should contain all dashboard related documentation.
-`doc/user/admin_area/` should contain all admin related documentation
describing what can be achieved by accessing GitLab's admin interface
(_not to be confused with `doc/administration` where server access is
required_).
- Every category under `/admin/application_settings/` should have its
own document located at `doc/user/admin_area/settings/`. For example,
the **Visibility and Access Controls** category should have a document
located at `doc/user/admin_area/settings/visibility_and_access_controls.md`.
1. The `doc/topics/` directory holds topic-related technical content. Create
`doc/topics/topic_name/subtopic_name/index.md` when subtopics become necessary.
General user- and admin- related documentation, should be placed accordingly.
1. The `/university/` directory is *deprecated* and the majority of its documentation
has been moved.
If you are unsure where to place a document or a content addition, this should
not stop you from authoring and contributing. You can use your best judgment and
then ask the reviewer of your MR to confirm your decision, and/or ask a
technical writer at any stage in the process. The technical writing team will
review all documentation changes, regardless, and can move content if there is a
better place for it.
If you're unsure where to place a document or a content addition, this shouldn't
stop you from authoring and contributing. Use your best judgment, and then ask
the reviewer of your MR to confirm your decision, or ask a technical writer at
any stage in the process. The technical writing team will review all
documentation changes, regardless, and can move content if there is a better
place for it.
### Avoid duplication
...
...
@@ -350,11 +351,11 @@ Use sentence case. For example:
#### UI text
When referring to specific user interface text, like a button label or menu
item, use the same capitalization that is displayed in the user interface.
item, use the same capitalization that's displayed in the user interface.
Standards for this content are listed in the [Pajamas Design System Content section](https://design.gitlab.com/content/punctuation/)
and typically match what is called for in this Documentation Style Guide.
and typically match what's called for in this Documentation Style Guide.
If you think there is a mistake in the way the user interface text is styled,
If you think there's a mistake in the way the user interface text is styled,
create an issue or an MR to propose a change to the user interface text.
#### Feature names
...
...
@@ -413,8 +414,8 @@ references to user interface elements. For example:
### Inclusive language
We strive to create documentation that is inclusive. This section includes
guidance and examples in the following categories:
We strive to create documentation that's inclusive. This section includes
guidance and examples for the following categories:
- Add **only one H1** in each document, by adding `#` at the beginning of
- Add _only one H1_ in each document, by adding `#` at the beginning of
it (when using Markdown). The `h1` will be the document `<title>`.
- Start with an `h2` (`##`), and respect the order `h2` > `h3` > `h4` > `h5` > `h6`.
Never skip the hierarchy level, such as `h2` > `h4`
...
...
@@ -959,12 +958,13 @@ GitLab documentation from both the GitLab application and external sites.
### Anchor links
Headings generate anchor links automatically when rendered. `## This is an example`
generates the anchor `#this-is-an-example`.
Headings generate anchor links when rendered. `## This is an example` generates
the anchor `#this-is-an-example`.
NOTE: **Note:**
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39717) in GitLab 13.4, [product badges](#product-badges) used in headings aren't included in the
generated anchor links. For example, when you link to
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/39717) in
GitLab 13.4, [product badges](#product-badges) used in headings aren't included
in the generated anchor links. For example, when you link to
`## This is an example **(CORE)**`, use the anchor `#this-is-an-example`.
Keep in mind that the GitLab user interface links to many documentation pages
...
...
@@ -985,7 +985,7 @@ Important:
- Do not link to `h1` headings.
Note that, with Kramdown, it is possible to add a custom ID to an HTML element
with Markdown markup, but they **do not** work in GitLab's `/help`. Therefore,
with Markdown markup, but they _do not_ work in GitLab's `/help`. Therefore,
do not use this option until further notice.
## Links
...
...
@@ -1012,7 +1012,7 @@ We include guidance for links in the following categories:
### Basic link criteria
- Use inline link Markdown markup `[Text](https://example.com)`.
It's easier to read, review, and maintain. *Do not* use `[Text][identifier]`.
It's easier to read, review, and maintain. _Do not_ use `[Text][identifier]`.
- Use [meaningful anchor texts](https://www.futurehosting.com/blog/links-should-have-meaningful-anchor-text-heres-why/).
For example, instead of writing something like `Read more about GitLab Issue Boards [here](LINK)`,
...
...
@@ -1133,7 +1133,7 @@ Instead:
- Contained in a confidential issue.
- Requires special permission to a project to view.
- Provide a link in back ticks (`` ` ``) so that those with access to the issue
can easily navigate to it.
can navigate to it.
Example:
...
...
@@ -1149,8 +1149,8 @@ the commit link ensures the user lands on the line you're referring to. The
**Permalink** button, which is available when viewing a file within a project,
makes it easy to generate a link to the most recent commit of the given file.
-*Do:*`[link to line 3](https://gitlab.com/gitlab-org/gitlab/-/blob/11f17c56d8b7f0b752562d78a4298a3a95b5ce66/.gitlab/issue_templates/Feature%20proposal.md#L3)`
-*Don't:*`[link to line 3](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal.md#L3).`
-_Do_:`[link to line 3](https://gitlab.com/gitlab-org/gitlab/-/blob/11f17c56d8b7f0b752562d78a4298a3a95b5ce66/.gitlab/issue_templates/Feature%20proposal.md#L3)`
-_Don't_:`[link to line 3](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal.md#L3).`
If that linked expression is no longer in that line of the file due to additional
commits, you can still search the file for that query. In this case, update the
...
...
@@ -1194,19 +1194,19 @@ they need to interact with the application.
When you take screenshots:
-*Capture the most relevant area of the page.* Don't include unnecessary white
-_Capture the most relevant area of the page._ Don't include unnecessary white
space or areas of the page that don't help illustrate the point. The left
sidebar of the GitLab user interface can change, so don't include the sidebar
if it's not necessary.
-*Keep it small.* If you don't need to show the full width of the screen, don't.
-_Keep it small._ If you don't need to show the full width of the screen, don't.
A value of 1000 pixels is a good maximum width for your screenshot image.
-*Be consistent.* Coordinate screenshots with the other screenshots already on
-_Be consistent._ Coordinate screenshots with the other screenshots already on
a documentation page. For example, if other screenshots include the left
sidebar, include the sidebar in all screenshots.
### Save the image
- Save the image with a lowercase file name that is descriptive of the feature
- Save the image with a lowercase file name that's descriptive of the feature
or concept in the image. If the image is of the GitLab interface, append the
GitLab version to the file name, based on the following format:
`image_name_vX_Y.png`. For example, for a screenshot taken from the pipelines
...
...
@@ -1235,7 +1235,7 @@ documentation site. For accessibility and SEO, use [descriptions](https://webaim
that:
- Are accurate, succinct, and unique.
- Don't use *image of …* or *graphic of…* to describe the image.
- Don't use _image of…_ or _graphic of…_ to describe the image.
### Remove image shadow
...
...
@@ -1298,7 +1298,7 @@ for videos before reading:
For an overview, see [Video Title](link-to-video).
```
You can link any up-to-date video that is useful to the GitLab user.
You can link any up-to-date video that's useful to the GitLab user.
### Embed videos
...
...
@@ -1313,11 +1313,10 @@ For videos from other sources, [link](#link-to-video) them instead.
In most cases, it is better to [link to video](#link-to-video) instead, because
an embed takes up a lot of space on the page and can be distracting to readers.
To embed a video, follow the instructions below and make sure you have your MR
reviewed and approved by a technical writer.
To embed a video:
1. Copy the code below and paste it into your Markdown file. Leave a blank line
above and below it. Do *not* edit the code (don't remove or add any spaces).
1. Copy the code from this procedure and paste it into your Markdown file. Leave a
blank line above and below it. Do _not_ edit the code (don't remove or add any spaces).
1. In YouTube, visit the video URL you want to display. Copy the regular URL
from your browser (`https://www.youtube.com/watch?v=VIDEO-ID`) and replace
the video title and link in the line under `<div class="video-fallback">`.
...
...
@@ -1362,8 +1361,8 @@ the documentation site, but will be displayed on GitLab's `/help`.
For example, `.gitlab-ci.yml`, `git add .`, `CODEOWNERS`, or `only: [master]`.
File names, commands, entries, and anything that refers to code should be
added to code blocks. To make things easier for the user, always add a full
code block for things that can be useful to copy and paste, as they can easily
do it with the button on code blocks.
code block for things that can be useful to copy and paste, as they can do it
with the button on code blocks.
- HTTP methods (`HTTP POST`) and HTTP status codes, both full (`404 File Not Found`)
and abbreviated (`404`), should be wrapped in inline code blocks when used in sentences.
For example: Send a `DELETE` request to delete the runner. Send a `POST` request to create one.
...
...
@@ -1504,8 +1503,7 @@ won't render correctly. For multiple lines, use [blockquotes](#blockquotes)
instead.
Alert boxes render only on the GitLab documentation site (<https://docs.gitlab.com>).
Within GitLab itself, they will appear as plain Markdown text (like the examples
above the rendered versions, below).
In the GitLab product help, alert boxes appear as plain Markdown text.
These alert boxes are used in the GitLab documentation. These aren't strict
guidelines, but for consistency you should try to use these values:
...
...
@@ -1519,7 +1517,7 @@ guidelines, but for consistency you should try to use these values:
### Note
Notes indicate additional information that is of special use to the reader.
Notes indicate additional information that's of special use to the reader.
Notes are most effective when used _sparingly_.
Try to avoid them. Too many notes can impact the scannability of a topic and
...
...
@@ -1625,11 +1623,11 @@ Merge requests allow you to exchange changes you made to source code and
collaborate with other people on the same project. You'll see this term used in
the following ways:
- Use lowercase *merge requests* regardless of whether referring to the feature
- Use lowercase _merge requests_ regardless of whether referring to the feature
or individual merge requests.
As noted in the GitLab [Writing Style Guidelines](https://about.gitlab.com/handbook/communication/#writing-style-guidelines),
if you use the **MR** acronym, expand it at least once per document page.
if you use the _MR_ acronym, expand it at least once per document page.
Typically, the first use would be phrased as _merge request (MR)_ with subsequent