-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTutoriel Dataview.Rmd
231 lines (163 loc) · 7.65 KB
/
Tutoriel Dataview.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
# Tutoriel Dataview
Tutoriel inspiré par Obsidian Rocks : https://obsidian.rocks/dataview-in-obsidian-a-beginners-guide/
Vous pouvez vous aider de https://s-blu.github.io/basic-dataview-query-builder/ pour bâtir vos requêtes.
## Installer le module Dataview
Aller dans `r icons::fontawesome("cog")` `Paramètres` > `Modules complémentaires` > `Activer les modules complémentaires` (si c'est la première fois que vous installez un module communautaire) > `Parcourir` > chercher `Dataview` et cliquer sur `Installer` > cliquer sur `Activer`.
## Types d'informations que l'on peut requêter
Les requêtes Dataview peuvent porter sur :
* les propriétés (en-tête YAML)
* les tâches
* les items en listes
* le chemin et le nom des notes
* les liens entrants (*inlinks*) et liens sortants (*outlinks*)
* la taille des notes (en octets)
* les dates de création et de modification des notes
* les champs en ligne
Un **champ en ligne** permet d'insérer une information requêtable directement dans le corps de la note. Elle est utile quand cette information ne concerne pas la note dans son ensemble (contrairement à la propriété de l'en-tête).
Syntaxe : <code>Propriété:: Valeur</code>
Pour cacher cette syntaxe il faut écrire <code>Faire ce devoir avec (Qui:: Isabelle)</code> qui s'affichera <code>Faire ce devoir avec Isabelle</code>.
## Première requête en *Dataview Query Language*
````
```dataview
LIST
```
````
crée un index de toutes vos notes Obsidian.
## Filtrer les notes à afficher
### FROM
On peut restreindre la requête à un dossier :
````
```dataview
LIST FROM "Cours"
```
````
ou un tag :
````
```dataview
LIST FROM #outil
```
````
Il est aussi possible d'exclure un tag avec la syntaxe `-#tag` et d'exlure un dossier avec la syntaxe `-"Dossier"`.
### WHERE
On peut choisir de filtrer sur un champ :
````
```dataview
LIST
WHERE Qui = "Isabelle"
```
````
où `Qui` est un champ en ligne que vous avez créé (les champs en ligne sont déterminés par l'utilisateur uniquement).
C'est la commande ```WHERE``` qui permet d'exclure les notes qui ne remplissent pas le(s) condition(s) voulue(s).
La commande ```WHERE``` s'applique à l'ensemble des champs requêtables, à savoir :
| Nom du champ | Type de données | Description |
|:----|:----|:----|
| `file.name` | Texte | Le nom de la note. |
| `file.folder` | Texte | Le chemin du dossier dans lequel se trouve la note. |
| `file.path` | Texte | Le chemin complet de la note, y compris le nom du fichier. |
| `file.ext` | Texte | L'extension de la note, généralement `md`. |
| `file.link` | Lien | Un lien vers la note. |
| `file.size` | Nombre | La taille (en octets) de la note. |
| `file.ctime` | Date avec heure | La date à laquelle la note a été créée. |
| `file.cday` | Date | La date à laquelle la note a été créée. |
| `file.mtime` | Date avec heure | La date à laquelle la note a été modifiée pour la dernière fois. |
| `file.mday` | Date | La date à laquelle la note a été modifiée pour la dernière fois. |
| `file.tags` | Liste | Une liste de tous les tags uniques dans la note. Les sous-tags sont indexés pour chaque niveau, par exemple `#Tag/1/A` sera indexé comme `[#Tag, #Tag/1, #Tag/1/A]`. |
| `file.etags` | Liste | Une liste de tous les tags explicites dans la note ; contrairement à `file.tags`, elle ne décompose pas les sous-tags, c'est-à-dire `[#Tag/1/A]`. |
| `file.inlinks` | Liste | Une liste de tous les liens entrants vers cette note, c'est-à-dire toutes les notes contenant un lien vers cette note. |
| `file.outlinks` | Liste | Une liste de tous les liens sortants de cette note, c'est-à-dire tous les liens que la note contient. |
| `file.aliases` | Liste | Une liste de tous les alias pour la note tels que définis via l'[en-tête YAML](https://help.obsidian.md/How+to/Add+aliases+to+note). |
| `file.tasks` | Liste | Une liste de toutes les tâches dans la note. |
| `file.lists` | Liste | Une liste de tous les éléments de liste dans le fichier (y compris les tâches). |
| `file.day` | Date | Disponible uniquement si le fichier contient une date dans son nom de fichier (sous la forme `yyyy-mm-dd` ou `yyyymmdd`), ou s'il contient une propriété ou un champ `Date`. |
Pour manipuler des dates (champs `file.day`, `file.ctime`, `file.cday`, `file.mtime`, `file.mday`) il est généralement utile de les comparer à la date du jour. Par exemple
````
```dataview
LIST
WHERE file.mtime >= date(today) - dur(1 week)
```
````
exclut les fichier qui n'ont pas été modifiés dans la semaine écoulée (littéralement : la requête ne garde que les fichiers dont la dernière modification est postérieure à la date du jour moins 1 semaine).
Toutes les options permettant de manier les dates et les durées sont décrites dans [la documentation Dataview](https://blacksmithgu.github.io/obsidian-dataview/reference/literals/#dates).
### LIMIT
Pour n'afficher que les 5, 10, 20 premiers résultats, il est possible d'utiliser la commande `LIMIT 5` ou `LIMIT 10` etc.
## Choisir ce qu'on veut afficher
L'affichage des résultats peut prendre quatre formes :
* une liste
* un tableau
* une liste de tâches
* un calendrier
### LIST
Toutes les requêtes jusqu'ici utilisaient la commande `LIST`, qui affiche les résultats (c'est-à-dire les noms des notes) sous forme de liste à puces.
Il est possible de compléter le nom des notes en affichant le chemin des dossiers par exemple :
````
```dataview
LIST file.folder
```
````
### TABLE
La commande `TABLE` affiche les résultats de la requête sous forme de tableau, avec une ou plusieurs colonnes. Par exemple, la requête ci-dessous affiche la liste des notes sous la forme d'un tableau avec une unique colonne :
````
```dataview
TABLE
```
````
Pour avoir plusieurs colonnes, il suffit de spécifier les colonnes à afficher en les séparant par une virgule :
````
```dataview
TABLE file.cday, file.folder, file.tags
```
````
Il est également possible de modifier l'en-tête des colonnes en précisant :
````
```dataview
TABLE file.cday AS "Date de création", file.folder AS Dossier, file.tags as Tags
```
````
Et il est possible de modifier la première colonne (par défaut le nom des notes) avec la commande `TABLE WITHOUT ID` :
````
```dataview
TABLE WITHOUT ID
file.link AS Note, file.cday AS "Date de création", file.folder AS Dossier, file.tags as Tags
```
````
### TASK
La commande `TASK`retourne des tâches et non pas des pages. Ces tâches se comportent comme des tâches classiques et à l'inverse des autres requêtes, celle-ci fait plus qu'afficher des informations, et permet de les modifier :
````
```dataview
TASK
```
````
ou
````
```dataview
TASK
WHERE !completed AND contains(tags, "#urgent")
```
````
### CALENDAR
La commande `CALENDAR` affiche un calendrier sur lequel chaque note est représentée par un point. Par conséquent, la requête doit préciser le champ de type date qui est pris en compte :
````
```dataview
CALENDAR file.ctime
```
````
Si tous les résultats de la requête ne possèdent pas ce champ de type date (ici `file.ctime`) alors le calendrier ne s'affiche pas.
## Trier ou grouper les résultats à afficher
### SORT
La commande `SORT` permet de trier les résultats à afficher selon un ou plusieurs champs, dans l'ordre des champs (en cas d'ex-aequo).
Le tri peut se faire dans l'ordre croissant (`ASC`) ou décroissant (`DESC`) :
````
```dataview
TABLE file.cday, file.folder, file.tags
SORT file.name ASC, file.cday DESC
```
````
### GROUP BY
La commande `GROUP BY` permet d'afficher plusieurs résultats par ligne, une ligne étant créée pour chaque valeur possible :
````
```dataview
TASK
GROUP BY file.folder
```
````
<p style="text-align: center;">Rédigé par Antoine Blanchard en novembre 2023</p>