DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:indexmenu

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
plugin:indexmenu [2016-07-06 08:53] – compatible with Elenor of Tsort rnckplugin:indexmenu [2024-02-08 00:38] (current) Klap-in
Line 6: Line 6:
 email      : samuele@samuele.netsons.org email      : samuele@samuele.netsons.org
 type       : syntax,action type       : syntax,action
-lastupdate : 2015-08-26 +lastupdate : 2024-01-05 
-compatible : rincewindanguaadora belleWeatherwaxBinky, Ponder Stibbons, Hrun, Detritus, Elenor Of Tsort+compatible : !Greebo!HogfatherIgorJack JackrumKaos
 depends    : depends    :
 conflicts  : indexmenu2 conflicts  : indexmenu2
-similar    : alphaindex, indexmenu2, navi +similar    : alphaindex, indexmenu2, navi, simplenavi 
-tags       : navigation, menu, listing, namespace, ajax, index+tags       : navigation, menu, listing, namespace, index
  
 sourcerepo : https://github.com/samuelet/indexmenu sourcerepo : https://github.com/samuelet/indexmenu
Line 19: Line 19:
 ---- ----
  
-This [[plugin]] allows you to insert a fully customizable index or a list of pages starting from a specified namespace.+^ :!: Since December 2023 two JavaScript trees are available for Indexmenu's option 'js'. For the (still) default js tree ''js treeold'' you have to disable the [[config:defer_js|defer_js feature flag]]. For the new ''js treenew'' you can enable deferred JavaScript loading again.\\ \\ To enable the new js tree for all trees, add ''treenew'' to the ''defaultoptions'' setting in the Configuration Manager.\\ \\ Note that the contextmenu (and ToC) are not supported for the new tree, please vote in: [[https://github.com/samuelet/indexmenu/issues/230|issue #230]] ^ 
 + 
 +===== Description ===== 
 + 
 +This plugin allows you to insert a fully customizable index or a list of pages starting from a specified namespace.
 It should be useful in DokuWiki sites where pages are organized by [[:namespaces]]. It should be useful in DokuWiki sites where pages are organized by [[:namespaces]].
 Main features are: Main features are:
Line 48: Line 52:
  
 The indexmenu plugin is not sponsored by anyone but I develop and support it for free during my spare time. The indexmenu plugin is not sponsored by anyone but I develop and support it for free during my spare time.
