Populaire cette semaine

Introduction : Les opérateurs Blogger / Blogger operators

Les opérateurs Blogger / Blogger Operators [introduction]

Les opérateurs Blogger constituent un ensemble fondamental pour la manipulation et l'exécution d'opérations complexes au sein du fichier XML du template. Ces outils permettent d'effectuer des calculs arithmétiques, de comparer des valeurs ou encore de manipuler des structures de données telles que les tableaux, offrant ainsi un large éventail de possibilités pour la création de thèmes avancés.

Avantages des opérateurs Blogger

Les opérateurs Blogger, bien que moins étendus que ceux disponibles dans des langages de programmation comme Python ou JavaScript, présentent des caractéristiques uniques qui en font des outils puissants pour les développeurs. Leur syntaxe simple mais robuste facilite leur adoption, même par des utilisateurs expérimentés habitués à des environnements de développement plus complexes.

Points forts des opérateurs Blogger

  • Traitement avancé des données XML

    Les opérateurs sont spécifiquement optimisés pour exploiter les structures hiérarchiques des données XML.

  • Performance exceptionnelle

    Les opérations sont exécutées de manière quasi instantanée, garantissant une expérience utilisateur fluide.

  • Minimalisme du rendu

    Contrairement aux scripts traditionnels, les opérateurs Blogger n'exposent pas leur logique dans le HTML final, assurant ainsi une propreté du code et une sécurité accrue.

Ces avantages font des opérateurs Blogger des outils idéaux pour les développeurs cherchant à optimiser leurs thèmes tout en réduisant la complexité du code.

Une évolution constante des opérateurs Blogger

L'évolution du langage Blogger a été significative depuis ses débuts en 2006. À l'époque de Blogger-Beta, le catalogue d'opérateurs se limitait à des fonctions élémentaires : comparaison, arithmétique et concaténation. En revanche, à partir de 2015, des "packs" d'améliorations ont marqué une rupture en introduisant de nouvelles capacités :

Innovations majeures des packs

  • Packs 1 & 2 (2015)

    • Ajout de balises spécifiques pour les expressions dynamiques.

    • Réglages avancés pour affiner les données XML.

    • Classification des données par type, permettant une manipulation plus précise et ciblée.

  • Packs 3 & 4 (2016)

    Introduction d'une nouvelle génération d'opérateurs avec des fonctionnalités novatrices, parmi lesquelles :

    • La prise en charge d'un nombre quasi infini de combinaisons d'opérations.

    • L'imbrication complexe des expressions pour des cas d'utilisation avancés.

    • Des outils intégrés pour gérer et générer des structures tabulaires dans les thèmes Blogger.

    • L'introduction d'une syntaxe fonctionnelle, réduisant la redondance et augmentant la lisibilité du code.

Ces améliorations ont significativement augmenté la portée et la flexibilité des opérateurs Blogger, les rendant essentiels pour les projets complexes.

Un outil à fort potentiel pour les développeurs Blogger

Ces évolutions ont permis une optimisation sans précédent : des tâches qui nécessitaient auparavant des dizaines de lignes de code peuvent désormais être réalisées en une seule expression concise. Cette transformation illustre l'engagement de Blogger à fournir des outils adaptés aux exigences des développeurs et propriétaires de blogs.

En conclusion, les opérateurs Blogger ne sont pas seulement des outils techniques, mais également des catalyseurs pour créer des thèmes élégants, efficaces et hautement personnalisables. Leur adoption représente une étape majeure dans la maîtrise du langage XML des thèmes Blogger.

Implémentation des opérations

Les opérations sont intégrées comme valeurs d'attributs spécifiquement classifiés en tant qu'Attributs d'expression Blogger.

L'Attribut d'expression Blogger

Un Attribut d'expression Blogger peut être directement utilisé pour évaluer des conditions et réaliser des manipulations dynamiques.

<b:if cond='BLOGGER-OPERATION'>

</b:if>

Dans cet exemple, cond évalue dynamiquement une expression pour déterminer si le contenu interne doit être rendu. Cet attribut est exclusivement réservé aux opérations Blogger.

