Documentation Style Guide

SUSE and openSUSE

Publication Date 16 May 2012

Version 2

$Revision: 39 $

Build Date: May 16, 2012

Legal Notice

Copyright (c) 2007 Novell, Inc.  Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Section being Trademark Policy, with the Front-Cover Texts being Documentation Style Guide and SUSE and openSUSE. A copy of the license is included in Appendix B, GNU Free Documentation License.

Disclaimer.  All information found in this book has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither Novell, Inc., SUSE LINUX Products GmbH, the authors, nor the translators shall be held liable for possible errors or the consequences thereof.

Trademark Policy.  Novell, the Novell logo, the N logo, SUSE, openSUSE, and the SUSE gecko logo are trademarks and registered trademarks of Novell, Inc. in the United States and other countries. Linux is a registered trademark of Linus Torvalds. All other third party trademarks are the property of their respective owners.


Contents

1. Creating a Consistent Structure
2. Writing and Editing
3. Creating Procedures
4. Presenting Computer Elements
5. Entities
6. Indexing
7. Preparing Glossary Entries
8. Spelling Terms
9. Inserting Comments
A. Markup Conventions
A.1. Use of Identifiers
A.2. The Book Structure
A.3. Block Structures
A.4. Inline Structures
B. GNU Free Documentation License
B.1. PREAMBLE
B.2. APPLICABILITY AND DEFINITIONS
B.3. VERBATIM COPYING
B.4. COPYING IN QUANTITY
B.5. MODIFICATIONS
B.6. COMBINING DOCUMENTS
B.7. COLLECTIONS OF DOCUMENTS
B.8. AGGREGATION WITH INDEPENDENT WORKS
B.9. TRANSLATION
B.10. TERMINATION
B.11. FUTURE REVISIONS OF THIS LICENSE
B.12. ADDENDUM: How to use this License for your documents

Abstract

This document contains SUSE-specific style and layout issues and writing guidelines. It identifies and describes several issues to standardize the style of SUSE and openSUSE documentation. This document also contains a reference part for the XML markup used by the SUSE editors and intended for openSUSE projects, such as Lessons for Lizards.

This document refers to the following documents:

1. Creating a Consistent Structure

It is important to maintain a relatively consistent structure within a document. This structure may vary for different books or projects. For consistency, each project should have its own guidelines offered here, in a separate project document, or through templates.

1.1. Lessons for Lizards

The standard base structure of LfL is reflected in its template. Find the template in LfL's SVN. The project is still in development stages. Once the project is more stable, guidelines will be added here.

1.2. Official SUSE Manuals

A SUSE manual consists of the following mandatory elements: title page, copyright notice, table of contents, preface, and chapters split in sections. Optionally, use parts, appendixes, a glossary, and an index, if appropriate. Find descriptions and usage of these elements in the following list.

Title Page

The title page contains logo, title, and subtitle.

Imprint

The second page (imprint) lists edition, copyright notice, and the names of all contributors to the manual. Enter the names in the following files:

authors-chapters.xml

List authors.

authors-trans.xml

List all translators who worked on the manual.

authors-office.xml

List the members of the documentation department who wrote and edited the manual. This file is only used in internally-produced documentation.

Table of Contents

The table of contents is generated automatically.

Preface

The preface of a book contains a brief overview of the scope and content of the manual, information about how to read it, and typographical conventions.

Parts

Parts structure a manual with many chapters to improve the usability of a book. Use nouns as part titles and keep them clear and concise. Some typical part titles would be Installation or Network.

Chapters

Chapters typically consist of the following elements (appendixes may be regarded an exception):

Figure 1. Structure of a Chapter in SUSE Documentation (* for optional element)

chapter
|
+--- title
|
+--- abstract
|
+--- section
.    |
.    +--- introductory text
.    |
.    +--- procedure environment*
.    |
.    +--- subsection
.    .
.    .
.    .
.    +--- subsection
.    |
.    +--- troubleshooting*
.    |
.    +--- for more information*
.
+--- troubleshooting*
|
+--- for more information*

Abstract

The abstract should provide a brief summary of the information provided in the chapter. Rather than writing about what the chapter does, summarize the information the chapter contains. This gives the reader a clear idea of what he or she can learn by reading the chapter. Example 1, “An Example Abstract” is an example abstract from the chapter about file systems.

Example 1. An Example Abstract

openSUSE 10.2 ships with a number of different file systems, including ReiserFS, Ext2, Ext3, and XFS, from which to choose at installation time. Each file system has its own advantages and disadvantages that can make it more suited to a scenario. Professional high-performance setups may require a different choice of file system than a home user's setup.


Introductions

Any introductory information follows directly after the abstract and should not be placed in a separate section.

Sections

Structure the detailed information in sections for better user orientation and to allow the experienced user to find the desired aspect of the topic easily.

Create sections in analogy to the main tasks, like installing, configuring, monitoring, and administering. If helpful, split sections into subsections. Sections start with an introductory paragraph outlining the focus of the section. If the section works with a sequential task, you can follow this introduction with a procedure description, as discussed in Section 3, “Creating Procedures”, which clearly states all the necessary steps to accomplish a task. Experienced users familiar with the topic can follow this brief sketch. For less experienced readers, each step of the procedure can contain a link to a subsection where the necessary background is provided and the action explained in more detail. In HTML and PDF online documentation, these links are clickable, providing easy access to the additional information.