-If want to offer me a friendly beer (({{http://www.enjoytoz.it/images/uploads/Auld_Dubliner/tennents.jpg?60}})), you can consider to make a [[http://samuele.netsons.org/dokuwiki/doku.php?id=dokuwiki:plugins:indexmenu#donation|donation]].+If you want to offer me a friendly beer (({{https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Tennent%27s_77.JPG/180px-Tennent%27s_77.JPG}})), you can consider to make a [[http://samuele.netsons.org/dokuwiki/doku.php?id=dokuwiki:plugins:indexmenu#donation|donation]].
  
 ====Examples:====   ====Examples:====  
 |Root namespace. Expands all |''%%{{indexmenu>:}}%%'' | |Root namespace. Expands all |''%%{{indexmenu>:}}%%'' |
 +|Current namespace. Expands all |''%%{{indexmenu>.}}%%'' |
 |Current namespace. Show only current level, don't expand any nodes. |''%%{{indexmenu>.#1}}%%'' | |Current namespace. Show only current level, don't expand any nodes. |''%%{{indexmenu>.#1}}%%'' |
-|Parent namespace. Show parent namespace ("uplink") and current current level, don't expand any nodes. |''%%{{indexmenu>..:#1}}%%'' |+|Parent namespace. Show parent namespace ("uplink") and current level, don't expand any nodes. |''%%{{indexmenu>..:#1}}%%'' |
 |''wiki'' namespace, expand containing namespaces, not subnamespaces.\\ Using the themed Javascript indexmenu. |''%%{{indexmenu>:wiki#1|js}}%%'' | |''wiki'' namespace, expand containing namespaces, not subnamespaces.\\ Using the themed Javascript indexmenu. |''%%{{indexmenu>:wiki#1|js}}%%'' |
  
Line 59: Line 64:
 ====== Syntax ====== ====== Syntax ======
  
-Basic syntax usage:+**Basic syntax usage:**
  
 ^ Main                                                         ^ Options                                                       ^ ^ Main                                                         ^ Options                                                       ^
Line 66: Line 71:
  
 :!: All the syntax options can be easily accessed with the indexmenu picker in the [[:edit window]] [[:toolbar]]. :!: All the syntax options can be easily accessed with the indexmenu picker in the [[:edit window]] [[:toolbar]].
 +
 +
 +**Minimum syntax:** 
 +
 +''%%{{indexmenu>.}}%%'', ''%%{{indexmenu>:}}%%'' or ''%%{{indexmenu>|}}%%''
 +That means this ''%%{{indexmenu}}%%'' and this ''%%{{indexmenu>}}%%'' do not work.
  
  
Line 72: Line 83:
 Settings **before the "|"** separator: Settings **before the "|"** separator:
 ^Main ^Action ^Note| ^Main ^Action ^Note|
-^ //''ns''//     | //**Main namespace**// name. Index starts from here. Syntax complies with DokuWiki [[:namespaces#creating namespaces|namespaces]] paths.| "**.**" refers to the namespace of the page containing the indexmenu syntax and **not** to the current DokuWiki namespace context ((the namespace of the page displayed by a user who is navigating your site)) (see the **//context//** option for this feature). "**..**" or an empty value shows the root site namespace.|+^ //''ns''//     | //**Main namespace**// name. Index starts from here. Syntax complies with DokuWiki [[:namespaces#creating namespaces|namespaces]] paths.| "**.**" refers to the namespace of the page containing the indexmenu syntax and **not** to the current DokuWiki namespace context ((the namespace of the page displayed by a user who is navigating your site)) (see the **//context//** option for this feature). "**:**" or an empty value shows the root site namespace.|
 ^ //''#n''//             | **n** is a number that specifies how many namespace levels to display open under the //**main namespace**//.| If it's not defined then the whole tree, till the deeper node, will be open. If ''//0//'' or ''//1//'' it'll display only nodes under the main namespace. For example: "#2" will display "root:myns1:myns2" but will keep myns2 closed thus hiding "root:myns1:myns2:myns3". Optional.| ^ //''#n''//             | **n** is a number that specifies how many namespace levels to display open under the //**main namespace**//.| If it's not defined then the whole tree, till the deeper node, will be open. If ''//0//'' or ''//1//'' it'll display only nodes under the main namespace. For example: "#2" will display "root:myns1:myns2" but will keep myns2 closed thus hiding "root:myns1:myns2:myns3". Optional.|
-^ //''ns1[#n] %%...%% nsn[#n]''// | A list //**of optional namespaces**// inside the //**main namespace**//. Every namespace will be opened or closed at the specified //**n**// level. Syntax complies with DokuWiki [[:namespaces#creating namespaces|namespaces]].| If **n** is not defined then all namespaces are open, if ''//0//'' they are closed. "**.**" refers to the namespace of the page containing the indexmenu syntax and **not** to the current DokuWiki namespace context ((the namespace of the page displayed by a user who is navigating your site)) (see the **//context//** option for this feature). "**..**" or an empty value shows the root site namespace. Optional.|+^ //''ns1[#n] %%...%% nsn[#n]''// | A list //**of optional namespaces**// inside the //**main namespace**//. Every namespace will be opened or closed at the specified //**n**// level. Syntax complies with DokuWiki [[:namespaces#creating namespaces|namespaces]].| If **n** is not defined then all namespaces are open, if ''//0//'' they are closed. "**.**" refers to the namespace of the page containing the indexmenu syntax and **not** to the current DokuWiki namespace context ((the namespace of the page displayed by a user who is navigating your site)) (see the **//context//** option for this feature). "**:**" or an empty value shows the root site namespace. Optional.|
  
-Optional settings **after the "|"** separator:+Optional settings **after the "|"** separator (separated by spaces):
 ^Option ^Action ^Note| ^Option ^Action ^Note|
 ^ ''js'' \\ undo: ''nojs''          | JavaScript render method: the index is an expandable tree menu. Without the ''js'' option DokuWikis index renderer is used | Without //**n**//, all nodes are open, with it, nodes are open till //**n**// level.| ^ ''js'' \\ undo: ''nojs''          | JavaScript render method: the index is an expandable tree menu. Without the ''js'' option DokuWikis index renderer is used | Without //**n**//, all nodes are open, with it, nodes are open till //**n**// level.|
Line 87: Line 98:
 ^ ''msort[#meta]''   \\ undo: ''nomsort''  | Sort (only) pages by a custom [[:devel:metadata]] information. Without the ''#meta'' parameter, i.e. ''msort'', it looks for the custom sorting number specified with the ''%%{{indexmenu_n>N}}%%'' syntax  (see the below [[.indexmenu#metadata tag syntax]]).\\ With ''#meta'' parameter you can refer to the [[:devel:metadata#data structure|meta data structure]] (Array values are managed through the ":" separator, for example: ''msort#date:modified''). |By default, pages without metadata tag are sorted by page name (the default DokuWiki way), but you can override this behaviour adding also the tsort or dsort option in the indexmenu syntax. By default namespaces are **not** sorted, you need the **//nsort//** option for this.| ^ ''msort[#meta]''   \\ undo: ''nomsort''  | Sort (only) pages by a custom [[:devel:metadata]] information. Without the ''#meta'' parameter, i.e. ''msort'', it looks for the custom sorting number specified with the ''%%{{indexmenu_n>N}}%%'' syntax  (see the below [[.indexmenu#metadata tag syntax]]).\\ With ''#meta'' parameter you can refer to the [[:devel:metadata#data structure|meta data structure]] (Array values are managed through the ":" separator, for example: ''msort#date:modified''). |By default, pages without metadata tag are sorted by page name (the default DokuWiki way), but you can override this behaviour adding also the tsort or dsort option in the indexmenu syntax. By default namespaces are **not** sorted, you need the **//nsort//** option for this.|
 ^ ''hsort''   \\ undo: ''nohsort'' | Sort the headpages as defined by config setting [[config:startpage]] to the top |msort overrules hsort | ^ ''hsort''   \\ undo: ''nohsort'' | Sort the headpages as defined by config setting [[config:startpage]] to the top |msort overrules hsort |
-^ ''rsort''   \\ undo: ''norsort'' | Reverse the sorting of pages. |By default namespaces are **not** sorted, you need the **//nsort//** option for this. | +^ ''rsort''   \\ undo: ''norsort'' | Reverse the sorting of pages (change between ascending and descending). |By default namespaces are **not** sorted, you need the **//nsort//** option for this. | 
-^ ''nsort''   \\ undo: ''nonsort''Sort also namespaces according to page sort options. | To use in //addition// to the above sort options. tsort, dsort, msort, hsort apply only for namespaces when using [[#namespaces_title_and_link_headpages|headpages]]. rsort is applicable always together with nsort.  |+^ ''nsort''   \\ undo: ''nonsort''Also sort namespaces according to page sort options together with the pages (not grouped separately anymore since January 2024). | To use in //addition// to the above sort options. tsort, dsort, msort, hsort apply only for namespaces when using [[#namespaces_title_and_link_headpages|headpages]]. rsort is applicable always together with nsort.  
 +^ ''nogroup'' \\ undo ''group'' | If ''nsort'' is used, ''nogroup'' mixes namespaces and pages to sort them together | |
 ^ ''nons''   \\ undo: ''ns''  | Exclude namespaces nodes from index. It shows only the pages. | Without **//js//**, the closing **//n//** namespace option prevents to display nodes below the **//n//** namespace level.| ^ ''nons''   \\ undo: ''ns''  | Exclude namespaces nodes from index. It shows only the pages. | Without **//js//**, the closing **//n//** namespace option prevents to display nodes below the **//n//** namespace level.|
 ^ ''nopg''  \\ undo: ''pg''  | Exclude pages nodes from index. It shows only the namespaces. | All namespace nodes will link to the start pages (as defined by [[config:startpage]] setting) | ^ ''nopg''  \\ undo: ''pg''  | Exclude pages nodes from index. It shows only the namespaces. | All namespace nodes will link to the start pages (as defined by [[config:startpage]] setting) |
 ^ ''skipfile[+|=]/regexp/'' | Skip files matching the regexp. | ''skipfile**+**/../'' skips files defined with this regexp additional to [[#skip_files_in_index|global skip]] config. ''skipfile**=**/../'' replace the global skip config with regexp from this syntax. See the global config explanation for some regexp [[#skip_namespaces_in_index|examples]].| ^ ''skipfile[+|=]/regexp/'' | Skip files matching the regexp. | ''skipfile**+**/../'' skips files defined with this regexp additional to [[#skip_files_in_index|global skip]] config. ''skipfile**=**/../'' replace the global skip config with regexp from this syntax. See the global config explanation for some regexp [[#skip_namespaces_in_index|examples]].|
 ^ ''skipns[+|=]/regexp/'' | Skip namespaces matching the regexp. | Just like skipfile, but [[#skip_namespaces_in_index|namespaces]].| ^ ''skipns[+|=]/regexp/'' | Skip namespaces matching the regexp. | Just like skipfile, but [[#skip_namespaces_in_index|namespaces]].|
-| Next options are //only// available with //**js**// option. |||+| Next options are //only// available with //**js**// option -- with ''treeold''.\\ \\ **Default ''dTree'' based tree is shown. Deprecated. Will be changed in future to ''treenew''.** |||
 ^ ''max#n//[#m]//'' \\ undo: ''nomax''  | If initially closed, the node at //**n**// level will retrieve all its child nodes through the AJAX mechanism when opened for the first time. Optionally, the nodes after the //**n**// level can be retrieved with AJAX every //**m**// sublevels instead of in one go.| It affects the server loading and speeds up the loading of pages in DokuWiki with an high amount of pages. It works only in //**js**//. Cookie are automatically disabled, just like with //**nocookie**//. | ^ ''max#n//[#m]//'' \\ undo: ''nomax''  | If initially closed, the node at //**n**// level will retrieve all its child nodes through the AJAX mechanism when opened for the first time. Optionally, the nodes after the //**n**// level can be retrieved with AJAX every //**m**// sublevels instead of in one go.| It affects the server loading and speeds up the loading of pages in DokuWiki with an high amount of pages. It works only in //**js**//. Cookie are automatically disabled, just like with //**nocookie**//. |
 ^ ''maxjs#//n//''  \\ undo: ''nomaxjs''   | It sets how many js tree levels to render when page loads. Remaining nodes are rendered (slightly slower) only when they are open by users, by  //**optional namespaces**// option, by cookies or by //**navbar**// option. | Default //**n**// is 1 so that it will speed up the page loading, above all with an high amount of pages. It affects only the user-client CPU speed, not the webserver load. It works only in //**js**// | ^ ''maxjs#//n//''  \\ undo: ''nomaxjs''   | It sets how many js tree levels to render when page loads. Remaining nodes are rendered (slightly slower) only when they are open by users, by  //**optional namespaces**// option, by cookies or by //**navbar**// option. | Default //**n**// is 1 so that it will speed up the page loading, above all with an high amount of pages. It affects only the user-client CPU speed, not the webserver load. It works only in //**js**// |
 ^ ''id#[random|ns|//number//]''   \\ undo: ''id#random''     | [[wp>HTTP_cookie|Cookie]] Identifier for a js indexmenu where the previously opened/closed nodes by a user are stored. | Useful when a page is uncached and you like the tree state is stored in cookie. (See //**nocookie**// for disabling cookies.)  Default the option ''//id#random//'' is active, also when the option is not specified in the syntax. You can apply self a number as unique identifier for your indexmenu  ( e.g. ''//id#20//'' ) or let generate a number unique for requested namespace with ''//id#ns//''. Read the [[.:indexmenu#Js does not remember its previous state]] section. **ATTENTION:** ID must be unique for every indexmenu in your DokuWiki site or you'll get strange js behaviors. Tree state storage with cookie only in //**js**// | ^ ''id#[random|ns|//number//]''   \\ undo: ''id#random''     | [[wp>HTTP_cookie|Cookie]] Identifier for a js indexmenu where the previously opened/closed nodes by a user are stored. | Useful when a page is uncached and you like the tree state is stored in cookie. (See //**nocookie**// for disabling cookies.)  Default the option ''//id#random//'' is active, also when the option is not specified in the syntax. You can apply self a number as unique identifier for your indexmenu  ( e.g. ''//id#20//'' ) or let generate a number unique for requested namespace with ''//id#ns//''. Read the [[.:indexmenu#Js does not remember its previous state]] section. **ATTENTION:** ID must be unique for every indexmenu in your DokuWiki site or you'll get strange js behaviors. Tree state storage with cookie only in //**js**// |
 ^ ''nocookie''  \\ undo: ''cookie'' | Disable [[wp>HTTP_cookie|cookies]]. By default js indexmenu remember selected,open and closed nodes by user during navigation. With this option it doesn't remember them and the tree is blocked to its start status. | Tree state storage with cookie only in //**js**//| ^ ''nocookie''  \\ undo: ''cookie'' | Disable [[wp>HTTP_cookie|cookies]]. By default js indexmenu remember selected,open and closed nodes by user during navigation. With this option it doesn't remember them and the tree is blocked to its start status. | Tree state storage with cookie only in //**js**//|
-^ ''noscroll''   \\ undo: ''scroll''    | Disable the JavaScript scrolling feature when it don'fits the container width. It could solve visualization problems. | It works only in //**js**//|+^ ''noscroll''   \\ undo: ''scroll''    | Disable the JavaScript scrolling feature when it doesn'fit the container width. It could solve visualization problems. | It works only in //**js**//|
 ^ ''notoc''  \\ undo: ''toc''        | Disable the TOC-preview feature. | ToC preview only available in //**js**//| ^ ''notoc''  \\ undo: ''toc''        | Disable the TOC-preview feature. | ToC preview only available in //**js**//|
 ^ ''nomenu''  \\ undo: ''menu''       | Disable the contextmenu feature. | Context menu only available in //**js**//| ^ ''nomenu''  \\ undo: ''menu''       | Disable the contextmenu feature. | Context menu only available in //**js**//|
 +| \\ Next options are //only// available with //**js**// option -- with ''treenew''. \\ \\ **Temporary: extra option ''treenew'' shows a Fancytree based tree. Will become the default in the future.**  |||
 +^ ''max#n//[#m]//'' \\ undo: ''nomax''  | For the initially closed nodes, it will retrieve all its child nodes up to //**n**//th level through the AJAX mechanism. Optionally, the nodes after the //**n**//th level can be retrieved with AJAX every //**m**//th sublevels instead of per 1 level. The number of opened levels is set behind the namespace, see main settings above.| It affects the server loading and speeds up the loading of pages in DokuWiki with an high amount of pages. It works only in //**js**//. |
  
 +
 +===== Temporary multiple js trees =====
 +The js option uses so far the JavaScript [[http://www.destroydrop.com/javascripts/tree/|dTree]] menu for displaying the pages. Unfortunately, this tree is not maintained and changes are needed. **The old js tree is deprecated.** It can be requested with the ''treeold'', if the default setting is changed.
 +
 +To replace it, the JavaScript [[https://wwwendt.de/tech/fancytree/demo/|Fancytree]] menu is implemented. Use the option ''treenew'' to activate it. If the implementation appears to be stable, it will be come the default tree. You can already make it default by adding ''newtree'' to the ''defaultoptions'' setting in the Configuration Manager. 
  
 ===== Examples ===== ===== Examples =====
  
-A sample of an indexmenu JS index that could be used inside a navigation sidebar. Its initial status is blocked by the nocookie option, so, when the page is reloaded, it doesn't remember the open and closed nodes by the user.:+A sample of an indexmenu JS index that could be used inside a navigation sidebar. Its initial status is blocked by the nocookie option, so, when the page is reloaded, it doesn't remember the open and closed nodes by the user:
 <code> <code>
-{{indexmenu>..#1|js navbar nocookie}}+{{indexmenu>:#1|js navbar nocookie}}
 </code> </code>
  
 JS navigation index with "thread" theme where nodes after the third level are retrieved with Ajax every 2 sublevels. Pages are sorted by title and [[.indexmenu#Metadata tag syntax|custom sort]] number: JS navigation index with "thread" theme where nodes after the third level are retrieved with Ajax every 2 sublevels. Pages are sorted by title and [[.indexmenu#Metadata tag syntax|custom sort]] number:
 <code> <code>
-{{indexmenu>..#1|js#thread navbar max#3#2 tsort msort}}+{{indexmenu>:#1|js#thread navbar max#3#2 tsort msort}}
 </code> </code>
  
Line 120: Line 139:
 </code> </code>
  
-Js tree showing pages and namespaces both sorted by reverse title. For example,if "archive" contains stuff ("news","oldnews",etc) that you need to quickly organize by time, you could create numbered [[.:indexmenu#Namespaces title and link (headpages)|headpages]] for every namespace (i.e renaming "oldnews" in "news 2006", "news" in "news 2010" and so on) and sort them from new to older:+JS tree showing pages and namespaces both sorted by reverse title. For example, if "archive" contains stuff ("news", "oldnews", etc.) that you need to quickly organize by time, you could create numbered [[.:indexmenu#Namespaces title and link (headpages)|headpages]] for every namespace (i.erenaming "oldnews" in "news 2006", "news" in "news 2010" and so on) and sort them from new to older:
 <code> <code>
 {{indexmenu>:archive#1|js tsort nsort rsort}} {{indexmenu>:archive#1|js tsort nsort rsort}}
 </code> </code>
  
-Standard index showing the tree of the current context ((the namespace of the page displayed by a user who is navigating your site)) opened at the second level .+Standard index showing the tree of the current context((the namespace of the page displayed by a user who is navigating your site)) opened at the second level.
 <code> <code>
 {{indexmenu>playground#2|context}} {{indexmenu>playground#2|context}}
 </code> </code>
  
-Show all current namespace pages .+Show all current namespace pages.
 <code> <code>
 {{indexmenu>.:#1|context}} {{indexmenu>.:#1|context}}
Line 168: Line 187:
 in this way: in this way:
 <code> <code>
-{{indexmenu>..#1|msort}}+{{indexmenu>:#1|msort}}
 </code> </code>
 <file> <file>
Line 182: Line 201:
 Pages without sort number, like the last three pages, are sorted by page name as default, but you can force a different sort: Pages without sort number, like the last three pages, are sorted by page name as default, but you can force a different sort:
 <code> <code>
-{{indexmenu>..#1|tsort msort}}+{{indexmenu>:#1|tsort msort}}
 </code> </code>
 <file> <file>
Line 256: Line 275:
 Set this option with a DokuWiki page ID (i.e: ''tools:index''), then create the page (i.e: ''tools:index'') and put inside it an indexmenu syntax like this: Set this option with a DokuWiki page ID (i.e: ''tools:index''), then create the page (i.e: ''tools:index'') and put inside it an indexmenu syntax like this:
 <code> <code>
-{{indexmenu>..|navbar}}+{{indexmenu>:|navbar}}
 </code> </code>
 or or
 <code> <code>
-{{indexmenu>..|js navbar nocookie}}+{{indexmenu>:|js navbar nocookie}}
 </code> </code>
 You may also want to hide this page in any indexmenu trees with the [[.:indexmenu#skip files in index]] option. You may also want to hide this page in any indexmenu trees with the [[.:indexmenu#skip files in index]] option.
Line 312: Line 331:
 ====== How to install ====== ====== How to install ======
  
-Search and install it in the [[plugin:Extension]] manager or download and unpack it into ''lib/plugins'' folder.+Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.
  
 Alternative download link: http://samuele.netsons.org/dokuwiki/media/indexmenu.zip Alternative download link: http://samuele.netsons.org/dokuwiki/media/indexmenu.zip
Line 328: Line 347:
 ==== Github changelog ==== ==== Github changelog ====
  
-{{rss>https://github.com/samuelet/indexmenu/commits/master.atom date}}+{{rss>https://github.com/samuelet/indexmenu/commits/master.atom 10 date}}
  
- 
-==== Release changelog ==== 
- 
-  * **2014-08-01** 
-      * Default options can be configured in Config Manager for whole wiki 
-      * Supports nolatin pagenames better 
-      * remove more empty nodes (only with indexmenu indexer, which is used when one of sort options added) 
-      * contextmenu can be translated as well 
- 
-  * **2013-04-24 Version 5.0**: 
-            * Reformat of all code to Dokuwiki code style 
-            * Rewrite all javascript to jQuery instead of old js api (includes improvements from [[tindexmenu]] plugin) 
-            * Added a new toolbar wizard 
-            * Used Dokuwikis javascript include mechanism 
-            * add ''hsort'' for sorting [[config:startpage]] pages to top of listing 
-            * Rewrite the ajax stuff into action plugin (not theme handling stuff) 
-            * Change configuration via menu js files to one file. 
-            * add option ''nomenu'' 
-            * Improved support for [[config:useheading]] option. Page titles are //only shown// when useheading is 'always' or 'navigation'. - by [[user>lupo49]] 
-            * Added syntax option to add ''skipfile+/regexp/'' and ''skipns+/regexp/''. Using ''+'' add regexp parallel to global config, using ''='' replaces the global config. 
-            * Adding curid span like DokuWiki performs on internal links. 
-            * Fixed: When only had indexmenu syntax in sidebar, in js rendered index the backup index wasn't hidden. 
-            * Fixed: Ajax completion supports Korean characters too. - by [[user>Samuele]] 
- 
-  * **2009-08-29 Version 4.6**: 
-            * :!: //New Feature//: Namespace declaration complies with DokuWiki [[:namespaces#creating namespaces|namespaces]]. **Important before upgrading from previous versions**: according to the new DokuWiki syntax, a simple //main namespace// without relative declaration prefix (i.e: "playground") doesn't refer anymore to the subnamespace in the root namespace but in the **current** namespace. To refer to the root namespace, you need to prepend the ":" declaration to it. 
-            * //New Feature//: Added the //context// option. It resolves relative requested namespaces starting from the current user location instead of the page containing the indexmenu syntax. 
-            * :!: //New Feature//: Changed skip_file and skip_index syntax to use DokuWiki ID instead of system paths. Thanks to Dmitry Katsubo. 
-            * //New Feature//: Metatada titles are not rendered when recursively building the indexmenu tree. This will speed up the page loading when cache expires, but could not display the heading title for nodes without metadata information. 
-            * //New Feature//: Added the nojs button in the edit toolbar and toolbar CSS classes. 
-            * //New Feature//: The right JS context menu is closed by any document click. Thanks to Urban. 
-            * //Bug//: Fixed a bug which prevents page caching when it contains only indexmenu syntax. 
-            * //Bug//: Disable JS indexmenu cookies in preview mode. 
-            * //Bug//: Fixed an ACL issue. 
-            * //Bug//: Fixed UTF8 TOC preview bug. 
  
  
Line 383: Line 367:
 When the ''js'' option is used without //**#theme**// option, the JavaScript indexmenu will use the default theme. When the ''js'' option is used without //**#theme**// option, the JavaScript indexmenu will use the default theme.
  
-Inside the Admin panel on the Indexmenu Utilities page you can manage the available themes on your installation and install themes from the public indexmenu repositoryTo download themes directly into your DokuWiki serveryou need that the indexmenu images directory is writable by the web user. +The indexmenu has already a couple of themes included. Adding another theme is simply as adding another folder with the theme name filled with the relevant files. (As long as it is still available you can use the admin page for installing themes)If you share your themewe can add it to the collection as wellPlease offer the files by opening an issue at [[https://github.com/samuelet/indexmenu/issues|GitHub]].
-  +
-Instead of installing you can also simply download a theme into your PC with the ''download'' link, and then manually install it.+
  
 The JavaScript tree menu is based on [[http://www.destroydrop.com/javascripts/tree/|dTree]] code. The JavaScript tree menu is based on [[http://www.destroydrop.com/javascripts/tree/|dTree]] code.
Line 414: Line 396:
 Use your theme with **''js#mytheme''** syntax. Use your theme with **''js#mytheme''** syntax.
  
-You can also customize a theme style by creating its [[.:indexmenu#Custom theme CSS style|own css style]].+You can also customize a theme style further by creating its [[#Custom theme CSS style|own css style]] as ''style.css'' file in theme folder next to the images.
  
 The default icons file format is GIF, but PNG and JPG are also supported. To use them in place of GIF, you have to name your theme directory with the appropriate image extension. For example: ''mytheme**.png**/base.png''. Default image size is 18x18px. Other sizes are possible, but requires additional css. The default icons file format is GIF, but PNG and JPG are also supported. To use them in place of GIF, you have to name your theme directory with the appropriate image extension. For example: ''mytheme**.png**/base.png''. Default image size is 18x18px. Other sizes are possible, but requires additional css.
Line 466: Line 448:
 ====== CSS Style ====== ====== CSS Style ======
  
-You can edit the [[https://github.com/samuelet/indexmenu/blob/master/style.css|style.css]] in order to globally customizing the tree menus style.+You can override styling from the [[https://github.com/samuelet/indexmenu/blob/master/style.css|style.css]] in order to globally customizing the tree menus style. Therefore you create (or extend) ''[wiki directory]/conf/userstyle.css'' with your own css. (See also [[devel:css]]). 
 + 
 Some styles are: Some styles are:
 ^Tag                  ^Comment                                        ^Mode  ^ ^Tag                  ^Comment                                        ^Mode  ^
Line 482: Line 466:
 ===== Custom theme CSS style ===== ===== Custom theme CSS style =====
  
-If you want to apply a different style from the global one to a js theme, you need to create a ''style.css'' file like this inside the theme directory you want customize and use its name as subclass. +If you want to apply a different style then the global one to a js theme, you need to create a ''style.css'' file like this inside the theme directory you want customize and use its name as subclass. 
  
-FIXME check if this example is still up-to-date + 
-<code css>+FIXME check if this example is still up-to-date. For example you could add for the 'thread' theme: 
 +<code css lib/plugins/indexmenu/images/thread/style.css>
 /*Custom style for the thread theme*/ /*Custom style for the thread theme*/
  
Line 498: Line 483:
 </code> </code>
  
-Note: in about June 2014 the css of some ''.dtree'' related stylesheet lines is changed. This can break your styling. Please use the latest version of indexmenu, and review your styles. See [[https://github.com/samuelet/indexmenu/commit/d8d19c6bf2179113cda7f2e567f1c424d6282950|CSS changeset]].+Existing example for 'human.png' theme: ''[[https://github.com/samuelet/indexmenu/blob/master/images/human.png/style.css|style.css]]''
 + 
 +Note: in about June 2014 the css of some ''.dtree'' related stylesheet lines is changed. This can break your styling. Please use the latest version of indexmenu, and review your styles. A look at the [[https://github.com/samuelet/indexmenu/commit/d8d19c6bf2179113cda7f2e567f1c424d6282950|CSS changeset]] could be useful.
  
  
Line 519: Line 506:
   - To have the last indexmenu version installed. For example check that its date is the same of [[.:indexmenu#changelog]] last release through the info button in plugin manager.   - To have the last indexmenu version installed. For example check that its date is the same of [[.:indexmenu#changelog]] last release through the info button in plugin manager.
   - To have used a correct [[.:indexmenu#syntax]].   - To have used a correct [[.:indexmenu#syntax]].
 +  - To have purged CSS and JavaScript and more as cached by DokuWiki. Go to the [[plugin:config|Configuration Manager]] and just resave, to refresh this caching.
   - To have purged your browser cache. Use ''Ctrl + R'' or ''Ctrl + F5''    - To have purged your browser cache. Use ''Ctrl + R'' or ''Ctrl + F5'' 
-  - To have purged server cache following the [[:caching#purging_the_cache]] instructions.:!: This is an important step. 
-  - To have purged CSS and JavaScript as cached by DokuWiki. Go to the Configuration Manager and just resave, to refresh this caching. 
   - When you try the javascript version of the indexmenu and it fails, please disable all the self-installed plugins check if now works. Nextly, you enable the plugins one-by-one to find the bad one.   - When you try the javascript version of the indexmenu and it fails, please disable all the self-installed plugins check if now works. Nextly, you enable the plugins one-by-one to find the bad one.
 If problem still persists, please, report the bug with details of your configuration in [[.:indexmenu#reporting_feature_requests_and_bugs]] section. If problem still persists, please, report the bug with details of your configuration in [[.:indexmenu#reporting_feature_requests_and_bugs]] section.
  
 +==== I see nothing in sidebar when I login like user ====
  
 +Check your ACL settings, please note that the user needs at least READ permissions to the page "sidebar".
 ==== DokuWiki is getting slow ==== ==== DokuWiki is getting slow ====
  
Line 539: Line 527:
 I have in my sidebar the following code  I have in my sidebar the following code 
 <code> <code>
-{{indexmenu>..#1| js navbar id#random }}+{{indexmenu>:#1| js navbar id#random }}
 </code> </code>
  
Line 551: Line 539:
 > When you have a sidebar defined a sidebar, but it is used as normal page too e.g. an index page, it is recommended to create a separate page for the index page. A separate page prevents displaying same index twice so they can not conflict anymore. The index page may have the same syntax options as the sidebar, but when you use id with a self defined id#identifier, your identifier must be different. > When you have a sidebar defined a sidebar, but it is used as normal page too e.g. an index page, it is recommended to create a separate page for the index page. A separate page prevents displaying same index twice so they can not conflict anymore. The index page may have the same syntax options as the sidebar, but when you use id with a self defined id#identifier, your identifier must be different.
  
 +>> A workaround to get rid of the warning message, is to use the [[:plugin:nosidebar|Nosidebar plugin]] to remove the sidebar on the sidebar page.
  
 ==== Can I sort the tree nodes (filename or page heading or creation time)? ==== ==== Can I sort the tree nodes (filename or page heading or creation time)? ====
Line 586: Line 575:
 You could need a browser cache purging. You could need a browser cache purging.
  
 +The name of the graphic is no longer ''scrollleft.gif'', but now ''toc_bullet.gif''
 +To ensure that the changes are not lost during an update, it is better to make an entry in ''/dokuwiki/conf/userstyle.less''
 +For example, the graphic disappears as follows: 
 +''.dtree .indexmenu_tocbullet {background: transparent;}'' 
 +Or you can insert another graphic as follows: 
 +''.dtree .indexmenu_tocbullet {background: transparent url(path_to_the_graphic/graphic.gif) no-repeat scroll;}''
 ==== About ACLs ==== ==== About ACLs ====
  
Line 660: Line 654:
 ==== I'm using "useheading" but the tree displays namespace and page names rather than headings ==== ==== I'm using "useheading" but the tree displays namespace and page names rather than headings ====
  
-The text used for the nodes in the tree is retrieved from DokuWiki's [[:metadata]] store.  DokuWiki uses a background process triggered by a web-bug to updating this metadata.((See [[:indexer]].))  If you added wiki pages/namespaces via the filesystem (rather than creating them in DokuWiki,) and that page/namespace has never been viewed, the metadata will not have been generated.+The text used for the nodes in the tree is retrieved from DokuWiki's [[:metadata]] store.  DokuWiki uses a background process triggered by a web-bug to updating this metadata.((See [[:taskrunner]].))  If you added wiki pages/namespaces via the filesystem (rather than creating them in DokuWiki,) and that page/namespace has never been viewed, the metadata will not have been generated.
  
  
plugin/indexmenu.1467788003.txt.gz · Last modified: 2016-07-06 08:53 by rnck

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki