Manual de Calibre | Page 150

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