Pourquoi est-ce que je vois "Erreur dans la syntaxe liquide" ?
Comment corriger l'erreur de tokenisation causée par des caractères spéciaux comme les parenthèses, les barres obliques ou les deux-points à l'intérieur des jetons de personnalisation.
Contents
Ce que signifie cette erreur
SecureMailMerge utilise le langage de template Liquid pour traiter tes jetons de personnalisation. Liquid considère tout ce qui est à l’intérieur des accolades (par exemple, {{…}}) comme du code, pas du texte brut. Quand un nom de colonne contient des caractères spéciaux, Liquid essaie de les interpréter comme des opérateurs de programmation et échoue.
Par exemple, si ton tableau a une colonne appelée Date(s) et que tu tapes {{Date(s)}} dans ton email, Liquid voit :
Date— un nom de variable(s)— ce qui ressemble à un appel de fonction ou une expression de plage
Cela déclenche l’erreur :
TokenizationError: syntaxe de plage invalide
Caractères qui causent cette erreur
Les caractères suivants ont une signification spéciale dans Liquid et provoqueront des erreurs lorsqu’ils sont utilisés à l’intérieur des accolades :
| Caractère | Ce que Liquid pense que cela signifie |
|---|---|
( ) | Expression de plage ou regroupement |
/ | Opérateur de division |
: | Séparateur d’argument de filtre |
+ - * | Opérateurs arithmétiques |
Donc, une colonne nommée Date(s) ou Day(s)/Date(s): va poser problème car Liquid essaie d’analyser ces caractères comme du code.
Comment le réparer
Option 1 : Utiliser le menu déroulant de colonne (recommandé)
La solution la plus simple est d’utiliser le menu déroulant des jetons de personnalisation dans SecureMailMerge au lieu de taper le jeton manuellement. Le menu déroulant enveloppe automatiquement les noms de colonnes contenant des caractères spéciaux dans la bonne syntaxe d’échappement :
{{ ["Date(s)"] }}
Les crochets et les guillemets indiquent à Liquid de traiter l’ensemble de la chaîne comme un nom de colonne plutôt que comme du code. Il suffit de sélectionner la colonne dans le menu déroulant et de cliquer sur le bouton pour l’insérer dans ton sujet ou ton corps.
Option 2 : Corriger la syntaxe manuellement
Si tu préfères taper les jetons toi-même, enveloppe les noms de colonnes contenant des caractères spéciaux dans ["..."] :
| Incorrect | Correct |
|---|---|
{{Date(s)}} | {{ ["Date(s)"] }} |
{{Day(s)/Date(s):}} | {{ ["Day(s)/Date(s):"] }} |
{{Time(s):}} | {{ ["Time(s):"] }} |
Option 3 : Renommer les colonnes de ta feuille de calcul
Tu peux éviter ce problème complètement en renommant tes colonnes pour n’utiliser que des lettres, des chiffres et des underscores :
| Avant | Après |
|---|---|
Date(s) | Dates |
Day(s)/Date(s): | Day_Dates |
Time(s): | Times |
Après avoir renommé, des jetons simples comme {{Dates}} fonctionneront sans aucune syntaxe spéciale.