Conversion d'un Attribut HTML classique en Attribut d'expression

Les attributs HTML classiques, tels que class ou id, peuvent être transformés en Attributs d'expression Blogger à l'aide du préfixe expr:.

<div expr:class='BLOGGER-OPERATION'>

</div>

Dans cet exemple, l'attribut class est modifié pour accepter une expression.

Cas d'erreur : Absence du préfixe expr:

Omettre le préfixe expr: sur un attribut HTML classique empêche l'évaluation dynamique et provoque des erreurs dans le thème.

<div class='BLOGGER-OPERATION'>

</div>

Dans cet exemple, l'attribut class reste statique et ne peut pas interpréter les expressions dynamiques fournies.

Pour approfondir la classification et l'utilisation des attributs dans le code XML des thèmes Blogger, référez-vous à notre documentation :

Introduction aux attributs Blogger

Les opérateurs disponibles

Blogger offre une large gamme d'opérateurs pour manipuler et optimiser le fichier XML des thèmes. Voici un aperçu des principaux opérateurs disponibles, chacun accompagné d'un lien vers une documentation détaillée :

L'opérateur de concaténation

L'opérateur de concaténation est conçu pour assembler dynamiquement des chaînes de caractères avec des valeurs d'autres types ou du même type. Il est particulièrement utile pour créer des textes dynamiques, comme des titres personnalisés ou des descriptions enrichies.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Concaténation

+

Syntaxes Infixes (par défaut)

string + allType
allType + string

Syntaxes Fonctionnelles

+(string,allType)
+(allType,string)
2+ string

Les opérateurs de comparaison

Les opérateurs de comparaison permettent de vérifier l'équivalence ou la différence entre deux valeurs. Le résultat, qui est une valeur booléenne (true ou false), est souvent utilisé pour évaluer des conditions dans des expressions dynamiques, comme l'affichage conditionnel de contenu.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Égalité

== ou eq

Syntaxes Infixes (par défaut)

allType == allType
allType eq allType

Syntaxes Fonctionnelles

==(allType,allType)
eq(allType,allType)
2 boolean

Inégalité

!= ou neq

Syntaxes Infixes (par défaut)

allType != allType
allType neq allType

Syntaxes Fonctionnelles

!=(allType,allType)
neq(allType,allType)
2 boolean

Inférieur

< ou lt

Syntaxes Infixes (par défaut)

number < number
number lt number

Syntaxes Fonctionnelles

<(number,number)
lt(number,number)
2 boolean

Inférieur ou égal

<= ou lte

Syntaxes Infixes (par défaut)

number <= number
number lte number

Syntaxes Fonctionnelles

<=(number,number)
lte(number,number)
2 boolean

Supérieur ou égal

>= ou gte

Syntaxes Infixes (par défaut)

number >= number
number gte number

Syntaxes Fonctionnelles

>=(number,number)
gte(number,number)
2 boolean

Supérieur

> ou gt

Syntaxes Infixes (par défaut)

number > number
number gt number

Syntaxes Fonctionnelles

>(number,number)
gt(number,number)
2 boolean

Les opérateurs arithmétiques

Les opérateurs arithmétiques offrent une manière simple de réaliser des calculs numériques dans le fichier XML du thème. Ils permettent d’effectuer des opérations comme l’addition, la soustraction, ou encore des calculs avancés pour manipuler dynamiquement les valeurs.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Addition

+

Syntaxe Infixe (par défaut)

number + number

Syntaxe Fonctionnelle

+(number,number)
2+ number

Soustraction

-

Syntaxe Infixe (par défaut)

number - number

Syntaxe Fonctionnelle

-(number,number)
2+ number

Multiplication

*

Syntaxe Infixe (par défaut)

number * number

Syntaxe Fonctionnelle

*(number,number)
2+ number

Division

/

Syntaxe Infixe (par défaut)

number / number

Syntaxe Fonctionnelle

/(number,number)
2+ number

Modulo

%

Syntaxe Infixe (par défaut)

