/[gentoo]/xml/htdocs/doc/en/xml-guide.xml
Gentoo

Diff of /xml/htdocs/doc/en/xml-guide.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.6 Revision 1.39
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version='1.0' encoding="UTF-8"?>
2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xml-guide.xml,v 1.39 2005/04/16 19:45:35 swift Exp $ -->
2<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3 4
4<guide link="/doc/en/xml-guide.xml"> 5<guide link="/doc/en/xml-guide.xml">
5<title>Gentoo Linux Documentation Guide</title> 6<title>Gentoo Linux XML Guide</title>
7
8<author title="Author">
6<author title="Author"><mail link="drobbins@gentoo.org">Daniel Robbins</mail></author> 9 <mail link="drobbins@gentoo.org">Daniel Robbins</mail>
7<author title="Editor"><mail link="zhen@gentoo.org">John P. Davis</mail></author> 10</author>
11<author title="Author"><!-- zhen@gentoo.org -->
12 John P. Davis
13</author>
14<author title="Editor">
15 <mail link="peesh@gentoo.org">Jorge Paulo</mail>
16</author>
17<author title="Editor">
18 <mail link="swift@gentoo.org">Sven Vermeulen</mail>
19</author>
20<author title="Editor">
21 <mail link="neysx@gentoo.org">Xavier Neys</mail>
22</author>
8 23
24<abstract>
9<abstract>This guide shows you how to compose web documentation using the new lightweight Gentoo guide 25This guide shows you how to compose web documentation using the new lightweight
10XML syntax. This syntax is the official format for Gentoo Linux documentation, and this document 26Gentoo GuideXML syntax. This syntax is the official format for Gentoo Linux
11itself was created using guide XML. This guide assumes a basic working knowledge of XML and HTML. 27documentation, and this document itself was created using GuideXML. This guide
28assumes a basic working knowledge of XML and HTML.
12</abstract> 29</abstract>
13 30
31<!-- The content of this document is licensed under the CC-BY-SA license -->
32<!-- See http://creativecommons.org/licenses/by-sa/2.0 -->
33<license/>
34
14<version>1.1</version> 35<version>2.16</version>
15<date>10 January 2002</date> 36<date>2005-04-16</date>
16 37
17<chapter> 38<chapter>
18<title>Guide basics</title> 39<title>Guide basics</title>
19
20<section> 40<section>
21<title>Guide XML design goals</title> 41<title>Guide XML design goals</title>
22<body> 42<body>
23 43
44<p>
24<p> The guide XML syntax is lightweight yet expressive, so that it is easy to 45The guide XML syntax is lightweight yet expressive, so that it is easy to
25learn yet also provides all the features we need for the creation of web 46learn yet also provides all the features we need for the creation of web
26documentation. The number of tags is kept to a minimum -- just those we need. 47documentation. The number of tags is kept to a minimum -- just those we need.
27This makes it easy to transform guide into other formats, such as DocBook 48This makes it easy to transform guide into other formats, such as DocBook
28XML/SGML or web-ready HTML. </p> 49XML/SGML or web-ready HTML.
50</p>
29 51
52<p>
30<p>The goal is to make it easy to <e>create</e> and <e>transform</e> guide XML 53The goal is to make it easy to <e>create</e> and <e>transform</e> guide XML
31documents.</p> 54documents.
55</p>
32 56
33</body> 57</body>
34</section>
35
36<section> 58</section>
37<title>How to transform guide XML into HTML</title> 59<section>
60<title>Further Resources</title>
38<body> 61<body>
39 62
40<p> Before we take a look at the guide syntax itself, it's helpful to know how
41guide XML is transformed into web-ready HTML. To do this, we use a special
42file called <path>guide.xsl</path>, along with a command-line XSLT processing
43tool (also called an "engine"). The <path>guide.xsl</path> file describes
44exactly how to transform the contents of the source guide XML document to
45create the target HTML file. Two popular XSLT processors are <c>sabcmd</c>
46(included in the <path>app-text/sablotron</path> package) and <c>xsltproc</c>
47(found in the <path>dev-libs/libxslt</path> package). From experience, we've
48found that <c>xsltproc</c> is the higher-quality and more feature-rich XSLT
49processor. </p>
50
51
52<p> Once you have either <c>xsltproc</c> or <c>sabcmd</c> installed, you're
53ready to convert guide XML into web-ready HTML. In order to do this though,
54it is necessary to get the latest snapshot of our website tree.
55</p> 63<p>
56 64If you are planning on contributing documentation to Gentoo, or you want to
57<p>The gzipped tarball for the website can be found 65test GuideXML, please read the <uri
58<uri link="http://www.gentoo.org/dyn/arch/xml-guide-latest.tar.gz">here</uri>. 66link="/proj/en/gdp/doc/doc-tipsntricks.xml">Tips and Tricks</uri> which
59</p> 67contains tips and tricks for documentation development.
60
61<p>Now, extract the tarball. Inside it, you'll find a <path>htdocs</path>
62directory. Now, find <path>htdocs/doc/&lt;your lang&gt;/gentoo-x86-install.xml</path>
63(The new user installation guide). This will be our source XML guide document.
64The easiest way to perform the transformation is to change directories to the location of the
65<path>guide.xsl</path> file. Then, execute <c>xsltproc</c> as follows:
66</p>
67
68<pre caption="Transforming gentoo-x86-install.xml">
69# <c>cd gentoo-web/xsl</c>
70# <c>xsltproc guide.xsl ../doc/&lt;your lang&gt;/gentoo-x86-install.xml &gt; /tmp/install.html</c>
71</pre>
72
73<p> If all went well, you should have a web-ready version of
74<path>gentoo-x86-install.xml</path> at <path>/tmp/install.html</path>. For this document
75to display properly in a web browser, you may have to copy some files from
76<path>htdocs</path> to <path>/tmp</path>, such
77as <path>css/main-new.css</path> and (to be safe) the entire <path>images</path>
78directory.
79</p> 68</p>
80 69
81</body> 70</body>
82</section> 71</section>
83</chapter> 72</chapter>
73
84<chapter> 74<chapter>
85 <title>Guide XML</title> 75<title>Guide XML</title>
86<section> 76<section>
87<title>Basic structure</title> 77<title>Basic structure</title>
88<body> 78<body>
89 79
90<p>Now that you know how to transform guide XML, you're ready to start learning 80<p>
91the guide XML syntax. We'll start with the the initial tags used in a guide 81Let's start learning the GuideXML syntax. We'll start with the the initial
92XML document: </p> 82tags used in a GuideXML document:
83</p>
93 84
94<pre caption="The initial part of a guide XML document"> 85<pre caption="The initial part of a guide XML document">
95&lt;?xml version='1.0' encoding="UTF-8"?&gt; 86&lt;?xml version='1.0' encoding="UTF-8"?&gt;
96&lt;guide link="relative_link_to_your_guide"&gt; 87&lt;!DOCTYPE guide SYSTEM "/dtd/guide.dtd"&gt;
88&lt;guide link="<i>relative/link/to/your/guide.xml</i>" lang="<i>en</i>"&gt;
97&lt;title&gt;<i>Gentoo Linux Documentation Guide</i>&lt;/title&gt; 89&lt;title&gt;<i>Gentoo Linux Documentation Guide</i>&lt;/title&gt;
98&lt;author title="<i>Chief Architect</i>"&gt;&lt;mail link="<i>drobbins@gentoo.org</i>"&gt; 90&lt;author title="<i>Author</i>"&gt;
99 <i>Daniel Robbins</i>&lt;/mail&gt; 91 &lt;mail link="<i>yourname@gentoo.org</i>"&gt;<i>Your Name</i>&lt;/mail&gt;
100&lt;/author&gt; 92&lt;/author&gt;
101&lt;author title="<i>Editor</i>"&gt;&lt;mail link="<i>thomasfl@gentoo.org</i>"&gt;
102 <i>Thomas Flavel</i>&lt;/mail&gt;
103&lt;/author&gt;
104 93
105<impo>If you are going to be submitting documents, it is necessary to read the 94&lt;abstract&gt;
106<uri link="http://www.gentoo.org/doc/en/doc-developer-guide.xml">Gentoo Documentation Developer's Policy</uri>.
107</impo>
108
109&lt;abstract&gt;<i>This guide shows you how to compose web documentation using 95<i>This guide shows you how to compose web documentation using
110our new lightweight Gentoo guide XML syntax. This syntax is the official 96our new lightweight Gentoo GuideXML syntax. This syntax is the official
111format for Gentoo Linux web documentation, and this document itself was created 97format for Gentoo Linux web documentation, and this document itself was created
112using guide XML.</i> &lt;/abstract&gt; 98using GuideXML.</i>
99&lt;/abstract&gt;
100
101&lt;!-- The content of this document is licensed under the CC-BY-SA license --&gt;
102&lt;!-- See http://creativecommons.org/licenses/by-sa/2.0 --&gt;
103&lt;license/&gt;
113 104
114&lt;version&gt;<i>1.0</i>&lt;/version&gt; 105&lt;version&gt;<i>1.0</i>&lt;/version&gt;
115&lt;date&gt;<i>29 Mar 2001</i>&lt;/date&gt; 106&lt;date&gt;<i>2004-12-25</i>&lt;/date&gt;
116</pre> 107</pre>
117 108
109<p>
118<p>On the first, line, we see the requisite tag that identifies this as an XML 110On the first, line, we see the requisite tag that identifies this as an XML
119document. Following it, there's a <c>&lt;guide&gt;</c> tag -- the entire 111document. Following it, there's a <c>&lt;guide&gt;</c> tag -- the entire
120guide document is enclosed within a <c>&lt;guide&gt; &lt;/guide&gt;</c> pair. 112guide document is enclosed within a <c>&lt;guide&gt; &lt;/guide&gt;</c> pair.
113The <c>link</c> attribute is compulsory and should preferably contain the
114relative path to the document even though the file name alone will work. It is
115mainly used to generate a link to a printer-friendly version of your document.
116If you use a wrong value, the link to the printable version will either not
117work or point to a wrong document. The <c>lang</c> attribute can be used to
118specify the language code of your document. It is used to format the date and
119insert strings like "<e>Note</e>", "<e>Content</e>", etc. in the specified
120language. The default is English.
121</p>
122
123<p>
121Next, there's a <c>&lt;title&gt;</c> tag, used to set the title for the entire 124Next, there's a <c>&lt;title&gt;</c> tag, used to set the title for the entire
122guide document. </p> 125guide document.
126</p>
123 127
128<p>
124<p>Then, we come to the <c>&lt;author&gt;</c> tags, which contain information 129Then, we come to the <c>&lt;author&gt;</c> tags, which contain information
125about the various authors of the document. Each <c>&lt;author&gt;</c> tag 130about the various authors of the document. Each <c>&lt;author&gt;</c> tag
126allows for an optional <c>title=</c> element, used to specify the author's 131allows for an optional <c>title=</c> element, used to specify the author's
127relationship to the document (author, co-author, editor, etc.). In this 132relationship to the document (author, co-author, editor, etc.). In this
128particular example, the authors' names are enclosed in another tag -- a 133particular example, the authors' names are enclosed in another tag -- a
129<c>&lt;mail&gt;</c> tag, used to specify an email address for this particular 134<c>&lt;mail&gt;</c> tag, used to specify an email address for this particular
130person. The <c>&lt;mail&gt;</c> tag is optional and can be omitted, and no 135person. The <c>&lt;mail&gt;</c> tag is optional and can be omitted, and no
131more than one <c>&lt;author&gt;</c> element is required per guide document. 136more than one <c>&lt;author&gt;</c> element is required per guide document.
132</p> 137</p>
133 138
139<p>
134<p>Next, we come to the <c>&lt;abstract&gt;</c>, <c>&lt;version&gt;</c> and 140Next, we come to the <c>&lt;abstract&gt;</c>, <c>&lt;version&gt;</c> and
135<c>&lt;date&gt;</c> tags, used to specify a summary of the document, the 141<c>&lt;date&gt;</c> tags, used to specify a summary of the document, the
136current version number, and the current version date (in DD MMM YYYY format) 142current version number, and the current version date (in YYYY-MM-DD format)
143respectively. Dates that are invalid or not in the YYYY-MM-DD format will
144appear verbatim in the rendered document.
145</p>
146
147<p>
137respectively. This rounds out the tags that should appear at the beginning of 148This rounds out the tags that should appear at the beginning of a guide
138a guide document. Besides the <c>&lt;title&gt;</c> and <c>&lt;mail&gt;</c> 149document. Besides the <c>&lt;title&gt;</c> and <c>&lt;mail&gt;</c> tags, these
139tags, these tags shouldn't appear anywhere else except immediately inside the 150tags shouldn't appear anywhere else except immediately inside the
140<c>&lt;guide&gt;</c> tag, and for consistency it's recommended (but not 151<c>&lt;guide&gt;</c> tag, and for consistency it's recommended (but not
141required) that these tags appear before the content of the document. </p> 152required) that these tags appear before the content of the document.
153</p>
142 154
143</body> 155<p>
144</section> 156Finally we have the <c>&lt;license/&gt;</c> tag, used to publish the document
157under the <uri link="http://creativecommons.org/licenses/by-sa/2.0/">Creative
158Commons - Attribution / Share Alike</uri> license as required by the <uri
159link="/proj/en/gdp/doc/doc-policy.xml">Documentation Policy</uri>.
160</p>
145 161
162</body>
163</section>
146<section> 164<section>
147<title>Chapters and sections</title> 165<title>Chapters and sections</title>
148<body> 166<body>
167
168<p>
149<p>Once the initial tags have been specified, you're ready to start adding 169Once the initial tags have been specified, you're ready to start adding the
150the structural elements of the document. Guide documents are divided into 170structural elements of the document. Guide documents are divided into
151chapters, and each chapter can hold one or more sections. Every chapter 171chapters, and each chapter can hold one or more sections. Every chapter and
152and section has a title. Here's an example chapter with a single section, 172section has a title. Here's an example chapter with a single section,
153consisting of a paragraph. If you append this XML to the XML in the <uri link="#doc_pre2">previous 173consisting of a paragraph. If you append this XML to the XML in the <uri
174link="#doc_chap2_pre1">previous excerpt</uri> and append a
154excerpt</uri> and append a <c>&lt;/guide&gt;</c> to the end of the file, you'll have a valid 175<c>&lt;/guide&gt;</c> to the end of the file, you'll have a valid (if minimal)
155(if minimal) guide document: 176guide document:
156</p> 177</p>
157 178
158<pre> 179<pre caption="Minimal guide example">
159&lt;chapter&gt; 180&lt;chapter&gt;
160&lt;title&gt;<i>This is my chapter</i>&lt;/title&gt; 181&lt;title&gt;<i>This is my chapter</i>&lt;/title&gt;
161&lt;section&gt; 182&lt;section&gt;
162 &lt;title&gt;<i>This is section one of my chapter</i>&lt;/title&gt; 183&lt;title&gt;<i>This is section one of my chapter</i>&lt;/title&gt;
163 &lt;body&gt; 184&lt;body&gt;
185
186&lt;p&gt;
164 &lt;p&gt;<i>This is the actual text content of my section.</i>&lt;/p&gt; 187<i>This is the actual text content of my section.</i>
188&lt;/p&gt;
189
165 &lt;/body&gt; 190&lt;/body&gt;
166&lt;/section&gt; 191&lt;/section&gt;
167&lt;/chapter&gt; 192&lt;/chapter&gt;
168</pre> 193</pre>
169 194
195<p>
170<p>Above, I set the chapter title by adding a child <c>&lt;title&gt;</c> 196Above, I set the chapter title by adding a child <c>&lt;title&gt;</c>
171element to the <c>&lt;chapter&gt;</c> element. Then, I created a section by 197element to the <c>&lt;chapter&gt;</c> element. Then, I created a section by
172adding a <c>&lt;section&gt;</c> element. If you look inside the 198adding a <c>&lt;section&gt;</c> element. If you look inside the
173<c>&lt;section&gt;</c> element, you'll see that it has two child elements -- a 199<c>&lt;section&gt;</c> element, you'll see that it has two child elements -- a
174<c>&lt;title&gt;</c> and a <c>&lt;body&gt;</c>. While the <c>&lt;title&gt;</c> 200<c>&lt;title&gt;</c> and a <c>&lt;body&gt;</c>. While the <c>&lt;title&gt;</c>
175is nothing new, the <c>&lt;body&gt;</c> is -- it contains the actual text 201is nothing new, the <c>&lt;body&gt;</c> is -- it contains the actual text
176content of this particular section. We'll look at the tags that are allowed 202content of this particular section. We'll look at the tags that are allowed
177inside a <c>&lt;body&gt;</c> element in a bit. </p> 203inside a <c>&lt;body&gt;</c> element in a bit.
204</p>
178 205
206<note>
179<note>A <c>&lt;guide&gt;</c> element can contain multiple 207A <c>&lt;guide&gt;</c> element can contain multiple <c>&lt;chapter&gt;</c>
180<c>&lt;chapter&gt;</c> elements, and a <c>&lt;chapter&gt;</c> can contain 208elements, and a <c>&lt;chapter&gt;</c> can contain multiple
181multiple <c>&lt;section&gt;</c> elements. However, a <c>&lt;section&gt;</c> 209<c>&lt;section&gt;</c> elements. However, a <c>&lt;section&gt;</c>
182element can only contain one <c>&lt;body&gt;</c> element. </note> 210element can only contain one <c>&lt;body&gt;</c> element.
211</note>
183 212
184</body> 213</body>
185</section> 214</section>
186
187<section> 215<section>
188<title>An example &lt;body&gt;</title> 216<title>An example &lt;body&gt;</title>
189<body> 217<body>
190<p> 218
191Now, it's time to learn how to mark up actual content. Here's the XML code for an example <c>&lt;body&gt;</c> element:
192</p> 219<p>
193<pre> 220Now, it's time to learn how to mark up actual content. Here's the XML code for
221an example <c>&lt;body&gt;</c> element:
222</p>
223
224<pre caption="Example of a body element">
194&lt;p&gt; 225&lt;p&gt;
195This is a paragraph. &lt;path&gt;/etc/passwd&lt;/path&gt; is a file. 226This is a paragraph. &lt;path&gt;/etc/passwd&lt;/path&gt; is a file.
196&lt;uri&gt;http://www.gentoo.org&lt;/uri&gt; is my favorite website. 227&lt;uri&gt;http://forums.gentoo.org&lt;/uri&gt; is my favorite website.
197Type &lt;c&gt;ls&lt;/c&gt; if you feel like it. I &lt;e&gt;really&lt;/e&gt; want to go to sleep now. 228Type &lt;c&gt;ls&lt;/c&gt; if you feel like it. I &lt;e&gt;really&lt;/e&gt; want to go to sleep now.
198&lt;/p&gt; 229&lt;/p&gt;
199 230
200&lt;pre&gt; 231&lt;pre caption="Code Sample"&gt;
201This is text output or code. 232This is text output or code.
202# &lt;i&gt;this is user input&lt;/i&gt; 233# &lt;i&gt;this is user input&lt;/i&gt;
203 234
204Make HTML/XML easier to read by using selective emphasis: 235Make HTML/XML easier to read by using selective emphasis:
205&lt;foo&gt;&lt;i&gt;bar&lt;/i&gt;&lt;/foo&gt; 236&lt;foo&gt;&lt;i&gt;bar&lt;/i&gt;&lt;/foo&gt;
206 237
207&lt;codenote&gt;This is how to insert an inline note into the code block&lt;/codenote&gt; 238&lt;comment&gt;(This is how to insert an inline note into the code block)&lt;/comment&gt;
208&lt;/pre&gt; 239&lt;/pre&gt;
209&lt;note&gt;This is a note.&lt;/note&gt; 240
210&lt;warn&gt;This is a warning.&lt;/warn&gt; 241&lt;note&gt;
211&lt;impo&gt;This is important.&lt;/impo&gt; 242This is a note.
243&lt;/note&gt;
244
245&lt;warn&gt;
246This is a warning.
247&lt;/warn&gt;
248
249&lt;impo&gt;
250This is important.
251&lt;/impo&gt;
212</pre> 252</pre>
253
254<p>
213<p>Now, here's how this <c>&lt;body&gt;</c> element is rendered:</p> 255Now, here's how the <c>&lt;body&gt;</c> element above is rendered:
256</p>
214 257
215<p> 258<p>
216This is a paragraph. <path>/etc/passwd</path> is a file. 259This is a paragraph. <path>/etc/passwd</path> is a file.
217<uri>http://www.gentoo.org</uri> is my favorite website. 260<uri>http://forums.gentoo.org</uri> is my favorite website.
218Type <c>ls</c> if you feel like it. I <e>really</e> want to go to sleep now. 261Type <c>ls</c> if you feel like it. I <e>really</e> want to go to sleep now.
219</p> 262</p>
220 263
221<pre> 264<pre caption="Code Sample">
222This is text output or code. 265This is text output or code.
223# <i>this is user input</i> 266# <i>this is user input</i>
224 267
225Make HTML/XML easier to read by using selective emphasis: 268Make HTML/XML easier to read by using selective emphasis:
226&lt;foo&gt;<i>bar</i>&lt;/foo&gt; 269&lt;foo&gt;<i>bar</i>&lt;/foo&gt;
227 270
228<codenote>This is how to insert an inline note into the code block</codenote> 271<comment>(This is how to insert an inline note into the code block)</comment>
229</pre> 272</pre>
230<note>This is a note.</note>
231<warn>This is a warning.</warn>
232<impo>This is important.</impo>
233</body>
234</section>
235 273
274<note>
275This is a note.
276</note>
277
278<warn>
279This is a warning.
280</warn>
281
282<impo>
283This is important.
284</impo>
285
286</body>
287</section>
236<section> 288<section>
237<title>The &lt;body&gt; tags</title> 289<title>The &lt;body&gt; tags</title>
238<body> 290<body>
239 291
292<p>
240<p> We introduced a lot of new tags in the previous section -- here's what you 293We introduced a lot of new tags in the previous section -- here's what you
241need to know. The <c>&lt;p&gt;</c> (paragraph), <c>&lt;pre&gt;</c> (code 294need to know. The <c>&lt;p&gt;</c> (paragraph), <c>&lt;pre&gt;</c> (code
242block), <c>&lt;note&gt;</c>, <c>&lt;warn&gt;</c> (warning) and 295block), <c>&lt;note&gt;</c>, <c>&lt;warn&gt;</c> (warning) and
243<c>&lt;impo&gt;</c> (important) tags all can contain one or more lines of text. 296<c>&lt;impo&gt;</c> (important) tags all can contain one or more lines of text.
244Besides the <c>&lt;table&gt;</c> element (which we'll cover in just a bit), 297Besides the <c>&lt;table&gt;</c> element (which we'll cover in just a bit),
245these are the only tags that should appear immediately inside a 298these are the only tags that should appear immediately inside a
246<c>&lt;body&gt;</c> element. Another thing -- these tags <e>should not</e> be 299<c>&lt;body&gt;</c> element. Another thing -- these tags <e>should not</e> be
247stacked -- in other words, don't put a <c>&lt;note&gt;</c> element inside a 300stacked -- in other words, don't put a <c>&lt;note&gt;</c> element inside a
248<c>&lt;p&gt;</c> element. As you might guess, the <c>&lt;pre&gt;</c> element 301<c>&lt;p&gt;</c> element. As you might guess, the <c>&lt;pre&gt;</c> element
249preserves its whitespace exactly, making it well-suited for code excerpts.</p> 302preserves its whitespace exactly, making it well-suited for code excerpts.
303You can also name the <c>&lt;pre&gt;</c> tag:
304</p>
305
306<pre caption="Named &lt;pre&gt;">
307&lt;pre caption = "Output of uptime"&gt;
308# &lt;i&gt;uptime&lt;/i&gt;
30916:50:47 up 164 days, 2:06, 5 users, load average: 0.23, 0.20, 0.25
310&lt;/pre&gt;
311</pre>
250 312
251</body> 313</body>
252</section> 314</section>
253<section> 315<section>
254<title>&lt;path&gt;, &lt;c&gt; and &lt;e&gt;</title> 316<title>&lt;path&gt;, &lt;c&gt; and &lt;e&gt;</title>
255<body> 317<body>
256 318
319<p>
257<p>The <c>&lt;path&gt;</c>, <c>&lt;c&gt;</c> and <c>&lt;e&gt;</c> elements can 320The <c>&lt;path&gt;</c>, <c>&lt;c&gt;</c> and <c>&lt;e&gt;</c> elements can
258be used inside any child <c>&lt;body&gt;</c> tag, except for 321be used inside any child <c>&lt;body&gt;</c> tag, except for
259<c>&lt;pre&gt;</c>. </p> 322<c>&lt;pre&gt;</c>.
323</p>
260 324
325<p>
261<p>The <c>&lt;path&gt;</c> element is used to mark text that refers to an 326The <c>&lt;path&gt;</c> element is used to mark text that refers to an
262<e>on-disk file</e> -- either an <e>absolute or relative path</e>, or a <e>simple filename</e>. 327<e>on-disk file</e> -- either an <e>absolute or relative path</e>, or a
263This element is generally rendered with a monospaced font to offset it from the 328<e>simple filename</e>. This element is generally rendered with a monospaced
264standard paragraph type. </p> 329font to offset it from the standard paragraph type.
330</p>
265 331
332<p>
266<p>The <c>&lt;c&gt;</c> element is used to mark up a <e>command</e> or <e>user 333The <c>&lt;c&gt;</c> element is used to mark up a <e>command</e> or <e>user
267input</e>. Think of <c>&lt;c&gt;</c> as a way to alert the reader to something 334input</e>. Think of <c>&lt;c&gt;</c> as a way to alert the reader to something
268that they can type in that will perform some kind of action. For example, all 335that they can type in that will perform some kind of action. For example, all
269the XML tags displayed in this document are enclosed in a <c>&lt;c&gt;</c> 336the XML tags displayed in this document are enclosed in a <c>&lt;c&gt;</c>
270element because they represent something that the user could type in that is 337element because they represent something that the user could type in that is
271not a path. By using <c>&lt;c&gt;</c> elements, you'll help your readers 338not a path. By using <c>&lt;c&gt;</c> elements, you'll help your readers
272quickly identify commands that they need to type in. Also, because 339quickly identify commands that they need to type in. Also, because
273<c>&lt;c&gt;</c> elements are already offset from regular text, <e>it is rarely 340<c>&lt;c&gt;</c> elements are already offset from regular text, <e>it is rarely
274necessary to surround user input with double-quotes</e>. For example, don't 341necessary to surround user input with double-quotes</e>. For example, don't
275refer to a "<c>&lt;c&gt;</c>" element like I did in this sentence. Avoiding 342refer to a "<c>&lt;c&gt;</c>" element like I did in this sentence. Avoiding
276the use of unnecessary double-quotes makes a document more readable -- and adorable!</p> 343the use of unnecessary double-quotes makes a document more readable -- and
344adorable!
345</p>
277 346
347<p>
278<p><c>&lt;e&gt;</c> is used to apply emphasis to a word or phrase; for example: 348<c>&lt;e&gt;</c> is used to apply emphasis to a word or phrase; for example:
279I <e>really</e> should use semicolons more often. As you can see, this text is 349I <e>really</e> should use semicolons more often. As you can see, this text is
280offset from the regular paragraph type for emphasis. This helps to give your 350offset from the regular paragraph type for emphasis. This helps to give your
281prose more <e>punch</e>!</p> 351prose more <e>punch</e>!
352</p>
282 353
283</body> 354</body>
284</section> 355</section>
285
286<section> 356<section>
287<title>&lt;mail&gt; and &lt;uri&gt;</title> 357<title>&lt;mail&gt; and &lt;uri&gt;</title>
288<body> 358<body>
289 359
360<p>
290<p>We've taken a look at the <c>&lt;mail&gt;</c> tag earlier; it's used to link some text 361We've taken a look at the <c>&lt;mail&gt;</c> tag earlier; it's used to link
291with a particular email address, and takes the form <c>&lt;mail link="foo@bar.com"&gt;Mr. Foo Bar&lt;/mail&gt;</c>.</p> 362some text with a particular email address, and takes the form <c>&lt;mail
363link="foo@bar.com"&gt;Mr. Foo Bar&lt;/mail&gt;</c>.
364</p>
292 365
366<p>
293<p>The <c>&lt;uri&gt;</c> tag is used to point to files/locations on the 367The <c>&lt;uri&gt;</c> tag is used to point to files/locations on the Internet.
294Internet. It has two forms -- the first can be used when you want to have the 368It has two forms -- the first can be used when you want to have the actual URI
295actual URI displayed in the body text, such as this link to 369displayed in the body text, such as this link to
296<uri>http://www.gentoo.org</uri>. To create this link, I typed 370<uri>http://forums.gentoo.org</uri>. To create this link, I typed
297<c>&lt;uri&gt;http://www.gentoo.org&lt;/uri&gt;</c>. The alternate form is 371<c>&lt;uri&gt;http://forums.gentoo.org&lt;/uri&gt;</c>. The alternate form is
298when you want to associate a URI with some other text -- for example, <uri 372when you want to associate a URI with some other text -- for example, <uri
299link="http://www.gentoo.org">the Gentoo Linux website</uri>. To create <e>this</e> 373link="http://forums.gentoo.org">the Gentoo Forums</uri>. To create <e>this</e>
300link, I typed <c>&lt;uri link="http://www.gentoo.org"&gt;the Gentoo Linux website&lt;/uri&gt;</c>. 374link, I typed <c>&lt;uri link="http://forums.gentoo.org"&gt;the Gentoo
375Forums&lt;/uri&gt;</c>. You don't need to write <c>http://www.gentoo.org/</c>
376to link to other parts of the Gentoo website. For instance, a link to the <uri
377link="/doc/en/">documentation main index</uri> should be simply <c>&lt;uri
378link="/doc/en/index.xml"&gt;documentation main index&lt;/uri&gt;</c>. You can
379even omit <c>index.xml</c> when you link to a directory index, e.g. <c>&lt;uri
380link="/doc/en/"&gt;documentation main index&lt;/uri&gt;</c>.
301</p> 381</p>
302 382
303</body> 383</body>
304</section> 384</section>
305
306<section> 385<section>
307<title>Figures</title> 386<title>Figures</title>
308
309<body> 387<body>
310 388
389<p>
311<p>Here's how to insert a figure into a document -- <c>&lt;figure 390Here's how to insert a figure into a document -- <c>&lt;figure
312link="mygfx.png" short="my picture" caption="my favorite picture of all 391link="mygfx.png" short="my picture" caption="my favorite picture of all
313time"/&gt;</c>. The <c>link=</c> attribute points to the actual graphic image, 392time"/&gt;</c>. The <c>link=</c> attribute points to the actual graphic image,
314the <c>short=</c> attribute specifies a short description (currently used for 393the <c>short=</c> attribute specifies a short description (currently used for
315the image's HTML <c>alt=</c> attribute), and a caption. Not too difficult 394the image's HTML <c>alt=</c> attribute), and a caption. Not too difficult
316:) We also support the standard HTML-style &lt;img src="foo.gif"/&gt; tag 395:) We also support the standard HTML-style &lt;img src="foo.gif"/&gt; tag
317for adding images without captions, borders, etc.</p> 396for adding images without captions, borders, etc.
397</p>
318 398
319</body> 399</body>
320</section> 400</section>
321<section> 401<section>
322<title>Tables and lists</title> 402<title>Tables and lists</title>
323<body> 403<body>
324 404
405<p>
325<p>Guide supports a simplified table syntax similar to that of HTML. To start 406Guide supports a simplified table syntax similar to that of HTML. To start
326a table, use a <c>&lt;table&gt;</c> tag. Start a row with a <c>&lt;tr&gt;</c> 407a table, use a <c>&lt;table&gt;</c> tag. Start a row with a <c>&lt;tr&gt;</c>
327tag. However, for inserting actual table data, we <e>don't</e> support the 408tag. However, for inserting actual table data, we <e>don't</e> support the
328HTML &lt;td&gt; tag; instead, use the <c>&lt;th&gt;</c> if you are inserting a 409HTML &lt;td&gt; tag; instead, use the <c>&lt;th&gt;</c> if you are inserting a
329header, and <c>&lt;ti&gt;</c> if you are inserting a normal informational 410header, and <c>&lt;ti&gt;</c> if you are inserting a normal informational
330block. You can use a <c>&lt;th&gt;</c> anywhere you can use a <c>&lt;ti&gt;</c> -- 411block. You can use a <c>&lt;th&gt;</c> anywhere you can use a <c>&lt;ti&gt;</c>
331there's no requirement that <c>&lt;th&gt;</c> elements appear only in the 412-- there's no requirement that <c>&lt;th&gt;</c> elements appear only in the
332first row. Currently, these tags don't support any attributes, but some will 413first row. Currently, these tags don't support any attributes, but some will
333be added (such as a <c>caption=</c> attribute for <c>&lt;table&gt;</c>) soon. 414be added (such as a <c>caption=</c> attribute for <c>&lt;table&gt;</c>) soon.
334</p> 415</p>
335 416
417<p>
336<p> To create ordered or unordered lists, simply use the HTML-style 418To create ordered or unordered lists, simply use the XHTML-style
337<c>&lt;ol&gt;</c>, <c>&lt;ul&gt;</c> and <c>&lt;li&gt;</c> tags. List tags 419<c>&lt;ol&gt;</c>, <c>&lt;ul&gt;</c> and <c>&lt;li&gt;</c> tags. List tags
338should only appear inside a <c>&lt;p&gt;</c>, <c>&lt;ti&gt;</c>, 420should only appear inside a <c>&lt;body&gt;</c>, <c>&lt;ul&gt;</c> or
339<c>&lt;note&gt;</c>, <c>&lt;warn&gt;</c> or <c>&lt;impo&gt;</c> tag. </p> 421<c>&lt;ol&gt;</c> tag. You need to close the tags as well (which is a general
422XML requirement).
423</p>
340 424
341</body> 425</body>
342</section> 426</section>
343
344<section> 427<section>
345<title>Intra-document references</title> 428<title>Intra-document references</title>
346<body> 429<body>
347 430
431<p>
348<p>Guide makes it really easy to reference other parts of the document using 432Guide makes it really easy to reference other parts of the document using
349hyperlinks. You can create a link pointing to <uri link="#doc_chap1">Chapter 433hyperlinks. You can create a link pointing to <uri link="#doc_chap1">Chapter
350One</uri> by typing <c>&lt;uri link="#doc_chap1"&gt;Chapter 434One</uri> by typing <c>&lt;uri link="#doc_chap1"&gt;Chapter
351One&lt;/uri&gt;</c>. To point to <uri link="#doc_chap1_sect2">section two of 435One&lt;/uri&gt;</c>. To point to <uri link="#doc_chap1_sect2">section two of
352Chapter One</uri>, type <c>&lt;uri link="#doc_chap1_sect2"&gt;section two of 436Chapter One</uri>, type <c>&lt;uri link="#doc_chap1_sect2"&gt;section two of
353Chapter One&lt;/uri&gt;</c>. To refer to figure 3 in chapter 1, type <c>&lt;uri 437Chapter One&lt;/uri&gt;</c>. To refer to figure 3 in chapter 1, type <c>&lt;uri
354link="doc_chap1_fig3"&gt;figure 1.3&lt;/uri&gt;</c>. Or, to refer to <uri link="#doc_chap2_pre2">code listing 2 in chapter 2</uri>, 438link="doc_chap1_fig3"&gt;figure 1.3&lt;/uri&gt;</c>. Or, to refer to <uri
439link="#doc_chap2_pre2">code listing 2 in chapter 2</uri>, type <c>&lt;uri
355type <c>&lt;uri link="doc_chap2_pre2"&gt;code listing 2.2&lt;/uri&gt;</c>. We'll be 440link="doc_chap2_pre2"&gt;code listing 2.2&lt;/uri&gt;</c>. We'll be
356adding other auto-link abilities (such as table support) soon.</p> 441adding other auto-link abilities (such as table support) soon.
442</p>
443
444<p>
445However, some guides change often and using such "counting" can lead to broken
446links. In order to cope with this, you can define a name for a
447<c>&lt;chapter&gt;</c> or <c>&lt;section&gt;</c> by using the <c>id</c>
448attribute, and then point to that attribute, like this:
449</p>
450
451<pre caption="Using the id attribute">
452&lt;chapter id="foo"&gt;
453&lt;title&gt;This is foo!&lt;/title&gt;
454...
455&lt;p&gt;
456More information can be found in the &lt;uri link="#foo"&gt;foo chapter&lt;/uri&gt;
457&lt;/p&gt;
458</pre>
357 459
358</body> 460</body>
359</section> 461</section>
360</chapter> 462</chapter>
463
464<chapter>
465<title>Coding Style</title>
466<section>
467<title>Introduction</title>
468<body>
469
470<p>
471Since all Gentoo Documentation is a joint effort and several people will
472most likely change existing documentation, a coding style is needed.
473A coding style contains two sections. The first one is regarding
474internal coding - how the xml-tags are placed. The second one is
475regarding the content - how not to confuse the reader.
476</p>
477
478<p>
479Both sections are described next.
480</p>
481
482</body>
483</section>
484<section>
485<title>Internal Coding Style</title>
486<body>
487
488<p>
489<b>Newlines</b> must be placed immediately after <e>every</e>
490GuideXML-tag (both opening as closing), except for:
491<c>&lt;version&gt;</c>, <c>&lt;date&gt;</c>, <c>&lt;title&gt;</c>,
492<c>&lt;th&gt;</c>, <c>&lt;ti&gt;</c>,
493<c>&lt;li&gt;</c>, <c>&lt;i&gt;</c>, <c>&lt;e&gt;</c>,
494<c>&lt;uri&gt;</c>, <c>&lt;path&gt;</c>, <c>&lt;b&gt;</c>,
495<c>&lt;comment&gt;</c>, <c>&lt;mail&gt;</c>.
496</p>
497
498<p>
499<b>Blank lines</b> must be placed immediately after <e>every</e>
500<c>&lt;body&gt;</c> (opening tag only) and before <e>every</e>
501<c>&lt;chapter&gt;</c>, <c>&lt;p&gt;</c>, <c>&lt;table&gt;</c>,
502<c>&lt;author&gt;</c> (set), <c>&lt;pre&gt;</c>, <c>&lt;ul&gt;</c>,
503<c>&lt;ol&gt;</c>, <c>&lt;warn&gt;</c>, <c>&lt;note&gt;</c> and
504<c>&lt;impo&gt;</c> (opening tags only).
505</p>
506
507<p>
508<b>Word-wrapping</b> must be applied at 80 characters except inside
509<c>&lt;pre&gt;</c>. Only when there is no other choice can be deviated from
510this rule (for instance when a URL exceeds the maximum amount of characters).
511The editor must then wrap whenever the first whitespace occurs.
512</p>
513
514<p>
515<b>Indentation</b> may not be used, except with the XML-constructs of which
516the parent XML-tags are <c>&lt;tr&gt;</c> (from <c>&lt;table&gt;</c>),
517<c>&lt;ul&gt;</c>, <c>&lt;ol&gt;</c> and <c>&lt;author&gt;</c>. If indentation
518is used, it <e>must</e> be two spaces for each indentation. That means <e>no</e>
519tabs and <e>not</e> more spaces.
520</p>
521
522<p>
523In case word-wrapping happens in <c>&lt;ti&gt;</c>, <c>&lt;th&gt;</c> or
524<c>&lt;li&gt;</c> constructs, indentation must be used for the content.
525</p>
526
527<p>
528An example for indentation is:
529</p>
530
531<pre caption="Indentation Example">
532&lt;table&gt;
533&lt;tr&gt;
534 &lt;th&gt;Foo&lt;/th&gt;
535 &lt;th&gt;Bar&lt;/th&gt;
536&lt;/tr&gt;
537&lt;tr&gt;
538 &lt;ti&gt;This is an example for indentation.&lt;/ti&gt;
539 &lt;ti&gt;
540 In case text cannot be shown within an 80-character wide line, you
541 must use indentation if the parent tag allows it.
542 &lt;/ti&gt;
543&lt;/tr&gt;
544&lt;/table&gt;
545
546&lt;ul&gt;
547 &lt;li&gt;First option&lt;/li&gt;
548 &lt;li&gt;Second option&lt;/li&gt;
549&lt;/ul&gt;
550</pre>
551
552<p>
553<b>Attributes</b> may not have spaces in between the attribute, the
554&quot;=&quot; mark, and the attribute value. As an example:
555</p>
556
557<pre caption="Attributes">
558<comment>Wrong :</comment> &lt;pre caption = "Attributes"&gt;
559<comment>Correct:</comment> &lt;pre caption="Attributes"&gt;
560</pre>
561
562</body>
563</section>
564<section>
565<title>External Coding Style</title>
566<body>
567
568<p>
569Inside tables (<c>&lt;table&gt;</c>) and listings (<c>&lt;ul&gt;</c> and
570<c>&lt;ol&gt;</c>), periods (&quot;.&quot;) should not be used unless multiple
571sentences are used. In that case, every sentence should end with a period (or
572other reading marks).
573</p>
574
575<p>
576Every sentence, including those inside tables and listings, should start
577with a capital letter.
578</p>
579
580<pre caption="Periods and capital letters">
581&lt;ul&gt;
582 &lt;li&gt;No period&lt;/li&gt;
583 &lt;li&gt;With period. Multiple sentences, remember?&lt;/li&gt;
584&lt;/ul&gt;
585</pre>
586
587<p>
588Code Listings should <e>always</e> have a <c>caption</c>.
589</p>
590
591<p>
592Try to use <c>&lt;uri&gt;</c> with the <c>link</c> attribute as much as
593possible. In other words, the <uri link="http://forums.gentoo.org">Gentoo
594Forums</uri> is preferred over <uri>http://forums.gentoo.org</uri>.
595</p>
596
597<p>
598When you comment something inside a <c>&lt;pre&gt;</c> construct, use
599<c>&lt;comment&gt;</c> and parentheses or the comment marker for the language
600that is being used (<c>#</c> for bash scripts and many other things, <c>//</c>
601for C code, etc.) Also place the comment <e>before</e> the subject of the
602comment.
603</p>
604
605<pre caption="Comment example">
606<comment>(Substitute "john" with your user name)</comment>
607# <i>id john</i>
608</pre>
609
610</body>
611</section>
612</chapter>
613
614<chapter>
615<title>Handbook Format</title>
616<section>
617<title>Guide vs Book</title>
618<body>
619
620<p>
621For high-volume documentation, such as the <uri
622link="/doc/en/handbook/handbook-x86.xml?part=1">Installation Instructions</uri>, a
623broader format was needed. We designed a GuideXML-compatible enhancement that
624allows us to write modular and multi-page documentation.
625</p>
626
627</body>
628</section>
629<section>
630<title>Main File</title>
631<body>
632
633<p>
634The first change is the need for a "master" document. This document contains no
635real content, but links to the individual documentation modules. The syntaxis
636doesn't differ much from GuideXML:
637</p>
638
639<pre caption="Example book usage">
640&lt;?xml version='1.0' encoding='UTF-8'?&gt;
641&lt;!DOCTYPE book SYSTEM "/dtd/book.dtd"&gt;
642
643&lt;<i>book</i> link="example.xml"&gt;
644&lt;title&gt;Example Book Usage&lt;/title&gt;
645
646&lt;author...&gt;
647 ...
648&lt;/author&gt;
649
650&lt;abstract&gt;
651 ...
652&lt;/abstract&gt;
653
654&lt;!-- The content of this document is licensed under the CC-BY-SA license --&gt;
655&lt;!-- See http://creativecommons.org/licenses/by-sa/2.0 --&gt;
656&lt;license/&gt;
657
658&lt;version&gt;...&lt;/version&gt;
659&lt;date&gt;...&lt;/date&gt;
660</pre>
661
662<p>
663So far no real differences (except for the <c>&lt;book&gt;</c> instead of
664<c>&lt;guide&gt;</c> tag). Instead of starting with the individual
665<c>&lt;chapter&gt;</c>'s, you define a <c>&lt;part&gt;</c>, which is the
666equivalent of a separate part in a book:
667</p>
668
669<pre caption="Defining a part">
670&lt;part&gt;
671&lt;title&gt;Part One&lt;/title&gt;
672&lt;abstract&gt;
673 ...
674&lt;/abstract&gt;
675
676<comment>(Defining the several chapters)</comment>
677&lt;/part&gt;
678</pre>
679
680<p>
681Each part is accompanied by a <c>&lt;title&gt;</c> and an
682<c>&lt;abstract&gt;</c> which gives a small introduction to the part.
683</p>
684
685<p>
686Inside each part, you define the individual <c>&lt;chapter&gt;</c>'s. Each
687chapter <e>must</e> be a separate document. As a result it is no surprise that a
688special tag (<c>&lt;include&gt;</c>) is added to allow including the separate
689document.
690</p>
691
692<pre caption="Defining a chapter">
693&lt;chapter&gt;
694&lt;title&gt;Chapter One&lt;/title&gt;
695&lt;abstract&gt;
696 This is a small explanation on chapter one.
697&lt;/abstract&gt;
698
699 &lt;include href="path/to/chapter-one.xml"/&gt;
700
701&lt;/chapter&gt;
702</pre>
703
704</body>
705</section>
706<section>
707<title>Designing the Individual Chapters</title>
708<body>
709
710<p>
711The content of an individual chapter is structured as follows:
712</p>
713
714<pre caption="Chapter Syntax">
715&lt;?xml version='1.0' encoding='UTF-8'?&gt;
716&lt;!DOCTYPE sections SYSTEM "/dtd/book.dtd"&gt;
717
718&lt;!-- The content of this document is licensed under the CC-BY-SA license --&gt;
719&lt;!-- See http://creativecommons.org/licenses/by-sa/2.0 --&gt;
720
721&lt;sections&gt;
722
723&lt;version&gt;...&lt;/version&gt;
724&lt;date&gt;...&lt;/date&gt;
725
726<comment>(Define the several &lt;section&gt; and &lt;subsection&gt;)</comment>
727
728&lt;/sections&gt;
729</pre>
730
731<p>
732Inside each chapter you can define <c>&lt;section&gt;</c>'s (equivalent of
733<c>&lt;chapter&gt;</c> in a Guide) and <c>&lt;subsection&gt;</c>'s (equivalent
734of <c>&lt;section&gt;</c> in a Guide).
735</p>
736
737<p>
738Each individual chapter should have its own date and version elements. The
739latest date of all chapters and master document will be displayed when a user
740browses through all parts of the book.
741</p>
742
743</body>
744</section>
745</chapter>
746
361<chapter> 747<chapter>
362<title>Resources</title> 748<title>Resources</title>
363<section> 749<section>
364 <title>Start writing</title> 750<title>Start writing</title>
365 <body> 751<body>
752
753<p>
366 <p>Guide has been specially designed to be "lean and mean" so that developers 754Guide has been specially designed to be "lean and mean" so that developers can
367 can spend more time writing documentation and less time learning the actual XML 755spend more time writing documentation and less time learning the actual XML
368 syntax. Hopefully, this will allow developers who aren't unusually "doc-savvy" 756syntax. Hopefully, this will allow developers who aren't unusually "doc-savvy"
369 to start writing quality Gentoo Linux documentation. If you'd like to help (or have any questions about guide), please 757to start writing quality Gentoo Linux documentation. You might be interested
370 post a message to <mail link="gentoo-dev@gentoo.org">the gentoo-dev mailing list</mail> 758in our <uri link="/proj/en/gdp/doc/doc-tipsntricks.xml">Documentation
759Development Tips &amp; Tricks</uri>. If you'd like to help (or have any
760questions about guide), please post a message to the <mail
371 and <mail link="gentoo-doc@gentoo.org">the gentoo-doc mailing list</mail> 761link="gentoo-doc@gentoo.org">gentoo-doc mailing list</mail> stating what you'd
372 stating what you'd like to tackle. 762like to tackle. Have fun!
373 Have fun!</p> 763</p>
764
374 </body> 765</body>
375</section> 766</section>
376</chapter> 767</chapter>
377</guide> 768</guide>
378

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.39

  ViewVC Help
Powered by ViewVC 1.1.20