Troubleshooting Section

If you know of common mistakes, pitfalls, or problems a user might encounter in this situation, list them in this section. Use the title Troubleshooting for all these types of sections in all manuals. Structure the section in a symptom and solution pattern.

For More Information

As described in Section 2.2, “Addresses”, this section contains links to all sources of information that might prove helpful in the given context. Follow the general referencing guidelines in Section 2.7, “Cross-References and References to External Resources” when creating this kind of section.

Glossary

The optional glossary contains important terms in alphabetical order and provides a brief explanation.

2. Writing and Editing

These rules are intentionally kept brief and simple. They contain specifics related to SUSE and openSUSE documentation and sometimes standard English rules. Where relevant, specific markup may be mentioned to assist in maintaining consistency in SUSE documentation.

2.1. Abbreviations and Acronyms

Most abbreviations may not be used. etc. may be used in parentheses and some rare instances, but not in combination with phrases like for example or such as. It should be followed by a comma.

Abbreviations of common units of measure may also be used. Do not create a plural of these abbreviations by adding an s. Use a nonbreaking ( ) space between the numeral and multiple-letter abbreviations. Do not use a space before single-letter abbreviations.

A header must not contain both the acronym and the meaning. Common acronyms can be used in the header and written out in the following text.

Once the acronym has been presented in the written out form, use the acronym version in the rest of a chapter. Because sometimes chapters and parts are used in different documents, it is important to map acronym and meaning at least once per chapter. Be consistent with this mapping. If you use the acronym followed by the written out form in one chapter, try to do this in all others.

Form plural forms of acronyms by adding a lowercase s, for example, CDs and BIOSs. Because some rare acronyms create plurals by adding 's, avoid using possessive forms of acronyms for reasons of clarity.

2.2. Addresses

SUSE documentation contains For More Information sections at the end of most chapters to point to further sources of information regarding the topic. Whenever possible, links and addresses are grouped there and presented by means of a variablelist environment (link plus explanatory remarks). Do not use a list environment for only one link.

If you need to present a large number of links, group them by topic and create a separate list environment for each group. Provide a comprehensive title for each of the groups or an introductory sentence.

Translators are normally provided with localized versions of links in the comments of the source code. If none is provided, the English default is used as fallback.

You can provide links or addresses directly in the main sections, but are encouraged to use and refer to the For More Information section wherever possible. Both automated checks and the use of editor comments for translators ensure that the links are kept up-to-date.

For detailed information about external and internal references and addresses in SUSE documents, refer to Section 2.7, “Cross-References and References to External Resources”.

2.3. Admonitory and Advisory Paragraphs

SUSE uses four different kinds of admonitory and advisory paragraphs. Because these elements are formatted in a way to draw the reader's attention to them, their use should be limited to specific situations. Additionally, avoid using more than one per page.

warning

These elements warn of security issues, potential loss of data, damage to equipment (hardware), or physical hazards to the user. A warning must always precede the action to which it applies. A typical example of a warning used in SUSE documentation is:

Example 2. A Typical Example of a SUSE Warning

<warning>
 <title>Creating File Systems</title>
  <para>
    Formatting may take up to several hours depending 
    on the partition size. Do not try to interrupt 
    this process. This could result in a corrupted file 
    system that renders the installation 
    unusable. Proceed with the installation after  
    formatting has been completed.
  </para>
</warning>

A warning consists of the warning headline, a title stating the action considered dangerous, followed by a descriptive paragraph explaining the nature and origin of the danger. Clearly state what could happen if the reader ignored the warning. Finally, tell the reader how to avoid the dangerous situation.

important

These elements introduce vital information that deserves particular attention. Similar to the warning element, important includes a title stating the topic covered in the following explanation.

tip

A tip is used to introduce guidelines or tips that are helpful to the user. Using an appropriate title is strongly recommended.

note

The note element is useful for emphasizing information that differs from previous versions, providing important information that does not fit into the paragraph, and pointing out architecture-specific information. Using an appropriate title is strongly recommended.

2.4. Audience

It is generally not necessary to describe the intended audience in the text, but keep it in mind when writing the document. Adjust the tone, style, and technical level of the text based on the intended audience. Do not insult them by saying something is obvious.

Aim the document at the reader by describing tasks the reader may need to complete rather than the organization of the program. For example, when describing YaST, focus on how to configure the devices and services the user needs rather than the module structure and available dialogs.

Try to focus on the positives: what the program can do rather than its limitations. Be honest in your documentation and avoid absolutes and the exaggerations of marketing-speak.

2.5. Capitalization

Use title-style capitalization for all types of headings and titles, including figure and table titles. This style is explained in Chicago 8.167.

This style can be very complicated to implement, but the following these simple rules is a good start:

  1. Capitalize the first word no matter what it is

  2. Capitalize all major words

  3. Lowercase the, an, a, and, but, for, or, nor, to, and as

  4. Lowercase prepositions, such as up, in, down, and of

  5. Capitalize the last word

In variable lists, capitalize the term in title-style unless it is a complete sentence. In all list items, use sentence-style capitalization (capitalize the first letter and proper nouns only). Use title-style for row and column labels in tables.

