Saltar al contenido

¿Qué puedo controlar con las opciones de encabezado YAML en pandoc?

Solución:

Casi todo lo que se establece en los metadatos YAML solo tiene un efecto a través de la plantilla pandoc en uso.

Las plantillas de Pandoc pueden contener variables. Por ejemplo, en su plantilla HTML, podría escribir:

<title>$title$</title>

Estas variables de plantilla se pueden configurar con el --variable KEY[=VAL] opción.

Sin embargo, también se establecen a partir de los metadatos del documento, que a su vez se pueden configurar mediante:

  • los --metadata KEY[=VAL] opción,
  • un bloque de metadatos YAML, o
  • los --metadata-file opción.

los --variable options inserta cadenas textualmente en la plantilla, mientras que --metadata escapa de las cuerdas. Cadenas en metadatos YAML (también cuando se usa --metadata-file) se interpretan como rebajas, que puede eludir mediante el uso de los atributos genéricos en bruto de pandoc markdown. Por ejemplo, para salida HTML:

`<script>alert()</script>`{=html}

Consulte esta tabla para ver un esquema:

|                        | --variable        | --metadata        | YAML metadata and --metadata-file |
|------------------------|-------------------|-------------------|-----------------------------------|
| values can be…         | strings and bools | strings and bools | also YAML objects and lists       |
| strings are…           | inserted verbatim | escaped           | interpreted as markdown           |
| accessible by filters: | no                | yes               | yes                               |

Para responder a su pregunta: la plantilla determina qué campos del bloque de metadatos YAML tienen efecto. Para ver, por ejemplo, la plantilla de látex predeterminada, use:

$ pandoc -D latex

Para ver algunas variables que pandoc configura automáticamente, consulte el Manual. Finalmente, otros comportamientos de pandoc (como extensiones de rebajas, etc.) solo se pueden configurar como opciones de línea de comandos (excepto cuando se usa un script de envoltura).

Es una lista bastante larga que puede navegar ejecutando man pandoc en la línea de comando y navegando a la sección “Variables establecidas por pandoc” en “PLANTILLAS”.

La parte superior de la lista incluye lo siguiente, entre muchas otras opciones:

Variables set by pandoc
   Some variables are set automatically by pandoc.  These vary somewhat depending  on  the
   output format, but include metadata fields as well as the following:

   title, author, date
          allow identification of basic aspects of the document.  Included in PDF metadata
          through LaTeX and ConTeXt.  These can be set through a pandoc title block, which
          allows for multiple authors, or through a YAML metadata block:

                 ---
                 author:
                 - Aristotle
                 - Peter Abelard
                 ...

   subtitle
          document subtitle; also used as subject in PDF metadata

   abstract
          document summary, included in LaTeX, ConTeXt, AsciiDoc, and Word docx

   keywords
          list  of  keywords  to  be  included in HTML, PDF, and AsciiDoc metadata; may be
          repeated as for author, above

   header-includes
          contents specified by -H/--include-in-header (may have multiple values)

   toc    non-null value if --toc/--table-of-contents was specified

   toc-title
          title of table of contents (works only with EPUB and docx)

   include-before
          contents specified by -B/--include-before-body (may have multiple values)

   include-after
          contents specified by -A/--include-after-body (may have multiple values)

   body   body of document

Puede ver la documentación de pandoc para obtener una pista: http://pandoc.org/getting-started.html

Pero para saber exactamente dónde se usará, puede buscar fuentes de plantillas de pandoc: https://github.com/jgm/pandoc-templates

Por ejemplo, para la salida html5, el archivo es: https://github.com/jgm/pandoc-templates/blob/master/default.html5

Aquí hay una sección del código:

<title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title>

Como puede ver, tiene title-prefix y pagetitle.

Puedes buscar la documentación, pero la mejor solución es buscar el código fuente de la versión que estás usando.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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