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