diff --git a/editions/fr-FR/tiddlers/Introduction to Filters.tid b/editions/fr-FR/tiddlers/Introduction to Filters.tid index d2291a928..e688dc378 100644 --- a/editions/fr-FR/tiddlers/Introduction to Filters.tid +++ b/editions/fr-FR/tiddlers/Introduction to Filters.tid @@ -1,145 +1,88 @@ created: 20140410101941871 -fr-title: Introduction au maniement des filtres -modified: 20141213123128240 -tags: Learning -title: Introduction to Filters -type: text/vnd.tiddlywiki +fr-title: Introduction à la rédaction d'un filtre +modified: 20150619210516062 +tags: Learning Filters +title: Introduction to filters notation +type: nq -Nous vous proposons une introduction qui vous initiera étape par étape au maniement des [[filtres|Filters]]. +<<.preamble """Ceci décrit les bases de l'écriture d'un [[filtre|Filters]] de sélection d'un ensemble de tiddlers. Pour une présentation plus technique, voir [[Syntaxe d'un filtre|Filter Syntax]].""">> -! Utilisation des filtres +<$macrocall $name=".tip" _="""Les filtres ne font rien par eux-même si vous vous contentez de les intégrer dans un tiddler. Il faut un contexte. Une manière facile d'expérimenter les filtres est de les saisir dans l'option <<.advancedsearch-tab Filter>> de l'onglet [[Recherche avancée|$:/AdvancedSearch]]."""/> -Les filtres constituent un langage particulier intégré à WikiText qui sert à exprimer des listes de tiddlers. +Le plus simple des cas se présente lorsque vous savez exactement quels tiddlers vous recherchez. Saisissez chaque titre entre une paire de double crochets, un espace entre chacun<<:>> -Les filtres sont utilisés par les macros [[list|ListMacro]] ou [[tabs|TabsMacro]], par les widgets [[list|ListWidget]] ou [[count|CountWidget]], et dans beaucoup d'autres zones de <>. +> `[[Livre de recettes]] [[OeufsBrouillés]] [[Gateau aux pommes de moman]]` -Par exemple, voici comment la [[macro list|ListMacro]] serait utilisée pour afficher le premier exemple ci-dessous<<:>> +Vous pouvez omettre les crochets quand un titre ne contient aucun espace<<:>> -``` -<> -``` +> `[[Livre de recettes]] OeufsBrouillés [[Gateau aux pommes de moman]]` -Le moyen le plus simple d'expérimenter avec les filtres de tiddlers est de les écrire dans l'onglet //Filtres// du [[panneau de recherche avancée|$:/AdvancedSearch]]. +La paire de double crochets est une abréviation de<<:>> -! Filtres simples +> `[title[OeufsBrouillés]]` -L'exemple de filtre le plus simple est une liste de titres de tiddlers (si besoin encadrés par des crochets doubles)<<:>> +... qui offre une syntaxe du <<.def "modèle général">> de tous les filtres<<:>> -``` -HelloThere Introduction [[Titre avec des espaces]] -``` +> `[operateur[paramètre]]` -Les titres doivent être séparés par un ou plusieurs espaces et/ou sauts de lignes. +En l'occurence, voici comment sélectionner tous les tiddlers étiquetés <<.tag Recipe>><<:>> -! Opérateurs de filtre +> `[tag[Recette]]` -Les opérateurs de filtre sont utilisés pour sélectionner des tiddlers selon certains critères. Par exemple, ce filtre consiste en une opération unique qui sélectionne tous les tiddlers tagués "introduction"<<:>> +Vous pouvez inverser la sélection en ajoutant le point d'exclamation `!` juste avant l'opérateur. Par exemple, nous pouvons sélectionner tous les tiddlers <<.em sans>> l'étiquette <<.tag Recette>><<:>> -``` -[tag[introduction]] -``` +> `[!tag[Recette]]` -Le mot <> est l'''opérateur'' et <> est l'''opérande''. +Les tiddlers peuvent être filtrés par d'autres champs que les titres ou les étiquettes<<: +>> -Reportez-vous à la liste exhaustive des [[opérateurs de filtre|FilterOperators]]. +> `[field:convive[4]]` -!! Opérateur de filtre par défaut +Cette exemple sélectionnera tous les tiddlers qui ont <<.value 4>> dans leur champ <<.field convive>>. -Si l'opérateur est omis, il prend la valeur `title` par défaut, de sorte que `[[HelloThere]]` est équivalent à `[title[HelloThere]]`. Si le titre ne contient aucun espace, on peut aussi omettre les crochets doubles<<:>> `HelloThere`. +Comme le mot "convive" n'est pas un opérateur filtre standard (et n'est pas près de le devenir), vous pouvez omettre le préfixe `field:` en toute sécurité<<:>> -! Négation des opérateurs +> `[convive[4]]` -La signification des opérations de filtre peut être inversée en faisant précéder l'opérateur d'un point d'exclamation (!). L'exemple suivant sélectionne tous les tiddlers qui n'ont pas pour tag <><<:>> +!Combinaisons -``` -[!tag[introduction]] -``` +Les filtres que nous avons examinés jusqu'à présent ont chacun une étape. Mais vous pouvez <<.def exécuter>> plusieurs étapes ensemble comme ceci<> -! Suffixes d'opérateurs +> `[tag[Végétarien]!tag[soupe]convive[4]]` -Certains opérateurs de filtres admettent un suffixe optionnel qui fournit de plus amples informations sur l'opération. Par exemple, l'opérateur <> prend un suffixe indiquant le champ à comparer. Le filtre ci-dessous retourne tous les tiddlers qui comportent <> dans le champ //modifier//<<:>> +Notez que la séquence entière est contenue dans une seule paire de crochets. -``` -[field:modifier[JeremyRuston]] -``` +Un tiddler doit correspondre à <<.em toutes>> les étapes de la séquence. Ainsi l'exemple supra renvoie à toutes les recettes végétariennes (autre que soupes) pour 4 convives. -! Raccourci pour l'opérateur //field// +Une série de séquences séparée sélectionnera les tiddlers qui correspondent à l'<<.em une>> des séquences. Nous pouvons réutiliser ceci pour trouver les recettes pour 3, 4 or 5 convives<<:>> -Si un opérateur inconnu est utilisé, il est interprété comme le suffixe de l'opérateur //field//. Ainsi, les deux filtres ci-dessous retournent tous les tiddlers qui contiennent la chaîne <> dans leur champ //caption//<<:>> +> `[convive[3]] [convive[4]] [convive[5]]` -``` -[caption[create]] -[field:caption[create]] -``` +Si nous voulons ignorer les recettes végétariennes pour 4 convives, nous formulerons ainsi<<:>> -! Opérandes indirects +> `[convive[3]] [convive[4]!tag[Végétarien]] [convive[5]]` -Si un opérateur de filtre est écrit avec des accolades autour de l'opérande à la la place des crochets, celui-ci est alors considéré comme une [[référence|TextReference]] vers la valeur en question. Par exemple, le filtre ci-dessous sélectionnera tous les tiddlers contenant la chaîne contenue dans le tiddler ayant pour titre <> +Par défaut, chaque séquence prend en compte tous les tiddlers du wiki. Mais on peut utiliser le signe `+` pour ne tenir compte que des seuls tiddlers sélectionnés par les précédentes séquences<<:>> -``` -[search{$:/temp/search}] -``` +> `[convive[3]] [convive[4]] [convive[5]] +[tag[Végétarien]] +[sort[titre]]` -! Opérandes variables +Ceci sélectionne les recettes pour 3, 4 ou 5 convives, puis filtre <<.em celles>> qui correspondent uniquement aux végétariennes, et enfin trie ce qui reste dans l'ordre alphabétique des titres. -Si une opération de filtre est écrite avec des chevrons autour de l'opérande à la place des crochets, celui-ci est alors considéré comme le nom d'une variable contenant la valeur en question. Par exemple, le filtre ci-dessous sélectionnera tous les tiddlers contenant le titre du [[tiddler courant|WidgetVariable: currentTiddler]]<<:>> +D'une façon similaire, nous pouvons utiliser le signe `-` pour <<.em extraire>> une séquence de tiddlers du résultat précédent. Ici nous sélectionnons toutes les recettes végétariennes exceptées deux<<:>> -``` -[search] -``` +> `[tag[Végétarien]] -[title[OeufsBrouillés]] -HaricotsSurToast` -(On notera que la variable `currentTiddler` sert à garder trace du tiddler courant). +!Paramètres spéciaux -! Accumuler plusieurs opérations +Le paramètre de chaque étape que nous avons vu jusqu'à présent s'insérait entre crochets, signifiant un traitement littéral par ~TiddlyWiki. Mais deux autres formes de parenthèses sont possibles<<:>> -Vous pouvez effectuer plusieurs opérations de filtre en une seule fois. L'exemple ci-dessous sélectionne tous les tiddlers qui ont au moins l'un des tags //introduction// ou //demo//<<:>> +<<.def "Les accolades">> `{}` indiquent que le paramètre est une [[Référence textuelle|TextReference]], et que sa valeur doit être recherchée dans un tiddler spécial. Par exemple, si nous avons un tiddler nommé <<.tid Préférence>> dont le texte apparait être le mot <<.value Végétarien>>, nous pouvons dire -``` -[tag[introduction]] [tag[demo]] -``` +> `[tag{Préférence}]` -Les opérations sont effectuées séparément l'une après l'autre, les tiddlers qu'elles sélectionnent étant accumulés au résultat. +est une alternative à `[tag[Végétarien]]`. Ce qui permet à 'préférence' d'évoluer dans le temps. -! Conjuguer plusieurs opérations +<<.def "Les chevrons">> `<>` indiquent que le paramètre est le nom d'une [[variable|Variables]] dont la valeur sera utilisée en lieu et place. Ici, nous utilisons la variable intégrée <<.vlink currentTiddler>> au sein d'un filtre qui sélectionne tous les tiddlers dont le texte contient le titre du tiddler en cours<<:>> -Une séquence d'opérations peut être considérée comme une conjonction logique lorsqu'elles sont accolées et qu'on fusionne leurs crochets extérieurs. Le terme consacré pour cette suite d'opérations est un <>. Par exemple, voici comment sélectionner les tiddlers qui sont tagués ''à la fois'' //introduction// et //demo//<<:>> +> `[search]` -``` -[tag[introduction]tag[demo]] -``` - -Voici un autre exemple qui sélectionne tous les tiddlers tagués //introduction// mais pas //demo//<<:>> - -``` -[tag[introduction]!tag[demo]] -``` - -! Négation d'un //run// - -Généralement, chaque //run// d'opérations ajoute des tiddlers aux résultats accumulés par les //runs// précédents. Lorsqu'on préfixe un //run// avec `-`, la liste des tiddlers sélectionnée par ce run est au contraire supprimée du résultat précédent. Le filtre ci-dessous retourne par exemple tous les tiddlers tagués //introduction//, sauf `HelloThere` et `Titre avec des espaces`<<:>> - -``` -[tag[introduction]] -HelloThere -[[Titre avec des espaces]] -``` - -L'exemple ci-dessous retourne tous les tiddlers tagués //introduction// qui ne sont pas aussi tagués //demo//<<:>> - -``` -[tag[introduction]] -[tag[demo]] -``` - -! Travailler avec les résultats d'un filtre - -Généralement, chaque run d'opérations prend comme source l'intégralité des tiddlers disponibles. Lorsqu'on préfixe un run avec `+`, la source du run est au contraire constituée par l'ensemble des tiddlers accumulés par les opérations précédentes. - -Dans l'exemple ci-dessous, le filtre sélectionne les tiddlers tagués //introduction// ou //demo//, et trie ensuite la liste résultante selon le champ "title"<<:>> - -``` -[tag[introduction]] [tag[demo]] +[sort[title]] -``` - -Voici un autre exemple qui renvoie les tiddlers tagués ''alpha'' ou ''beta'' et qui sont aussi tagués avec ''task'' mais pas ''done''<<:>> - -``` -[tag[alpha]] [tag[beta]] +[tag[task]!tag[done]] -``` \ No newline at end of file