xref: /plugin/visualindex/DOKU_EN.md (revision 3c9c7f3beeea1dce712c368cb507b309c63f5d06)
1*3c9c7f3bSLORTET# Visualindex Plugin
2*3c9c7f3bSLORTET
3*3c9c7f3bSLORTET## Plugin Info
4*3c9c7f3bSLORTET
5*3c9c7f3bSLORTET- Description: displays a visual index
6*3c9c7f3bSLORTET- Author: Valentin LORTET, Gabriel CHOIMET
7*3c9c7f3bSLORTET- Email: contact@lortet.fr
8*3c9c7f3bSLORTET- Type: Syntax, Action
9*3c9c7f3bSLORTET- Last update: 2026-03-09
10*3c9c7f3bSLORTET- Compatible: Librarian
11*3c9c7f3bSLORTET
12*3c9c7f3bSLORTET## Installation
13*3c9c7f3bSLORTET
14*3c9c7f3bSLORTETInstall the plugin from the [Extension Manager](https://www.dokuwiki.org/plugin:extension).
15*3c9c7f3bSLORTET
16*3c9c7f3bSLORTET## Description
17*3c9c7f3bSLORTET
18*3c9c7f3bSLORTETThe **visualindex** plugin displays a visual index of pages (or media files) from a DokuWiki namespace.
19*3c9c7f3bSLORTET
20*3c9c7f3bSLORTETIt is compatible with:
21*3c9c7f3bSLORTET- the classic editor,
22*3c9c7f3bSLORTET- [ProseMirror](https://www.dokuwiki.org/plugin:prosemirror).
23*3c9c7f3bSLORTET
24*3c9c7f3bSLORTET## Syntax
25*3c9c7f3bSLORTET
26*3c9c7f3bSLORTETBase syntax:
27*3c9c7f3bSLORTET
28*3c9c7f3bSLORTET```txt
29*3c9c7f3bSLORTET{{visualindex>namespace}}
30*3c9c7f3bSLORTET```
31*3c9c7f3bSLORTET
32*3c9c7f3bSLORTETExamples:
33*3c9c7f3bSLORTET
34*3c9c7f3bSLORTET```txt
35*3c9c7f3bSLORTET{{visualindex>.}}
36*3c9c7f3bSLORTET{{visualindex>wiki}}
37*3c9c7f3bSLORTET{{visualindex>wiki;filter=start|syntax*}}
38*3c9c7f3bSLORTET{{visualindex>wiki;desc=1}}
39*3c9c7f3bSLORTET{{visualindex>wiki;medias=1}}
40*3c9c7f3bSLORTET{{visualindex>.;filter=guide*;desc=1;medias=1}}
41*3c9c7f3bSLORTET```
42*3c9c7f3bSLORTET
43*3c9c7f3bSLORTETSupported options:
44*3c9c7f3bSLORTET- `filter`: simple wildcard filter with `*` (example: `guide*|doc*`),
45*3c9c7f3bSLORTET- `desc`: descending sort (`1` / `true`),
46*3c9c7f3bSLORTET- `medias`: list media from the namespace (`1` / `true`).
47*3c9c7f3bSLORTET
48*3c9c7f3bSLORTETSpecial namespace values:
49*3c9c7f3bSLORTET- `.`: current namespace,
50*3c9c7f3bSLORTET- `~sub:folder`: namespace relative to current namespace.
51*3c9c7f3bSLORTET
52*3c9c7f3bSLORTET## Settings
53*3c9c7f3bSLORTET
54*3c9c7f3bSLORTET- `taille_icone`: icon size (example: `100px`),
55*3c9c7f3bSLORTET- `taille_texte`: text size (example: `13px`),
56*3c9c7f3bSLORTET- `couleur_texte`: text color (hex, rgb/rgba, or CSS color name),
57*3c9c7f3bSLORTET- `skip_file`: regex of pages to ignore,
58*3c9c7f3bSLORTET- `show_in_editor_menu`: show Visualindex in editor menus (classic and ProseMirror),
59*3c9c7f3bSLORTET- `use_pagesicon`: use `pagesicon` helper when available,
60*3c9c7f3bSLORTET- `default_image`: default image (media ID, e.g. `wiki:logo.png`); if empty, plugin internal image is used.
61*3c9c7f3bSLORTET
62*3c9c7f3bSLORTET## pagesicon Integration
63*3c9c7f3bSLORTET
64*3c9c7f3bSLORTETIf [pagesicon](https://www.dokuwiki.org/plugin:pagesicon) is installed and `use_pagesicon` is enabled:
65*3c9c7f3bSLORTET- Visualindex resolves page icons,
66*3c9c7f3bSLORTET- Visualindex resolves media icons,
67*3c9c7f3bSLORTET- fallback is applied when no icon is found.
68*3c9c7f3bSLORTET
69*3c9c7f3bSLORTETFallback order:
70*3c9c7f3bSLORTET1. icon from `pagesicon`,
71*3c9c7f3bSLORTET2. Visualindex `default_image`,
72*3c9c7f3bSLORTET3. plugin internal image (`images/default_image.png`).
73*3c9c7f3bSLORTET
74*3c9c7f3bSLORTET## ProseMirror
75*3c9c7f3bSLORTET
76*3c9c7f3bSLORTETThe plugin exposes a `Visualindex` button in ProseMirror (when `show_in_editor_menu` is enabled) with a configuration popup.
77*3c9c7f3bSLORTET
78*3c9c7f3bSLORTETPopup fields:
79*3c9c7f3bSLORTET- namespace,
80*3c9c7f3bSLORTET- filter,
81*3c9c7f3bSLORTET- descending order,
82*3c9c7f3bSLORTET- media listing.
83*3c9c7f3bSLORTET
84*3c9c7f3bSLORTET## Main Files
85*3c9c7f3bSLORTET
86*3c9c7f3bSLORTET- `syntax/visualindex.php`: parsing and XHTML rendering,
87*3c9c7f3bSLORTET- `action/prosemirror.php`: editor integration,
88*3c9c7f3bSLORTET- `script/prosemirror.js`: ProseMirror node,
89*3c9c7f3bSLORTET- `script/toolbar.js`: button and popup,
90*3c9c7f3bSLORTET- `style.css`: display styles.
91