README.md
1# DokuWiki Infobox Plugin
2
3A flexible infobox plugin for DokuWiki that creates structured information boxes for any type of content.
4
5
6
7Features
8--------
9* Multiple images with tab navigation
10* Section headers with optional collapsible sections
11* Spoiler/blur functionality for sensitive content
12* Divider lines for visual organization
13* Automatically matches your DokuWiki theme
14* Click images to view fullscreen
15* Full wiki syntax support
16* Keyboard navigation support
17
18Installation
19------------
201. Download the plugin
212. Create a new folder named `infobox` in your DokuWiki's `lib/plugins/` directory
223. Extract the downloaded files into this new folder
234. Log into your DokuWiki as an admin and go to the Configuration Settings page
245. Look for the infobox plugin in the plugin section and enable it if necessary
25
26Alternatively:
27
281. Navigate to your DokuWiki Extension Manager page (Example: http://localhost:8800/doku.php?id=start&do=admin&page=extension&tab=search&q=Infobox)
292. Search for `Infobox` in the Search and Install tab and look for this plugin
303. Click Install
31
32Basic Usage
33-----------
34```markdown
35{{infobox>
36name = Name
37image = example.jpg
38Field 1 = Text 1
39Field 2 = Text 2
40}}
41```
42
43Header Image
44------------
45Add a full-width banner image at the top of the infobox that spans the entire width:
46```markdown
47{{infobox>
48header_image = banner.jpg
49name = Character Name
50image = portrait.jpg
51Field 1 = Text 1
52Field 2 = Text 2
53}}
54```
55
56Multiple Images
57---------------
58```markdown
59{{infobox>
60name = Name
61image1 = example1.jpg|Image Tab 1
62image2 = example2.jpg|Image Tab 2
63image3 = example3.jpg|Image Tab 3
64Field 1 = Text 1
65Field 2 = Text 2
66}}
67```
68
69With Sections
70-------------
71```markdown
72{{infobox>
73name = Name
74image1 = example1.jpg|Image Tab 1
75image2 = example2.jpg|Image Tab 2
76image3 = example3.jpg|Image Tab 3
77
78== Section 1 ==
79Field 1 = Text 1
80Field 2 = Text 2
81
82== Section 2 ==
83Field 1 = Text 1
84Field 2 = Text 2
85
86=== Collapsible Section ===
87Field 1 = Text 1
88Field 2 = Text 2
89}}
90```
91
92With Struct Plugin
93------------------
94```markdown
95{{infobox>
96name = {{$project.name}}
97status = {{$project.status}}
98budget = {{$project.budget}}
99deadline = {{$project.deadline}}
100}}
101```
102
103With Subgroups within Sections
104------------------
105Use ::: to create side-by-side columns within any section:
106```markdown
107{{infobox>
108name = Name
109image1 = example1.png|Image Tab 1
110image2 = example2.jpg|Image Tab 2
111image3 = example3.jpg|Image Tab 3
112Field 1 = Text 1
113Field 2 = Text 2
114
115== Timeline ==
116::: ← Previous :::
117Info 1 = [[Info 1]]
118Info 2 = [[Info 1]]
119
120::: → Next :::
121Info 1 = [[Info 1]]
122Info 2 = [[Info 1]]
123Info 3 = [[Info 1]]
124}}
125```
126
127Headerless Sections and Columns
128------------------
129Use `====` for sections without headers and `::::::` for columns without headers:
130```markdown
131{{infobox>
132name = Name
133image = example.jpg
134
135====
136::::::
137Info 1 = [[Info 1]]
138Info 2 = [[Info 2]]
139
140::::::
141Info 3 = [[Info 3]]
142Info 4 = [[Info 4]]
143Info 5 = [[Info 5]]
144}}
145```
146
147Full-Width Values
148------------------
149Use `= value =` to create a row that spans both columns:
150```markdown
151{{infobox>
152name = Character
153image = photo.jpg
154Class = Warrior
155Level = 50
156
157== Stats ==
158= [[View Full Stats]] =
159Health = 1000
160Mana = 500
161}}
162```
163
164Spoiler/Blur Content
165--------------------
166Use `!` prefix to blur sensitive content that can be revealed on hover or click:
167```markdown
168{{infobox>
169name = Character Name
170!secret_identity = !Bruce Wayne
171real_name = !Clark Kent
172image = character.jpg
173
174== Personal Info ==
175age = 30
176!trauma = !Parents were murdered
177occupation = Journalist
178}}
179```
180
181**Spoiler Options:**
182* `!key = value` - Blurs both the field name and value
183* `key = !value` - Blurs only the field value
184* **Interaction:** Hover to preview, click/Enter to permanently reveal
185* **Accessibility:** Full keyboard navigation and screen reader support
186
187Divider Lines
188-------------
189Add visual separators within your infobox using divider lines:
190```markdown
191{{infobox>
192name = Character Name
193image = character.jpg
194real_name = Bruce Wayne
195age = 30
196
197divider = Background
198origin = Gotham City
199parents = Thomas and Martha Wayne
200
201divider = Abilities
202fighting = Expert
203detective = Master
204wealth = Billionaire
205
206== Equipment ==
207divider = Vehicles
208car = Batmobile
209plane = Batwing
210
211divider = Gadgets
212utility_belt = Various tools
213grappling_gun = For mobility
214}}
215```
216
217
218Syntax Reference
219----------------
220* Single image: `image = filename.jpg`
221* Multiple images: `image1 = file.jpg|Label`
222* Header banner: `header_image = banner.jpg`
223* Section: `== Section Name ==`
224* Collapsed section: `=== Section Name ===`
225* Headerless section: `====`
226* Subgroups: `::: Group Name :::`
227* Headerless subgroup: `::::::`
228* Full-width value: `= value =`
229* Divider lines: `divider = Text`
230* Spoiler content: `!key = value` or `key = !value`
231* Custom CSS: `class = custom-style`
232* Icons in field names: `icon.png|Field Name = Value`
233* Lists in values: Use wiki list syntax
234
235Image Tab Customization
236----------------
237Provide custom captions to make tabs clearer:
238```markdown
239image1 = photo.jpg|Main Photo
240image2 = diagram.jpg|Technical Diagram
241```
242
243Add custom CSS to your theme:
244```markdown
245/* Option 1: Bordered tabs */
246.infobox-tab {
247 background: rgba(128, 128, 128, 0.1) !important;
248 border: 1px solid rgba(128, 128, 128, 0.3) !important;
249}
250
251/* Option 2: Pill-style tabs */
252.infobox-tab {
253 border-radius: 4px !important;
254 margin: 2px !important;
255 background: rgba(128, 128, 128, 0.1) !important;
256}
257
258/* Option 3: Traditional tab style */
259.infobox-tab {
260 border: 1px solid !important;
261 border-bottom: none !important;
262 background: rgba(128, 128, 128, 0.05) !important;
263}
264.infobox-tab.active {
265 background: inherit !important;
266 font-weight: bold !important;
267}
268```
269