Manual de usuario de calibre, Publicación 2.73.0
'cover_data'])
# these are rebuilt when needed
Usar el modo de programa general
Para programas de plantilla más complicados, a veces es más sencillo evitar la sintaxis de plantillas (todos los caracteres «{» y «}») y escribir programas con aspecto más convencional. Puede hacer esto en calibre comenzando la plantilla
con program:. En este caso no se realizará ningún procesado de plantillas. El valor especial $ no se establece. El
programa es enteramente responsable de producir los resultados correctos.
Una ventaja del modo program: es que las llaves ya no son especiales. Por ejemplo, no es necesario usar «[[» y «]]»
al usar la función template(). Otra ventaja es que las plantillas en modo de programación se compilan en Python
y pueden ejecutarse más rápidamente que las plantillas en los otros dos modos. La mejora de velocidad depende de
la complejidad de las plantillas: cuanto más compleja mayor es la mejora. La compilación se activa y desactiva con
el ajuste compile_gpm_templates (Compilar plantillas en el modo de programa general a python). El principal
motivo para desactivar la compilación es si una plantilla compilada no funciona, si esto ocurre por favor envíe un
informe de error.
El siguiente ejemplo es una implementación en modo program: de una fórmula del foro MobileRead: «Poner la serie
en el título, usando iniciales o una forma abreviada. Eliminar artículos al inicio del nombre de la serie (cualquiera).»
Por ejemplo, para el libro «Las dos torres» en la serie «El señor de los anillos», la fórmula da sdla [02] Las dos
torres. Usando plantillas estándar, la fórmula requiere tres columnas personalizadas y un panel de conexiones, como
se explica a continuación:
La solución requiere crear tres columnas compuestas. La primera columna se usa para eliminar los artículos iniciales.
La segunda se usa para calcular la forma «abreviada». La tercera es para calcular la forma de «iniciales». Una vez tiene
estas columnas, el panel de conexiones selecciona entre ellas. Puede ocultar alguna o las tres columnas en la vista de
biblioteca:
First column:
Name: #stripped_series.
Template: {series:re(^(A|The|An)\s+,)||}
Second column (the shortened form):
Name: #shortened.
Template: {#stripped_series:shorten(4,-,4)}
Third column (the initials form):
Name: #initials.
Template: {#stripped_series:re(([^\s])[^\s]+(\s|$),\1)}
Plugboard expression:
Template:{#stripped_series:lookup(.\s,#initials,.,#shortened,series)}{series_index:0>
˓→2.0f| [|] }{title}
Destination field: title
This set of fields and plugboard produces:
Series: The Lord of the Rings
Series index: 2
Title: The Two Towers
Output: LotR [02] The Two Towers
Series: Dahak
Series index: 1
Title: Mutineers Moon
Output: Dahak [01] Mutineers Moon
174
Capítulo 1. Secciones