2.6. Contractions

SUSE and openSUSE documentation does not normally permit the use of contractions. Contractions are only permitted in casual documents and texts. A good example of appropriate use of contractions is the SuSE tour that was included in older releases. It provided a friendly and somewhat humorous introduction to applications and was aimed predominantly at the the home user.

2.7. Cross-References and References to External Resources

Use xref when you refer to an appendix, chapter, part, preface, section, table, figure, or example. The referenced element needs an id attribute. When referencing these elements, do not insert a text label like appendix, chapter, part, preface, section, table, figure, and example. These are inserted automatically.

Do not insert a reference to a paragraph (para). If you need a reference to a list, insert id and xreflabel.

References to man pages and info pages should generally be made in the format the man page of command or the info page of command. In a situation where the category of the page is needed, add (man 9 command) to the end.

Use ulink for a URL, like http://www.suse.de. Always use the correct protocol prefix (http, ftp, mailto) to enable the automated link check. Never use filename for this kind of link. Anything that should show up as a clickable link in the final HTML and PDF docs must bear the correct markup. Otherwise risk breaking the link checking tools and rob the user of extra functionality, such as click to reach extra external documents. Do not enter a text label for the ulink so that the URL itself appears in printed versions.

Do not use ulink and the file: prefix to reference filenames. Use filename for files.

Do not use links across documents where ID and IDREF linking is not possible and ulink is inappropriate. For references to information in SUSE books outside the current document set, use the appropriate macro for the book title. The reference should not refer to a specific chapter or section number or title because these things change too easily. Instead, make a reference using the document title but no specific headers.

Insert references to external (not SUSE or openSUSE) books in the format "Title by Author (ISBN #)." Inclusion of the ISBN is optional. Place the title in citetitle tags. For example:

<citetitle>Indexing Books</citetitle> by Nancy C. Mulvany
(ISBN 0-226-55014-1) is a useful guide for indexing.

It is useful to provide language-specific references in the translated books. If the authors know of language-specific versions, they can include them in comments to the translators. As time permits, translators should look for corresponding language-specific resources. For URLs, provide only the language-specific version of a site. Use the English as a fallback. For books, provide the title of the translated version along with the original title if such a translation exists.

2.8. Discriminatory Language

Refer to Chicago 5.43, 5.51, and 5.78 for suggestions of how to avoid gender bias. Basically, rewrite the sentence to avoid indications of gender. If possible, use plural to allow use of they as the pronoun. If these attempts fail, use he or she.

For example users, use the various mascots, like Tux, Geeko, and Wilber.

2.9. Illustrative Block Elements

2.9.1. Graphics and Figures

Screen shots and graphics should only be used when helpful for following the explanation. Using too many screen shots can confuse the reader even more. If you intend to use screen shots in a document, consider the following issues first:

  • A screen shot should illustrate a complex situation where the user cannot easily follow the text otherwise.

  • Do not use screen shots of confirmation pop-ups, progress bars, and other widgets that do not require user action and do not provide crucial information.

  • Do not illustrate every step of a procedure with a screen shot. In most cases, selecting a few screen shots to show the most important dialogs or choices during the whole process is sufficient.

If you intend to use graphics in documentation, think of the following issues first:

  • KISS (keep it short and simple). Custom graphics should always simplify complex issues and not confuse the reader by their complexity. Embedding too much text in the graphic adds to the complexity. Use as little text as possible and be aware of localization issues, such as differing lengths of strings in different languages.

  • Provide an appropriate reference in the text. The layout process should make an effort to ensure that figures are not placed too far from the related text.

2.9.2. Callouts

Callout numbers are only printed if there are 10 or fewer per example. Using more than 10 would be distracting.

Example 3. A Configuration File with Callouts

color white/blue black/light-gray   1
default 0   2
timeout 8   3
gfxmenu (hd0,0)/boot/message

title SUSE LINUX 9.1.42
    kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 vga=0x31a selinux=0 
    splash=silent resume=/dev/hda2 desktop elevator=as  showopts
    initrd (hd0,0)/boot/initrd

title Disk
    root (fd0)
    chainloader +1

1

Here, define the colors used by the GRUB menu.

2

Define the default option.

3

Select a time-out after which booting starts automatically.


For details on the markup of this element, refer to Section A.3.3, “Callouts”.

2.9.3. Examples

Like figures and screen shots, examples are used to illustrate complex processes. Most of the rules established for the use of these elements in Section 2.9.1, “Graphics and Figures” also apply to examples.

If you intend to use examples, consider the following:

  • Examples are used to present long commands and their output, lines of code, configuration files, excerpts of configuration files, and output, such as system messages.

  • Make sure that the example is crucial to the understanding of the process as a whole. Like figures and screen shots, examples stick out from the text and are distracting when overused or used improperly.

  • If you need to present just a function or application call on the command line, it is normally sufficient to do so inline. However, if you need to feature both a command and its output on screen, use an example environment.

    Example 4. Calling ps to Get Process Information

    ps -xa
    
    5170 ?        S      0:00 kdeinit: khotkeys
    5172 ?        S      0:02 kdeinit: kdesktop
    5174 ?        S      0:04 kdeinit: kicker
    5177 ?        S      0:00 kdeinit: kpowersave
    5179 ?        S      0:00 kdeinit: klipper

  • The example environment should contain both a title and an ID to enable referencing and easier coordination with the text.

