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

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

  ViewVC Help
Powered by ViewVC 1.1.20