number % number

Syntaxe Fonctionnelle

%(number,number)
2+ number

L'opérateur de contenu

L’opérateur de contenu permet de vérifier si une sous-chaîne de caractères se trouve dans une autre chaîne. Cet opérateur est idéal pour effectuer des recherches ciblées ou des validations de données. Le résultat retourné est toujours une valeur booléenne (true ou false).

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Contient

contains

Syntaxe Infixe (par défaut)

string contains string

Syntaxe Fonctionnelle

contains(string,string)
2 boolean

Les opérateurs logiques

Les opérateurs logiques permettent de combiner plusieurs conditions pour évaluer des relations complexes. Ils travaillent exclusivement avec des valeurs booléennes, telles que true ou false, et retournent un résultat qui reflète la logique appliquée (ET, OU, NON).

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

ET

&& ou and

Syntaxes Infixes (par défaut)

boolean && boolean
boolean and boolean

Syntaxes Fonctionnelles

&&(boolean,boolean)
and(boolean,boolean)
2+ boolean

OU

|| ou or

Syntaxes Infixes (par défaut)

boolean || boolean
boolean or boolean

Syntaxes Fonctionnelles

||(boolean,boolean)
or(boolean,boolean)
2+ boolean

Inverse

! ou not

Syntaxes Infixes (par défaut)

!boolean
not boolean
1 boolean

Les opérateurs membres

Les opérateurs membres servent à vérifier si une valeur spécifique existe dans un tableau donné. Ces opérateurs sont particulièrement utiles pour manipuler et interroger des collections de données dynamiques. Le résultat est une valeur booléenne, indiquant si l’élément recherché est présent ou non.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Dans

in

Syntaxes Infixes (par défaut)

string in array[string]
boolean in array[boolean]
number in array[number]

Syntaxes Fonctionnelles

in (string, array[string])
in (boolean, array[boolean])
in (number, array[number])
2 boolean

Contient

contains

Syntaxes Infixes (par défaut)

array[string] contains string
array[boolean] contains boolean
array[number] contains number

Syntaxes Fonctionnelles

contains (array[string], string)
contains (array[boolean], boolean)
contains (array[number], number)
2 boolean

Les sélecteurs

Les sélecteurs ternaires et binaires permettent de prendre des décisions simples et rapides en fonction d’une condition. Le sélecteur ternaire utilise trois opérandes pour choisir entre deux valeurs possibles en fonction d’une condition booléenne. Le sélecteur binaire, quant à lui, propose une valeur par défaut si la première est absente ou non définie.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Sélecteur Ternaire

? :

Syntaxe Infixe (par défaut)

boolean ? value1 : value2
3 value1 ou value2

Sélecteur Binaire

?:

Syntaxe Infixe (par défaut)

value1 ?: value2
2 value1 ou value2

Les opérateurs de tableaux

Les opérateurs de tableaux sont conçus pour manipuler les données contenues dans des collections. Que vous souhaitiez limiter le nombre d’éléments affichés, les trier ou définir des plages spécifiques, ces opérateurs offrent une flexibilité incomparable pour gérer les listes.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Jusqu'à

take ou limit

Syntaxes Infixes (par défaut)

array take number
array limit number

Syntaxes Fonctionnelles

take (array, number)
limit (array, number)
2 array

À partir de

Skip ou offset

Syntaxes Infixes (par défaut)

array skip number
array offset number

Syntaxes Fonctionnelles

skip (array, number)
offset (array, number)
2 array

Plage de nombres

to

Syntaxe Infixe (par défaut)

number to number
2 array[number]

Les opérateurs lambdas

Les opérateurs lambdas permettent d’exécuter des actions ciblées sur les éléments d’un tableau, en fonction de critères définis. Vous pouvez vérifier si un tableau satisfait une condition, compter les éléments correspondants, ou encore extraire un sous-ensemble spécifique. Ces opérateurs ajoutent une puissance analytique au traitement des données.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Au moins 1

any

Syntaxe Infixe (par défaut)

array any var => boolean
2 boolean

Tout

all

Syntaxe Infixe (par défaut)

array all var => boolean
2 boolean

Aucun

none

Syntaxe Infixe (par défaut)

array none var => boolean
2 boolean

Compteur

count

Syntaxe Infixe (par défaut)

array count var => boolean
2 number

Mappage

map ou select

Syntaxes Infixes (par défaut)

array map var => criterion
array select var => criterion
2 array[criterion]

Filtre

filter ou where

Syntaxes Infixes (par défaut)

array filter var => boolean
array where var => boolean
2 array

Premier

first

Syntaxe Infixe (par défaut)

array first var => boolean
2 Type enfant du tableau

Les opérateurs d'images

Les opérateurs d'images permettent de manipuler les URLs des images pour répondre à des besoins spécifiques, tels que redimensionner, générer des tailles multiples ou créer des ensembles réactifs. Ils offrent une grande flexibilité dans l'adaptation des visuels aux différents contextes d'utilisation.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Redimensionner

resizeImage

Syntaxe Infixe (par défaut)

image resizeImage number resizeImage string

Syntaxe Fonctionnelle

resizeImage(image,number,string)
2 ou 3 image

Tableau d'images redimensionnées

resizeImage

Syntaxe Infixe (par défaut)

image resizeImage array[number] resizeImage string

Syntaxe Fonctionnelle

resizeImage(image,array[number],string)
2 ou 3 array[object]

Images réactives

sourceSet

Syntaxe Infixe (par défaut)

image sourceSet array[number] sourceSet string

Syntaxe Fonctionnelle

sourceSet(image,array[number],string)
2 ou 3 string

Les opérateurs d'URLs

Les opérateurs d'URLs facilitent la gestion et la modification des URLS du blog. Vous pouvez ajouter ou remplacer des paramètres, définir des fragments ou même ajuster les chemins d'accès des URLs. Ces opérateurs sont idéaux pour rendre les contenus dynamiques et personnalisés.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Nouveau chemin

path

Syntaxe Infixe (par défaut)

URL path string

Syntaxe Fonctionnelle

path(URL,string)
2 string

Remplacer les paramètres

params

Syntaxe Infixe (par défaut)

URL params object

Syntaxe Fonctionnelle

params(URL,object)
2 string

Ajouter des paramètres

appendParams

Syntaxe Infixe (par défaut)

URL appendParams object

Syntaxe Fonctionnelle

appendParams(URL,object)
2 string

Ajouter/Remplacer un fragment

fragment

Syntaxe Infixe (par défaut)

URL fragment string

Syntaxe Fonctionnelle

fragment(URL,string)
2 string

L'opérateur de dates

L’opérateur de dates simplifie la personnalisation du format des dates en s’appuyant sur le formatage ICU. Que ce soit pour afficher une date sous une forme conviviale ou pour suivre des conventions spécifiques, cet opérateur offre une solution précise et puissante.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Format

format

Syntaxe Infixe (par défaut)

date format string

Syntaxe Fonctionnelle

format(date,string)
2 date

L'opérateur d'extraits

L’opérateur d’extraits est conçu pour manipuler les chaînes de caractères et en extraire des portions personnalisées. Il permet de définir des limites comme la longueur, de conserver ou supprimer des liens, et même de gérer les sauts de ligne.

En savoir plus

Noms Opérateurs Syntaxes Opérandes Résultat

Créer un extrait

snippet

Syntaxe Infixe (par défaut)

string snippet object

Syntaxe Fonctionnelle

snippet(string,object)
2 string

Priorités des opérateurs

L'éditeur XML applique une logique cohérente et claire pour l'évaluation des expressions utilisant des opérateurs Blogger. Cette logique suit une structure basée sur des priorités classiques, tout en permettant une exécution de gauche à droite lorsque cela est nécessaire.

