/[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.3 Revision 1.66
1<?xml version='1.0' encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<?xml-stylesheet href="/xsl/guide.xsl" type="text/xsl"?> 2<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/xml-guide.xml,v 1.66 2006/11/29 15:48:57 nightmorph Exp $ -->
3
4<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> 3<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
5 4
6<guide link="/doc/en/xml-guide.xml"> 5<guide link="/doc/en/xml-guide.xml">
7<title>Gentoo Linux Documentation Guide</title> 6<title>Gentoo XML Guide</title>
8<author title="Chief Architect"><mail link="drobbins@gentoo.org">Daniel Robbins</mail></author>
9 7
8<author title="Author">
9 <mail link="neysx@gentoo.org">Xavier Neys</mail>
10</author>
11<author title="Author">
12 <mail link="drobbins@gentoo.org">Daniel Robbins</mail>
13</author>
14<author title="Author"><!-- zhen@gentoo.org -->
15 John P. Davis
16</author>
17<author title="Editor">
18 <mail link="peesh@gentoo.org">Jorge Paulo</mail>
19</author>
20<author title="Editor">
21 <mail link="swift@gentoo.org">Sven Vermeulen</mail>
22</author>
23
24<abstract>
10<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
11XML 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
12itself 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.
13</abstract> 29</abstract>
14 30
31<!-- The content of this document is licensed under the CC-BY-SA license -->
32<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
33<license/>
34
15<version>1.0</version> 35<version>7</version>
16<date>07 Mar 2002</date> 36<date>2006-05-11</date>
17 37
18<chapter> 38<chapter>
19<title>Guide basics</title> 39<title>Guide basics</title>
20
21<section> 40<section>
22<title>Guide XML design goals</title> 41<title>Guide XML design goals</title>
23<body> 42<body>
24 43
44<p>
25<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
26learn 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
27documentation. 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.
28This 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
29XML/SGML or web-ready HTML. </p> 49XML/SGML or web-ready HTML.
50</p>
30 51
52<p>
31<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
32documents.</p> 54documents.
55</p>
33 56
34</body> 57</body>
35</section>
36
37<section> 58</section>
38<title>How to transform guide XML into HTML</title> 59<section>
60<title>Further Resources</title>
39<body> 61<body>
40 62
41<p> Before we take a look at the guide syntax itself, it's helpful to know how
42guide XML is transformed into web-ready HTML. To do this, we use a special
43file called <path>guide-main.xsl</path>, along with a command-line XSLT processing
44tool (also called an "engine"). The <path>guide-main.xsl</path> file describes
45exactly how to transform the contents of the source guide XML document to
46create the target HTML file. Two popular XSLT processors are <c>sabcmd</c>
47(included in the <path>app-text/sablotron</path> package) and <c>xsltproc</c>
48(found in the <path>dev-libs/libxslt</path> package). From experience, we've
49found that <c>xsltproc</c> is the higher-quality and more feature-rich XSLT
50processor. </p>
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. Here's how it works. First,
54download the latest snapshot of our Web site from
55<uri>http://www.gentoo.org/projects/xml.html</uri>, found in the <uri
56link="http://www.gentoo.org/projects/guide-xml-latest.tar.gz">xml-guide-latest.tar.gz</uri>
57file. Extract the tarball. Inside it, you'll find a <path>gentoo-src</path>
58directory, as well as a <path>gentoo-src/xml</path> directory, etc. Now, find
59<path>gentoo-src/xml/install.xml</path>. (The new user installation guide).
60This will be our source XML guide document. The easiest way to perform the
61transformation is to change directories to the location of the
62<path>guide-main.xsl</path> file. Then, execute <c>xsltproc</c> as follows:
63</p> 63<p>
64 64If you are planning on contributing documentation to Gentoo, or you want to
65<pre> 65test GuideXML, please read our <uri
66# <i>cd gentoo-web/xsl</i> 66link="/proj/en/gdp/doc/doc-tipsntricks.xml">Doc Tips 'n' Tricks</uri> guide
67# <i>xsltproc guide-main.xsl ../xml/install.xml &gt; /tmp/install.html</i> 67which contains tips and tricks for documentation development.
68</pre> 68</p>
69 69
70<p> If all went well, you should have a web-ready version of 70<p>
71<path>install.xml</path> at <path>/tmp/install.html</path>. For this document 71You may want to look at the <uri link="?passthru=1">XML source</uri> of this
72to display properly in a web browser, you may have to copy some files from 72document while you read it.
73<path>gentoo-web</path> to <path>/tmp</path>, such
74as <path>css/main-new.css</path> and (to be safe) the entire <path>images</path>
75directory.
76</p> 73</p>
77 74
78</body> 75</body>
79</section> 76</section>
80</chapter> 77</chapter>
78
81<chapter> 79<chapter>
82 <title>Guide XML</title> 80<title>Guide XML</title>
83<section> 81<section>
84<title>Basic structure</title> 82<title>Basic structure</title>
85<body> 83<body>
86 84
87<p>Now that you know how to transform guide XML, you're ready to start learning 85<p>
88the guide XML syntax. We'll start with the the initial tags used in a guide 86Let's start learning the GuideXML syntax. We'll start with the the initial
89XML document: </p> 87tags used in a GuideXML document:
88</p>
90 89
91<pre caption="The initial part of a guide XML document"> 90<pre caption="The initial part of a guide XML document">
92&lt;?xml version='1.0'?&gt; 91&lt;?xml version="1.0" encoding="UTF-8"?&gt;
93&lt;guide&gt; 92&lt;!DOCTYPE guide SYSTEM "/dtd/guide.dtd"&gt;
93&lt;!-- &#36;Header&#36; --&gt;
94
95&lt;guide link="<i>/doc/en/guide.xml</i>" lang="<i>en</i>"&gt;
94&lt;title&gt;<i>Gentoo Linux Documentation Guide</i>&lt;/title&gt; 96&lt;title&gt;<i>Gentoo Documentation Guide</i>&lt;/title&gt;
95&lt;author title="<i>Chief Architect</i>"&gt;&lt;mail link="<i>drobbins@gentoo.org</i>"&gt; 97
96 <i>Daniel Robbins</i>&lt;/mail&gt; 98&lt;author title="<i>Author</i>"&gt;
99 &lt;mail link="<i>yourname@gentoo.org</i>"&gt;<i>Your Name</i>&lt;/mail&gt;
97&lt;/author&gt; 100&lt;/author&gt;
98&lt;author title="<i>Editor</i>"&gt;&lt;mail link="<i>thomasfl@gentoo.org</i>"&gt;
99 <i>Thomas Flavel</i>&lt;/mail&gt;
100&lt;/author&gt;
101 101
102&lt;abstract&gt;
102&lt;abstract&gt;<i>This guide shows you how to compose web documentation using 103<i>This guide shows you how to compose web documentation using
103our new lightweight Gentoo guide XML syntax. This syntax is the official 104our new lightweight Gentoo GuideXML syntax. This syntax is the official
104format for Gentoo Linux web documentation, and this document itself was created 105format for Gentoo web documentation, and this document itself was created
105using guide XML.</i> &lt;/abstract&gt; 106using GuideXML.</i>
107&lt;/abstract&gt;
108
109&lt;!-- The content of this document is licensed under the CC-BY-SA license --&gt;
110&lt;!-- See http://creativecommons.org/licenses/by-sa/2.5 --&gt;
111&lt;license/&gt;
106 112
107&lt;version&gt;<i>1.0</i>&lt;/version&gt; 113&lt;version&gt;<i>1.0</i>&lt;/version&gt;
108&lt;date&gt;<i>29 Mar 2001</i>&lt;/date&gt; 114&lt;date&gt;<i>2004-12-25</i>&lt;/date&gt;
109</pre> 115</pre>
110 116
117<p>
111<p>On the first, line, we see the requisite tag that identifies this as an XML 118On the first lines, we see the requisite tag that identifies this as an XML
112document. Following it, there's a <c>&lt;guide&gt;</c> tag -- the entire 119document and specifies its DTD. The <c>&lt;!-- &#36;Header&#36; --&gt;</c> line
120will be automatically modified by the CVS server and helps to track revisions.
121Next, there's a <c>&lt;guide&gt;</c> tag -- the entire guide document is
113guide document is enclosed within a <c>&lt;guide&gt; &lt;/guide&gt;</c> pair. 122enclosed within a <c>&lt;guide&gt; &lt;/guide&gt;</c> pair. The <c>link</c>
123attribute is compulsory and should preferably contain the absolute path to the
124document relatively to the document root even though the file name alone will
125work. It is mainly used to generate a link to a printer-friendly version of
126your document. If you use a wrong value, the link to the printable version will
127either not work or point to a wrong document. Translated documents <e>must</e>
128specify the full path because it is also used to check whether a more recent
129original document exists. The <c>lang</c> attribute should be used to specify
130the language code of your document. It is used to format the date and insert
131strings like "<e>Note</e>", "<e>Content</e>", etc. in the specified language.
132The default is English.
133</p>
134
135<p>
114Next, there's a <c>&lt;title&gt;</c> tag, used to set the title for the entire 136Next, there's a <c>&lt;title&gt;</c> tag, used to set the title for the entire
115guide document. </p> 137guide document.
138</p>
116 139
140<p>
117<p>Then, we come to the <c>&lt;author&gt;</c> tags, which contain information 141Then, we come to the <c>&lt;author&gt;</c> tags, which contain information
118about the various authors of the document. Each <c>&lt;author&gt;</c> tag 142about the various authors of the document. Each <c>&lt;author&gt;</c> tag
119allows for an optional <c>title=</c> element, used to specify the author's 143allows for an optional <c>title</c> element, used to specify the author's
120relationship to the document (author, co-author, editor, etc.). In this 144relationship to the document (author, co-author, editor, etc.). In this
121particular example, the authors' names are enclosed in another tag -- a 145particular example, the authors' names are enclosed in another tag -- a
122<c>&lt;mail&gt;</c> tag, used to specify an email address for this particular 146<c>&lt;mail&gt;</c> tag, used to specify an email address for this particular
123person. The <c>&lt;mail&gt;</c> tag is optional and can be omitted, and no 147person. The <c>&lt;mail&gt;</c> tag is optional and can be omitted, and no
124more than one <c>&lt;author&gt;</c> element is required per guide document. 148more than one <c>&lt;author&gt;</c> element is required per guide document.
125</p> 149</p>
126 150
151<p>
127<p>Next, we come to the <c>&lt;abstract&gt;</c>, <c>&lt;version&gt;</c> and 152Next, we come to the <c>&lt;abstract&gt;</c>, <c>&lt;version&gt;</c> and
128<c>&lt;date&gt;</c> tags, used to specify a summary of the document, the 153<c>&lt;date&gt;</c> tags, used to specify a summary of the document, the
129current version number, and the current version date (in DD MMM YYYY format) 154current version number, and the current version date (in YYYY-MM-DD format)
155respectively. Dates that are invalid or not in the YYYY-MM-DD format will
156appear verbatim in the rendered document.
157</p>
158
159<p>
130respectively. This rounds out the tags that should appear at the beginning of 160This rounds out the tags that should appear at the beginning of a guide
131a guide document. Besides the <c>&lt;title&gt;</c> and <c>&lt;mail&gt;</c> 161document. Besides the <c>&lt;title&gt;</c> and <c>&lt;mail&gt;</c> tags, these
132tags, these tags shouldn't appear anywhere else except immediately inside the 162tags shouldn't appear anywhere else except immediately inside the
133<c>&lt;guide&gt;</c> tag, and for consistency it's recommended (but not 163<c>&lt;guide&gt;</c> tag, and for consistency it's recommended (but not
134required) that these tags appear before the content of the document. </p> 164required) that these tags appear before the content of the document.
165</p>
135 166
136</body> 167<p>
137</section> 168Finally we have the <c>&lt;license/&gt;</c> tag, used to publish the document
169under the <uri link="http://creativecommons.org/licenses/by-sa/2.5/">Creative
170Commons - Attribution / Share Alike</uri> license as required by the <uri
171link="/proj/en/gdp/doc/doc-policy.xml">Documentation Policy</uri>.
172</p>
138 173
174</body>
175</section>
139<section> 176<section>
140<title>Chapters and sections</title> 177<title>Chapters and sections</title>
141<body> 178<body>
179
180<p>
142<p>Once the initial tags have been specified, you're ready to start adding 181Once the initial tags have been specified, you're ready to start adding the
143the structural elements of the document. Guide documents are divided into 182structural elements of the document. Guide documents are divided into
144chapters, and each chapter can hold one or more sections. Every chapter 183chapters, and each chapter can hold one or more sections. Every chapter and
145and section has a title. Here's an example chapter with a single section, 184section has a title. Here's an example chapter with a single section,
146consisting of a paragraph. If you append this XML to the XML in the <uri link="#doc_pre2">previous 185consisting of a paragraph. If you append this XML to the XML in the <uri
186link="#doc_chap2_pre1">previous excerpt</uri> and append a
147excerpt</uri> and append a <c>&lt;/guide&gt;</c> to the end of the file, you'll have a valid 187<c>&lt;/guide&gt;</c> to the end of the file, you'll have a valid (if minimal)
148(if minimal) guide document: 188guide document:
149</p> 189</p>
150 190
151<pre> 191<pre caption="Minimal guide example">
152&lt;chapter&gt; 192&lt;chapter&gt;
153&lt;title&gt;<i>This is my chapter</i>&lt;/title&gt; 193&lt;title&gt;<i>This is my chapter</i>&lt;/title&gt;
154&lt;section&gt; 194&lt;section&gt;
155 &lt;title&gt;<i>This is section one of my chapter</i>&lt;/title&gt; 195&lt;title&gt;<i>This is section one of my chapter</i>&lt;/title&gt;
156 &lt;body&gt; 196&lt;body&gt;
197
198&lt;p&gt;
157 &lt;p&gt;<i>This is the actual text content of my section.</i>&lt;/p&gt; 199<i>This is the actual text content of my section.</i>
200&lt;/p&gt;
201
158 &lt;/body&gt; 202&lt;/body&gt;
159&lt;/section&gt; 203&lt;/section&gt;
160&lt;/chapter&gt; 204&lt;/chapter&gt;
161</pre> 205</pre>
162 206
207<p>
163<p>Above, I set the chapter title by adding a child <c>&lt;title&gt;</c> 208Above, I set the chapter title by adding a child <c>&lt;title&gt;</c>
164element to the <c>&lt;chapter&gt;</c> element. Then, I created a section by 209element to the <c>&lt;chapter&gt;</c> element. Then, I created a section by
165adding a <c>&lt;section&gt;</c> element. If you look inside the 210adding a <c>&lt;section&gt;</c> element. If you look inside the
166<c>&lt;section&gt;</c> element, you'll see that it has two child elements -- a 211<c>&lt;section&gt;</c> element, you'll see that it has two child elements -- a
167<c>&lt;title&gt;</c> and a <c>&lt;body&gt;</c>. While the <c>&lt;title&gt;</c> 212<c>&lt;title&gt;</c> and a <c>&lt;body&gt;</c>. While the <c>&lt;title&gt;</c>
168is nothing new, the <c>&lt;body&gt;</c> is -- it contains the actual text 213is nothing new, the <c>&lt;body&gt;</c> is -- it contains the actual text
169content of this particular section. We'll look at the tags that are allowed 214content of this particular section. We'll look at the tags that are allowed
170inside a <c>&lt;body&gt;</c> element in a bit. </p> 215inside a <c>&lt;body&gt;</c> element in a bit.
216</p>
171 217
218<note>
172<note>A <c>&lt;guide&gt;</c> element can contain multiple 219A <c>&lt;guide&gt;</c> element can contain multiple <c>&lt;chapter&gt;</c>
173<c>&lt;chapter&gt;</c> elements, and a <c>&lt;chapter&gt;</c> can contain 220elements, and a <c>&lt;chapter&gt;</c> can contain multiple
174multiple <c>&lt;section&gt;</c> elements. However, a <c>&lt;section&gt;</c> 221<c>&lt;section&gt;</c> elements. However, a <c>&lt;section&gt;</c>
175element can only contain one <c>&lt;body&gt;</c> element. </note> 222element can only contain one <c>&lt;body&gt;</c> element.
223</note>
176 224
177</body> 225</body>
178</section> 226</section>
179
180<section> 227<section>
181<title>An example &lt;body&gt;</title> 228<title>An example &lt;body&gt;</title>
182<body> 229<body>
183<p> 230
184Now, 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:
185</p> 231<p>
186<pre> 232Now, it's time to learn how to mark up actual content. Here's the XML code for
233an example <c>&lt;body&gt;</c> element:
234</p>
235
236<pre caption="Example of a body element">
187&lt;p&gt; 237&lt;p&gt;
188This is a paragraph. &lt;path&gt;/etc/passwd&lt;/path&gt; is a file. 238This is a paragraph. &lt;path&gt;/etc/passwd&lt;/path&gt; is a file.
189&lt;uri&gt;http://www.gentoo.org&lt;/uri&gt; is my favorite website. 239&lt;uri&gt;http://forums.gentoo.org&lt;/uri&gt; is my favorite website.
190Type &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. 240Type &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.
191&lt;/p&gt; 241&lt;/p&gt;
192 242
193&lt;pre&gt; 243&lt;pre caption="Code Sample"&gt;
194This is text output or code. 244This is text output or code.
195# &lt;i&gt;this is user input&lt;/i&gt; 245# &lt;i&gt;this is user input&lt;/i&gt;
196 246
197Make HTML/XML easier to read by using selective emphasis: 247Make HTML/XML easier to read by using selective emphasis:
198&lt;foo&gt;&lt;i&gt;bar&lt;/i&gt;&lt;/foo&gt; 248&lt;foo&gt;&lt;i&gt;bar&lt;/i&gt;&lt;/foo&gt;
199 249
200&lt;codenote&gt;This is how to insert an inline note into the code block&lt;/codenote&gt; 250&lt;comment&gt;(This is how to insert a comment into a code block)&lt;/comment&gt;
201&lt;/pre&gt; 251&lt;/pre&gt;
202&lt;note&gt;This is a note.&lt;/note&gt; 252
203&lt;warn&gt;This is a warning.&lt;/warn&gt; 253&lt;note&gt;
204&lt;impo&gt;This is important.&lt;/impo&gt; 254This is a note.
255&lt;/note&gt;
256
257&lt;warn&gt;
258This is a warning.
259&lt;/warn&gt;
260
261&lt;impo&gt;
262This is important.
263&lt;/impo&gt;
205</pre> 264</pre>
265
266<p>
206<p>Now, here's how this <c>&lt;body&gt;</c> element is rendered:</p> 267Now, here's how the <c>&lt;body&gt;</c> element above is rendered:
268</p>
207 269
208<p> 270<p>
209This is a paragraph. <path>/etc/passwd</path> is a file. 271This is a paragraph. <path>/etc/passwd</path> is a file.
210<uri>http://www.gentoo.org</uri> is my favorite website. 272<uri>http://forums.gentoo.org</uri> is my favorite web site.
211Type <c>ls</c> if you feel like it. I <e>really</e> want to go to sleep now. 273Type <c>ls</c> if you feel like it. I <e>really</e> want to go to sleep now.
212</p> 274</p>
213 275
214<pre> 276<pre caption="Code Sample">
215This is text output or code. 277This is text output or code.
216# <i>this is user input</i> 278# <i>this is user input</i>
217 279
218Make HTML/XML easier to read by using selective emphasis: 280Make HTML/XML easier to read by using selective emphasis:
219&lt;foo&gt;<i>bar</i>&lt;/foo&gt; 281&lt;foo&gt;<i>bar</i>&lt;/foo&gt;
220 282
221<codenote>This is how to insert an inline note into the code block</codenote> 283<comment>(This is how to insert a comment into a code block)</comment>
222</pre> 284</pre>
223<note>This is a note.</note>
224<warn>This is a warning.</warn>
225<impo>This is important.</impo>
226</body>
227</section>
228 285
286<note>
287This is a note.
288</note>
289
290<warn>
291This is a warning.
292</warn>
293
294<impo>
295This is important.
296</impo>
297
298</body>
299</section>
229<section> 300<section>
230<title>The &lt;body&gt; tags</title> 301<title>The &lt;body&gt; tags</title>
231<body> 302<body>
232 303
304<p>
233<p> We introduced a lot of new tags in the previous section -- here's what you 305We introduced a lot of new tags in the previous section -- here's what you need
234need to know. The <c>&lt;p&gt;</c> (paragraph), <c>&lt;pre&gt;</c> (code 306to know. The <c>&lt;p&gt;</c> (paragraph), <c>&lt;pre&gt;</c> (code block),
235block), <c>&lt;note&gt;</c>, <c>&lt;warn&gt;</c> (warning) and 307<c>&lt;note&gt;</c>, <c>&lt;warn&gt;</c> (warning) and <c>&lt;impo&gt;</c>
236<c>&lt;impo&gt;</c> (important) tags all can contain one or more lines of text. 308(important) tags all can contain one or more lines of text. Besides the
309<c>&lt;table&gt;</c>, <c>&lt;ul&gt;</c>, <c>&lt;ol&gt;</c> and
237Besides the <c>&lt;table&gt;</c> element (which we'll cover in just a bit), 310<c>&lt;dl&gt;</c> elements (which we'll cover in just a bit), these are the
238these are the only tags that should appear immediately inside a 311only tags that should appear immediately inside a <c>&lt;body&gt;</c> element.
239<c>&lt;body&gt;</c> element. Another thing -- these tags <e>should not</e> be 312Another thing -- these tags <e>should not</e> be stacked -- in other words,
240stacked -- in other words, don't put a <c>&lt;note&gt;</c> element inside a 313don't put a <c>&lt;note&gt;</c> element inside a <c>&lt;p&gt;</c> element. As
241<c>&lt;p&gt;</c> element. As you might guess, the <c>&lt;pre&gt;</c> element 314you might guess, the <c>&lt;pre&gt;</c> element preserves its whitespace
242preserves its whitespace exactly, making it well-suited for code excerpts.</p> 315exactly, making it well-suited for code excerpts. You must name the
316<c>&lt;pre&gt;</c> tag with a <c>caption</c> attribute:
317</p>
243 318
319<pre caption="Named &lt;pre&gt;">
320&lt;pre caption="Output of uptime"&gt;
321# &lt;i&gt;uptime&lt;/i&gt;
32216:50:47 up 164 days, 2:06, 5 users, load average: 0.23, 0.20, 0.25
323&lt;/pre&gt;
324</pre>
325
244</body> 326</body>
245</section>
246<section> 327</section>
247<title>&lt;path&gt;, &lt;c&gt; and &lt;e&gt;</title> 328<section>
329<title>Epigraphs</title>
330<body>
331
332<p by="Anonymous student">
333Delegates from the original 13 states formed the Contented Congress. Thomas
334Jefferson, a Virgin, and Benjamin Franklin were two singers of the Declaration
335of Independence. Franklin discovered electricity by rubbing two cats backwards
336and declared, "A horse divided against itself cannot stand." Franklin died in
3371790 and is still dead.
338</p>
339
340<p>
341Epigraphs are sometimes used at the beginning of chapters to illustrate what is
342to follow. It is simply a paragraph with a <c>by</c> attribute that contains
343the signature.
344</p>
345
346<pre caption="Short epigraph">
347&lt;p by="Anonymous student"&gt;
348Delegates from the original 13 states formed the...
349&lt;/p&gt;
350</pre>
351
248<body> 352</body>
353</section>
354<section>
355<title>
356 &lt;path&gt;, &lt;c&gt;, &lt;b&gt;, &lt;e&gt;, &lt;sub&gt; and &lt;sup&gt;
357</title>
358<body>
249 359
250<p>The <c>&lt;path&gt;</c>, <c>&lt;c&gt;</c> and <c>&lt;e&gt;</c> elements can 360<p>
251be used inside any child <c>&lt;body&gt;</c> tag, except for 361The <c>&lt;path&gt;</c>, <c>&lt;c&gt;</c>, <c>&lt;b&gt;</c>, <c>&lt;e&gt;</c>,
252<c>&lt;pre&gt;</c>. </p> 362<c>&lt;sub&gt;</c> and <c>&lt;sup&gt;</c> elements can be used inside any child
363<c>&lt;body&gt;</c> tag, except for <c>&lt;pre&gt;</c>.
364</p>
253 365
366<p>
254<p>The <c>&lt;path&gt;</c> element is used to mark text that refers to an 367The <c>&lt;path&gt;</c> element is used to mark text that refers to an
255<e>on-disk file</e> -- either an <e>absolute or relative path</e>, or a <e>simple filename</e>. 368<e>on-disk file</e> -- either an <e>absolute or relative path</e>, or a
256This element is generally rendered with a monospaced font to offset it from the 369<e>simple filename</e>. This element is generally rendered with a mono spaced
257standard paragraph type. </p> 370font to offset it from the standard paragraph type.
371</p>
258 372
373<p>
259<p>The <c>&lt;c&gt;</c> element is used to mark up a <e>command</e> or <e>user 374The <c>&lt;c&gt;</c> element is used to mark up a <e>command</e> or <e>user
260input</e>. Think of <c>&lt;c&gt;</c> as a way to alert the reader to something 375input</e>. Think of <c>&lt;c&gt;</c> as a way to alert the reader to something
261that they can type in that will perform some kind of action. For example, all 376that they can type in that will perform some kind of action. For example, all
262the XML tags displayed in this document are enclosed in a <c>&lt;c&gt;</c> 377the XML tags displayed in this document are enclosed in a <c>&lt;c&gt;</c>
263element because they represent something that the user could type in that is 378element because they represent something that the user could type in that is
264not a path. By using <c>&lt;c&gt;</c> elements, you'll help your readers 379not a path. By using <c>&lt;c&gt;</c> elements, you'll help your readers
265quickly identify commands that they need to type in. Also, because 380quickly identify commands that they need to type in. Also, because
266<c>&lt;c&gt;</c> elements are already offset from regular text, <e>it is rarely 381<c>&lt;c&gt;</c> elements are already offset from regular text, <e>it is rarely
267necessary to surround user input with double-quotes</e>. For example, don't 382necessary to surround user input with double-quotes</e>. For example, don't
268refer to a "<c>&lt;c&gt;</c>" element like I did in this sentence. Avoiding 383refer to a "<c>&lt;c&gt;</c>" element like I did in this sentence. Avoiding
269the use of unnecessary double-quotes makes a document more readable -- and adorable!</p> 384the use of unnecessary double-quotes makes a document more readable -- and
385adorable!
386</p>
270 387
388<p>
389As you might have guessed, <c>&lt;b&gt;</c> is used to <b>boldface</b> some
390text.
391</p>
392
393<p>
271<p><c>&lt;e&gt;</c> is used to apply emphasis to a word or phrase; for example: 394<c>&lt;e&gt;</c> is used to apply emphasis to a word or phrase; for example:
272I <e>really</e> should use semicolons more often. As you can see, this text is 395I <e>really</e> should use semicolons more often. As you can see, this text is
273offset from the regular paragraph type for emphasis. This helps to give your 396offset from the regular paragraph type for emphasis. This helps to give your
274prose more <e>punch</e>!</p> 397prose more <e>punch</e>!
398</p>
275 399
400<p>
401The <c>&lt;sub&gt;</c> and <c>&lt;sup&gt;</c> elements are used to specify
402<sub>subscript</sub> and <sup>superscript</sup>.
403</p>
404
276</body> 405</body>
406</section>
277</section> 407<section>
408<title>Code samples and colour-coding</title>
409<body>
278 410
411<p>
412To improve the readability of code samples, the following tags are allowed
413inside <c>&lt;pre&gt;</c> blocks:
414</p>
415
416<dl>
417 <dt><c>&lt;i&gt;</c></dt>
418 <dd>Distinguishes user input from displayed text</dd>
419 <dt><c>&lt;comment&gt;</c></dt>
420 <dd>Comments relevant to the action(s) that appear after the comment</dd>
421 <dt><c>&lt;keyword&gt;</c></dt>
422 <dd>Denotes a keyword in the language used in the code sample
423 </dd>
424 <dt><c>&lt;ident&gt;</c></dt>
425 <dd>Used for an identifier
426 </dd>
427 <dt><c>&lt;const&gt;</c></dt>
428 <dd>Used for a constant
429 </dd>
430 <dt><c>&lt;stmt&gt;</c></dt>
431 <dd>Used for a statement
432 </dd>
433 <dt><c>&lt;var&gt;</c></dt>
434 <dd>Used for a variable
435 </dd>
436</dl>
437
438<note>
439Remember that all leading and trailing spaces, and line breaks in
440<c>&lt;pre&gt;</c> blocks will appear in the displayed html page.
441</note>
442
443<p>
444Sample colour-coded <c>&lt;pre&gt;</c> block:
445</p>
446
447<pre caption="My first ebuild">
448<comment># Copyright 1999-2006 <b>Gentoo Foundation</b>
449# Distributed under the terms of the GNU General Public License v2
450# &#36;Header: $</comment>
451
452<ident>DESCRIPTION</ident>=<const>"Exuberant ctags generates tags files for quick source navigation"</const>
453<ident>HOMEPAGE</ident>=<const>"http://ctags.sourceforge.net"</const>
454<ident>SRC_URI</ident>=<const>"mirror://sourceforge/ctags/<var>${P}</var>.tar.gz"</const>
455
456<ident>LICENSE</ident>=<const>"GPL-2"</const>
457<ident>SLOT</ident>=<const>"0"</const>
458<ident>KEYWORDS</ident>=<const>"~mips ~sparc ~x86"</const>
459<ident>IUSE</ident>=<const>""</const>
460
461<stmt>src_compile()</stmt> {
462 <keyword>econf</keyword> --with-posix-regex || <keyword>die</keyword> <const>"econf failed"</const>
463 <keyword>emake</keyword> || <keyword>die</keyword> <const>"emake failed"</const>
464}
465
466<stmt>src_install()</stmt> {
467 <keyword>make</keyword> <ident>DESTDIR</ident>="<var>${D}</var>" install || <keyword>die</keyword> <const>"install failed"</const>
468
469 <keyword>dodoc</keyword> FAQ NEWS README
470 <keyword>dohtml</keyword> EXTENDING.html ctags.html
471}
472</pre>
473
474</body>
475</section>
279<section> 476<section>
280<title>&lt;mail&gt; and &lt;uri&gt;</title> 477<title>&lt;mail&gt; and &lt;uri&gt;</title>
281<body> 478<body>
282 479
480<p>
283<p>We've taken a look at the <c>&lt;mail&gt;</c> tag earlier; it's used to link some text 481We've taken a look at the <c>&lt;mail&gt;</c> tag earlier; it's used to link
284with a particular email address, and takes the form <c>&lt;mail link="foo@bar.com"&gt;Mr. Foo Bar&lt;/mail&gt;</c>.</p> 482some text with a particular email address, and takes the form <c>&lt;mail
483link="foo@bar.com"&gt;Mr. Foo Bar&lt;/mail&gt;</c>. If you want to display the
484email address, you can use <c>&lt;mail&gt;foo@bar.com&lt;/mail&gt;</c>, this
485would be displayed as <mail>foo@bar.com</mail>.
486</p>
285 487
488<p>
286<p>The <c>&lt;uri&gt;</c> tag is used to point to files/locations on the 489The <c>&lt;uri&gt;</c> tag is used to point to files/locations on the Internet.
287Internet. It has two forms -- the first can be used when you want to have the 490It has two forms -- the first can be used when you want to have the actual URI
288actual URI displayed in the body text, such as this link to 491displayed in the body text, such as this link to
289<uri>http://www.gentoo.org</uri>. To create this link, I typed 492<uri>http://forums.gentoo.org</uri>. To create this link, I typed
290<c>&lt;uri&gt;http://www.gentoo.org&lt;/uri&gt;</c>. The alternate form is 493<c>&lt;uri&gt;http://forums.gentoo.org&lt;/uri&gt;</c>. The alternate form is
291when you want to associate a URI with some other text -- for example, <uri 494when you want to associate a URI with some other text -- for example, <uri
292link="http://www.gentoo.org">the Gentoo Linux website</uri>. To create <e>this</e> 495link="http://forums.gentoo.org">the Gentoo Forums</uri>. To create <e>this</e>
293link, I typed <c>&lt;uri link="http://www.gentoo.org"&gt;the Gentoo Linux website&lt;/uri&gt;</c>. 496link, I typed <c>&lt;uri link="http://forums.gentoo.org"&gt;the Gentoo
497Forums&lt;/uri&gt;</c>. You don't need to write <c>http://www.gentoo.org/</c>
498to link to other parts of the Gentoo web site. For instance, a link to the <uri
499link="/doc/en/">documentation main index</uri> should be simply <c>&lt;uri
500link="/doc/en/index.xml"&gt;documentation main index&lt;/uri&gt;</c>. You can
501even omit <c>index.xml</c> when you link to a directory index, e.g. <c>&lt;uri
502link="/doc/en/"&gt;documentation main index&lt;/uri&gt;</c>.
294</p> 503</p>
295 504
296</body> 505</body>
297</section> 506</section>
298
299<section> 507<section>
300<title>Figures</title> 508<title>Figures</title>
301
302<body> 509<body>
303 510
511<p>
304<p>Here's how to insert a figure into a document -- <c>&lt;figure 512Here's how to insert a figure into a document -- <c>&lt;figure
305link="mygfx.png" short="my picture" caption="my favorite picture of all 513link="mygfx.png" short="my picture" caption="my favorite picture of all
306time"/&gt;</c>. The <c>link=</c> attribute points to the actual graphic image, 514time"/&gt;</c>. The <c>link</c> attribute points to the actual graphic image,
307the <c>short=</c> attribute specifies a short description (currently used for 515the <c>short</c> attribute specifies a short description (currently used for
308the image's HTML <c>alt=</c> attribute), and a caption. Not too difficult 516the image's HTML <c>alt</c> attribute), and a caption. Not too difficult
309:) We also support the standard HTML-style &lt;img src="foo.gif"/&gt; tag 517:) We also support the standard HTML-style &lt;img src="foo.gif"/&gt; tag
310for adding images without captions, borders, etc.</p> 518for adding images without captions, borders, etc.
519</p>
311 520
312</body> 521</body>
313</section>
314<section> 522</section>
523<section>
315<title>Tables and lists</title> 524<title>Tables</title>
316<body> 525<body>
317 526
527<p>
318<p>Guide supports a simplified table syntax similar to that of HTML. To start 528Guide supports a simplified table syntax similar to that of HTML. To start a
319a table, use a <c>&lt;table&gt;</c> tag. Start a row with a <c>&lt;tr&gt;</c> 529table, use a <c>&lt;table&gt;</c> tag. Start a row with a <c>&lt;tr&gt;</c>
320tag. However, for inserting actual table data, we <e>don't</e> support the 530tag. However, for inserting actual table data, we <e>don't</e> support the
321HTML &lt;td&gt; tag; instead, use the <c>&lt;th&gt;</c> if you are inserting a 531HTML &lt;td&gt; tag; instead, use the <c>&lt;th&gt;</c> if you are inserting a
322header, and <c>&lt;ti&gt;</c> if you are inserting a normal informational 532header, and <c>&lt;ti&gt;</c> if you are inserting a normal informational
323block. You can use a <c>&lt;th&gt;</c> anywhere you can use a <c>&lt;ti&gt;</c> -- 533block. You can use a <c>&lt;th&gt;</c> anywhere you can use a <c>&lt;ti&gt;</c>
324there's no requirement that <c>&lt;th&gt;</c> elements appear only in the 534-- there's no requirement that <c>&lt;th&gt;</c> elements appear only in the
325first row. Currently, these tags don't support any attributes, but some will 535first row.
326be added (such as a <c>caption=</c> attribute for <c>&lt;table&gt;</c>) soon. 536</p>
537
327</p> 538<p>
539Besides, both table headers (<c>&lt;th&gt;</c>) and table items
540(<c>&lt;ti&gt;</c>) accept the <c>colspan</c> and <c>rowspan</c> attributes to
541span their content across rows, columns or both.
542</p>
328 543
544<p>
545Furthermore, table items (<c>&lt;ti&gt;</c>) can be right-aligned or centered
546with the <c>align</c> attribute. Table headers (<c>&lt;th&gt;</c>) are
547automatically centered.
548</p>
549
550<table>
551 <tr>
552 <th colspan="4">This title spans 4 columns</th>
553 </tr>
554 <tr>
555 <th rowspan="6">This title spans 6 rows</th>
556 <ti>Item A1</ti>
557 <ti>Item A2</ti>
558 <ti>Item A3</ti>
559 </tr>
560 <tr>
561 <ti align="center">Item B1</ti>
562 <th colspan="2" rowspan="2">Blocky 2x2 title</th>
563 </tr>
564 <tr>
565 <ti align="right">Item C1</ti>
566 </tr>
567 <tr>
568 <ti colspan="3" align="center">Item D1..D3</ti>
569 </tr>
570 <tr>
571 <ti rowspan="2">Item E1..F1</ti>
572 <ti colspan="2" align="right">Item E2..E3</ti>
573 </tr>
574 <tr>
575 <ti colspan="2" align="right">Item F2..F3</ti>
576 </tr>
577</table>
578
579</body>
580</section>
581<section>
582<title>Lists</title>
583<body>
584
585<p>
329<p> To create ordered or unordered lists, simply use the HTML-style 586To create ordered or unordered lists, simply use the XHTML-style
330<c>&lt;ol&gt;</c>, <c>&lt;ul&gt;</c> and <c>&lt;li&gt;</c> tags. List tags 587<c>&lt;ol&gt;</c>, <c>&lt;ul&gt;</c> and <c>&lt;li&gt;</c> tags. Lists may only
331should only appear inside a <c>&lt;p&gt;</c>, <c>&lt;ti&gt;</c>, 588appear inside the <c>&lt;body&gt;</c> and <c>&lt;li&gt;</c> tags which means
332<c>&lt;note&gt;</c>, <c>&lt;warn&gt;</c> or <c>&lt;impo&gt;</c> tag. </p> 589that you can have lists inside lists. Don't forget that you are writing XML and
590that you must close all tags including list items unlike in HTML.
591</p>
333 592
334</body> 593<p>
335</section> 594Definition lists (<c>&lt;dl&gt;</c>) are also supported. Please note that
595neither the definition term tag (<c>&lt;dt&gt;</c>) nor the definition data tag
596(<c>&lt;dd&gt;</c>) accept any other block level tag such as paragraphs or
597admonitions. A definition list comprises:
598</p>
336 599
600<dl>
601 <dt><c>&lt;dl&gt;</c></dt>
602 <dd>A <b>D</b>efinition <b>L</b>ist Tag containing</dd>
603 <dt><c>&lt;dt&gt;</c></dt>
604 <dd>Pairs of <b>D</b>efinition <b>T</b>erm Tags</dd>
605 <dt><c>&lt;dd&gt;</c></dt>
606 <dd>and <b>D</b>efinition <b>D</b>ata Tags</dd>
607</dl>
608
609<p>
610The following list copied from <uri
611link="http://www.w3.org/TR/REC-html40/struct/lists.html">w3.org</uri> shows
612that a definition list can contain ordered and unordered lists. It may not
613contain another definition list though.
614</p>
615
616<dl>
617 <dt><b>The ingredients:</b></dt>
618 <dd>
619 <ul>
620 <li>100 g. flour</li>
621 <li>10 g. sugar</li>
622 <li>1 cup water</li>
623 <li>2 eggs</li>
624 <li>salt, pepper</li>
625 </ul>
626 </dd>
627 <dt><b>The procedure:</b></dt>
628 <dd>
629 <ol>
630 <li>Mix dry ingredients thoroughly</li>
631 <li>Pour in wet ingredients</li>
632 <li>Mix for 10 minutes</li>
633 <li>Bake for one hour at 300 degrees</li>
634 </ol>
635 </dd>
636 <dt><b>Notes:</b></dt>
637 <dd>The recipe may be improved by adding raisins</dd>
638</dl>
639
640</body>
641</section>
337<section> 642<section>
338<title>Intra-document references</title> 643<title>Intra-document references</title>
339<body> 644<body>
340 645
646<p>
341<p>Guide makes it really easy to reference other parts of the document using 647Guide makes it really easy to reference other parts of the document using
342hyperlinks. You can create a link pointing to <uri link="#doc_chap1">Chapter 648hyperlinks. You can create a link pointing to <uri link="#doc_chap1">Chapter
343One</uri> by typing <c>&lt;uri link="#doc_chap1"&gt;Chapter 649One</uri> by typing <c>&lt;uri link="#doc_chap1"&gt;Chapter
344One&lt;/uri&gt;</c>. To point to <uri link="#doc_chap1_sect2">section two of 650One&lt;/uri&gt;</c>. To point to <uri link="#doc_chap1_sect2">section two of
345Chapter One</uri>, type <c>&lt;uri link="#doc_chap1_sect2"&gt;section two of 651Chapter One</uri>, type <c>&lt;uri link="#doc_chap1_sect2"&gt;section two of
346Chapter One&lt;/uri&gt;</c>. To refer to figure 3 in chapter 1, type <c>&lt;uri 652Chapter One&lt;/uri&gt;</c>. To refer to figure 3 in chapter 1, type <c>&lt;uri
347link="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>, 653link="#doc_chap1_fig3"&gt;figure 1.3&lt;/uri&gt;</c>. Or, to refer to <uri
654link="#doc_chap2_pre2">code listing 2 in chapter 2</uri>, type <c>&lt;uri
348type <c>&lt;uri link="doc_chap2_pre2"&gt;code listing 2.2&lt;/uri&gt;</c>. We'll be 655link="#doc_chap2_pre2"&gt;code listing 2.2&lt;/uri&gt;</c>.
349adding other auto-link abilities (such as table support) soon.</p> 656</p>
657
658<p>
659However, some guides change often and using such "counting" can lead to broken
660links. In order to cope with this, you can define a name for a
661<c>&lt;chapter&gt;</c>, <c>&lt;section&gt;</c> or a <c>&lt;tr&gt;</c> by using
662the <c>id</c> attribute, and then point to that attribute, like this:
663</p>
664
665<pre caption="Using the id attribute">
666&lt;chapter id="foo"&gt;
667&lt;title&gt;This is foo!&lt;/title&gt;
668...
669&lt;p&gt;
670More information can be found in the &lt;uri link="#foo"&gt;foo chapter&lt;/uri&gt;
671&lt;/p&gt;
672</pre>
673
674</body>
675</section>
676<section>
677<title>Disclaimers and obsolete documents</title>
678<body>
679
680<p>
681A <c>disclaimer</c> attribute can be applied to guides and handbooks to display
682a predefined disclaimer at the top of the document. The available disclaimers
683are:
684</p>
685
686<ul>
687 <li>
688 <b>articles</b> is used for <uri link="/doc/en/articles/">republished
689 articles</uri>
690 </li>
691 <li>
692 <b>draft</b> is used to indicate a document is still being worked on and
693 should not be considered official
694 </li>
695 <li>
696 <b>oldbook</b> is used on old handbooks to indicate they are not maintained
697 anymore
698 </li>
699 <li><b>obsolete</b> is used to mark a document as obsolete.</li>
700</ul>
701
702<p>
703When marking a document as obsolete, you might want to add a link to a new
704version. The <c>redirect</c> attribute does just that. The user might be
705automatically redirected to the new page but you should not rely on that
706behaviour.
707</p>
708
709<pre caption="Disclaimer sample">
710&lt;?xml version="1.0" encoding="UTF-8"?&gt;
711&lt;!DOCTYPE guide SYSTEM "/dtd/guide.dtd"&gt;
712&lt;!-- &#36;Header&#36; --&gt;
713
714&lt;guide link="/doc/en/gentoo-x86-install.xml" disclaimer="obsolete" redirect="/doc/en/handbook/handbook-x86.xml"&gt;
715&lt;title>Gentoo x86 Installation Guide&lt;/title&gt;
716
717&lt;author title="Author"&gt;
718...
719</pre>
350 720
351</body> 721</body>
352</section> 722</section>
353</chapter> 723</chapter>
724
725<chapter>
726<title>Coding Style</title>
727<section>
728<title>Introduction</title>
729<body>
730
731<p>
732Since all Gentoo Documentation is a joint effort and several people will
733most likely change existing documentation, a coding style is needed.
734A coding style contains two sections. The first one is regarding
735internal coding - how the XML-tags are placed. The second one is
736regarding the content - how not to confuse the reader.
737</p>
738
739<p>
740Both sections are described next.
741</p>
742
743</body>
744</section>
745<section>
746<title>Internal Coding Style</title>
747<body>
748
749<p>
750<b>Newlines</b> must be placed immediately after <e>every</e>
751GuideXML-tag (both opening as closing), except for:
752<c>&lt;version&gt;</c>, <c>&lt;date&gt;</c>, <c>&lt;title&gt;</c>,
753<c>&lt;th&gt;</c>, <c>&lt;ti&gt;</c>,
754<c>&lt;li&gt;</c>, <c>&lt;i&gt;</c>, <c>&lt;e&gt;</c>,
755<c>&lt;uri&gt;</c>, <c>&lt;path&gt;</c>, <c>&lt;b&gt;</c>, <c>&lt;c&gt;</c>,
756<c>&lt;comment&gt;</c>, <c>&lt;mail&gt;</c>.
757</p>
758
759<p>
760<b>Blank lines</b> must be placed immediately after <e>every</e>
761<c>&lt;body&gt;</c> (opening tag only) and before <e>every</e>
762<c>&lt;chapter&gt;</c>, <c>&lt;p&gt;</c>, <c>&lt;table&gt;</c>,
763<c>&lt;author&gt;</c> (set), <c>&lt;pre&gt;</c>, <c>&lt;ul&gt;</c>,
764<c>&lt;ol&gt;</c>, <c>&lt;warn&gt;</c>, <c>&lt;note&gt;</c> and
765<c>&lt;impo&gt;</c> (opening tags only).
766</p>
767
768<p>
769<b>Word-wrapping</b> must be applied at 80 characters except inside
770<c>&lt;pre&gt;</c>. You may only deviate from this rule when there is no other
771choice (for instance when a URL exceeds the maximum amount of characters). The
772editor must then wrap whenever the first whitespace occurs. You should try to
773keep the <e>rendered</e> content of <c>&lt;pre&gt;</c> elements within 80
774columns to help console users.
775</p>
776
777<p>
778<b>Indentation</b> may not be used, except with the XML-constructs of which the
779parent XML-tags are <c>&lt;tr&gt;</c> (from <c>&lt;table&gt;</c>),
780<c>&lt;ul&gt;</c>, <c>&lt;ol&gt;</c>, <c>&lt;dl&gt;</c>, and
781<c>&lt;author&gt;</c>. If indentation is used, it <e>must</e> be two spaces for
782each indentation. That means <e>no tabs</e> and <e>not</e> more spaces.
783Besides, tabs are not allowed in GuideXML documents.
784</p>
785
786<p>
787In case word-wrapping happens in <c>&lt;ti&gt;</c>, <c>&lt;th&gt;</c>,
788<c>&lt;li&gt;</c> or <c>&lt;dd&gt;</c> constructs, indentation must be used for
789the content.
790</p>
791
792<p>
793An example for indentation is:
794</p>
795
796<pre caption="Indentation Example">
797&lt;table&gt;
798&lt;tr&gt;
799 &lt;th&gt;Foo&lt;/th&gt;
800 &lt;th&gt;Bar&lt;/th&gt;
801&lt;/tr&gt;
802&lt;tr&gt;
803 &lt;ti&gt;This is an example for indentation&lt;/ti&gt;
804 &lt;ti&gt;
805 In case text cannot be shown within an 80-character wide line, you
806 must use indentation if the parent tag allows it
807 &lt;/ti&gt;
808&lt;/tr&gt;
809&lt;/table&gt;
810
811&lt;ul&gt;
812 &lt;li&gt;First option&lt;/li&gt;
813 &lt;li&gt;Second option&lt;/li&gt;
814&lt;/ul&gt;
815</pre>
816
817<p>
818<b>Attributes</b> may not have spaces in between the attribute, the "=" mark,
819and the attribute value. As an example:
820</p>
821
822<pre caption="Attributes">
823<comment>Wrong :</comment> &lt;pre caption = "Attributes"&gt;
824<comment>Correct:</comment> &lt;pre caption="Attributes"&gt;
825</pre>
826
827</body>
828</section>
829<section>
830<title>External Coding Style</title>
831<body>
832
833<p>
834Inside tables (<c>&lt;table&gt;</c>) and listings (<c>&lt;ul&gt;</c>,
835<c>&lt;ol&gt;</c>) and <c>&lt;dl&gt;</c>, periods (".") should not be used
836unless multiple sentences are used. In that case, every sentence should end
837with a period (or other reading marks).
838</p>
839
840<p>
841Every sentence, including those inside tables and listings, should start
842with a capital letter.
843</p>
844
845<pre caption="Periods and capital letters">
846&lt;ul&gt;
847 &lt;li&gt;No period&lt;/li&gt;
848 &lt;li&gt;With period. Multiple sentences, remember?&lt;/li&gt;
849&lt;/ul&gt;
850</pre>
851
852<p>
853Code Listings should <e>always</e> have a <c>caption</c>.
854</p>
855
856<p>
857Try to use <c>&lt;uri&gt;</c> with the <c>link</c> attribute as much as
858possible. In other words, the <uri link="http://forums.gentoo.org">Gentoo
859Forums</uri> is preferred over <uri>http://forums.gentoo.org</uri>.
860</p>
861
862<p>
863When you comment something inside a <c>&lt;pre&gt;</c> construct, use
864<c>&lt;comment&gt;</c> and parentheses or the comment marker for the language
865that is being used (<c>#</c> for bash scripts and many other things, <c>//</c>
866for C code, etc.) Also place the comment <e>before</e> the subject of the
867comment.
868</p>
869
870<pre caption="Comment example">
871<comment>(Substitute "john" with your user name)</comment>
872# <i>id john</i>
873</pre>
874
875</body>
876</section>
877</chapter>
878
879<chapter>
880<title>Handbook Format</title>
881<section>
882<title>Guide vs Book</title>
883<body>
884
885<p>
886For high-volume documentation, such as the <uri
887link="/doc/en/handbook/handbook-x86.xml?part=1">Installation Instructions</uri>, a
888broader format was needed. We designed a GuideXML-compatible enhancement that
889allows us to write modular and multi-page documentation.
890</p>
891
892</body>
893</section>
894<section>
895<title>Main File</title>
896<body>
897
898<p>
899The first change is the need for a "master" document. This document contains no
900real content, but links to the individual documentation modules. The syntax
901doesn't differ much from GuideXML:
902</p>
903
904<pre caption="Example book usage">
905&lt;?xml version='1.0' encoding='UTF-8'?&gt;
906&lt;!DOCTYPE book SYSTEM "/dtd/book.dtd"&gt;
907&lt;!-- &#36;Header&#36; --&gt;
908
909&lt;<i>book</i> link="example.xml"&gt;
910&lt;title&gt;Example Book Usage&lt;/title&gt;
911
912&lt;author...&gt;
913 ...
914&lt;/author&gt;
915
916&lt;abstract&gt;
917 ...
918&lt;/abstract&gt;
919
920&lt;!-- The content of this document is licensed under the CC-BY-SA license --&gt;
921&lt;!-- See http://creativecommons.org/licenses/by-sa/2.5 --&gt;
922&lt;license/&gt;
923
924&lt;version&gt;...&lt;/version&gt;
925&lt;date&gt;...&lt;/date&gt;
926</pre>
927
928<p>
929So far no real differences (except for the <c>&lt;book&gt;</c> instead of
930<c>&lt;guide&gt;</c> tag). Instead of starting with the individual
931<c>&lt;chapter&gt;</c>s, you define a <c>&lt;part&gt;</c>, which is the
932equivalent of a separate part in a book:
933</p>
934
935<pre caption="Defining a part">
936&lt;part&gt;
937&lt;title&gt;Part One&lt;/title&gt;
938&lt;abstract&gt;
939 ...
940&lt;/abstract&gt;
941
942<comment>(Defining the several chapters)</comment>
943&lt;/part&gt;
944</pre>
945
946<p>
947Each part is accompanied by a <c>&lt;title&gt;</c> and an
948<c>&lt;abstract&gt;</c> which gives a small introduction to the part.
949</p>
950
951<p>
952Inside each part, you define the individual <c>&lt;chapter&gt;</c>s. Each
953chapter <e>must</e> be a separate document. As a result it is no surprise that
954a special tag (<c>&lt;include&gt;</c>) is added to allow including the separate
955document.
956</p>
957
958<pre caption="Defining a chapter">
959&lt;chapter&gt;
960&lt;title&gt;Chapter One&lt;/title&gt;
961&lt;abstract&gt;
962 This is a small explanation on chapter one.
963&lt;/abstract&gt;
964
965 &lt;include href="path/to/chapter-one.xml"/&gt;
966
967&lt;/chapter&gt;
968</pre>
969
970</body>
971</section>
972<section>
973<title>Designing the Individual Chapters</title>
974<body>
975
976<p>
977The content of an individual chapter is structured as follows:
978</p>
979
980<pre caption="Chapter Syntax">
981&lt;?xml version='1.0' encoding='UTF-8'?&gt;
982&lt;!DOCTYPE sections SYSTEM "/dtd/book.dtd"&gt;
983&lt;!-- &#36;Header&#36; --&gt;
984
985&lt;!-- The content of this document is licensed under the CC-BY-SA license --&gt;
986&lt;!-- See http://creativecommons.org/licenses/by-sa/2.5 --&gt;
987
988&lt;sections&gt;
989
990&lt;version&gt;...&lt;/version&gt;
991&lt;date&gt;...&lt;/date&gt;
992
993<comment>(Define the several &lt;section&gt; and &lt;subsection&gt;)</comment>
994
995&lt;/sections&gt;
996</pre>
997
998<p>
999Inside each chapter you can define <c>&lt;section&gt;</c>s (equivalent of
1000<c>&lt;chapter&gt;</c> in a Guide) and <c>&lt;subsection&gt;</c>s (equivalent
1001of <c>&lt;section&gt;</c> in a Guide).
1002</p>
1003
1004<p>
1005Each individual chapter should have its own date and version elements. The
1006latest date of all chapters and master document will be displayed when a user
1007browses through all parts of the book.
1008</p>
1009
1010</body>
1011</section>
1012</chapter>
1013
354<chapter> 1014<chapter>
355<title>Resources</title> 1015<title>Resources</title>
356<section> 1016<section>
357 <title>Start writing</title> 1017<title>Start writing</title>
358 <body> 1018<body>
1019
1020<p>
359 <p>Guide has been specially designed to be "lean and mean" so that developers 1021Guide has been specially designed to be "lean and mean" so that developers can
360 can spend more time writing documentation and less time learning the actual XML 1022spend more time writing documentation and less time learning the actual XML
361 syntax. Hopefully, this will allow developers who aren't unusually "doc-savvy" 1023syntax. Hopefully, this will allow developers who aren't unusually "doc-savvy"
362 to start writing quality Gentoo Linux documentation. If you'd like to help (or have any questions about guide), please 1024to start writing quality Gentoo documentation. You might be interested
363 post a message to <mail link="gentoo-dev@gentoo.org">the gentoo-dev mailing list</mail> 1025in our <uri link="/proj/en/gdp/doc/doc-tipsntricks.xml">Documentation
364 stating what you'd like to tackle. 1026Development Tips &amp; Tricks</uri>. If you'd like to help (or have any
365 Have fun!</p> 1027questions about guide), please post a message to the <uri
1028link="/main/en/lists.xml">gentoo-doc mailing list</uri> stating what you'd
1029like to tackle. Have fun!
1030</p>
1031
366 </body> 1032</body>
367</section> 1033</section>
368</chapter> 1034</chapter>
369</guide> 1035</guide>
370

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.66

  ViewVC Help
Powered by ViewVC 1.1.20