Upgrade fr translation

print-window-tiddler
Marc Viot 2015-06-21 11:44:58 +02:00
rodzic 9283dc1de9
commit f4c630d5f7
1 zmienionych plików z 46 dodań i 103 usunięć

Wyświetl plik

@ -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 <<tw>>.
> `[[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<<:>>
```
<<list-links "HelloThere Introduction [[Titre avec des espaces]]">>
```
> `[[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 <<gf tag>> est l'''opérateur'' et <<gf introduction >> 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 <<gf introduction>><<:>>
!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<<dp>>
! 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 <<gf field>> prend un suffixe indiquant le champ à comparer. Le filtre ci-dessous retourne tous les tiddlers qui comportent <<gf JeremyRuston>> 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 <<gf create>> 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 <<gf $:/temp/search>>
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<currentTiddler>]
```
> `[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 <<gf run>>. Par exemple, voici comment sélectionner les tiddlers qui sont tagués ''à la fois'' //introduction// et //demo//<<:>>
> `[search<currentTiddler>]`
```
[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]]
```