Clean HPub Specification 1.0

En el siguiente artículo se detallan las características que debe poseer un paquete CHPub (Clean HPub) para ser transformado en cualquier sistema de publicación. Basado en la especificación de HPub de Alessandro Morandi para Baker Framework pretende simplificar el mismo y delegar la tarea del diseño y la forma de presentación en el medio de transformación.

Especificación

  1. Una publicación CHPub es un conjunto de ficheros empaquetados en un fichero ZIP con el formato: [NOMBRE].zip
  2. Una publicación está formada por diferentes apartados. Cada apartado constará de un fichero HTML nombrado con el formato [NOMBRE]_A[XX].html siendo NOMBRE el nombre de la publicación, y XX un número entre 00 y 99.
  3. Los recursos adicionales de cada apartado como imágenes, vídeos, etc. serán localizados en un directorio de nombre [NOMBRE]_A[XX], y referenciados en su correspondiente fichero de apartado de forma relativa.
    • Ej.: <img src="CHPub_A02/img/img01.jpg" alt="Lorem"/>
  4. Incluye un fichero denominado “book.json” con metadatos sobre la publicación como se describe en el apartado book.json.
  5. El código HTML que se utilizará en los ficheros deberá ser lo más sencillo posible, evitando utilizar CSS y limitando el uso de etiquetas más allá de las que se especifican en el correspondiente apartado etiquetas.
  6. Se permite el uso de etiquetas personalizadas relacionadas con extensiones definidas en el apartado extensiones.
  7. Incluyendo una imagen en la raíz de la publicación con el nombre cover.jpg se podrá utilizar en las portadas de las publicaciones que se generarán. Se recomienda una resolución de 1920×1080.

Estructura

book.json

El fichero book.json se situará en la raíz de la publicación y deberá contener un objeto JSON bien formado. Ejemplo de fichero book.json:

Parámetros

  • title (string): Título de la publicación.
  • author (array): Autor/es de la publicación. Persona/s generadoras de los contenidos independientemente del formato. Un string con el nombre de cada autor diferente.
  • creator (array): Creador/es de la publicación. Persona/s creadoras de la publicación en CHPub. Un string con el nombre de cada creador diferente.
  • editor (string): Nombre del editor de la publicación.
  • date (string): Fecha de la publicación en formato YYYY-MM-DD.
  • url (string): URL de la publicación o de la editorial.
  • description (string): Descripción de la publicación.
  • keywords (string): Palabras clave relacionadas con la publicación.
  • contents (array): Lista de todos los ficheros de apartados de la publicación en el orden de visualización.

Etiquetas

A diferencia de la especificación original de HPub, en Clean HPub se pretenden crear publicaciones con el menor diseño posible, centradas en el contenido. De esta forma el diseño dependerá exclusivamente del sistema de transformación que reciba la publicación como entrada y genere una publicación en otro formato, ya sea PDF, EPub, etc. La regla es simple: Se permite cualquier etiqueta del estándar HTML4 siempre y cuando no se utilicen el atributo style. Más adelante, en el apartado extensiones, se detallarán etiquetas adicionales relacionadas con los componentes extra que se podrán utilizar.

Relación de etiquetas HTML válidas

Para limitar el diseño se especifican a continuación las etiquetas HTML que se permitirán por defecto en lo ficheros HTML de cada apartado para una publicación de libro normal.

  • html: Etiqueta contenedora de las etiquetas head y body.
  • head: En ella se incluirán algunos metadatos permitidos para cada apartado. Por el momento las etiquetas permitidas son:
    • title: Título del apartado.
  • body: Etiqueta contenedora del resto de etiquetas del apartado.
  • h1: Título del apartado. Solo debe existir uno.
  • hX: Títulos de subapartados siendo X el nivel de ordenación. Se debe respetar la estructura de niveles de subarpartados:
    • No se debe introducir un h3 si antes no se ha introducido un h2.
    • Todo h3 se considera subapartado del h2 inmediatamente anterior, del mismo modo que un h4 lo hará para un h3, y así sucesivamente.
  • p: Párrafos de contenido.
  • blockquote: Se utiliza para hacer referencia a una cita externa.
  • strong: Texto en negrita.
  • u: Texto subrayado.
  • i: Texto en cursiva.
  • a: Hiperenlace. Los siguientes atributos son obligatorios:
    • href: Ruta del enlace.
    • title: Descripción del enlace.
  • ul: Lista no numerada. Para cada elemento de la lista se utilizará la etiqueta li.
  • ol: Lista numerada. Para cada elemento de la lista se utilizará la etiqueta li.
  • img: Imágenes. Los siguientes atributos son obligatorios:
    • src: Ruta relativa a la imagen. Las imágenes deberán encontrarse en la carpeta del apartado.
    • alt: Descripción de la imagen.

Extensiones

Además de las etiquetas HTML básicas descritas anteriormente, y para aumentar la versatilidad de las publicaciones, se han creado etiquetas específicas para diferentes tipos de material. Algunas de ellas están relacionadas con extensiones externas HTML5 que cambiarán dependiendo de la transformación a realizar.

Etiquetas

  • gallery: Esta etiqueta se utilizará para englobar a un conjunto de etiquetas img y mostrarlas como una galería de imágenes.

  • tooltip: Permite mostrar un pequeño tooltip de ayuda sobre un texto concreto. Útil para notas de autor o pequeñas aclaraciones.

  • video: Incluye un vídeo en la publicación. El vídeo podrá ser un fichero en la carpeta del apartado o un identificador de vídeo externo como Vimeo o Youtube. En los siguientes ejemplos los comentarios no son necesarios, solo se añaden para que se identifique el identificador de cada vídeo externo:

  • videogallery: Genera una galería con los vídeos que se introduzcan entre la etiqueta de apertura y cierre:

  • audio: Etiqueta de audio que hará referencia a un fichero en la carpeta del apartado.

  • columns: Estructura el contenido en dos o más columnas. Cada columna se representa con la etiqueta column.

Ejemplo de Apartado

Meta

Clean HPub Specification 1.0
Valora este artículo.

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *