Calibre est un outil puissant pour la gestion de bibliothèques numériques, offrant des fonctionnalités robustes pour harmoniser les métadonnées, normaliser les titres et les noms d'auteurs, et regrouper les séries. Une des fonctionnalités avancées de Calibre est l'utilisation de tableaux de connexions pour modifier les métadonnées écrites dans les livres lors de l'envoi à une liseuse ou de la sauvegarde sur le disque.
Le langage de modèle de calibre est un langage spécifique à calibre utilisé pour des tâches telles que la spécification des chemins de fichiers, le formatage des valeurs et le calcul de la valeur des colonnes spécifiées par l’utilisateur. Un modèle de base est constitué d’une ou plusieurs expressions modèle. Une expression modèle consiste en du texte et des noms entre crochets ({}) qui sont remplacés par les métadonnées correspondantes du livre en cours de traitement. Les barres obliques ne sont pas des expressions modèle car elles se ne trouvent pas entre les {}. Un tel texte est laissé là où il apparaît.
Une expression modèle peut accéder à toutes les métadonnées disponibles dans calibre, y compris les colonnes personnalisées (colonnes que vous créez vous-même), en utilisant le nom de recherche d’une colonne. Pour trouver le nom de recherche d’une colonne (parfois appelée champs), passez votre souris sur l’en-tête de la colonne dans la liste des livres de calibre. Les noms de recherche pour les colonnes personnalisées commencent toujours par #. Pour les colonnes de type série, il y a un champ supplémentaire appelé #lookup name_index qui est l’index de la série pour ce livre dans la série. Par exemple, si vous avez une colonne de série personnalisée nommée #messéries, il y aura également une colonne nommée #messéries_index.
Si les métadonnées du champ pour un livre donné ne sont pas définies, le champ dans le modèle est remplacé par la chaîne vide (''). Parfois, vous voulez que du texte n’apparaisse dans la sortie que si un champ n’est pas vide. Un cas courant est celui de series et series_index où vous voulez soit rien, soit les deux valeurs séparées par un trait d’union. Par exemple, et en utilisant l’exemple de Fondation ci-dessus, supposons que vous voulez que le modèle produise Fondation - 3 - Deuxième Fondation. Cependant, si un livre n’a pas de série, le modèle produira - - le titre, ce qui n’est probablement pas ce que vous voulez. En général, les gens veulent que le résultat soit le titre sans les traits d’union superflus.
Cette expression modèle indique que si champ a la valeur XXXX, le résultat sera prefix_textXXXXXsuffix_text. Si champ est vide (n’a pas de valeur) alors le résultat sera la chaîne vide (rien) car le préfixe et le suffixe sont ignorés. Les traits d’union ne seront inclus que si le livre possède un index de série, ce qui n’est le cas que si le livre possède une série. Vous devez utiliser soit aucun des caractères |, soit les deux. Il est possible de ne fournir aucun texte pour le préfixe ou le suffixe, comme dans {série:|| - }.
Lire aussi: Fusil Darne Calibre 12 : Détails Techniques
Supposons que vous vouliez que series_index soit formaté en trois chiffres avec des zéros en tête. Si vous utilisez des indices de série avec des valeurs fractionnées, par exemple 1.1, vous pouvez souhaiter que les points décimaux soient alignés. Par exemple, vous pouvez vouloir que les indices 1 et 2.5 apparaissent sous la forme 01.00 et 02.50 afin qu’ils soient triés correctement sur un périphérique qui effectue un tri lexical.
Une grande partie du formatage du langage de modèle de calibre provient de Python. Les modèles peuvent être utilisés pour afficher des informations qui ne sont pas dans les métadonnées de calibre, ou pour afficher les métadonnées différemment du format normal de calibre. Par exemple, vous pourriez vouloir afficher le ISBN, un champ que calibre n’affiche pas. Pour cela, vous pouvez créer une colonne personnalisée de type Colonne construite à partir d’autres colonnes (appelée ci-après colonnes composites) et fournir un modèle pour générer le texte affiché. La colonne affichera le résultat de l’évaluation du modèle. Par exemple, pour afficher l’ISBN, créez la colonne et entrez « identifiers:select(isbn)} » dans la champ du modèle. Remarque : Vous ne pouvez pas modifier les données affichées dans une colonne composite. Vous devez plutôt modifier les colonnes sources.
Supposons que vous vouliez afficher la valeur d’un champ en casse majuscules alors que ce champ est normalement en casse titre. Vous pouvez le faire en utilisant les fonctions de modèle. Par exemple, pour afficher le titre en casse majuscules, utilisez la fonction uppercase, comme dans {title:uppercase()}. Les fonctions sont placées dans la partie format du modèle, après le : et avant le premier | ou le } de fermeture si aucun préfixe/suffixe n’est utilisé. Si vous avez à la fois une référence de format et de fonction, la fonction vient après un deuxième :. Les noms de fonctions doivent toujours être suivis de parenthèses ouvrantes et fermantes. Certaines fonctions nécessitent des valeurs supplémentaires (arguments), qui sont placées à l’intérieur des parenthèses. Les arguments sont séparés par des virgules. Les virgules Littérales (les virgules en tant que texte, et non en tant que séparateurs d’arguments) doivent être précédées d’une barre oblique inversée (\) . Les fonctions sont évaluées avant les spécifications de format et le préfixe/suffixe.
Important : Si vous avez de l’expérience en programmation, veuillez noter que la syntaxe du Mode Fonction Unique n’est pas celle à laquelle vous vous attendez. Les chaînes de caractères ne sont pas citées et les espaces sont significatifs. N’utilisez pas les sous-modèles (`{ … }`) comme arguments de fonction. Lorsque les fonctions sont utilisées en Mode Fonction Unique, le premier paramètre, value, est automatiquement remplacé par le contenu du champ spécifié dans le modèle. Dans la documentation des fonctions, la notation [quelque chose]* signifie que quelque chose peut être répété zéro fois ou plus. Certaines fonctions utilise des expressions régulières. Les fonctions sont documentées dans Référence des modèles de fonctions. La documentation vous indique les arguments requis par les fonctions et ce qu’elles font.
Vous voyez que la fonction requiert deux arguments, value et text_if_empty. Cependant, parce que nous utilisons le Mode Fonction Unique, nous omettons l’argument value, en ne passant que text_if_empty. affiche les étiquettes d’un livre, s’il y en a. format_duration(value, template, [largest_unit]) - formate la valeur, un nombre de secondes, en une chaîne affichant les semaines, les jours, les heures, les minutes et les secondes. Supposons que vous ayez une colonne personnalisée de nombres entiers, ##myint, que vous voulez afficher avec des zéros en tête, comme dans 003. Une façon de le faire est d’utiliser le format 0>3s. Cependant, par défaut, si un nombre (entier ou flottant) est égal à zéro, la valeur est affichée sous la forme d’une chaîne vide, de sorte que les valeurs nulles produiront la chaîne vide, et non 000. Si vous voulez voir les valeurs 000, vous devez utiliser à la fois la chaîne de format et la fonction ifempty pour transformer la valeur vide en zéro. Notez que vous pouvez également utiliser le préfixe et le suffixe.
Lire aussi: Calibre 16: Le Fusil Nemrod
Les tableaux de connexions sont utilisés pour modifier les métadonnées écrites dans les livres pendant l’envoi à une liseuse et les opérations de sauvegarde sur le disque. Le tableau de connexion vous permet de spécifier pour un modèle de lecteur précis quelles données à insérer dans les métadonnées du livre. Vous pouvez utiliser les tableaux de connexions pour modifier les champs suivants : authors, author_sort, language, publisher, tags, title, title_sort.
Lorsque vous créez un tableau de connexion, vous spécifiez le format et le périphérique pour lequel le tableau de connexion doit être utilisé. Un périphérique spécial est procuré, save_to_disk qui est utilisé lors de la sauvegarde de formats (en opposition à les envoyer vers le périphérique). Une fois que vous avez choisi le format et le périphérique, vous choisissez les champs de métadonnées à modifier, indiquez le modèle à appliquer pour fournir les nouvelles valeurs. Ces modèles sont reliés à leurs champs de destination, d’où le nom de tableau de connexions.
Quand un tableau de connexion doit s’appliquer (Serveur de contenu, sauvegarde sur disque ou envoyer au périphérique), calibre recherche les tableau de connexions définis et celui qui est correct pour le format donné et le périphérique. Les étiquettes et les champs auteur ont un traitement spécial, parce que ces deux champs peuvent contenir plusieurs données. Un livre peut avoir plusieurs étiquettes et plusieurs auteurs. Lorsque vous spécifiez que l’un de ces deux champs doit être modifié, le résultat du modèle est examiné pour voir s’il y a plus d’un élément dedans.
Pour les étiquettes, le résultat est découpé partout où calibre trouve une virgule. Par exemple, si le modèle produit les valeurs Thriller, Horreur, alors ke résultat sera deux étiquettes, Thriller et Horreur. La même chose se produit pour les auteurs, mais en utilisant un caractère différent comme séparateur, le & (esperluette) au lieu d’une virgule. Par exemple, si le modèle produit la valeur Blogs, Joe&Posts, Susan, alors le livre finira avec deux auteurs Blogs, Joe et Posts, Susan.
Les tableaux de connexions affectent les métadonnées écrites dans le livre quand il est sauvegardé sur le disque ou copié sur le périphérique. Les tableaux de connexions n’affecte pas les métadonnées utilisées par Enregistrer sur le disque et Envoyer au périphérique. Enregistrer en cliquant sur "Sauver le tableau de connexions". L'exemple ci-dessous utilise le modèle {series}{series_index:0>2s|[|]}{title} à la place du titre. Cela donne, pour les livres intégrés dans des séries : Nom_série [00] Titre_livre.
Lire aussi: Caractéristiques Browning Calibre 20
Par exemple, Calibre enregistre les fichiers selon ce modèle : {author_sort}/{title}/{title} - {authors}.
L'exemple ci-dessous utilise le modèle {series}{series_index:0>2s|[|]}{title} à la place du titre. Cela donne, pour les livres intégrés dans des séries : Nom_série [00] Titre_livre. Il n'y a que le titre du livre quand il n'y a pas de série.
Champs de destination : title ici puisque le but est de modifier l'affichage du titre.Voilou.
L'avantage ici, c'est que tu ne touches pas au fichier epub sur ton ordi (le titre restera le même), mais uniquement lors du transfert de calibre vers ta kobo.
Si vous avez construit votre bibliothèque sans jamais l'organiser, vous devez harmoniser les étiquettes, normaliser les titres et le nom des auteurs, rassembler les séries. Certaines des manipulations sont simples : navigation dans le volet latéral gauche (navigateur de balises), recherche dans la barre au dessus des livres, saisie dans les champs de la boite de dialogue Modifier les métadonnées en lot. Toute ces actions passent par la fonctionnalités Modifier les métadonnées par lot.
Des titres ou des auteurs saisis en capitale ? Des majuscules systématiquement manquantes dans un champ ? Pour mettre tous les auteurs sous la forme Nom, Prénom, vous pouvez utiliser le champ Tri par auteur qui remet le nom d'auteur sous cette forme pour avoir un tri alphabétique sur le nom et non sur le prénom. Parfois, il y a d'infimes différences qui font croire à Calibre qu'il est en présence de deux auteurs distincts (par exemple De Gaulle, Charles et Gaulle, Charles de. Vous allez devoir tout corriger à la main...
Ces opérations utilisent les expressions régulières. Dans les manipulations ci-dessous, le champ de recherche et le champ de destination doivent être les mêmes.
Pour résumer, on recherche tout ce qui commence par une balise ouvrante (<), qui contient tout sauf une balise fermante(\s*?[^>]+\s*?) en excluant cependant les retour à la ligne (br), puis qui se termine par une balise fermante(>).
Pour trouver les livres qui n'ont pas d'auteur, de langue, de série, de format, d'éditeur, de note, d'étiquette ou d'identifiant, c'est pas difficile. Dans le volet latéral gauche, il suffit de cliquer deux fois sur la catégorie en question : une fois pour filtrer sur les livres dont cette métadonnée est renseignée (une croix verte pour indique que le filtre est actif), et une seconde fois pour basculer sur le filtre inverse (qui se repère par un signe moins en rouge).
calibredb est l’interface en ligne de commande de la base de données de calibre. Vous pouvez vous connecter à un Serveur de contenu calibre pour effectuer des actions sur des bibliothèques distantes. Chaque fois que vous passez à calibredb des arguments comportant des espaces, entourez l’argument à l’aide de guillemets.
Voici quelques options courantes :
Le Mode Programme Général (MPG) remplace les expressions modèles par un programme écrit dans le langage modèle. Une top_expression a toujours une valeur. Les chaînes de caractères et les nombres peuvent être utilisés indifféremment.
Un field_reference est évalué à la valeur du champ de métadonnées nommé par le nom de la consultation qui suit le « $ » ou le « $$ ». L’utilisation de $ équivaut à l’utilisation de la fonction :ref:`ff_field. L’utilisation de $$ équivaut à l’utilisation de la fonction raw_field.
Les expressions If évaluent d'abord la condition. Si la condition est True (une valeur non vide), alors expression_list de la clause then est évaluée. Si elle est False, expression_list de la clause elif ou else est évaluée si elle est présente. Les parties if et else sont facultatives. Les mots if ``, ``then, elif ``, ``else et fi sont réservés ; vous ne pouvez pas les utiliser comme noms d’identifiants. Vous pouvez mettre des retours à la ligne et des espaces partout où cela a un sens. La condition est une top_expression et non une expression_list ; les points-virgules ne sont pas autorisés. Les expression_list sont des séquences de top_expressions séparées par des points-virgules. Comme dit plus haut, un if produit une valeur.
L’expression for itère sur une liste de valeurs, en les traitant une par une. L’expression list_expression doit être évaluée soit par un nom de champ de métadonnées, par exemple tags ou #genre, soit par une liste de valeurs. Si le résultat est un lookup name valide, alors la valeur du champ est récupérée et le séparateur spécifié pour ce type de champ est utilisé. Si le résultat n’est pas un nom de référence valide, il est supposé être une liste de valeurs. La liste est supposée être séparée par des virgules, sauf si le mot-clé optionnel separator est fourni, auquel cas les valeurs de la liste doivent être séparées par le résultat de l’évaluation de l’expression separator_expr. Un séparateur ne peut pas être utilisé si la liste est générée par range.
Chaque valeur de la liste est assignée à la variable spécifiée puis la expression_list est évaluée. Si le Genre original est Histoire.Militaire, Science Fiction.Histoire alternative, Lisez-moi, alors le modèle renvoie Militaire, Histoire alternative, Lisez-moi. Note : la dernière ligne du modèle, new_tags, n’est pas strictement nécessaire dans ce cas car for renvoie la valeur de la dernière top_expression de la liste d’expressions.
Retourne la valeur de l”expression. Si est exécutée dans une fonction, retourne la valeur de l’expression à l’appelant. Si vous avez répète du code dans un modèle, vous pouvez mettre ce code dans une fonction locale. Le mot clé def commence la définition. Il est suivi par le nom de la fonction, la liste des arguments, puis le code de la fonction. Les arguments sont positionnels. Lorsqu’une fonction est appelée, les arguments fournis sont comparés de gauche à droite aux paramètres définis, la valeur de l’argument étant attribuée au paramètre. C’est une erreur de fournir plus d’arguments que de paramètres définis. Les paramètres peuvent avoir des valeurs par défaut, comme « a = 25 ». Exemple : Ce modèle calcule une durée approximative en années, mois et jours à partir d’un nombre de jours. La fonction to_plural() met en forme les valeurs calculées.
Les comparaisons de chaînes de caractères effectuent une comparaison insensible à la casse en utilisant l’ordre lexical. Les opérateurs de comparaison de chaînes pris en charge sont ==, !=, <, <=, >, =, in, inlist et inlist_field.
Pour les opérateurs in, inlist et inlist_field, le résultat de l'expression de gauche est interprété comme un motif d'expression régulière. Les opérateurs sont True si la valeur de l'expression régulière de gauche correspond à la valeur de l'expression de droite. L'opérateur inlist est vrai si l'expression régulière de gauche correspond à l'un des éléments de la liste de droite où les éléments de la liste sont séparés par des virgules. L'opérateur inlist_field est vrai si l'expression régulière de gauche correspond à l'un des éléments du champ (colonne) nommé par l'expression de droite, en utilisant le séparateur défini pour le champ.
Calibre permet de créer des colonnes personnalisées pour organiser et afficher les informations de manière spécifique. Voici quelques options pour personnaliser les colonnes :
tags: #calibre #tableau #de #connexions #des #metadonnées