Manual de usuario de calibre, Publicación 2.73.0
comas, donde cada elemento es a su vez una lista de elementos separados por puntos. Devuelve una nueva lista
formada tomando, de cada lista de elementos separados por puntos, los elementos situados entre las posiciones
índice_inicio e índice_fin y combinando los resultados. El primer elemento de cada lista separada por puntos
ocupa la posición cero. Si un índice es negativo, se cuenta desde el final de la lista. Como caso especial, si
índice_fin es cero, se considera que es el final de la lista. Ejemplos:
Assuming a #genre column containing "A.B.C":
{#genre:subitems(0,1)} returns "A"
{#genre:subitems(0,2)} returns "A.B"
{#genre:subitems(1,0)} returns "B.C"
Assuming a #genre column containing "A.B.C, D.E":
{#genre:subitems(0,1)} returns "A, D"
{#genre:subitems(0,2)} returns "A.B, D.E"
sublist(val,índice_inicio,índice_fin,separador) – interpreta el valor como una lista de
elementos separados por separador y devuelve una nueva lista con los elementos comprendidos entre la posición
índice_inicio e índice_fin. El primer elemento ocupa la posición cero. Si un índice es negativo, se cuenta desde
el final de la lista. Como caso especial, si índice_fin es cero, se considera que es el final de la lista. Ejemplos
suponiendo que la columna de etiquetas (definida como valores separados por comas) contiene «A, B, C»:
{tags:sublist(0,1,\,)} returns "A"
{tags:sublist(-1,0,\,)} returns "C"
{tags:sublist(0,-1,\,)} returns "A, B"
swap_around_comma(val) – dado un valor de la forma B,A, devuelve A B. Esto es útil para convertir
nombres en formato APELLIDO, NOMBRE a NOMBRE APELLIDO. Si no hay ninguna coma, la función
devuelve «val» sin cambios.
switch(patrón,valor,patrón,valor,...,otro_valor) – para cada pareja patrón, valor, comprueba si el campo contiene coincidencias para la expresión regular patrón y, en tal caso, devuelve ese valor. Si
no coincide ningún patrón, devuelve otro_valor. Pueden emplearse tantas parejas patrón, valor como se desee.
test(texto_si_no_vacío,texto_si_vacío) – devuelve texto_si_no_vacío si el campo no está vacío, devuelve texto_si_vacío en caso contrario.
transliterate() – Devuelve un texto en el alfabeto latino formado por aproximación del sonido de las
palabras en el campo de origen. Por ejemplo, si el campo de origen es «Фёдор Михaйлович Достоевский»
la función devuelve «Fiodor Mikhailovich Dostoievskii».
Veamos ahora cómo usar funciones y format en el mismo campo. Supongamos que tiene una columna personalizada
con números enteros llamada #myint, que quiere mostrar con ceros a l a izquierda, como en «003». Para conseguirlo
usaría un formato de 0>3s. Sin embargo, de manera predeterminada, si un número (entero o decimal) es igual a cero,
el campo produce un valor vacío, así que el valor cero no produce nada, no «000». Si realmente quiere ver los valores
como «000», debe usar el texto de formato y la función ifempty para cambiar el valor vacío a cero de nuevo, la
referencia al campo sería:
{#myint:0>3s:ifempty(0)}
Tenga en cuenta que puede usar también prefijo y sufijo. Si desea que el número aparezca como [003] o [000], use
el campo:
{#myint:0>3s:ifempty(0)|[|]}
Usar funciones en plantillas: modo de programación de plantilla
El modo de programación de lenguaje de plantillas se diferencia del modo de función única en que le permite escribir expresiones de plantilla que se refieren a otros campos de metadatos, modifican valores y realizan operaciones
1.9. Cursillos
149