Règles générales de priorité

  • Parenthèses

    Les expressions entre parenthèses sont toujours évaluées en priorité. Elles permettent de forcer un ordre d’évaluation et de garantir des résultats prévisibles.

  • Opérateurs arithmétiques

    Les opérations comme la multiplication (*), la division (/), et le modulo (%) sont évaluées avant l’addition (+) et la soustraction (-).

  • Opérateurs de comparaison

    Les comparateurs (>, <, ==, !=) sont évalués après les opérations arithmétiques mais avant les opérateurs logiques.

  • Opérateurs logiques

    Les opérateurs not, and, et or sont évalués dans cet ordre, garantissant une logique stricte et rigoureuse.

  • Exécution de gauche à droite

    Lorsqu’aucune parenthèse ou règle de priorité spécifique ne s’applique, les opérateurs sont évalués dans leur séquence d’apparition, de gauche à droite.

Résumé des priorités

Blogger applique des priorités classiques pour les opérateurs standards tout en favorisant une évaluation de gauche à droite dans les cas où aucune priorité explicite n’est définie. Comprendre cette logique permet d’écrire des expressions claires et précises, en évitant les erreurs d’interprétation.

Les types de syntaxes

Blogger propose deux types de syntaxes pour travailler avec les opérateurs : la syntaxe par défaut (ou syntaxe infixe) et la syntaxe fonctionnelle. Chaque syntaxe a ses propres particularités et une histoire distincte dans l'évolution de la plateforme.

La Syntaxe Infixe (par défaut)

Introduite dès 2007, lors de la démocratisation du code XML des thèmes, la syntaxe infixe, est la première forme disponible pour manipuler des opérateurs dans l'éditeur XML des thèmes Blogger. Elle place l'opérateur entre les opérandes, offrant une lecture simple et intuitive, particulièrement utile pour les expressions courtes et directes.

Cas d'utilisation

  • Utilisée pour les besoins de base, comme les calculs simples ou les comparaisons.
  • Compatible avec tous les opérateurs disponibles.

Structure de la syntaxe

operand operator operand

Exemple d’application

data:view.isPost and data:blog.isPrivate

Le résultat sera vrai, si la page courante est une page d'article et si le blog est privé.

La Syntaxe fonctionnelle

Introduite en 2015, la syntaxe fonctionnelle est une alternative plus élaborée, idéale pour les expressions complexes ou lorsque plusieurs opérandes doivent être manipulées simultanément. Elle encapsule les opérations sous forme d’appels de fonction, ce qui améliore la lisibilité et l'organisation du code.

Cas d'utilisation

  • Particulièrement utile pour les opérations imbriquées ou les calculs impliquant plusieurs opérandes.
  • Compatibilité étendue avec les opérateurs ajoutés après 2015.

Structure de la syntaxe

operator(operand,operand,operand)

Exemple d’application

+(3,5,9,100)

Le résultat sera 117.

Limitation des expressions

Les attributs d’expression dans l'éditeur XML ont une limite stricte de 40 jetons maximum par valeur. Une fois ce quota dépassé, l’expression cesse de fonctionner. Dans certains cas, un commentaire explicatif peut apparaître dans le code source du blog à l’emplacement prévu pour le contenu.

Règles de consommation des jetons

Chaque élément utilisé dans une expression consomme un ou plusieurs jetons, selon les règles suivantes :

  • 1 jeton par opérande.
  • 1 jeton par opérateur.
  • 1 jeton par tableau.
  • 1 jeton par objet.
  • 1 jeton par item contenu dans un tableau.
  • 1 jeton par item contenu dans un objet.

Conséquences d’un dépassement

Lorsque le quota de 40 jetons est atteint :

  • L’expression cesse de fonctionner et aucun contenu ne sera affiché.

  • Un commentaire explicatif peut apparaître dans le code source pour signaler le problème.

La limite des 40 jetons impose de réfléchir à la structure et à l’efficacité des expressions. Cependant, en respectant ces règles et en optimisant les opérations, il est possible de tirer pleinement parti des fonctionnalités du langage XML des thèmes Blogger.

Spotlight

L'Éditeur XML de Thème Blogger : Quand le BackEnd Rencontre le FrontEnd

Populaires cette semaine

Les données obsolètes