Manual de usuario de calibre, Publicación 2.73.0
Primero, incluir texto condicionalmente. Hay casos en los que puede querer que aparezca un texto en la salida sólo si
un campo no está vacío. Un caso común es series y series_index, para los que puede querer o nada o ambos
valores con un guión entre ellos. calibre tiene en cuenta este caso usando una sintaxis de campo especial.
Por ejemplo, supongamos que desea usar la plantilla:
{series} - {series_index} - {title}
Si el libro no tiene serie, la respuesta será --title. Mucha gente preferiría que el resultado fuera simplemente
title, sin los guiones. Para conseguir esto, use la sintaxis extendida {campo:|prefijo|sufijo}. Cuando
usa esta sintaxis, si el campo tiene el valor SERIE el resultado será prefijoSERIEsufijo. Si el campo no tiene
ningún valor, el resultado será un texto vacío (nada); el prefijo y el sufijo se descartan. El prefijo y el sufijo pueden
contener espacios. No use subplantillas (‘{ ... }‘) ni funciones (ver más adelante) como prefijo o sufijo.
Usando esta sintaxis, podemos resolver el problema anterior de las series con esta plantilla:
{series}{series_index:| - | - }{title}
Los guiones se incluirán solamente si el libro tiene índice de serie, que sólo tendrá si tiene una serie.
Notas: debe incluir el carácter : si quiere usar un prefijo o un sufijo. Debe usar ambos caracteres | o ninguno; usar
sólo no, como en {campo:| -}, no está permitido. Es posible especificar un texto vacío en uno u otro lugar, como
en {series:|| -}. Usar {title:||} es lo mismo que usar {title}.
Segundo: formato. Supongamos que queremos asegurarnos de que series_index siempre tenga tres dígitos, con ceros
a la izquierda. Se conseguiría de esta manera:
{series_index:0>3s} - Three digits with leading zeros
Si en lugar de ceros a la izquierda desea espacios, utilice:
{series_index:>3s} - Three digits with leading spaces
Para obtener ceros a la derecha use:
{series_index:0<3s} - Three digits with trailing zeros
Si usa índices de serie con subvalores (por ejemplo 1,1), puede querer asegurarse de que los decimales quedan alineados. Por ejemplo, puede que los índices 1 y 2,5 aparezcan como 01,00 y 02,50 para que se ordenen correctamente.
Para ello, use:
{series_index:0>5.2f} - Five characters, consisting of two digits with leading zeros,
˓→a decimal point, then 2 digits after the decimal point
Si quiere sólo las dos primeras letras de los datos, use:
{author_sort:.2} - Only the first two letter of the author sort name
El lenguaje de plantillas de calibre proviene de python, para obtener más detalles sobre la sintaxis de estas operaciones
de formato avanzadas, vea la documentación de Python75 (en inglés).
Funciones avanzadas
75
https://docs.python.org/2/library/string.html#format-string-syntax
146
Capítulo 1. Secciones