PmWiki

# Documentation Guidelines

The essence of good instruction is knowing what details to leave in and which to leave out.
-Pm, in message to the the pmwiki-users mailing list

English is a very flexible language and there is usually more than one way to write anything. However, good writing benefits from being strongly consistent and for readers to be able to easily skim and absorb the content without having to think about it.

In general this is no "right answer" on how to write, however, with a project involving multiple contributors it makes sense to define some "house style" guidelines and request that as far as possible that authors consider these when authoring pages

## Quick Points

These are the broad guidelines used for writing documentation pages for PmWiki.

• Omit needless words.
• Use simple markup for documentation. (KISS?)
• Don't rely on WikiWord links; use [[Wiki Word]] whenever a link is needed.
• Use [[PmWiki:Page Name]] or [[Cookbook:Page Name]] to link to pages that aren't part of the distribution (otherwise the links will not work on sites other than pmwiki.org).
• Mark incomplete pages or documents needing review with category marker [[!Documentation To Do]] or [[!Update me]]. Place the category marker near the section needing work.
• Use http://example.com/ as the prefix for example URLs. [1]
• Use example names for values in code examples, like GroupName, PageName, label=Search.
• Use ->[@ or -->[@ to indent code examples.
• Place any documentation-specific styles in PmWiki:Group Header?.
• Don't use table markups for things other than tables.
• Use the (:keywords:) markup to provide keywords to assist with searches.
• Indicate the intended audience and difficulty level of your documentation.
• Use headings !! and !!! to divide your page into manageable "chunks".
• Use "sentence capitalization" for headings (capitalize only the first letter of the heading and any proper names).
• Use "newspaper-style" writing where possible. Facts first. Story later. Punchy. (See below)
• Do not "sign" documentation unless it is a personal opinion you don't want changed.

## Details

Many of the quick points above need no further explanation, but the items below provide more details and "how to" information.

### KISS (Keep it short & simple)

Keep the markup in the documentation simple. The PmWiki documentation is a self-demonstration of what can be done with wiki markup, and like any collaborative document it needs to be accessible to many authors. It's important for the markup to be readable - not just the rendered output.

### How to indicate audiences and document difficulty level

Indicated audiences are not intended to be exclusive or constraining; they just provide a convenient way for a user to decide what is relevant to them. And, of course, a convenient way for authors to indicate who their docs are intended for. For a full description see audiences.

• The keywords for audiences are readers, authors, admins (and all for all three)
• The keywords for difficulty levels are basic, intermediate, advanced.

There is no direct relation between the audience and the level - audience classifies the individuals accessing the wiki, while level indicates the relative difficulty of the material.

Suggested markup (near or at the top of the page):

 (:Audience: readers, authors (basic):) 

Suggested markup (in the page):

 %audience% readers, authors (intermediate)  readers, authors (intermediate)

### How to provide keywords to assist with searches

Use this markup:

(:keywords word, ...:)

(:keywords Documentation Guidelines, Documentation, Howto Document:)

Add keywords before any visible content on the page.

### How to make sure links work

Not every page that is in the PmWiki group here or on pmwiki.org ends up in the distribution. Beware of creating links to non-distributed pages.

• Use either [[PmWiki:Page Name]] or [[Cookbook:Page Name]] markup for links to pages that may not be included in the PmWiki distribution.
• Links from a documentation page to a cookbook recipe should be specified as Cookbook:Page Name and not [[Cookbook/Page Name]].
• Don't rely on WikiWord links, use [[Wiki Word]] markup.Not every wiki has WikiWords enabled, so when writing documentation if a WikiWord is intended to link to another page then enclose it in double brackets as [[Wiki Word]]. Not every occurrence of a WikiWord needs to be a link -- generally just the first is sufficient.

### Use headings for information "chunking"

A long page of unbroken text can discourage readers. Use headings to break your page into sensible chunks. Headings allow readers to quickly find the information they are seeking.

### Use "newspaper-style" writing where possible

In "newspaper-style" writing, you tell the whole story right at the start and then elaborate on the details later. This allows readers to get a quick appreciation of the subject at hand - and for many, that will be enough. Anyone looking for more discussion or examples reads further to find them. In newspapers, the whole story is usually told in the first paragraph. Newspapers use short sentences. The sentences are "punchy".

### Do not "sign" documentation

PmWiki makes it very easy to "sign" your contributions by inserting ~~~ in the edit window. Signing is appropriate when you are posing questions or expressing a personal opinion. Most authors are very reluctant to edit signed material. However, documentation generally is not a personal opinion, and editing should be encouraged. The curious can use the history view to see who said what.

### Some suggested text "styles"

• to indicate a file name, use "emphasized" markup.
 ''filename.ext'' or ''local/config.php''  filename.ext or local/config.php
• to indicate a directory name alone, use "emphasized" markup and include the trailing slash (/).
 ''cookbook/''  cookbook/

PmWiki has a very flexible approach to creating links and this can even be altered through certain configuration settings. However, there is a general style philosophy that we use throughout the documentation which is as follows:

• In general minimise the use of CamelCase, ie prefer [[page directives]] to [[PageDirectives]]
• There are a number exceptions where CamelCase is preferred and these are listed separately below

### "Proper Nouns" written in Camel Case

The following are defined to be single words and should be written consistently in camel case as follows:

• PageList
• WikiWikiWeb
• ChangeLog
• WikiStyles
• InterMap

Capitalisation is less well defined and is left up to the author's judgement. However, the following guidance is offered:

• When referring to a page name by its title, use sentence case for the name. Example: For more information, see [[Page directives]].
• When using text in a sentence that happens to correspond to the name of the page, follow the capitalization rules for the sentence. Example: PmWiki supports a large number of [[page directives]].

### Use whitespace

The judicious use of whitespace assists considerably in the authoring and maintenance of pages. At a minimum the following is suggested

• leave a blank line before headings
• use a single space character after list characters

For example

!!!!!! Heading with preceding blank line
* bullet list with leading space
# numbered list with leading space

###### Heading with preceding blank line
• bullet list with leading space
1. numbered list with leading space