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.
Aller dans
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
.
Les requêtes Dataview peuvent porter sur :
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 : Propriété:: Valeur
Pour cacher cette syntaxe il faut écrire Faire ce devoir avec
(Qui:: Isabelle)
qui s’affichera Faire ce devoir avec
Isabelle
.
```dataview
LIST
```
crée un index de toutes vos notes Obsidian.
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"
.
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. |
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.
Pour n’afficher que les 5, 10, 20 premiers résultats, il est possible
d’utiliser la commande LIMIT 5
ou LIMIT 10
etc.
L’affichage des résultats peut prendre quatre formes :
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
```
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
```
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")
```
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.
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
```
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
```
Rédigé par Antoine Blanchard en novembre 2023