Table of Contents
Includes and Hiding Elements
Include Pages
The following pages can be either html files in the root of the template or a page in the namespace. Namespace pages take priority.
topheader
: content to include above the navbarheader
: content include below the navbar but above the page contentcontentheader
: content to include above the page contentcontentfooter
: content to include below the page contentsidebarheader
: content to include above the left sidebar contentsidebarfooter
: content to include below the left sidebar contentrightsidebarheader
: content to include above the right sidebar contentrightsidebarfooter
: content to include below the right sidebar contentfooter
: content to include in the footerbottomfooter
: content to include below the footer
Include Images
The following images can be used to replace content in the template. Images can be in `TEMPLATE_ROOT/images/`, `TEMPLATE_ROOT/themes/THEME/images/`, or in the namespace. Images can be either png, jpg, gif or svg.
logo
: site logo in the navbarbreadcrumb-prefix
breadcrumb prefixbreadcrumb-sep
breadcrumb seperatorhero
hero image for hero element
Hiding Elements
Mikio now supports hiding elements using the ~~hide-parts (parts)~~
macro. Each element within the hide-parts macro is required to be separated by spaces. Currently, the following parts are supported:
topheader
: content above the navbarnavbar
: the main navigation barheader
: content below the navbar but above the page contenthero
: the page hero barcontentheader
: content above the page contentcontentfooter
: content below the page contentsidebarheader
: content above the left sidebar contentsidebarfooter
: content below the left sidebar contentrightsidebarheader
: content above the right sidebar contentrightsidebarfooter
: content below the right sidebar contentfooter
: content in the footerbottomfooter
: content below the footer
To hide the topheader, navbar and hero, you would use the macro ~~hide-parts topheader navbar hero~~
Include Pages
Examples
{{page>wiki:syntax#Tables}}
will include the section about tables of the syntax page.
{{namespace>project_foo}}
will include all pages in the project_foo
namespace.
{{page>blog:mypage&tags&comments}}
will include the page blog:mypage
and show the tags from the Tag plugin and the number of comments from the discussion plugin. Both plugins need to be installed for this example.
{{tagtopic>testtag}}
will include all pages with the tag testtag
, the Tag plugin needs to be installed for this example.
Syntax
Simply enclose the ID of the page to be included in double curly brackets:
{{page>[id]&[flags]}} {{section>[id]#[section]&[flags]}} {{namespace>[namespace]#[section]&[flags]}} {{tagtopic>[tag]&[flags]}}
[id] | page ID of the page to include; some macros are possible; shortcuts are resolved (: , . , .. ) | required |
---|---|---|
[section] | limits the included page to a specific section and its subsections | optional; default is the whole page , this can be used with namespace (if matches) |
[tag] | include pages with tag topic tag, requires tag | required |
[flags] | flags delimited by & , see flags | optional |
The plugin offers four syntaxes, {{page>...}}
, {{section>...}}
, {{namespace>...}}
and {{tagtopic>...}}
.
Section is aimed more at including sections, page at including whole pages and namespace at including whole namespaces. Tagtopic includes all pages with a tagtopic
tag
.
Configuration and Flags
The plugin can be configured in the DokuWiki configuration manager available in the admin menu. These settings also affect the blog plugin which uses the include plugin to generate the blog page. For most settings there are flags that allow to override the setting. Some features are only available as flag.
Configuration option | Flags | Description |
---|---|---|
noheader | noheader / (show )header | Don't display the header of the inserted section |
firstseconly | firstsec (tion )only / fullpage | Display only the first section of the included page |
readmore | readmore /noreadmore | Show “read more” link in case of firstsection only |
showtaglogos | - | Show/hide an image for the first tag (if the page has tags) |
showfooter | footer /nofooter | Show/hide page footer below the included page |
showlink | link /nolink | Makes the first headline of a included page/section a link to the included page/section |
showpermalink | permalink / nopermalink | Show/hide a permalink to the included page in the page footer |
showdate | date /nodate | Show/hide creation date of the page in the page footer |
showmdate | mdate /nomdate | Show/hide modification date of the page in the page footer |
showuser | user /nouser | Show/hide user name of the page creator in the page footer |
showcomments | comments /nocomments | Show/hide number of comments in the page footer (requires the discussion plugin) |
showlinkbacks | linkbacks /nolinkbacks | Show/hide number of linkbacks in the page footer (requires the linkback or backlinks2 plugin) |
showtags | tags /notags | Show/hide tags in the page footer (requires the tag plugin) |
showeditbtn | editbtn or editbutton /noeditbtn or noeditbutton | Show/hide edit buttons (section edit buttons, edit button below the included page) |
doredirect | redirect /noredirect | Redirect back to original page after an edit |
usernamespace | - | Namespace for user pages (see showuser configuration) (default user ) |
doindent | indent /noindent | Indent included pages relative to the section of the page they get included in |
linkonly | linkonly /nolinkonly or include_content | Display only a link instead of the whole page content |
title | title /notitle | Show the title instead of the page id |
pageexists | pageexists / nopageexists | Only list page ids of existing pages (see existlink ) |
- | existlink | Display a link and do so only if page page-id exists (combination of linkonly and pageexists ) |
parlink | parlink /noparlink | (Don't) put the link into a paragraph environment (for inline lists) |
order | order=OPTION | Ordering criteria for namespace includes, possible options: page ID (id ), title (title ), date created (created ), date modified (modified ), indexmenu sort order (indexmenu ), custom sort order using the {{include_n>[number]}} on the pages that are included similar to the indexmenu tags (custom ). |
rsort | rsort /sort | Reverse the sort order in namespace includes. |
depth | depth=DEPTH | The maximum depth of subnamespaces of which pages are included in namespace includes, default is 1 for only the specified namespace, 0 is for unlimited depth. |
- | inline | Don't close/open sections when including a page. This flag should be used when the include syntax is used inside other syntax elements like lists or tables or inside other plugin syntax. |
- | beforeeach=ENTITY / aftereach=ENTITY | Display an entity before/after each included page. The entity is printed outside the section/include environment, this is mainly for adding custom HTML code (when the text isn't recognized as entity it is directly displayed but escaped so you can't directly use HTML code here). |
safeindex | - | Don't index metadata of included pages that are non-public. This can cause problems with other plugins that use the metadata index and can be safely disabled in wikis where the permissions of the included pages match the permissions of the parent pages. |
- | exclude=/REGEX/ | Regular expression to exclude certain pages, will match on full page ID. E.g. to exclude ns:page_name use /ns:page_name/ as value. Use a regex tester to debug complicated patterns. |
Examples:
{{page>concept&firstseconly&footer}} {{page>mypage&noindent}} {{namespace>myns&order=modified}} {{namespace>myns&exclude=/myns:subns:.+|myns:page/}}
Macros
Simple macros are possible to serve a page on a per user or per date base. These are:
@USER@ | username |
---|---|
@NAME@ | full name of user |
@GROUP@ | first group the user belongs to |
@YEAR@ | 4-digit year |
@MONTH@ | 2-digit month |
@WEEK@ | 2-digit ISO week number |
@DAY@ | 2-digit day |
@DATE<expr>@ | use a calculated date instead of today in date macros |
<expr> in @DATE<expr>@
can be one of:
PYEAR | previous year |
---|---|
NYEAR | next year |
PMONTH | previous month |
NMONTH | next month |
PWEEK | previous week |
NWEEK | next week |
YESTERDAY | yesterday's date |
TOMORROW | tomorrow's date |
Examples:
{{page>@MONTH@:@DAY@:birthdays}}
includes the page birthdays
in namespace <month>:<day>: eg. 10:15: birthdays
for the 15th of october.
{{page>@USER@:message}}
includes the page message
from the namespace <user> of the logged in user
{{page>foo@DATENWEEK@@YEAR@:@WEEK@}}
includes the page <weekno> from the namespace foo<year>
with next week's date e.g. foo2012:01 for the 27th of december 2011