<catlist namespace:namespace: -excluPage:“namespace:namespace:[a]”>
Note: regex needs to incl. the path infomation to the given namespace
This is an old revision of the document!
Compatible with DokuWiki
"Frusterick Manners", Detritus, Elenor Of Tsort, Greebo
This plugin lists pages and namespaces recursively as a multilevelled list. You can exclude pages, namespaces and their elements with regex. There are multiple options to personalize headlines and links. Elements can be sorted and put in columns. New pages can be quickly created in a given namespace with Add page...
buttons.
Legend: [needed]
, (optional)
<catlist (namespace:) -option1 -option2...>
If namespace is not provided (eg. only .:
), the namespace of current page is used by default.
Relative (.:ns
) and parent (ns1:..:ns2
) namespaces can be used.
Display options | |
---|---|
[Default] -displayList | Display with <ul> and <li> . Render is like on the first screenshots above. |
-displayLine | Display pages and namespaces into a single line. The content of namespaces are warped with [ and ] . Warning there is some display bugs with it. |
-noNSInBold | Don't display namespaces and head in bold (with <strong> ) |
-columns:[0-∞] | Split the list into a certain number of columns. Uses the modern CSS features column-count . [Default 0] |
Exclude options (can be used multiple time) | |
-exclude:{page1 ns1: page2 …} | Exclude a list of pages/namespaces based on exact ids relative to the listed namespace (: cannot be ignored on namespaces id). Not implemented yet. |
-excluPage or -excluPage:“regex” | Exclude pages that match with regex if provided; otherwise exclude all pages.1) |
-excluns(:“regex”) | Exclude namespaces that match with regex if provided; otherwise exclude all namespaces |
-exclunsall(:“regex”) | Exclude all content of subnamespaces that match with regex if provided; otherwise don't show content of subnamespaces |
-exclunspages(:“regex”) | Exclude pages of subnamespaces that match with regex if provided; otherwise exclude all pages of subnamespaces |
-exclunsns(:“regex”) | Exclude subnamespaces of subnamespaces that match with regex if provided; otherwise exclude all subnamespaces of subnamespaces |
Note : don't add delimiters to regex, the delimiter is / |
|
[Default] -excludeOnID | Exclusion based on page IDs (namespace:subnamespace:page ) |
-excludeOnName | Exclusion based on name, without namespaces (page ) |
-excludeOnTitle | Exclusion based on the first title of the page (The Page ) |
-maxDepth:depth | Don't recurse deeper than depth |
Headline | |
-noHead | Don't display headline |
-smallHead | Display headline into a simple <span> , not into a title |
-noLinkStartHead | Don't add link to the start page of listed namespace |
-h[1-5] | Display headline into a title of the specified level [Default -h1] |
-titleHead:“Title” | Replace startpage title of listed namespace by specified Title |
Namespace heads | |
-noNSHeadTitle | Don't use the title of start pages for namespace heads. Imply -nsLinks:none . |
-nsLinks: none|auto|force | Namespace links : disable, automatically detect the start page, or force links even if the start page doesn't exist. ACLs always prevails. [Default auto] |
Create page buttons options (takes into account user rights) | |
-noAddPageButton | Don't display Add page… button for listed namespace |
-addPageButtonEach | Display Add page… button for each namespace |
Default : shows an Add page… button only for listed namespace. If you want Add page… buttons only for subnamespaces, use both options. |
|
Sort options | |
-sortAscending | Ascending Sort (alphabetically, by ID) |
-sortDescending | Descending Sort |
default_sort | Default sort order. none (filesystem sorting, by default), ascending , descending |
nocache | Disable the cache on pages where catlist is used |
hide_index | Don't show index pages, namely pages which are used as main page (title and link) for a namespace in catlist. Enabled by default. |
index_priority | Priority order of pages used as index pages. Combination of start , inside and outside . [Default start,outside ]Example with the namespace foo:bar: :start ≡ foo:bar:<start> outside ≡ foo:bar inside ≡ foo:bar:bar |
hide_acl_nsnotr | Hide namespaces for which the user doesn't have ACL Read permission. Disabled by default (entry is shown, but no link). |
show_acl | Ignore ACLs (show everything, regardless of the user) and show user permissions for each item. |
To illustrate index_priority
: if DokuWiki internal link would use index_priority
, the default value would be start,inside,outside
.
It is recommended to use the nocache
global option or to add the NOCACHE
directive if Add page…
buttons are used, in order to force rescan of the namespace after creating a page.
You want to exclude all page in listed namespace (mynamespace
) except mypage1
and mypage2
but you don't want to exclude pages in subnamespaces. It's a little bit hard in regex… I will simplify things like this but in the meantime, here is the solution :
-excluPage:"mynamespace:[^:]*(?<!mypage1|mypage2)$"
You can stylize the columns of the -columns:
option by a small CSS code :
<html><style> .catlist_columns { -webkit-column-rule: 1px solid #BBB; -moz-column-rule: 1px solid #BBB; column-rule: 1px solid #BBB; } </style></html>
Here are the CSS classes you can use to modify the appearance :
catlist-head
: the strong
or span
of the headlinecatlist-nshead
: the strong
or span
of namespace headscatlist-nslist
: ul
of namespace sub-listscatlist-ns
: li
that warp namespace sub-listscatlist-page
: li
that warp page linkscatlist_addpage
: li
that warp Add page…
buttonsSearch and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually. Alternatively, install from http://dev.xif.fr:7979/catlist/.
Source code is available on GitHub.
-noLinkStartHead
now works.txt
-maxDepth
option-noNSHeadTitle
-nsLinks
option and deprecated -forceLinks
.index_priority
and hide_index
global options<catlist :>
)maxDepth
nocache
option addedhide_acl_nsnotr
optionshow_acl
optionuserewrite=2
Refer to the GitHub issue tracker.
Help is welcome !
Please send me an e-mail at xcodexif [at] xif [dot] fr
Option list, for example-excluPage
: The syntax is not easy to see: “(”, “{”, since sometimes part of syntax, sometimes just an opinion. Trust it's of use and right gotten. — Samana Johann 2018-08-16 10:16
<catlist namespace:namespace: -excluPage:“namespace:namespace:[a]”>
Note: regex needs to incl. the path infomation to the given namespace