summaryrefslogtreecommitdiff
path: root/docs/styleguide.rst
blob: 469f0d8d75b3685fa71bf06e21b683d901d0d735 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
=========================
Documentation style guide
=========================

.. contents::

The following documents some specific libvirt rules for writing docs in
reStructuredText

Table of contents
=================

Any document which uses headings and whose content is long enough to cause
scrolling when viewed in the browser must start with a table of contents.
This should be created using the default formatting:

::

   .. contents::


Whitespace
==========

Blocks should be indented with 3 spaces, and no tabs

Code blocks
===========

Code blocks should be created using

::

   This is regular text.

   ::

      This is a code block.

Headings
========

RST allows headings to be created simply by underlining with any punctuation
characters. Optionally the text may be overlined to.

For the sake of consistency, libvirt defines the following style requirement
which allows for 6 levels of headings

::

   =========
   Heading 1
   =========



   Heading 2
   =========



   Heading 3
   ---------



   Heading 4
   ~~~~~~~~~



   Heading 5
   .........



   Heading 6
   ^^^^^^^^^

Tables
======

Tables should be created using the ``list-table`` directive whenever
possible, as in

::

   .. list-table::
      :header-rows: 1

      * - Option
        - Description

      * - ``foo_enabled``
        - Whether or not ``foo`` should be enabled

      * - ``bar_user``
        - Which user to run ``bar`` as

Manual pages
============

RST documents created as manual pages must have the following structure

::

  ===========
  ::PROGRAM::
  ===========

  ---------------------------
  ...line line description...
  ---------------------------

  :Manual section: 8
  :Manual group: Virtualization Support

  .. contents::

  SYNOPSIS
  ========

  ``::PROGRAM::`` [*OPTION*]...

  DESCRIPTION
  ===========

  ...describe the tool / program ...

  OPTIONS
  =======

  ``-h``, ``--help``

  Display command line help usage then exit.

  ...and other args....

  FILES
  =====

  ...any files used that the user needs to know about. eg config
  files in particular...

  AUTHORS
  =======

  Please refer to the AUTHORS file distributed with libvirt.

  BUGS
  ====

  Please report all bugs you discover.  This should be done via either:

  #. the mailing list

   `https://libvirt.org/contact.html <https://libvirt.org/contact.html>`_

  #. the bug tracker

   `https://libvirt.org/bugs.html <https://libvirt.org/bugs.html>`_

  Alternatively, you may report bugs to your software distributor / vendor.


  COPYRIGHT
  =========

  Copyright (C) ::DATE:: ::ORIGINAL AUTHOR::, and the authors listed in the
  libvirt AUTHORS file.

  LICENSE
  =======

  ``::PROGRAM::`` is distributed under the terms of the GNU LGPL v2.1+.
  This is free software; see the source for copying conditions. There
  is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
  PURPOSE

  SEE ALSO
  ========

  ...other man page links....
  `https://libvirt.org/ <https://libvirt.org/>`_