This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Gentoo Wiki:Guidelines
Please come back and check this page regularly. Feel free to discuss these guidelines and propose new ones on the associated Discussion page.
These guidelines are a set of suggestions for adding, editing, and removing content on the Gentoo wiki. More basic information about formatting text using wiki markup (section headings, lists, and so forth) and how to create a new page can be found elsewhere.
There are a number of reasons why a guideline (or style guide) is necessary for the wiki.
First of all, it creates a consistent look and feel of all articles on the wiki, providing cleaner and more professional presentation of knowledge. Guidelines allow for better cooperation across articles since all editors work using the same guidelines and styles as an authority.
Second, it reduces the likelihood that contributors continuously update the layout of an article, for instance switching variable names from <code>
to <var>
and back. Such changes too often trigger people (through the wiki watchlist) that want to watch over the content of the page, making it hard to keep track of changes in an organized manner. It also puts unnecessary stress on the infrastructure with little to no gains in article quality.
Third, it allows for contributors to easily get accustomed to writing on the wiki. It lowers the fear of making bad edits and aids in the discussion of acceptable edits.
This document is not meant to be fully exhaustive as this could lead to a reduction in contributions, where editors feel that it has become too rigid or difficult to understand the rules and guidelines on editing this wiki. Do not be afraid to make an edit, and making bad edits (unwillingly) is nothing to worry about — we have plenty of editors that will adjust your edit up to the standard of the Guidelines. Even the best editors make bad edits. Remember: the wiki is a collaborative effort!
Writing style
The writing style of wiki articles describes how the article itself should be written. It covers the language aspects of the articles.
Avoid first person
Since the wiki is a community effort and the content pages are informational, there should be no mention of "I" or "we". Articles should be written in third person: reported as fact.
Third person and passive voice are preferred[1]; we argue these sound more professional and objective; especially for technical instructions.
The user can be addressed as "you" where appropriate (which is called "second person writing"), but it is discouraged to do so. For instance, do not use "You should now install the package" instead use "Next, install the package". Similarly, "You can opt to only install the client software" can be rephrased as "It is possible to only install the client software".
Use lead-in sentences
Before any operation, create a lead-in sentence or topic sentence[2]. This creates a nice flow of the text towards the action-oriented parts[3].
For instance, instead of immediately starting with an Emerge box to inform the user how to install a package, first create a simple sentence such as "Install the software on the system:".
Use American English
There are several flavors of English in the world. To keep a consistent layout, it is advised to stick with the American English (also known as US English). This will keep spelling homogeneous across the wiki.
Formatting
Try to follow these formatting principles as much as possible.
Inline layout elements
Inline layout elements are rendered within running text in a paragraph. They do not interrupt the flow of the text, unlike the block-level layout elements discussed in the next section. This table shows the most common elements and their use cases.
Input | Rendered output | Use case | Example within text |
---|---|---|---|
''italics''
|
italics | To emphasize something. | It is not possible to change the order of the configuration items. |
'''bold'''
|
bold | To strongly emphasize something, when it is very important for the reader to notice it. (See also the "Warning" block-level element below.) | Using the hyphen is absolutely necessary as otherwise the system will fail to boot. |
<var>foo</var>
|
foo | Used for in-paragraph variable names (such as USE, FEATURES, or CFLAGS). | Set the USE variable to alsa if audio support is desired.
|
<code>foo</code>
|
foo
|
Used for:
|
Now set the USE variable to -alsa to disable ALSA support.
|
{{c|wheel}}
|
wheel | Denotes a command or technical concept. Used with
Note that this is implemented by the {{c}} template. |
The root user is part of the wheel group (which can be updated through the gpasswd command). |
<kbd>user input</kbd>
|
user input | Used for user input, which can be a command or answer to a prompt, but with the following constraints:
Remember that the |
List the fingerprint with gpg --fingerprint. |
{{Key|Alt}}+{{Key|F1}}
|
Alt+F1 | Key combination that the user needs to type in, most of the time in reaction to a prompt or as a special key combination in an application environment. This is implemented by the {{Key}} template. | Switch back to the first terminal using Alt+F1. |
{{Keyword|~arch}}
|
~arch | Use this template when referencing architecture keywords. See {{Keyword}} for more information. | Packages that are still in testing can be installed by adding ~amd64 to the end of each package atom in the /etc/portage/package.accept_keywords file. |
{{Path|/path/to/file}}
|
/path/to/file | Used for files and directories. Be sure to include the leading "/" if it is an absolute path. In case of directories, you may (or may not) want to include a trailing "/". (See {{Path}} for other ways to use this template.) | Next, edit /etc/hosts to add in the newly created hostname. |
{{Package|category/package}}
|
category/package | Provides an inline link to package information at Packages.Gentoo.org. (See the {{Package}} template for more information.) Note that this is not the same as {{InfoBox package}}, which adds the link in an InfoBox. | Puppet is provided by the app-admin/puppet package. |
Note that the use of the {{c}}
template for commands is to ensure that commands are not mistaken for parts of the English sentence itself. Linux (and Unix in general) often borrows English words for commands (think about less, more, and so on). It replaces the <tt>
tag which has been deprecated in HTML5.
Block-level layout elements
These elements, all implemented using templates, are rendered on the block level. That is, they create paragraph-ending line breaks and are displayed inside of a "box". They typically involve more content, rendered with more complicated formatting than is possible using the inline elements mentioned above. The following table details the common block-level templates available on this wiki and their use cases.
Follow the linked template names to see further information about using these templates. (See also Help:Templates and the complete list of all existing templates.)
Template | Use case | Example |
---|---|---|
{{Note}} | To show additional information that should be set off from (or maybe cannot be included in) the text or block element that precedes it. The example shown here might follow a {{RootCmd}} (explained below). | Note
Use grub2-install instead of grub-install if grub was installed with the multislot USE flag. |
{{Important}} | To emphasize an item deserving special attention: it gives a stronger signal to the reader than normal inline emphasis would give. | Important
ZFS will not ask if you are sure you want to do this. |
{{Warning}} | To strongly emphasize something that the reader really needs to pay special attention to, as otherwise system breakage might occur. | Warning
Consider the possible security implications of doing this! |
{{KernelBox}} | To display details on kernel configuration. The content should make it obvious to users how to reach the particular configuration settings in, say, menuconfig. Do not use the short-hand CONFIG_FOOBAR notation. |
|
{{FileBox}} | To display the contents (usually only partial contents) of a file. Automatic syntax highlighting is supported for common languages. This example uses lang=bash .
|
|
{{Cmd}} | To display a non-administrative command with optional output. Please only use this for commands that an ordinary (non-root) user can execute. Note: If the command output is verbose (more than 5 lines) use the collapse-output=true parameter to create an 'Expand' link.
|
user $ ls -l total 112 -rw-r--r--. 1 root root 2048 Dec 30 19:32 courier.fc -rw-r--r--. 1 root root 23 Dec 29 18:42 courier.if |
{{RootCmd}} | To display an administrative command with optional output. Please only use this for commands (or in situations) that require root privileges. The example here may appear near the end of the process of installing Gentoo. Note: If the command output is verbose (more than 5 lines) use the collapse-output=true parameter to create an 'Expand' link.
|
root # umount /mnt/gentoo |
{{Invocation}} and {{RootInvocation}} | Displays a user or administrative command's invocation options. These templates should only be used for command invocation; they presume output will be verbose and automatically create an 'Expand' link. | user $ uname --help root # uname --help |
{{CodeBox}} | To display code (with optional syntax highlighting) that doesn't fall into any other category listed above. |
|
Note that while the various inline formatting templates like {{c}}, {{Keyword}}, {{Path}}, and {{Package}} may freely be used inside of a {{Note}}, {{Important}}, or {{Warning}} template, they should never be used inside of a {{Cmd}} or {{RootCmd}} template, and should not be used in a {{KernelBox}}, {{FileBox}} or {{CodeBox}} template, except possibly in the title line.
Use of newlines
There should be an empty line above and below section headings and around any paragraph-breaking (not inline) templates. This improves readability by editors (wiki syntax) and simplifies the translation effort used by the community. Gentoo wiki editors should avoid the use of HTML's <br /> line break element, accept where absolutely necessary to archive the desired formatting results.
Keep paragraphs short; generally one to five sentences should be adequate. This makes the article easier to read and, as said in the sentence above, simplifies the translation effort used by the community.
Linking
Gentoo infrastructure, as well as the majority of large internet companies, have made the wise transition to HTTPS for most of the Gentoo sites. Whenever possible use HTTPS for external links instead of HTTP. The developers behind Gentoo would like to facilitate safety and security wherever possible, documentation is no exception.
Article contributors should only link once to other articles or resources (or, in large articles, once per main section). Review Wikipedia's Repeated links section in the Manual of Style for more information.
Avoid URL shortening
Please do not use URL shortened links on the wiki. They are avoided for two reasons:
- Users have no indication what the link destination is. It could be an inappropriate site or some other place they do not want to visit.
- The link could be used for tracking purposes. This should not be happening unless the user makes the decision to actually travel to a destination server (so there should be no third party intercepting the request).
Article structure
This section describes the structure of specific articles, depending on their type and purpose.
Article blueprints have been created to aid in new article creation. These provide a pre-defined structure for articles of various types; it is easier to remove structure than to add new structure. They also help keep Gentoo wiki articles uniform. Follow the rules below when adding content an article blueprint.
Titles and section headings
The title of an article should be short, specific and unambiguous. Full capitalization (title case) should be avoided as much as possible.
The title of a section (also known as "section headings") within an article should start with a capital letter, but the rest of the section title should use lower case (with the exception of proper nouns). This is called sentence case.
Section headings should be level 2 or higher (3, 4, ...). The use of a level 1 heading is meant only for the title of the article itself, and is automatically used. As such, level 1 headings have no reason to be defined in the article's text by wiki contributors.
Links and HTML formatting should not be used in section headings.
Start of an article
A wiki article should start with a short introductory paragraph, without any heading.
Headings such as Introduction or Overview are discouraged. If the article requires any conceptual knowledge before the operational content of the article can be given (such as installation instructions, configuration instructions, package administration tasks, etc.) name the section according to this concept.
Documenting a package or software title
When a package or software title is documented, add an InfoBox
to the beginning of the article, in which external resources such as the project homepage, the category/package information (links to packages.gentoo.org), wikipedia article, and/or ohloh statistics are summed up:
{{InfoBox stack |{{InfoBox homepage|https://url/to/homepage|header=true}} |{{InfoBox package|category/package}} |{{InfoBox wikipedia|TitleOnTheWikipedia}} |{{InfoBox ohloh}} }}
When adding external links to an InfoBox use HTTPS whenever possible.
If there is need for conceptual information about the software title or package, then the first section of the article should be properly named (after the concept that is explained - do not use a generic title like Introduction or Concepts).
Next, follow with a section on the configuration of the software title or package on a Gentoo Linux system. This section includes information on USE flags, installation instructions and so on.
Next, follow with one or more sections on the operational aspects of the software title or package. Try to structure this section on a use-case basis, so that an entire operation is contained within a subsection. "Listing boot entries" or "Deleting encryption keys" are examples of good sub sections, whose main section could be called "Manipulating the boot entries" or "Encrypting volumes with cryptsetup".
Finish up with references to more in-depth material about the software title or package.
References and links
At the end of the article, if resources are added, the following titles should be used for these lists:
- "See also" which is used for links to articles, guides, howto's and concept guides on the wiki.
- "External resources" which is used for information and guides outside of the Gentoo wiki. These are resources that the reader will probably want to read up on to go more in detail on the topic.
- "References" which is only to be used for the source references. This section should only include
{{reflist}}
to have the wiki automatically generate the list of references used in the article.
In case of the See also and External resources sections, try to inform the user why this resource is interesting to read or how it is related to the current article.
The References section is meant solely for the in-article references. Whenever the article takes information from an external resource as "fact" or source information to make further claims within the article, a <ref> tag should be used. There is a subtle difference between an external resource and a reference:
- an external resource is a location where the user can find more information about the subject which goes beyond a single claim used within the article
- a reference is a location where the user can find more information (or proof) about a particular claim or statement made within the article
When using a reference, use the following information[4] in the given order (as far as that information is known):
- Author of the source
- Title of the source (as hyperlink)
- Main origin of the source, such as the main site (as hyperlink)
- Date of publication
- Date of retrieval of this information
For instance:
Users should replace <code>-march=native</code> with the various compiler flags that GCC finds for the native system by using <kbd>gcc -march=native -x -c -</kbd><ref>Michał Górny. [http://blogs.gentoo.org/mgorny/2014/06/23/inlining-marchnative-for-distcc/ Inlining -march=native for distcc], [http://blogs.gentoo.org/mgorny/ Michał Górny blog], June 23rd, 2014. Retrieved on January 1st, 2015.</ref> and use those flags in their <var>CFLAGS</var> and <var>CXXFLAGS</var> variables.
References
- ↑ Geoff Hart. Use of first, second, and third person in technical writing?, Technical Writing lists, August 17, 2005. Retrieved on January 1st, 2015
- ↑ Placement of the Topic Sentence, Rochester Institute of Technology, October 10, 2014. Retrieved on January 1st, 2015
- ↑ Alan S. Pringle, Sarah S. O'Keefe. "Technical Writing 101: A Real-World Guide to Planning and Writing Technical Content", Page 112 on "Introducing the procedure", Scriptorium Publishing Services, Inc. ISBN 978-0970473363
- ↑ Referencing for beginners, Wikipedia. Retrieved on January 1st, 2015