La sintaxis de GuideXML es sencilla pero expresiva, por eso es fácil de aprender y al mismo tiempo proporciona todas las características necesarias para la creación de documentación Web. El número de etiquetas es muy pequeño -- solamente las necesarias. Esto hace muy fácil la transformación de la guía a otros formatos, tales como DocBook XML/SGML y páginas web (HTML).
El objetivo es facilitar la
Si planea contribuir a la documentación de Gentoo, o quiere probar la
GuideXML, por favor lea nuestra guía de
Tal le interese mirar
Vamos a comenzar con el aprendizaje de la sintaxis de GuideXML. Comenzaremos con las etiquetas iniciales usadas en un documento de guía en XML:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> <!-- $Header$ --> <guide lang="es"> <title>Guía Gentoo de Documentación</title> <author title="Autor"> <mail link="nombre@gentoo.org">Su Nombre</mail> </author> <abstract> Esta guía enseña cómo estructurar documentación para la web usando la nueva sintaxis liviana GuideXML de Gentoo. Esta sintaxis constituye el formato oficial para la documentación de Gentoo, este mismo documento fue creado usando GuideXML. Esta guía asume un conocimiento básico de XML y HTML. </abstract> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <license version="3.0"/> <version>1</version> <date>2011-11-29</date>
En las primeras líneas, encontramos la etiqueta necesaria que
identifica este documento como un documento XML y especifica su
DTD. La línea
El atributo
Después, hay una etiqueta
Luego, vienen las etiquetas
Lo siguiente, llegamos a las etiquetas
Esto es todo en cuanto a las etiquetas que deben aparecer al comienzo
del documento. Estas etiquetas, salvo
Finalmente encontramos la etiqueta
Una vez que las etiquetas iniciales han sido especificadas, estamos
listos para empezar a añadir los elementos estructurales del
documento. Los documentos de guía están divididos en capítulos, y cada
capítulo puede tener una o más secciones. Cada capítulo y cada sección
tiene su título. Aquí hay un capítulo de ejemplo con una sola sección,
consistente en un párrafo. Si agrega este XML al XML del
<chapter> <title>Este es mi capítulo</title> <section> <title>Esta es una sección en uno de mis capítulos</title> <body> <p> Esto es texto contenido en mi sección . </p> </body> </section> </chapter>
Arriba, ajustamos el título del capítulo añadiendo un elemento hijo
Ahora, es el momento de aprender a maquetar los contenidos. Aquí está
el código XML de un ejemplo de un elemento
<p> Esto es un párrafo. <path>/etc/passwd</path> es un fichero. <uri>http://forums.gentoo.org</uri> es mi sitio web favorito. Escriba <c>ls</c> si lo desea. Yo <e>de veras</e> quiero irme a dormir ahora. </p> <pre caption="Ejemplo de código"> Este es el texto de salida o código # <i>esto es lo que escribe el usuario</i> Haz que el HTML/XML sea más fácil de leer usando énfasis selectivo: <foo><i>bar</i></foo> <comment>(Así se inserta una nota dentro de un bloque de código)</comment> </pre> <note> Esto es una nota. </note> <warn> Esta es una advertencia. </warn> <impo> Esto es importante. </impo>
Ahora, aquí se ve cómo se queda el elemento
Esto es un párrafo.
Este es el texto de salida o código. # esto es lo que escribe el usuario Haz que el HTML/XML sea más fácil de leer usando énfasis selectivo: <foo>bar</foo>(Así se inserta una nota dentro de un bloque de código)
Hemos visto un montón de nuevas etiquetas en la sección anterior --
aquí está lo que necesita saber de ellas. Las etiquetas
<pre caption="Salida de uptime"> # <i>uptime</i> 16:50:47 up 164 days, 2:06, 5 users, load average: 0.23, 0.20, 0.25 </pre>
Delegados de los 13 estados originales formaron el Congreso Contento. Thomas Jefferson, un virgen y Benjamín Franklin fueron dos de los cantantes de la Declaración de la Independencia. Franklin descubrió la corriente eléctrica frotando dos gatos hacia atrás y declaró "Un caballo dividido entre sí mismo no puede mantenerse de pie." Franklin murió en 1790 y todavía lo está.
Los epígrafes son utilizados a veces al comienzo de algunos párrafos
para ilustrar lo que viene. Es solo un párrafo con un atributo
<p by="Estudiante anónimo"> Delegados de los 13 estados originales formaron el ... </p>
Los elementos
Los elementos
El elemento
Tal como probablemente ha podido adivinar, la
Los elementos
Para incrementar la legibilidad de ejemplos de código, se permite el
uso de las siguientes etiquetas dentro de bloques
Ejemplo de un bloque
# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ DESCRIPTION ="Exuberant ctags generates tags files for quick source navigation" HOMEPAGE ="http://ctags.sourceforge.net" SRC_URI ="mirror://sourceforge/ctags/${P}.tar.gz" LICENSE ="GPL-2" SLOT ="0" KEYWORDS ="~mips ~sparc ~x86" IUSE ="" src_compile() {econf --with-posix-regexemake ||die "emake failed" }src_install() {make DESTDIR ="${D}" install ||die "install failed" dodoc FAQ NEWS READMEdohtml EXTENDING.html ctags.html }
Anteriormente echamos un vistazo a la etiqueta
Las formas abreviadas facilitan el uso de nombres y direcciones de
correo de desarrolladores Gentoo. Ambas formas
Esto es particularmente útil cuando quiere referirse a un
desarrollador cuyo nombre contiene caracteres "extraños" que no puede
escribir.
La etiqueta
No debe usar una etiqueta
Por favor evite el síndrome de
Así se inserta una imagen en un documento --
GuideXML soporta una sintaxis simplificada para tablas, similar al de
HTML. Para comenzar una tabla, use la etiqueta
Los encabezados de tabla (
Además los ítems de tabla (
| Este titular abarca 4 columnas | |||
|---|---|---|---|
| Este título abarca 6 hileras | |||
| Título en bloque 2x2 | |||
Para crear listas, ordenadas o no, simplemente use las etiquetas
También soportamos listas de definiciones (
La siguiente lista, copiada de
GuideXML hace que sea realmente sencillo referenciar a otras partes
del documento con hiperenlaces. Se puede crear un enlace que apunte al
Sin embargo, algunas guías cambian a menudo y al emplear este 'conteo'
pueden producirse enlaces rotos. Para hacer frente a esto, se puede
definir un nombre para el
<chapter id="foo"> <title>Esto es foo.</title> ... <p> Más información puede encontrarse en el <uri link="#foo">capítulo foo</uri> </p>
El atributo
Al marcar un documento como obsoleto, tal vez desee agregar un enlace
a una versión nueva. El atributo
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> <!-- $Header$ --> <guide disclaimer="obsolete" redirect="/doc/en/handbook/handbook-x86.xml"> <title>Gentoo x86 Installation Guide</title> <author title="Author"> ...
Los documentos FAQ (preguntas de uso frecuente) necesitan comenzar con
una lista de preguntas enlazadas a sus respuestas. Se pierde mucho
tiempo creando este tipo de lista y se pueden cometer errores. Este
tipo de lista puede ser creada automáticamente si usa el elemento
Una mirada rápida a
Para documentación de alto volumen, como las
El primer cambio responde a la necesidad de un documento "maestro". Este documento realmente no comprende verdadero contenido, sino enlaces a los módulos individuales del documento. La sintaxis no difiere mucho de GuideXML:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <book> <title>Example Book Usage</title> <author...> ... </author> <abstract> ... </abstract> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <license version="3.0"/> <version>...</version> <date>...</date>
Por los momentos no se ven diferencias sustanciales (excepto por la
etiqueta
<part> <title>Part One</title> <abstract> ... </abstract>(Definiendo varios capítulos) </part>
Cada "part" se acompaña de un
Dentro de cada parte, definimos los capítulos individuales
(
<chapter> <title>Chapter One</title> <include href="path/to/chapter-one.xml"/> </chapter>
El contenido de un capítulo individual se estructura de la siguiente manera:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE sections SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <sections> <abstract> This is a small explanation on chapter one. </abstract> <version>...</version> <date>...</date>(Defina varias <section>s <subsection>s) </sections>
En cada capítulo se pueden definir secciones (
Cada capítulo individual debe tener sus propios elementos para fecha y versión. La última fecha de todos los capítulos y documento maestro será desplegada cuando un usuario consult las distintas partes del libro.
A veces se repiten los mismos valores una y otra vez a través del manual. Una operación global de búsqueda y reemplazo podría pasar algo por alto o introducir cambios no deseados. Además, puede ser útil definir diferentes valores a ser usados en capítulos compartidos, dependiendo de cual manual incluya el capítulo.
Los valores globales pueden ser definidos en el archivos maestro del manual y usados en todos los capítulos incluidos.
Para definir valores globales, agregue el elemento
El siguiente ejemplo define tres valores en un archivo maestro de un manual:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <book> <title>Example Book Usage</title> <values> <key id="arch">x86</key> <key id="min-cd-name">install-x86-minimal-2007.0-r1.iso</key> <key id="min-cd-size">57</key> </values> <author...> ... </author> ...
Los valores definidos pueden entonces ser usados a través del manual
con el elemento
<p> The Minimal Installation CD is called <c><keyval id="min-cd-name"/></c> and takes up only <keyval id="min-cd-size"/> MB of diskspace. You can use this Installation CD to install Gentoo, but <e>only</e> with a working Internet connection. </p>
Para facilitarle la vida a nuestros traductores, use solo valores que
no requieran traducción. Por ejemplo, definimos el valor de
Los capítulos compartidos por varios manuales, tales como nuestro
La condición debe ser una expresión
El siguiente ejemplo usa el valor
<body test="contains('AMD64 x86',func:keyval('arch'))">
<p>
Este párrafo aplica a ambas plataformas, x86 y AMD64.
</p>
<p test="func:keyval('arch')='x86'">
Este párrafo aplica solo a la plataforma x86.
</p>
<p test="func:keyval('arch')='AMD64'">
Este párrafo aplica solo a la plataforma AMD64.
</p>
<p test="func:keyval('arch')='PPC'">
¡Este párrafo no será visto nunca!
Se ignora el cuerpo completamente debido a la primera condición.
</p>
</body>
<body test="contains('AMD64 PPC64',func:keyval('arch'))">
<p>
Este párrafo aplica a las plataformas AMD64, PPC64 y PPC porque la cadena 'AMD64 PPC64' contiene 'PPC'.
</p>
<note test="func:keyval('arch')='AMD64' or func:keyval('arch')='PPC64'">
Esta nota solo aplica a las plataformas AMD64 y PPC64.
</note>
</body>
Puesto que toda la documentación de Gentoo es esfuerzo conjunto y probablemente varias personas cambiarán la documentación existente, es necesario un estilo de codificación. Un estilo de codificación abarca dos secciones. La primera es relativa a la codificación interna - como se sitúan las etiquetas XML. La segunda trata sobre el contenido - como no confundir al lector.
Ambas secciones se describen a continuación.
Los fines de línea deben ponerse inmediatamente después de
Deben situarse líneas en blanco inmediatamente después de
Los ajustes de líneas (word wrap) deben ser aplicados a los 80
caracteres, excepto dentro de
No debemos usar sangrías, excepto con las estructuras XML cuyas
etiquetas padres sean
En caso de tener que ajustar las líneas con construcciones de tipo
Un ejemplo de sangrado sería:
<table>
<tr>
<th>Foo</th>
<th>Bar</th>
</tr>
<tr>
<ti>Esto es un ejemplo de sangrado.</ti>
<ti>
En caso de que el texto no pueda ser mostrado en los 80 caracteres de
ancho de línea, deberá usar el sangrado si la etiqueta padre lo permite.
</ti>
</tr>
</table>
<ul>
<li>Primera opción</li>
<li>Segunda opción</li>
</ul>
Los atributos no deben tener espacios entre sí, el signo "=" y el valor del atributo. Como en el ejemplo:
Incorrecto : <pre caption = "Atributos">Correcto: <pre caption="Atributos">
Dentro de las tablas (
Cada oración, incluyendo aquellas dentro de tablas y listados, debe empezar por una letra mayúscula.
<ul> <li>Sin punto</li> <li>Con punto. Varias oraciones, recuerda?</li> </ul>
Los listados de código deben tener
Intente utilizar
Cuando comente algo dentro de una construcción
(Sustituye "john" por tu nombre de usuario) # id john
Esta guía ha sido diseñada especialmente para ser "clara y directa"
para que los desarrolladores puedan pasar más tiempo escribiendo
documentación y menos tiempo aprendiendo la sintaxis XML. Esperamos
que esto permitirá a los desarrolladores que no son muy conocedores de
la documentación, comenzar a escribir documentación Gentoo de gran
calidad. Quizá esté interesado en nuestra página de