(:description PmWiki Page Directives:)(:Summary: Directives to specify page titles, descriptions, keywords, and display:)(:Keywords description, keywords, markup, header, redirect:)
PmWiki uses a number of directives to specify page titles, descriptions, page keywords, and control the display of various components.
Directive keywords are not case sensitive, e.g. Description, description, and DESCRIPTION are equivalent.

[[#attachlist]]
:[@(:attachlist:)@]:
->Shows a list of attachments of the current group or page, depending on whether attachments are organised per group or per page. The attachlist is displayed at the foot of the [[uploads]] page form.
->The parameter to [=(:attachlist:)=] always resolves to a pagename. The directive then displays all of the attachments currently available for that page.

::Options: [@(:attachlist NAME:)@] shows a list of attachments of the group or page NAME. 
-->[@(:attachlist ext=xxx:)@] specifies an extension for filtering by type of file. 
-->[@(:attachlist *:)@] shows the uploads directory and permits browsing of all uploaded files by directory (''will not work if $EnableDirectDownload is set to 0'').

[[#description]]
:[@(:description text:)@]:Descriptive text associated with the page.  (Generates a [@<meta name='description' content='...' />@] element in the page output.)

[[#keywords]]
:[@(:keywords word1, word2, ...:)@]:Identifies keywords associated with the page.  These are not displayed anywhere, but are useful to help search engines locate the page.  (Essentially, this generates a [@<meta name='keywords' content='...' />@] element in the output.)

[[#linebreaks]]
:[@(:linebreaks:)@], [@(:nolinebreaks:)@]: Honors any newlines in the markup; i.e., text entered on separate lines in the markup will appear as separate lines in the output.  Use [@(:nolinebreaks:)@] to cause text lines to automatically join again.

[[#linkwikiwords]]
:[@(:linkwikiwords:), (:nolinkwikiwords:)@]: Enables/disables WikiWord links in text. Note, this setting requires WikiWords to be enabled, see $EnableWikiWords. See also $LinkWikiWords.

[[#markup]]
:[@(:markup:) ... (:markupend:)@] or [@(:markup:)@][@[=...=]@]: Can be used for markup examples, showing first the markup and then the result of the markup.  

::Options: [@(:markup class=horiz:)@] will show the markup side by side instead of one upon the other.
-->[@(:markup caption='...':)@] adds a caption to the markup example.
-->[@(:markupend:)@] is not required when using [@(:markup:)@] [@[=...=]@].

->''Note'' that the placement of newlines is very important for this markup.  If you are using the [@[=...=]@] option then the opening [@[=@] MUST occur on the same line as the [@(:markup:)@].  If you are using the full [@(:markup:) ... (:markupend:)@] form then your markup code must appear AFTER a newline after the initial [@(:markup:)@].

[[#message]]
:[@(:messages:)@]: Displays [[PmWiki/LayoutVariables#MessagesFmt|messages]] from PmWiki or recipes, for instance from editing pages.


[[#noaction]]
:[@(:noaction:)@]: Turns off the section of the skin marked by <!--PageActionFmt--> thru <!--/PageActionFmt-->.  In the pmwiki skin, this turns off the display of the actions at the top-right of the page (other skins may locate the actions in other locations). The actions at the bottom of the page are still available.

[[#nogroupheader]]
:[@(:nogroupheader:)@]:
:[@(:nogroupfooter:)@]: Turns off any groupheader or groupfooter for the page.  (See [[GroupHeaders]].)

[[#noheader]]
:[@(:noheader:), (:nofooter:)@]: 
:[@(:noleft:), (:noright:), (:notitle:)@]: If supported by the [[skin(s)]], each of these turns off the corresponding portion of the page.

[[#redirect]]
:[@(:redirect PageName:)@]: Redirects to another wiki page.
:[@(:redirect PageName#anchor:)@]: Redirects to an [[PmWiki/Links#anchors|anchor]] within a page
:[@(:redirect PageName status=301 from=name quiet=1:)@]:Redirects the browser to another page, along with a redirect message.  For security reasons this only redirects to other pages within the wiki and does not redirect to external urls.  The [@status=@] option can be used to return a different HTTP status code as part of the redirect.  The [@from=@] option limits redirects to occuring only on pages matching the wildcarded ''name'' (helpful when [@(:redirect:)@] is in [[include other pages|another page]]). The [@quiet=1@] option allows the target page not to display a link back to the original page ($EnableRedirectQuiet variable should be set to 1).

[[#spacewikiwords]]
:[@(:spacewikiwords:), (:nospacewikiwords:)@]:
->Enables/disables automatic spacing of WikiWords in text.

[[#title]]
:[@(:title text:)@]: Sets a page's title to be something other than the page's name.  The title text can contain apostrophes and other special characters. If there are multiple titles in a page, the last one encountered wins (see also $EnablePageTitlePriority about how to change it).

>>faq<< [[#faq]]
Q: Can I get [@(:redirect:)@] to return a "moved permanently" (HTTP 301) status code?
A: Use [@(:redirect PageName status=301:)@].

Q: Is there any way to prevent the "redirected from" message from showing at the top of the target page when I use [@(:redirect:)@]?
A: From version 2.2.1 on, set in config.php @@$EnableRedirectQuiet=1;@@ and in the page @@[=(:redirect OtherPage quiet=1:)=]@@ for a quiet redirect.

Q: Is there any method for redirecting to the equivalent page in a different group, i.e. from BadGroup/thispage => GoodGroup/thispage using similar markup to (:redirect Goodgroup.{Name}:)?
A:
->[=(:redirect Goodgroup.{$Name}:)=] works if you want to put it in one page. 

->If you want it to work for the entire group, put [=(:redirect Goodgroup.{*$Name}:)=] into Badgroup.GroupHeader - however, that only works with pages that really exist in Goodgroup; if you visit a page in Badgroup without a corresponding page of the same name in Goodgroup, instead of being redirected to a nonexistant page, you get the redirect Directive at the top of the page.

->With [=(:if exists Goodgroup.{*$Name}:)(:redirect Goodgroup.{*$Name}:)(:ifend:)=] in Badgroup.GroupHeader you get redirected to Goodgroup.Name if it exists, otherwise you get Badgroup.Name without the bit of code displayed.

Q: How can a wiki enable linebreaks by default, i.e. without having the directive [@(:linebreaks:)@] in a page or in a GroupHeader?
A: Add to config.php such a line:\\
@@$HTMLPNewline = '<br/>';@@