| 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.62 2006/05/07 14:36:42 rane Exp $ --> |
| 3 | |
|
|
| 4 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
3 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
| 5 | |
4 | |
| 6 | <guide link="/doc/en/xml-guide.xml"> |
5 | <guide link="/doc/en/xml-guide.xml"> |
| 7 | <title>Gentoo Linux Documentation Guide</title> |
6 | <title>Gentoo XML Guide</title> |
| 8 | <author title="Chief Architect"><mail link="drobbins@gentoo.org">Daniel Robbins</mail></author> |
|
|
| 9 | |
7 | |
|
|
8 | <author title="Author"> |
|
|
9 | <mail link="neysx@gentoo.org">Xavier Neys</mail> |
|
|
10 | </author> |
|
|
11 | <author title="Author"> |
|
|
12 | <mail link="drobbins@gentoo.org">Daniel Robbins</mail> |
|
|
13 | </author> |
|
|
14 | <author title="Author"><!-- zhen@gentoo.org --> |
|
|
15 | John P. Davis |
|
|
16 | </author> |
|
|
17 | <author title="Editor"> |
|
|
18 | <mail link="peesh@gentoo.org">Jorge Paulo</mail> |
|
|
19 | </author> |
|
|
20 | <author title="Editor"> |
|
|
21 | <mail link="swift@gentoo.org">Sven Vermeulen</mail> |
|
|
22 | </author> |
|
|
23 | |
|
|
24 | <abstract> |
| 10 | <abstract>This guide shows you how to compose web documentation using the new lightweight Gentoo guide |
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>6</version> |
| 16 | <date>07 Mar 2002</date> |
36 | <date>2006-04-26</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 a comment into a 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 a comment into a code block)</comment> |
| 222 | </pre> |
284 | </pre> |
| 223 | <note>This is a note.</note> |
|
|
| 224 | <warn>This is a warning.</warn> |
|
|
| 225 | <impo>This is important.</impo> |
|
|
| 226 | </body> |
|
|
| 227 | </section> |
|
|
| 228 | |
285 | |
|
|
286 | <note> |
|
|
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>, <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>. |
|
|
364 | </p> |
| 253 | |
365 | |
|
|
366 | <p> |
| 254 | <p>The <c><path></c> element is used to mark text that refers to an |
367 | 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>. |
368 | <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 |
369 | <e>simple filename</e>. This element is generally rendered with a mono spaced |
| 257 | standard paragraph type. </p> |
370 | font to offset it from the standard paragraph type. |
|
|
371 | </p> |
| 258 | |
372 | |
|
|
373 | <p> |
| 259 | <p>The <c><c></c> element is used to mark up a <e>command</e> or <e>user |
374 | 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 |
375 | 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 |
376 | 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> |
377 | 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 |
378 | 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 |
379 | 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 |
380 | 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 |
381 | <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 |
382 | 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 |
383 | 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> |
384 | the use of unnecessary double-quotes makes a document more readable -- and |
|
|
385 | adorable! |
|
|
386 | </p> |
| 270 | |
387 | |
|
|
388 | <p> |
|
|
389 | As you might have guessed, <c><b></c> is used to <b>boldface</b> some |
|
|
390 | text. |
|
|
391 | </p> |
|
|
392 | |
|
|
393 | <p> |
| 271 | <p><c><e></c> is used to apply emphasis to a word or phrase; for example: |
394 | <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 |
395 | 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 |
396 | offset from the regular paragraph type for emphasis. This helps to give your |
| 274 | prose more <e>punch</e>!</p> |
397 | prose more <e>punch</e>! |
|
|
398 | </p> |
| 275 | |
399 | |
|
|
400 | <p> |
|
|
401 | The <c><sub></c> and <c><sup></c> elements are used to specify |
|
|
402 | <sub>subscript</sub> and <sup>superscript</sup>. |
|
|
403 | </p> |
|
|
404 | |
| 276 | </body> |
405 | </body> |
|
|
406 | </section> |
| 277 | </section> |
407 | <section> |
|
|
408 | <title>Code samples and colour-coding</title> |
|
|
409 | <body> |
| 278 | |
410 | |
|
|
411 | <p> |
|
|
412 | To improve the readability of code samples, the following tags are allowed |
|
|
413 | inside <c><pre></c> blocks: |
|
|
414 | </p> |
|
|
415 | |
|
|
416 | <dl> |
|
|
417 | <dt><c><i></c></dt> |
|
|
418 | <dd>Distinguishes user input from displayed text</dd> |
|
|
419 | <dt><c><comment></c></dt> |
|
|
420 | <dd>Comments relevant to the action(s) that appear after the comment</dd> |
|
|
421 | <dt><c><keyword></c></dt> |
|
|
422 | <dd>Denotes a keyword in the language used in the code sample |
|
|
423 | </dd> |
|
|
424 | <dt><c><ident></c></dt> |
|
|
425 | <dd>Used for an identifier |
|
|
426 | </dd> |
|
|
427 | <dt><c><const></c></dt> |
|
|
428 | <dd>Used for a constant |
|
|
429 | </dd> |
|
|
430 | <dt><c><stmt></c></dt> |
|
|
431 | <dd>Used for a statement |
|
|
432 | </dd> |
|
|
433 | <dt><c><var></c></dt> |
|
|
434 | <dd>Used for a variable |
|
|
435 | </dd> |
|
|
436 | </dl> |
|
|
437 | |
|
|
438 | <note> |
|
|
439 | Remember that all leading and trailing spaces, and line breaks in |
|
|
440 | <c><pre></c> blocks will appear in the displayed html page. |
|
|
441 | </note> |
|
|
442 | |
|
|
443 | <p> |
|
|
444 | Sample colour-coded <c><pre></c> block: |
|
|
445 | </p> |
|
|
446 | |
|
|
447 | <pre caption="My first ebuild"> |
|
|
448 | <comment># Copyright 1999-2006 <b>Gentoo Foundation</b> |
|
|
449 | # Distributed under the terms of the GNU General Public License v2 |
|
|
450 | # $Header: $</comment> |
|
|
451 | |
|
|
452 | <ident>DESCRIPTION</ident>=<const>"Exuberant ctags generates tags files for quick source navigation"</const> |
|
|
453 | <ident>HOMEPAGE</ident>=<const>"http://ctags.sourceforge.net"</const> |
|
|
454 | <ident>SRC_URI</ident>=<const>"mirror://sourceforge/ctags/<var>${P}</var>.tar.gz"</const> |
|
|
455 | |
|
|
456 | <ident>LICENSE</ident>=<const>"GPL-2"</const> |
|
|
457 | <ident>SLOT</ident>=<const>"0"</const> |
|
|
458 | <ident>KEYWORDS</ident>=<const>"~mips ~sparc ~x86"</const> |
|
|
459 | <ident>IUSE</ident>=<const>""</const> |
|
|
460 | |
|
|
461 | <stmt>src_compile()</stmt> { |
|
|
462 | <keyword>econf</keyword> --with-posix-regex || <keyword>die</keyword> <const>"econf failed"</const> |
|
|
463 | <keyword>emake</keyword> || <keyword>die</keyword> <const>"emake failed"</const> |
|
|
464 | } |
|
|
465 | |
|
|
466 | <stmt>src_install()</stmt> { |
|
|
467 | <keyword>make</keyword> <ident>DESTDIR</ident>="<var>${D}</var>" install || <keyword>die</keyword> <const>"install failed"</const> |
|
|
468 | |
|
|
469 | <keyword>dodoc</keyword> FAQ NEWS README |
|
|
470 | <keyword>dohtml</keyword> EXTENDING.html ctags.html |
|
|
471 | } |
|
|
472 | </pre> |
|
|
473 | |
|
|
474 | </body> |
|
|
475 | </section> |
| 279 | <section> |
476 | <section> |
| 280 | <title><mail> and <uri></title> |
477 | <title><mail> and <uri></title> |
| 281 | <body> |
478 | <body> |
| 282 | |
479 | |
|
|
480 | <p> |
| 283 | <p>We've taken a look at the <c><mail></c> tag earlier; it's used to link some text |
481 | 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> |
482 | some text with a particular email address, and takes the form <c><mail |
|
|
483 | link="foo@bar.com">Mr. Foo Bar</mail></c>. If you want to display the |
|
|
484 | email address, you can use <c><mail>foo@bar.com</mail></c>, this |
|
|
485 | would be displayed as <mail>foo@bar.com</mail>. |
|
|
486 | </p> |
| 285 | |
487 | |
|
|
488 | <p> |
| 286 | <p>The <c><uri></c> tag is used to point to files/locations on the |
489 | 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 |
490 | 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 |
491 | displayed in the body text, such as this link to |
| 289 | <uri>http://www.gentoo.org</uri>. To create this link, I typed |
492 | <uri>http://forums.gentoo.org</uri>. To create this link, I typed |
| 290 | <c><uri>http://www.gentoo.org</uri></c>. The alternate form is |
493 | <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 |
494 | 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> |
495 | 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>. |
496 | link, I typed <c><uri link="http://forums.gentoo.org">the Gentoo |
|
|
497 | Forums</uri></c>. You don't need to write <c>http://www.gentoo.org/</c> |
|
|
498 | to link to other parts of the Gentoo web site. For instance, a link to the <uri |
|
|
499 | link="/doc/en/">documentation main index</uri> should be simply <c><uri |
|
|
500 | link="/doc/en/index.xml">documentation main index</uri></c>. You can |
|
|
501 | even omit <c>index.xml</c> when you link to a directory index, e.g. <c><uri |
|
|
502 | link="/doc/en/">documentation main index</uri></c>. |
| 294 | </p> |
503 | </p> |
| 295 | |
504 | |
| 296 | </body> |
505 | </body> |
| 297 | </section> |
506 | </section> |
| 298 | |
|
|
| 299 | <section> |
507 | <section> |
| 300 | <title>Figures</title> |
508 | <title>Figures</title> |
| 301 | |
|
|
| 302 | <body> |
509 | <body> |
| 303 | |
510 | |
|
|
511 | <p> |
| 304 | <p>Here's how to insert a figure into a document -- <c><figure |
512 | 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 |
513 | 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, |
514 | 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 |
515 | 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 |
516 | 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 |
517 | :) We also support the standard HTML-style <img src="foo.gif"/> tag |
| 310 | for adding images without captions, borders, etc.</p> |
518 | for adding images without captions, borders, etc. |
|
|
519 | </p> |
| 311 | |
520 | |
| 312 | </body> |
521 | </body> |
| 313 | </section> |
|
|
| 314 | <section> |
522 | </section> |
|
|
523 | <section> |
| 315 | <title>Tables and lists</title> |
524 | <title>Tables</title> |
| 316 | <body> |
525 | <body> |
| 317 | |
526 | |
|
|
527 | <p> |
| 318 | <p>Guide supports a simplified table syntax similar to that of HTML. To start |
528 | 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> |
529 | 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 |
530 | 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 |
531 | 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 |
532 | 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> -- |
533 | 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 |
534 | -- 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 |
535 | first row. |
| 326 | be added (such as a <c>caption=</c> attribute for <c><table></c>) soon. |
536 | </p> |
|
|
537 | |
| 327 | </p> |
538 | <p> |
|
|
539 | Besides, both table headers (<c><th></c>) and table items |
|
|
540 | (<c><ti></c>) accept the <c>colspan</c> and <c>rowspan</c> attributes to |
|
|
541 | span their content across rows, columns or both. |
|
|
542 | </p> |
| 328 | |
543 | |
|
|
544 | <p> |
|
|
545 | Furthermore, table items (<c><ti></c>) can be right-aligned or centered |
|
|
546 | with the <c>align</c> attribute. Table headers (<c><th></c>) are |
|
|
547 | automatically centered. |
|
|
548 | </p> |
|
|
549 | |
|
|
550 | <table> |
|
|
551 | <tr> |
|
|
552 | <th colspan="4">This title spans 4 columns</th> |
|
|
553 | </tr> |
|
|
554 | <tr> |
|
|
555 | <th rowspan="6">This title spans 6 rows</th> |
|
|
556 | <ti>Item A1</ti> |
|
|
557 | <ti>Item A2</ti> |
|
|
558 | <ti>Item A3</ti> |
|
|
559 | </tr> |
|
|
560 | <tr> |
|
|
561 | <ti align="center">Item B1</ti> |
|
|
562 | <th colspan="2" rowspan="2">Blocky 2x2 title</th> |
|
|
563 | </tr> |
|
|
564 | <tr> |
|
|
565 | <ti align="right">Item C1</ti> |
|
|
566 | </tr> |
|
|
567 | <tr> |
|
|
568 | <ti colspan="3" align="center">Item D1..D3</ti> |
|
|
569 | </tr> |
|
|
570 | <tr> |
|
|
571 | <ti rowspan="2">Item E1..F1</ti> |
|
|
572 | <ti colspan="2" align="right">Item E2..E3</ti> |
|
|
573 | </tr> |
|
|
574 | <tr> |
|
|
575 | <ti colspan="2" align="right">Item F2..F3</ti> |
|
|
576 | </tr> |
|
|
577 | </table> |
|
|
578 | |
|
|
579 | </body> |
|
|
580 | </section> |
|
|
581 | <section> |
|
|
582 | <title>Lists</title> |
|
|
583 | <body> |
|
|
584 | |
|
|
585 | <p> |
| 329 | <p> To create ordered or unordered lists, simply use the HTML-style |
586 | 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 |
587 | <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>, |
588 | 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> |
589 | that you can have lists inside lists. Don't forget that you are writing XML and |
|
|
590 | that you must close all tags including list items unlike in HTML. |
|
|
591 | </p> |
| 333 | |
592 | |
| 334 | </body> |
593 | <p> |
| 335 | </section> |
594 | Definition lists (<c><dl></c>) are also supported. Please note that |
|
|
595 | neither the definition term tag (<c><dt></c>) nor the definition data tag |
|
|
596 | (<c><dd></c>) accept any other block level tag such as paragraphs or |
|
|
597 | admonitions. A definition list comprises: |
|
|
598 | </p> |
| 336 | |
599 | |
|
|
600 | <dl> |
|
|
601 | <dt><c><dl></c></dt> |
|
|
602 | <dd>A <b>D</b>efinition <b>L</b>ist Tag containing</dd> |
|
|
603 | <dt><c><dt></c></dt> |
|
|
604 | <dd>Pairs of <b>D</b>efinition <b>T</b>erm Tags</dd> |
|
|
605 | <dt><c><dd></c></dt> |
|
|
606 | <dd>and <b>D</b>efinition <b>D</b>ata Tags</dd> |
|
|
607 | </dl> |
|
|
608 | |
|
|
609 | <p> |
|
|
610 | The following list copied from <uri |
|
|
611 | link="http://www.w3.org/TR/REC-html40/struct/lists.html">w3.org</uri> shows |
|
|
612 | that a definition list can contain ordered and unordered lists. It may not |
|
|
613 | contain another definition list though. |
|
|
614 | </p> |
|
|
615 | |
|
|
616 | <dl> |
|
|
617 | <dt><b>The ingredients:</b></dt> |
|
|
618 | <dd> |
|
|
619 | <ul> |
|
|
620 | <li>100 g. flour</li> |
|
|
621 | <li>10 g. sugar</li> |
|
|
622 | <li>1 cup water</li> |
|
|
623 | <li>2 eggs</li> |
|
|
624 | <li>salt, pepper</li> |
|
|
625 | </ul> |
|
|
626 | </dd> |
|
|
627 | <dt><b>The procedure:</b></dt> |
|
|
628 | <dd> |
|
|
629 | <ol> |
|
|
630 | <li>Mix dry ingredients thoroughly</li> |
|
|
631 | <li>Pour in wet ingredients</li> |
|
|
632 | <li>Mix for 10 minutes</li> |
|
|
633 | <li>Bake for one hour at 300 degrees</li> |
|
|
634 | </ol> |
|
|
635 | </dd> |
|
|
636 | <dt><b>Notes:</b></dt> |
|
|
637 | <dd>The recipe may be improved by adding raisins</dd> |
|
|
638 | </dl> |
|
|
639 | |
|
|
640 | </body> |
|
|
641 | </section> |
| 337 | <section> |
642 | <section> |
| 338 | <title>Intra-document references</title> |
643 | <title>Intra-document references</title> |
| 339 | <body> |
644 | <body> |
| 340 | |
645 | |
|
|
646 | <p> |
| 341 | <p>Guide makes it really easy to reference other parts of the document using |
647 | 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 |
648 | hyperlinks. You can create a link pointing to <uri link="#doc_chap1">Chapter |
| 343 | One</uri> by typing <c><uri link="#doc_chap1">Chapter |
649 | 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 |
650 | 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 |
651 | 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 |
652 | 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>, |
653 | link="#doc_chap1_fig3">figure 1.3</uri></c>. Or, to refer to <uri |
|
|
654 | 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 |
655 | link="#doc_chap2_pre2">code listing 2.2</uri></c>. |
| 349 | adding other auto-link abilities (such as table support) soon.</p> |
656 | </p> |
|
|
657 | |
|
|
658 | <p> |
|
|
659 | However, some guides change often and using such "counting" can lead to broken |
|
|
660 | links. In order to cope with this, you can define a name for a |
|
|
661 | <c><chapter></c>, <c><section></c> or a <c><tr></c> by using |
|
|
662 | the <c>id</c> attribute, and then point to that attribute, like this: |
|
|
663 | </p> |
|
|
664 | |
|
|
665 | <pre caption="Using the id attribute"> |
|
|
666 | <chapter id="foo"> |
|
|
667 | <title>This is foo!</title> |
|
|
668 | ... |
|
|
669 | <p> |
|
|
670 | More information can be found in the <uri link="#foo">foo chapter</uri> |
|
|
671 | </p> |
|
|
672 | </pre> |
|
|
673 | |
|
|
674 | </body> |
|
|
675 | </section> |
|
|
676 | <section> |
|
|
677 | <title>Disclaimers and obsolete documents</title> |
|
|
678 | <body> |
|
|
679 | |
|
|
680 | <p> |
|
|
681 | A <c>disclaimer</c> attribute can be applied to guides and handbooks to display |
|
|
682 | a predefined disclaimer at the top of the document. The available disclaimers |
|
|
683 | are: |
|
|
684 | </p> |
|
|
685 | |
|
|
686 | <ul> |
|
|
687 | <li> |
|
|
688 | <b>articles</b> is used for <uri link="/doc/en/articles/">republished |
|
|
689 | articles</uri> |
|
|
690 | </li> |
|
|
691 | <li> |
|
|
692 | <b>draft</b> is used to indicate a document is still being worked on and |
|
|
693 | should not be considered official |
|
|
694 | </li> |
|
|
695 | <li> |
|
|
696 | <b>oldbook</b> is used on old handbooks to indicate they are not maintained |
|
|
697 | anymore |
|
|
698 | </li> |
|
|
699 | <li><b>obsolete</b> is used to mark a document as obsolete.</li> |
|
|
700 | </ul> |
|
|
701 | |
|
|
702 | <p> |
|
|
703 | When marking a document as obsolete, you might want to add a link to a new |
|
|
704 | version. The <c>redirect</c> attribute does just that. The user might be |
|
|
705 | automatically redirected to the new page but you should not rely on that |
|
|
706 | behaviour. |
|
|
707 | </p> |
|
|
708 | |
|
|
709 | <pre caption="Disclaimer sample"> |
|
|
710 | <?xml version="1.0" encoding="UTF-8"?> |
|
|
711 | <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
|
|
712 | <!-- $Header$ --> |
|
|
713 | |
|
|
714 | <guide link="/doc/en/gentoo-x86-install.xml" disclaimer="obsolete" redirect="/doc/en/handbook/handbook-x86.xml"> |
|
|
715 | <title>Gentoo x86 Installation Guide</title> |
|
|
716 | |
|
|
717 | <author title="Author"> |
|
|
718 | ... |
|
|
719 | </pre> |
| 350 | |
720 | |
| 351 | </body> |
721 | </body> |
| 352 | </section> |
722 | </section> |
| 353 | </chapter> |
723 | </chapter> |
|
|
724 | |
|
|
725 | <chapter> |
|
|
726 | <title>Coding Style</title> |
|
|
727 | <section> |
|
|
728 | <title>Introduction</title> |
|
|
729 | <body> |
|
|
730 | |
|
|
731 | <p> |
|
|
732 | Since all Gentoo Documentation is a joint effort and several people will |
|
|
733 | most likely change existing documentation, a coding style is needed. |
|
|
734 | A coding style contains two sections. The first one is regarding |
|
|
735 | internal coding - how the XML-tags are placed. The second one is |
|
|
736 | regarding the content - how not to confuse the reader. |
|
|
737 | </p> |
|
|
738 | |
|
|
739 | <p> |
|
|
740 | Both sections are described next. |
|
|
741 | </p> |
|
|
742 | |
|
|
743 | </body> |
|
|
744 | </section> |
|
|
745 | <section> |
|
|
746 | <title>Internal Coding Style</title> |
|
|
747 | <body> |
|
|
748 | |
|
|
749 | <p> |
|
|
750 | <b>Newlines</b> must be placed immediately after <e>every</e> |
|
|
751 | GuideXML-tag (both opening as closing), except for: |
|
|
752 | <c><version></c>, <c><date></c>, <c><title></c>, |
|
|
753 | <c><th></c>, <c><ti></c>, |
|
|
754 | <c><li></c>, <c><i></c>, <c><e></c>, |
|
|
755 | <c><uri></c>, <c><path></c>, <c><b></c>, <c><c></c>, |
|
|
756 | <c><comment></c>, <c><mail></c>. |
|
|
757 | </p> |
|
|
758 | |
|
|
759 | <p> |
|
|
760 | <b>Blank lines</b> must be placed immediately after <e>every</e> |
|
|
761 | <c><body></c> (opening tag only) and before <e>every</e> |
|
|
762 | <c><chapter></c>, <c><p></c>, <c><table></c>, |
|
|
763 | <c><author></c> (set), <c><pre></c>, <c><ul></c>, |
|
|
764 | <c><ol></c>, <c><warn></c>, <c><note></c> and |
|
|
765 | <c><impo></c> (opening tags only). |
|
|
766 | </p> |
|
|
767 | |
|
|
768 | <p> |
|
|
769 | <b>Word-wrapping</b> must be applied at 80 characters except inside |
|
|
770 | <c><pre></c>. You may only deviate from this rule when there is no other |
|
|
771 | choice (for instance when a URL exceeds the maximum amount of characters). The |
|
|
772 | editor must then wrap whenever the first whitespace occurs. You should try to |
|
|
773 | keep the <e>rendered</e> content of <c><pre></c> elements within 80 |
|
|
774 | columns to help console users. |
|
|
775 | </p> |
|
|
776 | |
|
|
777 | <p> |
|
|
778 | <b>Indentation</b> may not be used, except with the XML-constructs of which the |
|
|
779 | parent XML-tags are <c><tr></c> (from <c><table></c>), |
|
|
780 | <c><ul></c>, <c><ol></c>, <c><dl></c>, and |
|
|
781 | <c><author></c>. If indentation is used, it <e>must</e> be two spaces for |
|
|
782 | each indentation. That means <e>no tabs</e> and <e>not</e> more spaces. |
|
|
783 | Besides, tabs are not allowed in GuideXML documents. |
|
|
784 | </p> |
|
|
785 | |
|
|
786 | <p> |
|
|
787 | In case word-wrapping happens in <c><ti></c>, <c><th></c>, |
|
|
788 | <c><li></c> or <c><dd></c> constructs, indentation must be used for |
|
|
789 | the content. |
|
|
790 | </p> |
|
|
791 | |
|
|
792 | <p> |
|
|
793 | An example for indentation is: |
|
|
794 | </p> |
|
|
795 | |
|
|
796 | <pre caption="Indentation Example"> |
|
|
797 | <table> |
|
|
798 | <tr> |
|
|
799 | <th>Foo</th> |
|
|
800 | <th>Bar</th> |
|
|
801 | </tr> |
|
|
802 | <tr> |
|
|
803 | <ti>This is an example for indentation</ti> |
|
|
804 | <ti> |
|
|
805 | In case text cannot be shown within an 80-character wide line, you |
|
|
806 | must use indentation if the parent tag allows it |
|
|
807 | </ti> |
|
|
808 | </tr> |
|
|
809 | </table> |
|
|
810 | |
|
|
811 | <ul> |
|
|
812 | <li>First option</li> |
|
|
813 | <li>Second option</li> |
|
|
814 | </ul> |
|
|
815 | </pre> |
|
|
816 | |
|
|
817 | <p> |
|
|
818 | <b>Attributes</b> may not have spaces in between the attribute, the "=" mark, |
|
|
819 | and the attribute value. As an example: |
|
|
820 | </p> |
|
|
821 | |
|
|
822 | <pre caption="Attributes"> |
|
|
823 | <comment>Wrong :</comment> <pre caption = "Attributes"> |
|
|
824 | <comment>Correct:</comment> <pre caption="Attributes"> |
|
|
825 | </pre> |
|
|
826 | |
|
|
827 | </body> |
|
|
828 | </section> |
|
|
829 | <section> |
|
|
830 | <title>External Coding Style</title> |
|
|
831 | <body> |
|
|
832 | |
|
|
833 | <p> |
|
|
834 | Inside tables (<c><table></c>) and listings (<c><ul></c>, |
|
|
835 | <c><ol></c>) and <c><dl></c>, periods (".") should not be used |
|
|
836 | unless multiple sentences are used. In that case, every sentence should end |
|
|
837 | with a period (or other reading marks). |
|
|
838 | </p> |
|
|
839 | |
|
|
840 | <p> |
|
|
841 | Every sentence, including those inside tables and listings, should start |
|
|
842 | with a capital letter. |
|
|
843 | </p> |
|
|
844 | |
|
|
845 | <pre caption="Periods and capital letters"> |
|
|
846 | <ul> |
|
|
847 | <li>No period</li> |
|
|
848 | <li>With period. Multiple sentences, remember?</li> |
|
|
849 | </ul> |
|
|
850 | </pre> |
|
|
851 | |
|
|
852 | <p> |
|
|
853 | Code Listings should <e>always</e> have a <c>caption</c>. |
|
|
854 | </p> |
|
|
855 | |
|
|
856 | <p> |
|
|
857 | Try to use <c><uri></c> with the <c>link</c> attribute as much as |
|
|
858 | possible. In other words, the <uri link="http://forums.gentoo.org">Gentoo |
|
|
859 | Forums</uri> is preferred over <uri>http://forums.gentoo.org</uri>. |
|
|
860 | </p> |
|
|
861 | |
|
|
862 | <p> |
|
|
863 | When you comment something inside a <c><pre></c> construct, use |
|
|
864 | <c><comment></c> and parentheses or the comment marker for the language |
|
|
865 | that is being used (<c>#</c> for bash scripts and many other things, <c>//</c> |
|
|
866 | for C code, etc.) Also place the comment <e>before</e> the subject of the |
|
|
867 | comment. |
|
|
868 | </p> |
|
|
869 | |
|
|
870 | <pre caption="Comment example"> |
|
|
871 | <comment>(Substitute "john" with your user name)</comment> |
|
|
872 | # <i>id john</i> |
|
|
873 | </pre> |
|
|
874 | |
|
|
875 | </body> |
|
|
876 | </section> |
|
|
877 | </chapter> |
|
|
878 | |
|
|
879 | <chapter> |
|
|
880 | <title>Handbook Format</title> |
|
|
881 | <section> |
|
|
882 | <title>Guide vs Book</title> |
|
|
883 | <body> |
|
|
884 | |
|
|
885 | <p> |
|
|
886 | For high-volume documentation, such as the <uri |
|
|
887 | link="/doc/en/handbook/handbook-x86.xml?part=1">Installation Instructions</uri>, a |
|
|
888 | broader format was needed. We designed a GuideXML-compatible enhancement that |
|
|
889 | allows us to write modular and multi-page documentation. |
|
|
890 | </p> |
|
|
891 | |
|
|
892 | </body> |
|
|
893 | </section> |
|
|
894 | <section> |
|
|
895 | <title>Main File</title> |
|
|
896 | <body> |
|
|
897 | |
|
|
898 | <p> |
|
|
899 | The first change is the need for a "master" document. This document contains no |
|
|
900 | real content, but links to the individual documentation modules. The syntax is |
|
|
901 | doesn't differ much from GuideXML: |
|
|
902 | </p> |
|
|
903 | |
|
|
904 | <pre caption="Example book usage"> |
|
|
905 | <?xml version='1.0' encoding='UTF-8'?> |
|
|
906 | <!DOCTYPE book SYSTEM "/dtd/book.dtd"> |
|
|
907 | <!-- $Header$ --> |
|
|
908 | |
|
|
909 | <<i>book</i> link="example.xml"> |
|
|
910 | <title>Example Book Usage</title> |
|
|
911 | |
|
|
912 | <author...> |
|
|
913 | ... |
|
|
914 | </author> |
|
|
915 | |
|
|
916 | <abstract> |
|
|
917 | ... |
|
|
918 | </abstract> |
|
|
919 | |
|
|
920 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
|
|
921 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
|
|
922 | <license/> |
|
|
923 | |
|
|
924 | <version>...</version> |
|
|
925 | <date>...</date> |
|
|
926 | </pre> |
|
|
927 | |
|
|
928 | <p> |
|
|
929 | So far no real differences (except for the <c><book></c> instead of |
|
|
930 | <c><guide></c> tag). Instead of starting with the individual |
|
|
931 | <c><chapter></c>s, you define a <c><part></c>, which is the |
|
|
932 | equivalent of a separate part in a book: |
|
|
933 | </p> |
|
|
934 | |
|
|
935 | <pre caption="Defining a part"> |
|
|
936 | <part> |
|
|
937 | <title>Part One</title> |
|
|
938 | <abstract> |
|
|
939 | ... |
|
|
940 | </abstract> |
|
|
941 | |
|
|
942 | <comment>(Defining the several chapters)</comment> |
|
|
943 | </part> |
|
|
944 | </pre> |
|
|
945 | |
|
|
946 | <p> |
|
|
947 | Each part is accompanied by a <c><title></c> and an |
|
|
948 | <c><abstract></c> which gives a small introduction to the part. |
|
|
949 | </p> |
|
|
950 | |
|
|
951 | <p> |
|
|
952 | Inside each part, you define the individual <c><chapter></c>s. Each |
|
|
953 | chapter <e>must</e> be a separate document. As a result it is no surprise that |
|
|
954 | a special tag (<c><include></c>) is added to allow including the separate |
|
|
955 | document. |
|
|
956 | </p> |
|
|
957 | |
|
|
958 | <pre caption="Defining a chapter"> |
|
|
959 | <chapter> |
|
|
960 | <title>Chapter One</title> |
|
|
961 | <abstract> |
|
|
962 | This is a small explanation on chapter one. |
|
|
963 | </abstract> |
|
|
964 | |
|
|
965 | <include href="path/to/chapter-one.xml"/> |
|
|
966 | |
|
|
967 | </chapter> |
|
|
968 | </pre> |
|
|
969 | |
|
|
970 | </body> |
|
|
971 | </section> |
|
|
972 | <section> |
|
|
973 | <title>Designing the Individual Chapters</title> |
|
|
974 | <body> |
|
|
975 | |
|
|
976 | <p> |
|
|
977 | The content of an individual chapter is structured as follows: |
|
|
978 | </p> |
|
|
979 | |
|
|
980 | <pre caption="Chapter Syntax"> |
|
|
981 | <?xml version='1.0' encoding='UTF-8'?> |
|
|
982 | <!DOCTYPE sections SYSTEM "/dtd/book.dtd"> |
|
|
983 | <!-- $Header$ --> |
|
|
984 | |
|
|
985 | <!-- The content of this document is licensed under the CC-BY-SA license --> |
|
|
986 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
|
|
987 | |
|
|
988 | <sections> |
|
|
989 | |
|
|
990 | <version>...</version> |
|
|
991 | <date>...</date> |
|
|
992 | |
|
|
993 | <comment>(Define the several <section> and <subsection>)</comment> |
|
|
994 | |
|
|
995 | </sections> |
|
|
996 | </pre> |
|
|
997 | |
|
|
998 | <p> |
|
|
999 | Inside each chapter you can define <c><section></c>s (equivalent of |
|
|
1000 | <c><chapter></c> in a Guide) and <c><subsection></c>s (equivalent |
|
|
1001 | of <c><section></c> in a Guide). |
|
|
1002 | </p> |
|
|
1003 | |
|
|
1004 | <p> |
|
|
1005 | Each individual chapter should have its own date and version elements. The |
|
|
1006 | latest date of all chapters and master document will be displayed when a user |
|
|
1007 | browses through all parts of the book. |
|
|
1008 | </p> |
|
|
1009 | |
|
|
1010 | </body> |
|
|
1011 | </section> |
|
|
1012 | </chapter> |
|
|
1013 | |
| 354 | <chapter> |
1014 | <chapter> |
| 355 | <title>Resources</title> |
1015 | <title>Resources</title> |
| 356 | <section> |
1016 | <section> |
| 357 | <title>Start writing</title> |
1017 | <title>Start writing</title> |
| 358 | <body> |
1018 | <body> |
|
|
1019 | |
|
|
1020 | <p> |
| 359 | <p>Guide has been specially designed to be "lean and mean" so that developers |
1021 | 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 |
1022 | 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" |
1023 | 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 |
1024 | 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> |
1025 | in our <uri link="/proj/en/gdp/doc/doc-tipsntricks.xml">Documentation |
| 364 | stating what you'd like to tackle. |
1026 | Development Tips & Tricks</uri>. If you'd like to help (or have any |
| 365 | Have fun!</p> |
1027 | questions about guide), please post a message to the <mail |
|
|
1028 | link="gentoo-doc@gentoo.org">gentoo-doc mailing list</mail> stating what you'd |
|
|
1029 | like to tackle. Have fun! |
|
|
1030 | </p> |
|
|
1031 | |
| 366 | </body> |
1032 | </body> |
| 367 | </section> |
1033 | </section> |
| 368 | </chapter> |
1034 | </chapter> |
| 369 | </guide> |
1035 | </guide> |
| 370 | |
|
|