README.md
1# Visualindex
2
3Le plugin **visualindex** affiche un index visuel des pages (ou des médias) d’un namespace DokuWiki.
4
5Il est compatible avec :
6- l’éditeur classique ;
7- ProseMirror.
8
9## Fonctionnement
10
11Le plugin lit un namespace, construit une liste d’éléments accessibles en lecture, puis affiche des tuiles avec :
12- une image ;
13- un titre ;
14- un lien vers la page ou le média.
15
16Si aucun élément n’est disponible, un message traduit est affiché.
17
18## Syntaxe
19
20Syntaxe de base :
21
22```txt
23{{visualindex>namespace}}
24```
25
26Exemples utiles :
27
28```txt
29{{visualindex>.}}
30{{visualindex>wiki}}
31{{visualindex>wiki;filter=start|syntax*}}
32{{visualindex>wiki;desc=1}}
33{{visualindex>wiki;medias=1}}
34{{visualindex>.;filter=guide*;desc=1;medias=1}}
35```
36
37Options supportées :
38- `filter` : filtre simple avec `*` (ex. `guide*|doc*`) ;
39- `desc` : tri descendant (`1` / `true`) ;
40- `medias` : affiche les médias du namespace (`1` / `true`).
41
42Namespace spécial :
43- `.` : namespace courant ;
44- `~sous:dossier` : namespace relatif au namespace courant.
45
46## Paramètres de configuration
47
48Dans le gestionnaire de configuration :
49
50- `taille_icone` : taille de l’icône (ex. `100px`) ;
51- `taille_texte` : taille du texte (ex. `13px`) ;
52- `couleur_texte` : couleur du texte (hex, rgb/rgba, ou nom CSS) ;
53- `skip_file` : expression régulière des pages à ignorer ;
54- `show_in_editor_menu` : afficher Visualindex dans les menus d’édition (classique et ProseMirror) ;
55- `use_pagesicon` : utiliser le helper `pagesicon` si disponible ;
56- `default_image` : image par défaut (ID média, ex : `wiki:logo.png`) ; si vide, l’image interne du plugin est utilisée.
57
58## Intégration avec pagesicon
59
60Si le plugin `pagesicon` est présent et activé via `use_pagesicon` :
61- Visualindex récupère les icônes des pages via le helper ;
62- Visualindex récupère aussi les icônes des médias ;
63- si aucune icône n’est trouvée, le fallback par défaut est utilisé.
64
65Ordre de fallback :
661. icône fournie par `pagesicon` ;
672. `default_image` de Visualindex ;
683. image interne du plugin (`images/default_image.png`).
69
70## ProseMirror
71
72Le plugin expose un bouton `Visualindex` dans ProseMirror (si `show_in_editor_menu` est activé) avec une popup de configuration.
73
74La popup permet de renseigner :
75- le namespace ;
76- le filtre ;
77- l’ordre descendant ;
78- l’affichage des médias.
79
80## Fichiers principaux
81
82- `syntax/visualindex.php` : parsing et rendu XHTML ;
83- `action/prosemirror.php` : intégration éditeur ;
84- `script/prosemirror.js` : nœud ProseMirror ;
85- `script/toolbar.js` : bouton et popup ;
86- `style.css` : styles d’affichage.
87
README_EN.md
1# Visualindex
2
3The **visualindex** plugin displays a visual index of pages (or media files) from a DokuWiki namespace.
4
5It is compatible with:
6- the classic editor;
7- ProseMirror.
8
9## How It Works
10
11The plugin reads a namespace, builds a list of readable items, then displays tiles with:
12- an image;
13- a title;
14- a link to the page or media file.
15
16If no item is available, a translated message is displayed.
17
18## Syntax
19
20Basic syntax:
21
22```txt
23{{visualindex>namespace}}
24```
25
26Useful examples:
27
28```txt
29{{visualindex>.}}
30{{visualindex>wiki}}
31{{visualindex>wiki;filter=start|syntax*}}
32{{visualindex>wiki;desc=1}}
33{{visualindex>wiki;medias=1}}
34{{visualindex>.;filter=guide*;desc=1;medias=1}}
35```
36
37Supported options:
38- `filter`: simple filter with `*` (e.g. `guide*|doc*`);
39- `desc`: descending order (`1` / `true`);
40- `medias`: show namespace media (`1` / `true`).
41
42Special namespace values:
43- `.`: current namespace;
44- `~sub:folder`: namespace relative to the current namespace.
45
46## Configuration Parameters
47
48In the configuration manager:
49
50- `taille_icone`: icon size (e.g. `100px`);
51- `taille_texte`: text size (e.g. `13px`);
52- `couleur_texte`: text color (hex, rgb/rgba, or CSS color name);
53- `skip_file`: regular expression for pages to ignore;
54- `show_in_editor_menu`: show Visualindex in editor menus (classic and ProseMirror);
55- `use_pagesicon`: use the `pagesicon` helper when available;
56- `default_image`: default image (media ID, e.g. `wiki:logo.png`); if empty, the plugin internal image is used.
57
58## Integration with pagesicon
59
60If the `pagesicon` plugin is present and enabled through `use_pagesicon`:
61- Visualindex retrieves page icons through the helper;
62- Visualindex also retrieves media icons;
63- if no icon is found, the default fallback is used.
64
65Fallback order:
661. icon provided by `pagesicon`;
672. Visualindex `default_image`;
683. plugin internal image (`images/default_image.png`).
69
70## ProseMirror
71
72The plugin exposes a `Visualindex` button in ProseMirror (when `show_in_editor_menu` is enabled), with a configuration popup.
73
74The popup lets you configure:
75- namespace;
76- filter;
77- descending order;
78- media display.
79