For details on markup, refer to Section A.3.2, “Examples”.

2.10. Headings

Each level of heading should have two or more headings. Lonely subheadings are not allowed. Make headings in a group parallel by using a similar structure for the wording.

Keep headings short and simple. Do not use both an acronym and the written-out form in a heading.

Provide content between a heading and its subheadings. In some cases, this is only a small paragraph of introductory information. In other cases, more information can be provided.

2.11. Lists

SUSE and openSUSE documentation uses the following types of lists (the respective XML tags are given in parentheses):

Bullet Lists (itemizedlist)

See http://www.docbook.org/tdg/en/html/itemizedlist.html for details of markup.

Numbered Lists (orderedlist)

See http://www.docbook.org/tdg/en/html/orderedlist.html for details of markup.

Descriptive Lists (variablelist)

See http://www.docbook.org/tdg/en/html/variablelist.html for details on markup.

Consider the following general rules when creating or editing list environments:

  • List environments should be used cautiously. Their markup is quite distinct and overusing them might disrupt the text flow.

  • Always introduce a list in the text. If needed for reference or better coordination with the related text, add an optional title and an id attribute.

  • A list must contain at least two items. If items are short and simple in structure, consider incorporating them in the flowing text instead of creating a list environment.

  • Use sentence-style capitalization for the list items. Use title-style capitalization for terms in descriptive lists.

  • If using multiple sentences as a list item, end all items in that list with a period.

  • Make sure that the items are grammatically parallel constructions providing a pattern that makes it easier to follow the text.

The different types can be nested, but avoid nesting too many levels. When nesting different types of lists or introducing multiple levels of one type, always consider the flow of the text. It is rarely necessary to have more than one level in a list. Using too many levels disrupts the text flow, confuses readers, and heavily influences the document layout. Consider these issues carefully before nesting lists or introducing another list level. Restructuring the information using a well-balanced combination of lists and flowing texts may prove a good approach.

2.11.1. Bullet Lists

Bullet lists are often used to provide an overview of information or to introduce or summarize information. They should be used when the order of list items is irrelevant.

If needed, assign an id attribute to an itemized list and add a title to reference it. Individual list items may be referenced by assigning an id and an xreflabel attribute. The entry is then identified by the value of id and the value of xreflabel is printed as the label of this item. See Section 2.7, “Cross-References and References to External Resources” and Section A.4.6, “Referencing” for detailed information.

The following example of an itemized list is from a For More Information sections.

Example 5. A Bullet List


2.11.2. Numbered Lists

Use numbered lists when items have a strict order, hierarchy, or importance. If order is not relevant, use a bullet list or a descriptive list. Do not use numbered lists to describe procedures. Complex sequential actions are better described by means of the procedure environment (see Section 3, “Creating Procedures” for a detailed description).

If needed, assign an id attribute to a numbered list and add a title to it in order to reference it. Individual list items may be referenced by assigning an id and xreflabel attribute. The entry is then identified by the value of id and the value of xreflabel is printed as the label of this item. See Section 2.7, “Cross-References and References to External Resources” and Section A.4.6, “Referencing” for detailed information.

Example 6. A Numbered List

  1. The machine's network is configured properly.

  2. The machine's exact system time is maintained by synchronizing with a time server. This is necessary because parts of the HTTP protocol depend on the correct time.

  3. The latest security updates are installed. If in doubt, run an online update.

  4. The default Web server port (port 80) is opened in the firewall. For this, configure the SUSEFirewall2 to allow the service HTTP Server in the external zone. This can be done using YaST.


2.11.3. Descriptive Lists

Use descriptive lists when defining terms or describing options. Each item of a descriptive list contains a short term that is then further explained by means of an explanatory paragraph.

Use title-style capitalization for the term. Use sentence-style for the list item.

You may assign an id attribute to the list and add a title to it in order to reference it. Individual list items may be referenced by assigning an id. The entry is then identified by the value of id and referenced by the term.

Example 7. A Descriptive List

This book consists of several parts:

Installation

Learn about the installation and initial configuration of a Linux system.

System

Get a basic understanding of the system components.


2.12. Numbers and Measurements

Follow Chicago 9.6 for numbers. This is basically to write out single-digit numbers (0–9) and use numerals for all others. For measurements, always use numerals when an abbreviation is used for the unit.

2.13. Possessives

Do not use possessives of acronyms and trademarked terms. Unless use of a possessive with an inanimate object improves the clarity of a sentence, avoid inanimate possessives.

2.14. Punctuation

Use commas between all items in a series. For example, write a, b, and c. Use commas around phrases like for example and that is. Introductory phrases in the beginning of a sentence are normally followed by a comma. For example, Before using YaST Online Update, configure a network connection.

Semicolons (;) are mainly used to join two independent but related sentences. They can also be used in place of commas in a complicated series. It is preferable to avoid them when possible and instead break the text into smaller pieces.

em dashes () are punctuation dashes. Use them sparingly and do not surround them with spaces. en dashes () should be used between numbers in a range in tables and figures. Also use them for a hyphenated term when a two-word term is part of the hyphenated term (file system–specific). Additionally, use them as the symbols for minus signs.

