Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > perl > POD

POD

POD es el acrónimo de Plain Old Documentation y consiste en un lenguaje de marcas para construir documentación técnica, generalmente dentro de los propios fuentes del lenguaje Perl.

perldoc.perl.org tiene una referencia muy actualizada del documento oficial de POD, y la Wikipedia inglesa también posee una página muy completa.

Párrafos normales

Grupos de líneas (párrafos para entendernos) con una línea en blanco antes y otra después. Se pueden utilizar códigos de formato dentro de ellos.

Párrafos literales

Utilizados para incluir código fuente, ú otros textos que no requieren formato alguno, y que deben presentarse como están.

Se indican comenzando la primera línea con un sangrado de un espacio (mínimo) ó un tabulado. Comúnmente el resto de las líneas también se sangran.

Párrafos especiales

Aquellos que determinan un tratamiento especial para trozos de texto, normalmente encabezados ó listas de elementos.

Generalmente consisten en una única línea de texto cuyo primer caŕacter es un signo igual (=), le sigue un identificador de órden y, opcionalmente, un texto de tamaño y formato arbitrario que se usará como parámetro de la órden.

Atención: conviene recordar que estas órdenes no terminan en la misma línea, sino cuando acaba su párrafo, que como hemos visto se delimita con una línea en blanco. Por eso, y aunque algunos analizadores de código POD lo admitan es recomendable separar cada órden con una línea vacía.

Inicio y fin de documentación

=cut 

=pod

Estas dos órdenes marcan el comienzo y fin de una zona de documentación. Útil sobre todo para los analizadores POD y, cómo no, para el intérprete Perl.

Encabezados

=head1 Encabezado de primer nivel

=head2 Un elemento I<subversivo>

Están reconocidos los niveles uno al cuatro y el texto puede contener elementos de formato.

Listas

=over 4

=item * Un elefante

=item * Dos elefantes

=back

Para crear listas (ó indentar párrafos) se deben utilizar los tres elementos anteriores en el orden mostrado.

  • Toda lista comienza con una órden =over y una indentación opcional.
  • Los elementos van a continuación y consisten en:
    • La orden =item
    • Un asterisco para una la lista con viñetas ó un número para una lista enumerada.
    • Texto que puede contener elementos de formato.
  • Una órden de cierre de lista =back con su correspondiente párrafo.

Asimismo conviene recordar que:

  • Las listas pueden anidarse
  • Las órdenes item no pueden situarse fuera de una lista.
  • No pueden ir encabezados de ningún nivel dentro de una lista.

Zonas especiales

=begin nombre_formato

texto 

=end nombre_formato

=for nombre_formato texto

Estas órdenes permiten definir zonas especiales que no son interpretadas, generalmente, como código POD. En su lugar son pasadas directamente a programas de formato especial según el nombre (nombre_formato) indicado en la órden.

Mientras que las órdenes =begin y =end determinan una zona amplía, para situaciones en las que sólo queramos pasar un párrafo podemos usar =for.

La regla principal es que si el analizador/convertidor no reconoce la zona, debe ignorarla totalmente, por lo que se crean lo que podíamos llamar zonas invisibles y que pueden utilizarse para mejorar la documentación de los programas.

Para algunos formatos será necesario prefijar el nombre con dos puntos (:) para señalar que el texto de la zona es POD y que debe interpretarse como tal.

Códigos de formato

Tipografías

  • I<text>: texto en itálica
  • B<text>: texto en negrita
  • C<text>: texto monoespaciado
  • E<character>: carácter literal
    • E<lt>: carácter menor qué <
    • E<gt>: caŕacter mayor qué >
    • E<verbar>: barra vertical |
    • E<sol>: barra inclinada /
    • E<htmlname>: nombre de entidad HTML
    • E<number>: número de carácter dentro del juego de caracteres (ASCII/Latin1/Unicode).
  • F<filename>: nombre y/ó ruta de archivo
  • S<text>: texto no divisible en líneas.
  • X<topic>: define topic como entrada en el índice.

Hiperenlaces

Dentro de los términos text, name y section, empleados más abajo, no pueden estar los caracteres / ni |, y cualquier carácter < y/ó > debe tener su pareja complementaria.

También recordar que una sección se indica mediante un encabezado (=head) ó un elemento de una lista (=item).

En los tres siguientes modos es posible definir un texto visible anteponiendo un campo text y separándolo con un carácter barra (|) como en:

L<the class methods|myclass/methods>

A página de manual: L

Enlace a una página de manual Perl ó del sistema (man en UNIX); en éste último caso se puede incluir la sección entre paréntesis.

L<Net::Ping>
L<crontab(5)>

A una sección dentro de una página de manual: L

Igual que el anterior, pero añadiendo una sección concreta separada por un carácter barra (/). La sección puede estar entrecomillada o no.

L<perl/"For Loops">
L<perlvar/$.>

A una sección en la misma página: L

En donde sólo se añade la sección y se asume que la página es la misma en la que aparece el enlace.

L</"For Loops">
L</methods>

Enlace a un URL

Puede especificarse un URL completo anteponiendo el protocolo a la dirección, como en:

L<http://taquiones.net>

No es posible añadir un texto visible.