Journal d'un Terrien

Web log de Serge Boisse

On line depuis 1992 !

Publicité
Si cette page vous a plu, Copiez son adresse et partagez-la !
http://sboisse.free.fr/trucs et astuces/Obsidian/Plugins/Dataview.php
Savez-vous quels sont les articles les plus vendus sur Amazon.fr ?
Dataview

Comment utiliser Dataview

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.


Syntaxe

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!

sources (from)

  • Tags (avec le #)
  • Répertoires
  • fichiers spécifiques (full path)
  • Liens :
    - vers une note [[note]]
    - depuis une note outgoing([[note]])
    - fichier courant : [[#]] ou [[]]
    On peut composer ces filtres avec AND et OR

Listes

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é)

Tables

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 :

File0deadline

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...

Tasks

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.

Exemples :

liste de toutes les notes Obsidian :

avec Dataview
(ici j'ai commenté pour que cela ne s'exécute pas, c'est trop long)

/**
```dataview  
list
**/

liste des liens qui ont un ou plusieurs tags

list from #video and #idées

Résultat :

Dataview: No results to show for list query.

Liste des liens, Types et Tags sortants de la note

table Type,  Tags
from outgoing([[_Comment utiliser Obsidian]])

Résultat :

File16TypeTags
PAR OÙ COMMENCERdivers-
@ types et statut(lien privé)liste/obsidian/tagsprivé
Markdown (tuto)info/astuces/markdown-
Comment utiliser les modèlesinfo/astuces-
JSONinfo/programmation/structures/JSON-
Les liens dans Obsidianinfo/astuces/obsidian-
@ Snippets(lien privé)--
Obsidian avec strokeitinfo/astuces-
_Obsidian Plugins 🔌liste/logiciel/obsidian/plugin-
Mermaidinfo/logiciel/obsidian/plugin/mermaid-
Dataviewinfo/logiciel/obsidian/plugin-
recherche dans Obsidianinfo/astuces/obsidian-
MathJaxinfo/logiciel/obsidian/plugin/mathjaxmaths,plugin/MathJax,astuces,LaTex
HTML dans Obsidianinfo/astuces-
@ Exemple Liste de tâches ou cases à cocher(lien privé)--
@raccourcis clavier(lien privé)--

Lister les 5 notes les plus longues du dossier "planete"

si on met "" dans from la recherche partira de la racine

LIST
FROM "planete"
SORT file.size DESC
LIMIT 5

Résultat ;


Toutes les notes qui pointent vers "Markdown"

Les champs possibles :

  • aliases, tags, file.size, file.name, file.ctime, file.mtime
Table file.size as "Taille"
FROM [[Markdown]] 

Résultat :

File0Taille

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")


Explorer les données YAML (frontmatter) de la page courante

voir Comment utiliser Dataview au début de cette note

table Data
from ""
where file.name = this.file.name
File1Data
Dataviewdes_données

liste des pages lié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
Folder5Pages
_HORS_SITE
_HORS_SITE/_Travailler/Tâches à Faire
moi/peintures
programmation/languages/javascript
trucs et astuces

Javascript :

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 automatiquement

celle-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

Voir aussi :

Publicité
Commentaires

Commentaires (0) :

Page :



Ajouter un commentaire (pas besoin de s'enregistrer)

Pseudo :
Message :


image de protection
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.
< Retour en haut de la page