Do not use slashes except when they are part of a standard technical term, such as TCP/IP or client/server. Avoid the use of exclamation marks (!).

2.15. Sentence Structure

Keep sentences clear and direct. Avoid complicated clauses and try to keep sentences short (under 20 words). Avoid joining sentences with semicolons (;) if they can be as easily understood as two independent sentences. Make sure that the relationship between subject, verb, and object are clear. Avoid ending a sentence with a preposition where reasonable.

2.16. Tables

Use tables to present a large number of similar facts. A table makes them easy to scan and compare when presenting the same information textually would require several paragraphs.

Always keep tables as simple as possible. They should not require extensive explanations in the related text and should make sense even to those readers who are not very familiar with the topic.

A table always has a title. If you assign an id, it can be identified and referenced by this attribute.

Value and description pairs are better handled by means of a descriptive list.

Example 8. A Typical Table in SUSE Documentation

File SystemFile Size (Bytes)File System Size (Bytes)
Ext2 or Ext3 (1 kB block size)234 (16 GB)241 (2 TB)
Ext2 or Ext3 (2 kB block size)238 (256 GB)243 (8 TB)

2.17. Tone, Mood, Voice

Maintain a professional tone. Except in casual documents, do not use contractions. Do not use humor. It does not translate well and may be misunderstood by nonnative speakers.

Use second person (you) to refer to the reader. Normally the reader is the user or administrator that does the actions described. Do not overuse you. It is often understood, especially in directions.

Use active voice. Active voice means that the subject of the sentence performs the verb. For example, The root user performs administrative tasks is active voice. Administrative tasks are performed by the root user is passive voice. Passive voice can be used occasionally if there is a need to place emphasis on the object of the verb or if the doer of the action is unknown. A SAMBA server must be configured in the network is an example of proper use of passive voice. The emphasis is on the server, not on the person configuring it.

2.18. Verbs

Use the simple present tense in almost all cases. This also applies for sentences with if or when clauses. If you do this, something happens. When you do that, something else happens.

3. Creating Procedures

Procedures are used to describe a task. A procedure consists of several steps that are usually performed sequentially. A procedure environment consists of the following elements:

  • An optional title. If you need to reference the procedure as a whole, set an id. The title is then used as the label of the reference.

  • An introductory phrase establishing the purpose of the procedure. If necessary, add the preconditions of the operation.

  • Steps and substeps describing what the reader must do. If needed, add an explanatory paragraph, but keep it short. Do not use only one substep in a step or one step in a procedure.

  • Alternative actions are introduced by a substep environment containing two steps linked by or. Each optional step must have a performance attribute set to optional.

Procedure 1. Adding Users with YaST

To add new users to a Linux system, perform the following steps:

  1. Start the YaST module (YaST+User Management)

  2. Set the filter (type of users).

  3. Add the first user:

    1. Click Add to enter the Add a New User dialog.

    2. Enter the user data and click Create.

    Repeat this procedure for each user to add.

  4. After the last user has been added, leave the YaST module by clicking Finish.

If you need to structure complex tasks, procedure environments are a means to provide an overview of the whole task and its sequential character. Introduce the steps, substeps, and alternatives by a procedure environment. A step may contain a link to an explanatory subsection providing further details on the step.

4. Presenting Computer Elements

When documenting software, it is frequently necessary to describe the software and how to interact with it. The way to do this has been standardized for consistency.

Only specify the software component in ambiguous context. Only put literal user input or output on a separate line when it is too long to be included in the flowing text or is a line that must be added to a file.

4.1. Command Presentation

When referring to an application, do not use any markup at all:

OpenOffice.org is a powerful open source office suite.
   

Linux commands are case-sensitive, so always present them as they appear in the system. Commands can be embedded in the flowing text or presented as part of screen environments or examples. In flowing text, use command when referring to an actual command you would use on a command line:

Use OOo to start OpenOffice.org from the command line.
   

Place options inside the command tags. Options can also be used in text, separately from command. See Section A.4.3, “Commands and Options”.

Do not use any markup for commands as part of a screen environment. Anything inside this environment appears verbatim.

4.2. Variables

There are currently two different kinds of variable environments used in SUSE documentation:

  • Substitutable contents that the user should replace with appropriate values. For example:

    To list the contents of a directory, execute ls dir.

  • References to names of variables rather than to their value. Example:

    To select another display manager, start the YaST
          sysconfig editor and change the value of   
          DISPLAYMANAGER.

4.3. Describing Graphical User Interfaces

4.3.1. Keys

SUSE uses the standard elements and transformations offered by DocBook V. 4.3 and the current XSLT stylesheets by Norman Walsh. For details on key markup, refer to Section A.4.1, “Markup of Keys”.

Always use the capitalized version of characters, because this is how they are printed on the keyboard. If you need to refer to a capitalized character, use Shift+Z, for example. Introduce this convention by means of the Typographical Conventions section of the introduction.

With DocBook V. 4.3, the localization of the identifiers for both modifiers and special keys is handled by DocBook itself. Just use the keycap tag and an appropriate function value. Find details in Section A.4.1, “Markup of Keys”.

4.3.2. GUI Elements

