xref: /plugin/visualindex/README.md (revision 3c9c7f3beeea1dce712c368cb507b309c63f5d06)
1*3c9c7f3bSLORTET# Visualindex
2*3c9c7f3bSLORTET
3*3c9c7f3bSLORTETLe plugin **visualindex** affiche un index visuel des pages (ou des médias) d’un namespace DokuWiki.
4*3c9c7f3bSLORTET
5*3c9c7f3bSLORTETIl est compatible avec :
6*3c9c7f3bSLORTET- l’éditeur classique ;
7*3c9c7f3bSLORTET- ProseMirror.
8*3c9c7f3bSLORTET
9*3c9c7f3bSLORTET## Fonctionnement
10*3c9c7f3bSLORTET
11*3c9c7f3bSLORTETLe plugin lit un namespace, construit une liste d’éléments accessibles en lecture, puis affiche des tuiles avec :
12*3c9c7f3bSLORTET- une image ;
13*3c9c7f3bSLORTET- un titre ;
14*3c9c7f3bSLORTET- un lien vers la page ou le média.
15*3c9c7f3bSLORTET
16*3c9c7f3bSLORTETSi aucun élément n’est disponible, un message traduit est affiché.
17*3c9c7f3bSLORTET
18*3c9c7f3bSLORTET## Syntaxe
19*3c9c7f3bSLORTET
20*3c9c7f3bSLORTETSyntaxe de base :
21*3c9c7f3bSLORTET
22*3c9c7f3bSLORTET```txt
23*3c9c7f3bSLORTET{{visualindex>namespace}}
24*3c9c7f3bSLORTET```
25*3c9c7f3bSLORTET
26*3c9c7f3bSLORTETExemples utiles :
27*3c9c7f3bSLORTET
28*3c9c7f3bSLORTET```txt
29*3c9c7f3bSLORTET{{visualindex>.}}
30*3c9c7f3bSLORTET{{visualindex>wiki}}
31*3c9c7f3bSLORTET{{visualindex>wiki;filter=start|syntax*}}
32*3c9c7f3bSLORTET{{visualindex>wiki;desc=1}}
33*3c9c7f3bSLORTET{{visualindex>wiki;medias=1}}
34*3c9c7f3bSLORTET{{visualindex>.;filter=guide*;desc=1;medias=1}}
35*3c9c7f3bSLORTET```
36*3c9c7f3bSLORTET
37*3c9c7f3bSLORTETOptions supportées :
38*3c9c7f3bSLORTET- `filter` : filtre simple avec `*` (ex. `guide*|doc*`) ;
39*3c9c7f3bSLORTET- `desc` : tri descendant (`1` / `true`) ;
40*3c9c7f3bSLORTET- `medias` : affiche les médias du namespace (`1` / `true`).
41*3c9c7f3bSLORTET
42*3c9c7f3bSLORTETNamespace spécial :
43*3c9c7f3bSLORTET- `.` : namespace courant ;
44*3c9c7f3bSLORTET- `~sous:dossier` : namespace relatif au namespace courant.
45*3c9c7f3bSLORTET
46*3c9c7f3bSLORTET## Paramètres de configuration
47*3c9c7f3bSLORTET
48*3c9c7f3bSLORTETDans le gestionnaire de configuration :
49*3c9c7f3bSLORTET
50*3c9c7f3bSLORTET- `taille_icone` : taille de l’icône (ex. `100px`) ;
51*3c9c7f3bSLORTET- `taille_texte` : taille du texte (ex. `13px`) ;
52*3c9c7f3bSLORTET- `couleur_texte` : couleur du texte (hex, rgb/rgba, ou nom CSS) ;
53*3c9c7f3bSLORTET- `skip_file` : expression régulière des pages à ignorer ;
54*3c9c7f3bSLORTET- `show_in_editor_menu` : afficher Visualindex dans les menus d’édition (classique et ProseMirror) ;
55*3c9c7f3bSLORTET- `use_pagesicon` : utiliser le helper `pagesicon` si disponible ;
56*3c9c7f3bSLORTET- `default_image` : image par défaut (ID média, ex : `wiki:logo.png`) ; si vide, l’image interne du plugin est utilisée.
57*3c9c7f3bSLORTET
58*3c9c7f3bSLORTET## Intégration avec pagesicon
59*3c9c7f3bSLORTET
60*3c9c7f3bSLORTETSi le plugin `pagesicon` est présent et activé via `use_pagesicon` :
61*3c9c7f3bSLORTET- Visualindex récupère les icônes des pages via le helper ;
62*3c9c7f3bSLORTET- Visualindex récupère aussi les icônes des médias ;
63*3c9c7f3bSLORTET- si aucune icône n’est trouvée, le fallback par défaut est utilisé.
64*3c9c7f3bSLORTET
65*3c9c7f3bSLORTETOrdre de fallback :
66*3c9c7f3bSLORTET1. icône fournie par `pagesicon` ;
67*3c9c7f3bSLORTET2. `default_image` de Visualindex ;
68*3c9c7f3bSLORTET3. image interne du plugin (`images/default_image.png`).
69*3c9c7f3bSLORTET
70*3c9c7f3bSLORTET## ProseMirror
71*3c9c7f3bSLORTET
72*3c9c7f3bSLORTETLe plugin expose un bouton `Visualindex` dans ProseMirror (si `show_in_editor_menu` est activé) avec une popup de configuration.
73*3c9c7f3bSLORTET
74*3c9c7f3bSLORTETLa popup permet de renseigner :
75*3c9c7f3bSLORTET- le namespace ;
76*3c9c7f3bSLORTET- le filtre ;
77*3c9c7f3bSLORTET- l’ordre descendant ;
78*3c9c7f3bSLORTET- l’affichage des médias.
79*3c9c7f3bSLORTET
80*3c9c7f3bSLORTET## Fichiers principaux
81*3c9c7f3bSLORTET
82*3c9c7f3bSLORTET- `syntax/visualindex.php` : parsing et rendu XHTML ;
83*3c9c7f3bSLORTET- `action/prosemirror.php` : intégration éditeur ;
84*3c9c7f3bSLORTET- `script/prosemirror.js` : nœud ProseMirror ;
85*3c9c7f3bSLORTET- `script/toolbar.js` : bouton et popup ;
86*3c9c7f3bSLORTET- `style.css` : styles d’affichage.
87