====== Includes and Hiding Elements ====== [[doku>template:mikio|Mikio Template]] ===== 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 navbar * ''header'' : content include below the navbar but above the page content * ''contentheader'' : content to include above the page content * ''contentfooter'' : content to include below the page content * ''sidebarheader'' : content to include above the left sidebar content * ''sidebarfooter'' : content to include below the left sidebar content * ''rightsidebarheader'' : content to include above the right sidebar content * ''rightsidebarfooter'' : content to include below the right sidebar content * ''footer'' : content to include in the footer * ''bottomfooter'' : 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 navbar * ''breadcrumb-prefix'' breadcrumb prefix * ''breadcrumb-sep'' breadcrumb seperator * ''hero'' 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 navbar * ''navbar'' : the main navigation bar * ''header'' : content below the navbar but above the page content * ''hero'' : the page hero bar * ''contentheader'' : content above the page content * ''contentfooter'' : content below the page content * ''sidebarheader'' : content above the left sidebar content * ''sidebarfooter'' : content below the left sidebar content * ''rightsidebarheader'' : content above the right sidebar content * ''rightsidebarfooter'' : content below the right sidebar content * ''footer'' : content in the footer * ''bottomfooter'' : content below the footer To hide the topheader, navbar and hero, you would use the macro ''~~hide-parts topheader navbar hero~~'' ===== Include Pages ===== [[doku>plugin:include|Include Plugin]] ==== 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 [[plugin:tag]] |required | ^ [flags] | flags delimited by ''&'', see [[#Configuration and Flags|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 [[plugin: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 [[plugin:discussion]] plugin) | ^ ''showlinkbacks'' | ''linkbacks''/''nolinkbacks'' | Show/hide number of linkbacks in the page footer (requires the [[plugin:linkback|linkback]] or [[plugin:backlinks2]] plugin) | ^ ''showtags'' | ''tags''/''notags'' | Show/hide tags in the page footer (requires the [[plugin: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''), [[plugin:indexmenu#metadata_tag_syntax|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 [[:entities|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 [[https://regex101.com/|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@ | use a calculated date instead of today in date macros | in **''@DATE@''** 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 :: eg. ''10:15: birthdays'' for the 15th of october. {{page>@USER@:message}} includes the page ''message'' from the namespace of the logged in user {{page>foo@DATENWEEK@@YEAR@:@WEEK@}} includes the page from the namespace ''foo'' with next week's date e.g. foo2012:01 for the 27th of december 2011