When using labels of GUI elements, do not include ending punctuation like ... or :. Whenever possible, refer to the elements without identifying them as a special type of dialog element. For example, use Click OK rather than Click the OK button. However, some situations require a more specific wording, for example, if a dialog has many different graphical elements.

For detailed instructions for the appropriate markup, especially concerning buttons, labels, and menu structures, refer to Section A.4.2, “GUI Menus”.

4.4. Naming Conventions

SUSE documentation is limited to describing the Linux operating system and open source applications. The following sections summarize the common naming and markup principles that apply to SUSE and openSUSE documentation.

4.4.1. Directories and Filenames

Linux does not know any drive names. Under Linux, everything is considered a file (even a directory is considered a special kind of file). Therefore, the naming and markup conventions are the same for drives (for example, hard drives, CD-ROM drives, or floppy drives), directories, or files.

The layout for filenames and directory names is the same. See the following example:

Open the file suseconfig under /etc. Access an USB 
flash drive via /media/usb-xxx-yz.

Use slashes properly when dealing with file and directory names:

  • Use a leading slash to indicate that the directory is reached from the root of the file system. If the directory lies below the current working directory, do not use a leading slash.

  • Do not use a trailing slash to distinguish between a file and a directory. When differentiation is needed, provide it textually.

Linux is a case-sensitive operating system, so use capitals exactly as they appear in the file system. For details on markup, refer to Section A.4.5, “Directories and Filenames”.

4.4.2. Hostnames and IP Addresses

Writers should use a well-defined set of IP addresses, hostnames, and usernames for their network documentation. The values are provided by means of entities (see Section 5, “Entities”).

IP Addresses

Currently, we are using only a class C net (netmask 255.255.255.0) for our examples. To create examples using a larger setup, select addresses from the private network ranges.

Hostnames and Domains

SUSE uses www.example.com as a domain for most examples, because this is a real domain that was designed for use in documentation. Hostnames are taken from the solar system (such as sun or earth).

Usernames

SUSE currently uses mascots like geeko, tux, and wilber as example users.

5. Entities

Entities are a kind of macro in XML, but only with text expansion capabilities. They are used for several purposes:

  • Representation of characters that cannot be displayed or entered otherwise.

  • Integration of external files by entities representing references to their filenames.

  • Text expansion to any content that is needed.

Once an entity is defined, it can be used everywhere. Entities reduce the risk of translation errors and increase consistency because they are translated once and automatically expanded elsewhere.

5.1. General Notes on the Handling of Entities

SUSE uses a small set of custom entities. This set is localized for each supported language. Find the SUSE set of entities in the file entity-decl.ent under each documentation project and each language. When the set has been modified for a new product release, this file must be updated in the supported languages as well.

Each header of a SUSE XML file includes the entity declaration file (by means of an entity):

<!ENTITY % entities SYSTEM "../entity-decl.ent">
%entities;

Example 9. Excerpt from a SUSE entity-decl.ent

<!ENTITY1 exampleserver2   "sun3">
<!ENTITY exampleserverip    "&exampledomainip;.20">
<!ENTITY exampleserverfq    "&exampleserver;.&exampledomain;"4>

1

Tells DocBook which kind of declaration to expect.

2

Defines the entity name.

3

Sets the value to which the processed entity should be expanded.

4

Nests an entity in the value.


A few hints for working with entities in SUSE documentation projects:

  • If there should be any need for defining special entities (for example, for localization purposes), add the new definitions to the appropriate entity-decl.ent file. Never include these definitions in the file header. Always check with the documentation team members before introducing new entities.

  • When translating entities, translate the value, but never change the entity name (see Example 9, “Excerpt from a SUSE entity-decl.ent”).

  • Always use the exact notation of the entities when translating files to avoid processing errors.

  • Make sure that you use proper UTF-8 encoding when editing and saving the entity declaration file or any of the SUSE XML files.

5.2. Entities Used in Documentation Projects

The following provides some background on the most important entities used in creating documentation for SUSE products. To be able to adjust product names of platform branding even past any deadlines, a set of entities must represent the frequently-changing product names. The same applies to book titles. An entity-decl.ent file contains several different categories of entities. These are:

General Entities

These feature mostly network IP addresses, hostnames, and usernames.

Books

If possible, any book created by our team has a title entity in case sudden changes are necessary.

Platforms

To avoid touching our content whenever a hardware vendor rebrands its products, we use entities for all hardware architectures referenced in the books.

Products

We maintain a list of entities of all SUSE-based product names and some other products and applications for which we write documentation.

There are several guidelines to consider when working with product entities for SUSE documentation:

Entity Selection

SUSE uses &product; to identify the product for which the documentation is built (the text applies to any product). The value of this entity is set once per release and expands to the name of the current product.

Example 10. Proper use of the &product; Entity

&product; includes openLDAP.


If you need to reference a particular product, use the specific entity (plus version if necessary).

Example 11. Context-Based Use of Entities

The ext2 file system has been included in the &suse; kernel since &suselinux; XYZ.


Trademarks
[Note]Trademarks and openSUSE

At this point, only internally-produced documentation is required to follow the trademark guidelines. These rules can be skipped for documentation produced by the openSUSE community.

Any Novell product referenced in our documentation is trademarked one way or the other. Currently we have entities for SLES, SLED, openSUSE, and the obsolete SUSE Linux stuff. Adhere to the following rules when dealing with these terms:

  • Never use trademarks in headings.

  • Only use the trademarked version on the first occurrence of the product's name in a chapter.

