Difference between revisions of "Documentation/Conventions"
(Documented boolean config options) |
(Added "force a line break", and a note about how boolean flags without truth values might not work) |
||
Line 29: | Line 29: | ||
− | Don't do it this way | + | Don't do it this way (which may not even work?) |
Line 285: | Line 285: | ||
</tbody> | </tbody> | ||
</table> | </table> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | == Force a line break == | ||
+ | |||
+ | |||
+ | <pre><nowiki> | ||
+ | <?sbr?> | ||
</nowiki></pre> | </nowiki></pre> |
Revision as of 19:52, 6 June 2012
DocBook markup conventions
This page offers conventions for DocBook markup. Please modify this page as you come across more markup you need for the docs.openstack.org site.
General style conventions
- Use "OpenStack", not Openstack or openstack.
- Use "Compute", "Image", and "Identity" when referring to the services instead of "nova", "glance", and "keystone". Use the project names like "nova" and "keystone" when referring to the project or for CLI commands and service names.
- Wrap lines to 70 characters.
euca2ools documentation
Since Nova exposes both its own API and an EC2-compatible API, many tasks can be executed using either the nova CLI or euca2ools. Documentation related to euca2ools should generally be limited to:
- Describing euca2ools commands that don't yet have a nova CLI equivalent (e.g., euca-get-console-output)
- Describing how to get credentials to work with euca2ools
- Describing differences between how Amazon's EC2 endpoint behaves and how an OpenStack endpoint behaves when accessing via EC2.
Boolean configuration options
When documenting boolean configuration options, use the format that explicitly specifies the truth value:
force_dhcp_release=True use_ipv6=False
Don't do it this way (which may not even work?)
force_dhcp_release nouse_ipv6
Sections
All section tags must have an xml:id attribute. This enables unique file names for the generated HTML and human-readable page titles, plus it lets Disqus threads stay with the HTML page:
<section xml:id="section-id-goes-here"> ... </section>
If you want to keep several sections on a single HTML page, use a "stop chunking" processing directive:
<?dbhtml stop-chunking?>
Links
External
<link xlink:href="http://www.example.com">Linked text here</link>
Internal
<link linkend="section-name-here">Linked text here</link>
Information or configuration files that the user has to type or read
Do not indent the text (open/close tags may be indented)
<programlisting> config-file-example=asdf foo=bar hello=world </programlisting>
Inline configuration information (option name or value)
<literal>--use_deprecated_auth</literal>
Configuration information when part should be replaced
<literal>http://<replaceable>IP_ADDRESS</replaceable>/foo/bar</literal>
Inline mention of a specific command
<command>nova-manage</command>
Command to type into a shell
Do not indent the text (open/close tags may be indented)
<screen> <prompt>$</prompt> <userinput>command as a regular usre</userinput> </screen>
<screen> <prompt>#</prompt> <userinput>command as root</userinput> </screen>
<screen> <prompt>(mysql)</prompt> <userinput>command to type</userinput> </screen>
Result of the command
Do not indent the text (open/close tags may be indented)
<screen> <computeroutput>result output goes here</computeroutput> </screen>
Note that this can be combined with a prompt and input:
<screen> <prompt>$</prompt> <userinput>command to type</userinput> <computeroutput>result output goes here</computeroutput> </screen>
File names
<filename>/my/file/is/here</filename>
File contents
The programlisting tag can do further output enhancements by using the language="langname" attribute including: bash, java, json, and xml.
<programlisting> contents of a file </programlisting>
Linux service
For example, nova-network or dnsmasq.
<systemitem class="service">nova-network</systemitem>
Ordered procedure to follow (where step 2 needs to be done after step 1)
<orderedlist> <listitem><para>...</para></listitem> </orderedlist>
Instructions to follow with no critical dependency across steps
<itemizedlist> <listitem><para>...</para></listitem> </itemizedlist>
A list in key/value form
<variablelist> <varlistentry> <term>key</term> <listitem>value</listitem> </varlistentry> <varlistentry> <term>key</term> <listitem>value</listitem> </varlistentry> </variablelist>
Notes
You can specify a Note callout box by doing:
<note><para>...</para></note>
Embedding images
Example:
<mediaobject> <imageobject role="fo"> <imagedata fileref="figures/dashboard-overview.png" format="PNG" scale="60"/> </imageobject> <imageobject role="html"> <imagedata fileref="figures/dashboard-overview.png" format="PNG" /> </imageobject> </mediaobject>
Tables
Example:
<table rules="all"> <caption>Hardware Recommendations </caption> <col width="20%"/> <col width="23%"/> <col width="57%"/> <thead> <tr> <td>Server</td> <td>Recommended Hardware</td> <td>Notes</td> </tr> </thead> <tbody> <tr> <td><para>...</para></td> ... </tr> </tbody> </table>
Force a line break
<?sbr?>