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

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

  ViewVC Help
Powered by ViewVC 1.1.20