Product entities carrying any sort of trademark end in &reg;.

Acronyms
[Note]Acronyms and openSUSE

At this point, only internally-produced documentation is required to follow the acronym guidelines. These rules can be skipped for documentation produced by the openSUSE community.

Avoid using acronyms for products because they are not the proper product names. However, there might be occasions where you just need to have an acronym. In these cases, use the acronym entity that always ends in a;, such as &sleda; or &slesa;.

6. Indexing

An index is one of the most important parts of a book. Index terms should be used to provide the reader with access to useful information. Insert the term as close to the relevant text as possible to ensure that the page reference points to the correct location. When more than a few paragraphs contain information that should be indexed under this term, use a page range. A user referring to the index can then get a quick overview of how much information is provided at the different locations and have a better chance of finding needed information quickly. Up to three levels of index items can be used.

Only index text that really provides useful information to the reader. For example, a section about configuring an application should be indexed to the application, but a passing reference to the application should not be indexed at all. Try to think like a potential user of the manual. Is a user likely to be looking for that information? Some examples of things that should not be indexed include For More Information sections, things mentioned in the abstract of a chapter (index where it is actually discussed, not where it is mentioned in the abstract), and a command used for some other purpose (do not index cd where it is used to change directories as part of a procedure, but do index a section discussing appropriate usage of the command itself).

Select the terms to use carefully because consistency is important. Write nouns in the plural and verbs in a gerund form (-ing). Capitalize terms only if they would be capitalized if used in the middle of a sentence.

When selecting terms, try to consider what else is included in the manual. If the manual only includes a small amount of information for the topic, general index items are probably more appropriate. If indexing a chapter about an application, much more specific index terms are needed so the user can find exactly the information he or she needs. Also consider that the user might not know what something is called. It is not helpful only to index Konqueror under its name if the user might want a Web browser and not know what applications function as a Web browser. In a case like that, you may need to index general information both places.

If you have time when working on indexing, check the built index to see how well your terms integrate with existing items. Try to make your terms consistent with other items used. A final index polishing of an entire index is part of the editing and layout process. A few tips for evaluating and adjusting the index of an entire document:

  • If a term has six or more page references, check those references and see if it is possible to create subitems.

  • If a term has only a single subitem (or a subitem has only a single sub-subitem), consider deleting the subitem.

  • Check for spelling errors or inconsistencies that result in multiple items in the index.

  • If there are copious third-level entries or third-level entries with too many references, consider adjusting the index structure to use a more specific primary term.

  • Check all see and see also references for consistency. An item should not have both a page and a see reference. Page references and see also together is acceptable but should be used sparingly.

Example 12. A Plain Index Entry

<para>
  To configure DNS<indexterm>
    <primary>DNS</primary>
    <secondary>configuring</secondary>
  </indexterm> use ...
</para>

Example 13. An Index Range

<indexterm class="startofrange" id="idx.Installation">
  <primary>installing</primary>
    </indexterm>
...
<indexterm class="endofrange" startref="idx.Installation"/>

Example 14. A See Index Entry

<indexterm>
  <primary>installing</primary>
    <secondary>boot loaders</secondary>
     <see>GRUB</see>
</indexterm>

7. Preparing Glossary Entries

An optional glossary contains terms and their definitions. Make sure that the glossary entries are appropriate to the intended audience. Define unfamiliar terms and specialized jargon.

Define infinitive forms of verbs and singular nouns. Use lowercase for the term unless it is a proper noun.

Use cross-references to link acronyms with their written out forms. Define the written out form. Use a See reference for the acronym form to link it to the defined written out form.

The markup for a glossary entry is shown in Example 15, “A Typical Example of a Glossary”.

Example 15. A Typical Example of a Glossary

<glossary>
 <title>Glossary</title>
 <glossdiv>
  <title>D</title>
  <glossentry>
   <glossterm>DocBook</glossterm>
   <glossdef>
    <para>
     DocBook provides a system for writing structured documents 
     using SGML or XML. It is particularly well-suited to books
     and papers about computer hardware and software, though it
     is by no means limited to them.
    </para>
   </glossdef>
  </glossentry>
 </glossdiv>
</glossary>

8. Spelling Terms

Because multiple spellings of a variety of words and terms are in common usage, we have standardized on a variant to use in our documentation. Terms in this table are capitalized as they would be in the middle of a sentence. Some words listed here are provided because they are often written incorrectly by nonnative speakers. For words not listed here, Merriam-Webster's Collegiate Dictionary, Eleventh Edition is considered authoritative.

Table 1. Terms Common in SUSE Documentation

