Web log de Serge Boisse
On line depuis 1992 !
Dataview Traite votre coffre Obsidian comme une base de données à partir de laquelle vous pouvez effectuer des requêtes. Fournit une API javascript
pour filtrer, trier et extraire des données des pages Markdown (tuto).
Une commande commence toujours par List
, Task
, ou Table
suivi de ce qu'il faut lister, puis éventuellement des commandes from
et where
, et enfin d'une commande facultatiive d'ordonnancement.
Elle est un peu ambigüe sur la Doc du plugin (page web)
Dataview recherche les données dans les en-têtes YAML du frontatter. Mais on peut mettre des champs en ligne dans la note avec la syntaxe Basic Field:: Value ou **Bold Field**:: Nice!
[[note]]
outgoing([[note]])
[[#]]
ou [[]]
Exemple liste des notes dans un répertoire :
list from "_Rechercher/Astronautique"
Dataview: No results to show for list query.
Attention, ce qui est affiché est le nom de la note obsidian, qui n'est pas nécessairement le titre voulu sur mon site ( ce serait celui du premier tag <h1>
)
list file.title.text
from "_Créer/Blog, vidéos, site" OR "_voyager"
LIMIT 12
Dataview: No results to show for list query.
Ne donne que le fichier et pas le titre (h1)
Mais on peut le faire avec Dataviewjs ! :
voir @ Lister des fichiers avec le titre h1
(lien privé)
Liste les notes (qui matchent les critères) sous forme de table, avec les champs spécifiée
"!" permet d'exclure un champ : et !=
est l'opérateur différence.
Code Dataview
table due as "deadline"
from "Tasks"
where Due and !Completed
Résultat :
File0 | deadline |
---|
Dataview: No results to show for table query.
Un exemple plus compliqué :
Notes dont le type est tâche ou projet/xxx, groupés par statut, et en excluant les modèles
(Code Dataview) :
TABLE without ID
Statut as Statut,
rows.file.link AS Titre
FROM ""
where (Type="tâche" OR contains(Type,"projet") OR Type="lecture") AND !contains(file.name,"M_")
GROUP by Statut
Résultat :
Si on utilise "group by", les file.name ne sont pas convertis en liens, et il faut utiliser "file.link". Si on ne met pas "Statut as Statut", le titre de la colonne serait "Group" ce qui n'est pas très parlant...
You can also annotate your tasks (I.e., lines of the form - [ ] blah blah blah
) with metadata using inline field syntax:
- [ ] Hello, this is some metadatavalue!
- [X] I finished this on completion15/08/2021.
avec Dataview
(ici j'ai commenté pour que cela ne s'exécute pas, c'est trop long)
/**
```dataview
list
**/
list from #video and #idées
Résultat :
Dataview: No results to show for list query.
table Type, Tags
from outgoing([[_Comment utiliser Obsidian]])
Résultat :
File16 | Type | Tags |
---|---|---|
PAR OÙ COMMENCER | divers | - |
@ types et statut(lien privé) | liste/obsidian/tags | privé |
Markdown (tuto) | info/astuces/markdown | - |
Comment utiliser les modèles | info/astuces | - |
JSON | info/programmation/structures/JSON | - |
Les liens dans Obsidian | info/astuces/obsidian | - |
@ Snippets(lien privé) | - | - |
Obsidian avec strokeit | info/astuces | - |
_Obsidian Plugins 🔌 | liste/logiciel/obsidian/plugin | - |
Mermaid | info/logiciel/obsidian/plugin/mermaid | - |
Dataview | info/logiciel/obsidian/plugin | - |
recherche dans Obsidian | info/astuces/obsidian | - |
MathJax | info/logiciel/obsidian/plugin/mathjax | maths,plugin/MathJax,astuces,LaTex |
HTML dans Obsidian | info/astuces | - |
@ Exemple Liste de tâches ou cases à cocher(lien privé) | - | - |
@raccourcis clavier(lien privé) | - | - |
si on met "" dans from la recherche partira de la racine
LIST
FROM "planete"
SORT file.size DESC
LIMIT 5
Résultat ;
Les champs possibles :
Table file.size as "Taille"
FROM [[Markdown]]
Résultat :
File0 | Taille |
---|
Dataview: No results to show for table query.
Obsidian peut afficher des tables sans Markdown, mais avec un contenu statique. Voir _Comment utiliser Obsidian
On peut obtenir la même chose sans Markdown : ici une recherche avec le contenu "bateau"
Query tag("bateau")
voir Comment utiliser Dataview au début de cette note
table Data
from ""
where file.name = this.file.name
File1 | Data |
---|---|
Dataview | des_données |
Le code suivant liste les pages du répertoire courant plus celles qui ont des liens in et out avec ces pages
TABLE rows.file.link AS Pages
WHERE
contains(file.folder, this.file.folder)
OR contains(file.inlinks, this.file.link)
OR contains(file.outlinks, this.file.link)
AND file != this.file
GROUP BY file.folder AS Folder
Folder5 | Pages |
---|---|
_HORS_SITE | |
_HORS_SITE/_Travailler/Tâches à Faire | |
moi/peintures | |
programmation/languages/javascript | |
trucs et astuces |
Il faut l'autoriser Dans les options de Dataview. On peut alors créer des codes blocs genre (Code Dataview)
dv.el("b","Cette phrase a été crée automatiquement");
dv.el("p","celle-ci aussi et 2+2="+(2+2))
Résultat :
Cette phrase a été crée automatiquementcelle-ci aussi et 2+2=4
🔺Noter (dans le code) que je n'ai pas fermé le bloc triple quotes parce que la citation le fait tout seul !
QUESTION; comment mettre des styles ? Comme ceci :
const el = dv.el("b","Cette phrase a été crée automatiquement");
el.style.backgroundColor = 'RED';
J'ai créé une note spécifique sur DataviewJS
Commentaires (0) :
Page :Ajouter un commentaire (pas besoin de s'enregistrer)
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.