xref: /template/mikio/README.md (revision c617ba512081e0e8da8afd4720906c671b2e8c77)
1# Mikio DokuWiki Template
2
3![screenshot](https://github.com/nomadjimbob/mikio/blob/main/images/screenshot.png)
4
5## About
6
7`Mikio` is a Bootstrap 4 style template for [DokuWiki](http://dokuwiki.org)
8
9## Features
10
11- [bootstrap styling](http://getbootstrap.com/)
12- Navbar with dropdown support
13- Subnavbar support (using a page named submenu)
14- Right sidebar
15- Hero element
16- Icon support
17- Customizable breadcrumbs
18- Theming support
19- Tags plugin support
20- Mobile friendly
21- Typeahead search support
22
23## Possible Breaking Changes
24
25- 2022-10-04
26  - Some elements now have their own color options to allow finer control of your website design.
27
28- 2022-04-25
29  - Added support for the defer js option in Hogsfather to override the templates default defer action of always.
30  - The new Typeahead search feature is enabled by default. This can be turned off in the config.
31
32- 2022-03-05
33  - Breadcrumbs and You Are Here have now been seperated instead of combined. This removed the options `breadcrumbHome` and `breadcrumbShowLast` for the breadcrumbs as it only applies to the you are here bar. **Breadcrumbs and You Are Here options may have reset**
34
35- 2020-09-27
36  - Sidebars now collapse by default on mobile. This can be overridden with the `sidebarMobileDefaultCollapse` option
37  - The mikio LESS stylesheet is now disabled by default, with a precompilied CSS used. This can be reverted using the `useLESS` option
38
39## Configuration
40
41The configuration can be change with the [Configuration Manager Plugin](https://www.dokuwiki.org/plugin:config)
42
43- `iconTag` : icon tag to use to engage the icon engine. Default to `icon`
44- `customTheme` : the mikio theme to use, located in the `mikio/themes` directory
45- `showNotifications` : where to show site notifications for admin staff
46- `useLESS` : use the LESS compilier or direct CSS for the mikio stylesheet. Requires the ctype PHP extension installed
47- `brandURLGuest` : change the brand URL for guests. Leave blank to use the default
48- `brandURLUser` : change the brand URL for logged in users. Leave blank to use the default
49
50- `navbarUseTitleIcon` : show the site logo in the navbar
51- `navbarUseTitleText` : show the site title in the navbar
52- `navbarUseTaglineText` : show the site tagline in the navbar. Requires the `navbarUseTitleText` to be enabled
53- `navbarCustomMenuText` : custom menu to use in the navbar. Menu items are in the format of url|title with each item seperated by a semicolon. Requires one of the `navbarPos` to be set to `custom`
54
55- `navbarDWMenuType` : how to show the DokuWiki menu items in the navbar. Can be either icons, text or both
56- `navbarDWMenuCombine` : how to show the DokuWiki menu in the navbar. Can be either category dropdowns, single items or a combined dropdown. The combined menu title is pulled from the `tools-menu` language value
57
58- `navbarPosLeft` : what menu to show on the left of the navbar
59- `navbarPosMiddle` : what menu to show in the middle of the navbar
60- `navbarPosRight` : what menu to show on the right of the navbar
61- `navbarShowSub` : show the sub navbar. This menu is pulled from the `submenu` page in the current or parent namespaces. The menu is also shown on child pages. If no page is found, the sub navbar is automatically hidden
62
63- `navbarItemShowCreate` : show the Create Page menu item
64- `navbarItemShowShow` : show the Show Page menu item
65- `navbarItemShowRevs` : show the Revisions menu item
66- `navbarItemShowBacklink` : show the Backlinks menu item
67- `navbarItemShowRecent` : show the Recent Changes menu item
68- `navbarItemShowMedia` : show the Media Manager menu item
69- `navbarItemShowIndex` : show the Sitemap menu item
70- `navbarItemShowProfile` : show the Update Profile menu item
71- `navbarItemShowAdmin` : show the Admin menu item
72- `navbarItemShowLogin` : show the Login menu item
73- `navbarItemShowLogout` : show the Logout menu item
74
75- `searchButton` : show the search button as a icon or text
76- `searchUseTypeahead` : use [Typeahead](https://github.com/bassjobsen/Bootstrap-3-Typeahead) page suggestions in search bar
77
78- `heroTitle` : show the hero block on pages
79- `heroImagePropagation` : search for hero images in parent namespaces if none is found in the current namespace
80
81- `tagsConsolidate` : Consolidate tags found in the current page and display it in the hero, content header or sidebar
82
83- `breadcrumbHideHome` : hide breadcrumbs in the root namespace
84- `breadcrumbPosition` : where to display the breadcrumbs, either under the navbar, in the hero element or above the page content
85- `breadcrumbPrefix` : enable changing the breadcrumb prefix
86- `breadcrumbPrefixText` : text to set the breadcrumb prefix. Requires `breadcrumbPrefix` to be enabled
87- `breadcrumbSep` : enable changing the breadcrumb seperator
88- `breadcrumbSepText` : text to set the breadcrumb seperator. Requires `breadcrumbSep` to be enabled
89
90- `youarehereHideHome` : hide you are here in the root namespace
91- `youareherePosition` : where to display the you are here, either under the navbar, in the hero element or above the page content
92- `youareherePrefix` : enable changing the you are here prefix
93- `youareherePrefixText` : text to set the you are here prefix. Requires `you are herePrefix` to be enabled
94- `youarehereSep` : enable changing the you are here seperator
95- `youarehereSepText` : text to set the you are here seperator. Requires `you are hereSep` to be enabled
96- `youarehereHome` : change the you are here home item to none, page title of root page, 'home' or an icon/image. The 'home' text is pulled from the `home` language value
97- `youarehereShowLast` : only show an amount of you are here from the last. Will also show the home item in the list if enabled. Set this to `0` to show all items
98
99- `sidebarShowLeft` : show the left sidebar if content is found
100- `sidebarLeftRow1` : content to show in the first row of the left sidebar
101- `sidebarLeftRow2` : content to show in the second row of the left sidebar
102- `sidebarLeftRow3` : content to show in the third row of the left sidebar
103- `sidebarLeftRow4` : content to show in the forth row of the left sidebar
104- `sidebarMobileDefaultCollapse` : collapse the sidebars by default when viewed on mobile
105- `sidebarShowRight` : show the right sidebar if content is found
106
107- `tocFull` : show the table of contents as a full height item
108
109- `pageToolsFloating` : when and if to show the floating page tools
110- `pageToolsFooter`
111
112- `pageToolsShowCreate` : show the Create Page item
113- `pageToolsShowEdit` : show the Edit Page item
114- `pageToolsShowRevs` : show the Revisions item
115- `pageToolsShowBacklink` : show the Backlinks item
116- `pageToolsShowTop` : show the Back to Top item
117
118- `footerCustomMenuText` : custom menu to use in the footer. Menu items are in the format of url|title with each item seperated by a semicolon
119- `footerSearch` : show the search bar in the footer
120
121- `licenseType` : how to show the license in the footer
122- `licenseImageOnly` : show the license in the footer as an image only. Requires `licenseType` to at least be enabled
123
124- `includePageUseACL` : respect ACL when including pages
125- `includePagePropagate` : search parent namespaces when including pages
126
127## Include Pages
128
129The following pages can be either html files in the root of the template or a page in the namespace. Namespace pages take priority.
130
131- `topheader` : content to include above the navbar
132- `header` : content include below the navbar but above the page content
133- `contentheader` : content to include above the page content
134- `contentfooter` : content to include below the page content
135- `sidebarheader` : content to include above the left sidebar content
136- `sidebarfooter` : content to include below the left sidebar content
137- `rightsidebarheader` : content to include above the right sidebar content
138- `rightsidebarfooter` : content to include below the right sidebar content
139- `footer` : content to include in the footer
140- `bottomfooter` : content to include below the footer
141
142## Include Images
143
144The following images can be used to replace content in the
145template. Images can be in `TEMPLATE_ROOT/images/`,
146`TEMPLATE_ROOT/themes/THEME/images/`, or in the namespace. Images can
147be either png, jpg, gif or svg.
148
149- `logo` : site logo in the navbar
150- `breadcrumb-prefix` breadcrumb prefix
151- `breadcrumb-sep` breadcrumb seperator
152- `hero` hero image for hero element
153
154## Hero Element
155
156- `title` : The hero title is sourced from the page title. The page title is removed from the page content
157- `subtitle` : Pages can set the subtitle by inserting `~~hero-subtitle TEXT~~` in the page content
158- `image` : The hero image is sourced from an image named hero in the current or parental namespace. Namespace searching can be confined by the `includePagePropagate` setting. Pages can also override the image by inserting `~~hero-image URL~~` in the page content. DokuWiki and external URLs are supported
159- `colors` : Colors can be overridden by including `~~hero-colors BACKGROUND_COLOR HERO_TITLE_COLOR HERO_SUBTITLE_COLOR BREADCRUMB_TEXT_COLOR BREADCRUMB_HOVER_COLOR~~`. You do not need to include all the color options. Use 'initial' to skip a color override
160
161Namespaces can also apply the above hero settings in child pages by including the above settings in a page named `theme`.
162
163## Hiding Elements
164
165Mikio now supports hiding elements using the `~~hide-parts (parts)~~` macro. Each element within the hide-parts macro is required to be seperated by spaces. Currently the following parts are supported:
166
167- `topheader` : content above the navbar
168- `navbar` : the main navigation bar
169- `header` : content below the navbar but above the page content
170- `hero` : the page hero bar
171- `contentheader` : content above the page content
172- `contentfooter` : content below the page content
173- `sidebarheader` : content above the left sidebar content
174- `sidebarfooter` : content below the left sidebar content
175- `rightsidebarheader` : content above the right sidebar content
176- `rightsidebarfooter` : content below the right sidebar content
177- `footer` : content in the footer
178- `bottomfooter` : content below the footer
179
180To hide the topheader, navbar and hero, you would use the macro `~~hide-parts topheader navbar hero~~`
181
182## Icon Engine
183
184- Mikio includes an icon engine that allows you to include icons in your pages by using <icon OPTIONS> in your content
185- If the icon tag conflicts with another plugin, you can change the tag from `icon` to a user set value in the settings
186- By default, Mikio enables FontAwesome 4 by also includes FontAwesome 5, Elusive 2 and Bootstrap Icons which can be enabled by uncommenting their inclusions in `/icons/icons.php`
187
188Users can also add their own icon sets into the template. Supported icon sets can either be webfonts or indivial files (such as a SVG library). Instructions can be found in the `/icons/icons.php` file.
189
190## Themes
191
192Themes should be placed in the themes directory, in its own directory. LESS files are supported.
193
194## Dark Mode
195
196Mikio now supports dark mode! When the user prefers a dark theme, or has selected dark mode, the html tag will set the theme dataset to `theme-dark`, else it will be `theme-light`.
197
198You can detect this in CSS using:
199
200```
201:root[data-theme="theme-dark"] {
202  // CSS selectors here
203}
204```
205
206or in Javascript using:
207
208```
209const html = document.querySelector('html');
210if(html.dataset.theme == 'theme-dark') {
211  // ...
212}
213```
214
215## Mikio Plugin
216
217The [Mikio Plugin](https://github.com/nomadjimbob/mikioplugin/) is also available to add bootstrap 4 style + more elements to DokuWiki pages.
218
219If the plugin is installed, the **Template Styles Settings** page will be expanded to allow directly editing the plugin element styling.
220
221## Languages
222
223- `sidebar-title` : Text for the collapsable block in the sidebar
224- `tools-menu` : Text for the combined tools DokuWiki menu title
225- `home` : Text for the breadcrumb home title
226
227## Releases
228
229- **_2022-10-31_**
230  - Added support to directly editing Mikio Plugin within Template Style Settings.
231
232- **_2022-10-12_**
233  - Fixed blank page being displayed instead of media detail [#48](https://github.com/nomadjimbob/mikio/issues/48). Thanks spratinatin
234
235
236- **_2022-10-09_**
237  - Fixed issue of new elements not being added to CSS when a custom template style is set
238  - Fixed issue of wiki page style (existing and missing) not taking priority of link colouring
239  - Added support for styling link pseudo classes (visited, hover, active) for links and page links [#47](https://github.com/nomadjimbob/mikio/issues/47). Thanks chrbinder
240
241- **_2022-10-04_**
242  - Cleaned up the code to PHPCS standards
243  - Fixed breadcrumb layouts on mobile [#31](https://github.com/nomadjimbob/mikio/issues/31)
244  - Fixed Media Manager on small displays
245  - Fixed layout compatiblity on Greebo
246  - Fixed search results layout [#41](https://github.com/nomadjimbob/mikio/issues/41)
247  - Added Dark-mode support [#43](https://github.com/nomadjimbob/mikio/issues/43). Thanks chrbinder
248  - Fixed incorrect file names listed [#45](https://github.com/nomadjimbob/mikio/issues/45). Thanks babudro
249  - Fixed sidebars not showing [#46](https://github.com/nomadjimbob/mikio/issues/46). Thanks dasbenjo
250
251- **_2022-05-10_**
252  - Added support to directly set title icon width and height in config. Thanks AlexiaR
253
254- **_2022-05-05_**
255  - Fixed searching for images in the theme directory [#42](https://github.com/nomadjimbob/mikio/issues/42). Thanks cmacmackin
256  - Added support for the defer js option, previously always deferred [#39](https://github.com/nomadjimbob/mikio/issues/39). Thanks cmacmackin
257  - Added typeahead search [#40](https://github.com/nomadjimbob/mikio/issues/40). Thanks cmacmackin
258  - Fixed double breadcrumb options on admin pages
259  - Added sticky top header, navbar and header options. Thanks chitland
260
261- **_2022-03-05_**
262
263  - Fixed page tools in footer not being horizontal [#38](https://github.com/nomadjimbob/mikio/issues/38). Thanks chitland
264  - Fixed Mikio Config headers disappearing in some cases
265  - Separated Breadcrumbs and You Are Here items [#36](https://github.com/nomadjimbob/mikio/issues/36). Thanks chitland
266
267- **_2021-12-11_**
268
269  - Added table row background styling options
270  - Fixed styling issue when using the indexmenu plugin [#35](https://github.com/nomadjimbob/mikio/issues/35). Thanks 3ole.
271  - Fixed inconsitant tab/spaces in mikio.less and mikio.css
272  - Removed debug logs from mikio.js
273  - Fixed input placeholders not hiding in prepopulated fields [#34](https://github.com/nomadjimbob/mikio/issues/34)
274  - Added option to hide menu and page tool items [#32](https://github.com/nomadjimbob/mikio/issues/32). Thanks annievoss.
275  - Fixed compadibility with BookCreator [#26](https://github.com/nomadjimbob/mikio/issues/26). Thanks johncourtland.
276  - Fixed Greebo styling errors not present in Hogsfather
277
278- **_2021-08-11_**
279
280  - Fixed path check on Windows [#33](https://github.com/nomadjimbob/mikio/issues/33)
281  - Recompilied CSS
282
283- **_2021-06-17_**
284
285  - Added support for navbar title link to use showpageafterlogin setting if installed [#27](https://github.com/nomadjimbob/mikio/issues/27)
286
287- **_2021-06-09_**
288
289  - TOC is now full width on mobile [#25](https://github.com/nomadjimbob/mikio/issues/25)
290  - Hamburger and sidebar icons are now displayed correctly [#23](https://github.com/nomadjimbob/mikio/issues/23), [#24](https://github.com/nomadjimbob/mikio/issues/24)
291  - Site width is now available under Template Style Settings  [#22](https://github.com/nomadjimbob/mikio/issues/22)
292  - TOC is now sticky when set to full height [#21](https://github.com/nomadjimbob/mikio/issues/21)
293  - Added support to the theme being linked by a symbolic link [#20](https://github.com/nomadjimbob/mikio/issues/20)
294  - Mikio will now fallback to using CSS when there is the LESS engine is not detected [#20](https://github.com/nomadjimbob/mikio/issues/20)
295
296- **_2021-03-10_**
297
298  - Fixed bad breadcrumb URL formatting on sites using userewrite [#19](https://github.com/nomadjimbob/mikio/issues/19)
299
300- **_2021-03-04_**
301
302  - Added support to hide page elements [#18](https://github.com/nomadjimbob/mikio/issues/18)
303
304- **_2021-01-22_**
305
306  - Fixed a syntax error with the core css
307
308- **_2020-11-12_**
309
310  - Corrected terminology in readme to match Dokuwiki [#17](https://github.com/nomadjimbob/mikio/issues/17)
311  - Fix showing part of the sidebar when it should be hidden in certain conditions [#16](https://github.com/nomadjimbob/mikio/issues/16)
312  - Added option to always show the sidebar, even when there is no content [#16](https://github.com/nomadjimbob/mikio/issues/16)
313
314- **_2020-10-07_**
315
316  - Fixed hero header parsing on some servers
317  - Fixed safari color picker issue [#14](https://github.com/nomadjimbob/mikio/issues/14)
318  - LESS now defaults to enabled with fallback to ctype functions built into mikio for docker apps [#13](https://github.com/nomadjimbob/mikio/issues/13)
319  - Fix for Template Style Settings being ignored [#12](https://github.com/nomadjimbob/mikio/issues/12)
320
321- **_2020-10-01_**
322
323  - Fix for `sidebarMobileDefaultCollapse` option being inconsistent in code and not working correctly [#11](https://github.com/nomadjimbob/mikio/issues/11). Thanks to GJRobert for catching that.
324
325- **_2020-09-27_**
326
327  - Sidebars hidden by default in mobile view [#10](https://github.com/nomadjimbob/mikio/issues/10)
328  - Fixed errors with the LESS compilier on some nginx configurations
329  - Fixed styling and image display thumb size in media manager popup
330  - Fixed text field placeholders not disappearing with text entry
331  - Added support for Hogfather
332  - Added option to use LESS or direct CSS. Some configurations (docker linuxserver/dokuwiki) do not have the required PHP extensions installed
333  - Supports Docker linuxserver/dokuwiki container file structures
334
335- **_2020-09-10_**
336
337  - Floating page tools is now a UL element with classes applied from getType and getLinkAttributes. Fixes popup dialogs initiated from the a page menu [#7](https://github.com/nomadjimbob/mikio/issues/7)
338  - Template.info.txt now shows correct release dates [#8](https://github.com/nomadjimbob/mikio/issues/8)
339  - Fixed rightsidebar php warnings
340  - Code/Pre blocks no longer have padding applied on the admin pages
341
342- **_2020-08-26_**
343
344  - Footer is no longer shown outside of page view
345  - Public messages are now displayed on the page
346  - Fixed icon rendering in hero bar
347  - Fixed TOC rendering bug
348
349- **_2020-07-27_**
350
351  - Added option to show wiki footer in page content
352
353- **_2020-07-24_**
354
355  - Fixed image detail bug
356
357- **_2020-07-20_**
358
359  - Fixed prewrap and sidebar search bar margins
360
361- **_2020-07-16_**
362
363  - Merged code block styling with pre
364  - Fixed mediamanager failures on 2018-04-22a "Greebo" [#5](https://github.com/nomadjimbob/mikio/issues/5)
365  - Icon tag is rendered correctly in preview [#4](https://github.com/nomadjimbob/mikio/issues/4)
366
367- **_2020-07-15_**
368
369  - Fixed an issue with the simple_html_dom library when editing a section of a page caused page corruption [#3](https://github.com/nomadjimbob/mikio/issues/3)
370
371- **_2020-07-14_**
372
373  - Added id=dokuwiki\_\_content identifier for the page content element
374  - Added styling and fixed overflow issues with pre elements
375  - Fixed page width overflow issues
376
377- **_2020-07-09_**
378
379  - Fixed cosmetic display issues when `input[type=file]` is hidden by plugins [#2](https://github.com/nomadjimbob/mikio/issues/2)
380
381- **_2020-07-07_**
382  - Initial release
383
384## Third Party Libraries
385
386This template uses a [modified
387version](https://github.com/nomadjimbob/simple_html_dom) of
388[simple_html_dom](https://sourceforge.net/projects/simplehtmldom/) and
389 [bootstrap-3-typeahead](https://github.com/bassjobsen/Bootstrap-3-Typeahead).
390
391## Support
392
393- If you think you have found a problem, or would like to see a feature, please [open an issue](https://github.com/nomadjimbob/mikio/issues)
394- If you are a coder, feel free to create a pull request, but please be detailed about your changes!
395