Word or PhraseUsage Guideline
3Dno hyphen, capitalize D
32-bithyphened, lowercase B
address booktwo words
advicenoun
to adviseverb
back-endhyphenate
back upverb
backupnoun
Bashcapitalize according to the GNU Bash manual
boot diskdisk for starting the system
boot loadertwo words
cannotone word
case-sensitive, case-insensitivealways hyphenate
certificate authorityacronym is CA; not certification authority
check boxtwo words
checklistone word
check marktwo words
chipsetone word
client/servera slash is accepted here
command linenever hyphenated
control centera generic term as in the YaST control center or the KDE control center
deselectverb
DHCPcapitalized
dial-upuse only as an adjective
DNS do not use DNS name server; capitalize the acronym, but lowercase the expansion
double-clickhyphenate, do not use with on
e-mailalways hyphenated
Ethernetcapitalized
facilitateavoid using
filenameone word
file servertwo words
file systemtwo words
flavoruse AE
framebufferone word
front-endhyphenate
The GIMPproject standard for application
GNOMEproject standard for the desktop
GRUBcapitalize
GUIcapitalized
hard disktwo words
hard linktwo words
have touse "need to" or "must" instead
home pagetwo words
hostnameone word
hotplug, hotplugging, hotpluggablenote spellings
HTTPcapitalize
hypervisorone word, lowercase
infraredone word, no hyphen
installation sourcecorrect term for valid sources of installation data for SUSE Linux and openSUSE; when reasonable, mention that online repositories that are valid installation sources are available
Internetcapitalize first letter
intranetlowercase
I/O portslash in I/O
IPsecnote capitalization
journalingone L
Kdumpcapitalize if application
kdumplowercase if command
Kernelcapitalize
Kprobescapitalize if application
kprobeslowercase if command
left-clickhyphenate, do not follow with on
license, licensesuse AE
local host, localhostnormally two words, one word for default name of the local host
log filetwo words
log in, log out, logintwo words for verbs, one for noun; do not use log on or log off
log in tonot "log into"
loopback deviceloopback is one word and not hyphenated
mail servertwo words
Maildirnote capitalization; this is a specific format, not a generic reference to the directory in which mail is stored
mainboardone word
man pagetwo words
Mboxnote capitalization
metadataone word
middle-clickhyphenate, do not follow with "on"
Monitoringcapitalize
mount pointtwo words
mouse buttona mouse has buttons, not keys
multitaskingone word, no hyphen
multiuserdo not hyphenate
name servertwo words
NFSan NFS server, an NFS client, etc.
NISa NIS client, a NIS server, etc.
paravirtualizedone word
pathnameone word. can often be replaced with path
plug-inhyphenate noun or adjective
pop-uphyphenate
porton port (not at port)
PostScriptuse this capitalization
pre-configuredhyphenate
print queueprint not printer
print spoolerprint not printer
proxyuse as a noun only
RAM disktwo words, note capitalization
READMEUse all caps for general references because this is the most common form in Linux; use file's capitalization for specific references
read-onlyhyphenate
reconfigureone word, no hyphen
re-createhyphenate
right-clickhyphenate, do not follow with on
RPMcapitalized
runlevelone word
runtimeone word, no hyphen
screen shottwo words
screen savertwo words
SCSIan SCSI device
set up, setuptwo words as verb; one word as adjective or noun
to shut down, shutdowntwo words as verb; one word as adjective or noun
slidernot slidebar or other variations
spec filetwo words
SSHcapitalized
stand-alonehyphenate
start-uphyphenate
status bartwo words
tarballone word
taskbarone word
TFTPcapitalized
time stamptwo words
title bartwo words
toolbarone word
tool tiptwo words
uninstallno hyphen, never de-install
unselectedthe state of not being selected
usernameone word
utilizeuse use
virtualizationlowercase
VLANcapitalize
Webcapitalize first letter
Web pagetwo words
Web servertwo words
Web sitetwo words
whetherdo not add or not
wild cardtwo words
X Window Systemdo not shorten to X Windows, note capitalization
Xenuse this capitalization
Xendcapitalized
Zyppercapitalize if application
zypperlowercase if command

9. Inserting Comments

Use these standard comment and remark formats to simplify editing and translation.

9.1. Remarks

Remarks are used for the majority of editorial comments. It is possible to have them be visible in the built document, improving the editing process. Remarks must be placed before or after a para but inside section tags.

Include a role to show the importance and type of remark. Available roles and their uses are:

xml

This type of remark is used for validation issues and questions and comments regarding markup (wrong tag, validation problems the commenter cannot resolve without help, etc.).

layout

Use this for remarks related to the layout. For example, use it for comments suggesting a change in list type or those related to line break problems in the output.

structural

Structural remarks relate to how the text is put together. It can be about content that should be placed elsewhere or the level of headings.

clarity

This role should be used when text is unclear or changes are proposed to improve the wording.

needinfo

The author should use this role to report when he or she is waiting for information from a developer or other person or to request information.

trans

Use this for comments to translators.

generic

Use this role for all remarks that do not fit into one of the other categories.

The writer of the remark should start the remark with his or her username followed by a colon (:). Others responding to the remark should insert their username, a colon, and comments inside the tags but starting on a new line. Comments should be deleted by the original writer when they consider the issue resolved. The following is an example remark:

<remark role="needinfo">tux: couldn't find the option for foo
geeko: see /usr/share/doc/foo.html</remark>

9.2. XML Comments

XML comments are primarily used for temporarily disabling portions of text. Because they can appear at any point in a file, they can also be used to point the reader of a remark to the appropriate point in a text.

The final use of comments is to mark changes made for layout reasons. The following is an example of a layout comment.

<!--layout tux: split para -->
[Tip]Valid Comments

Do not use -- in comments. The use of -- causes errors.