For a brief summary of these features, visit the Features at a Glance page.
PmWiki is an free, open-source PHP-based wiki engine. Patrick Michaud has authored the software from the beginning, and has released it under the GPL2 license. Although PmWiki has one author, he works closely with the PmWiki community to refine the wiki engine based on specific needs. The current version, pmwiki-2.2.88, was released on , and is used by this web site.
PmWiki is designed with a focus on ease of installation, configuration, and management. To accomplish this, it primarily stores its data in files rather than in a database. This reduces what PmWiki software requires to perform its function. Upgrading is usually a simple matter of copying the latest version's files over the files of the existing PmWiki installation.
The PmWiki Community is an active, cooperative group of fellow PmWiki users. The community includes members from across the technical spectrum -- from the average wiki author though site administrators and hard-core programmers. This blend allows the community to help anybody in need. When a feature is sought and not available via a plug-in, a member of the community may respond by creating the plug-in.
Operating System. PmWiki was originally designed to run on the various versions of Unix. However, the PmWiki community includes installations on Win32 OS, MacOS X. It is believed PmWiki will serve pages on computers that support PHP, regardless of the OS. See Server Requirements for more information.
Root Access. The site administrator does not need root, or system administrator, access. To administer PmWiki, the administrator needs only to have access to a web-accessible directory, with the ability to set permissions within that directory and run basic file system commands. See Server Requirements for more information.
Webserver. While PmWiki was originally intended to run on Apache web servers, it may also be used on a Microsoft IIS server. It is also possible to run PmWiki without a web server. See Server Requirements for more information.
File-based by Default. PmWiki uses an ASCII file system for data storage. This file-based approach allows for easy backup of the web site data, and non-PmWiki-based data access. See PmWiki:Flat File Advantages for more information.
Database Storage. PmWiki does not support databases in its default installation. However, it is designed to be able to store and retrieve the pages' text and metadata on various systems and formats. Via plug-ins, PmWiki can already use MySQL or SQLite databases for data storage. At present, there are no plug-ins to support other databases, such as PostgreSQL, Oracle, or BSD. See Cookbook:Cookbook for more information on using databases to store PmWiki pages.
Revision Control-Based Storage. At the present time, PmWiki does not support the use of any Revision Control Software (e.g. RCS, CVS, or Subversion) for data storage. However, it does its own revision control on top of the other storage models.
Wiki SPAM Protection. PmWiki provides several standard approaches to reduce the problem with Wiki SPAM. Most of this support is possible via many plug-ins, and includes black listing, host-blocking, and encrypting email addresses in the wiki content. PmWiki also comes with the ability to restrict external links via its Url Approvals (whitelist) method. See PmWiki:Security for more information.
Page Permissions. PmWiki provides content control via a well-established security system. Basic Wiki actions may be restricted either at the individual page, the page group, or site-wide level. Virtually any action may be restricted, but the default levels are read, edit, file upload, and administration. Therefore, it is possible to prevent unauthorized viewing of a PmWiki page. See PmWiki:Passwords for more information.
Access Control Lists (ACL). PmWiki provides the ability to have fine-grained settings of permission of pages. At the basic level, simple password protection is possible. However, PmWiki includes the ability for individual user-based permissions, and group permissions as well. Via plug-ins, it is also possible for the site administrator to allow individuals to self-register to a web site. See PmWiki:Security for more information.
Authentication Backends. PmWiki authentication may be administered in various ways. This may be done at the configuration file level, via .htaccess files, LDAP, Active Directory and mySQL. See PmWiki:AuthUser for more information.
PmWiki has an active support community. This community provides most of the plug-ins and readily provides advice via the mailing list.
Preview. PmWiki allows page previewing.
Minor Changes. The minor change flag . . .
Change Summary. The author editing a wiki page may provide a terse summary of the change. It is a useful part of wiki collaboration, along with the "Minor Change" flagging feature. It allows people to communicate a little information about what changes are taking place, which makes the Recent Changes and Page History displays far more useful they would be otherwise. See PmWiki:PageHistory for more information.
Page History and Revision Differentials. PmWiki provides a page history showing the difference between different revisions as well as the time of the change. The history can stretch back to the original creation of a page, or may be configured to only maintain the latest entries. See PmWiki:PageHistory for more information.
Page Indexing. PmWiki provides page indexing of all pages. One potent approach to this is PmWiki's Pagelist feature. The Pagelist feature allows authors to create dynamic lists of pages by a wide assortment of criteria. The resulting list can be tailored to include/exclude various categories of pages and may be sorted by most criteria used to generate the list. See the detailed page on PageLists for more information.
Name Spacing. PmWiki allows the page author to sort pages into different namespaces via its Page Grouping with its search tool and dynamic page listing. See PmWiki:WikiGroup for more information.
Full-Text Searching. PmWiki's search engine searches the full text of a wiki page for matches. The search results are governed by the same highly-customizable syntax as are pagelists. See PmWiki:PageLists#searchresults for more information.
Customizable Page Indexing Output. PmWiki supports an easy-to-manage tool for designing custom pagelisting formats. This allows a site administrator to build the equivalent of a blog, provide a list of pages with their page descriptions, or even build a sidebar menu based on categories or other critera. See PmWiki:PageLists for more information.
Comments Pages may be commented by use of a plug-in. See Cookbook:Cookbook for more information.
Email/RSS Notification. PmWiki provides optional notification of its web pages via Email or RSS. Used in combination with Firefox's Live Bookmark feature, it is possible to watch when a page has changed. This feature is similar to PmWiki's Pagelist feature, which allows the site visitor to create a watch list to monitor a list of pages. See PmWiki:Mail Posts and PmWiki:Web Feeds for more information.
Conflict Resolution. In an effort to support multi-user, simultaneous collaboration, PmWiki has a simple conflict resolution system. When a page has been edited while an author has been revising a page, PmWiki flags the sections where the text conflicts. The author has the ability to save the page with the conflict still marked, or he may resolve the conflict on-the-spot. See PmWiki:Simultaneous Edits for more information.
Page Redirection. It is possible to redirect a site visitor from one page to another. PmWiki's approach allows for quick removal of a page redirection. See PmWiki:Page Directives for more information.
Unicode/Localization Support. PmWiki provides support for Unicode. It also comes with built-in support for localization and redefining ... with language specific. At present, PmWiki supports localization for over twenty languages. See PmWiki:Other Languages, Localization and PmWiki:Internationalizations for more information.
HTML Tags. PmWiki does not provide embedded HTML tag support by default. However, this feature may be enabled via a plug-in. See Cookbook:Cookbook for more information.
Math formulas. PmWiki does not provide feed aggregation by default. However, a site administrator may enable this function via a plug-in. See Cookbook:Cookbook for more information.
Markdown Support. PmWiki does not provide Markdown markup by default. However, a site administrator may enable this function via a plug-in. See Cookbook:Markdown for more information.
Textile Support. PmWiki does not currently support this feature.
BBCode Support. PmWiki does not support BBCode by default. However, a site administrator may enable this function via a plug-in. See Cookbook:Bbcode for more information.
Emoticon Images. PmWiki does not provide emoticon images (smileys) by default. However, a site administrator may enable this function via a plug-in. See Cookbook:WikiSmileys for more information.
Syntax Highlighting. PmWiki does not provide syntax highlighting by default. However, a site administrator may enable this function via a plug-in. See Cookbook:SourceBlock for more information.
Footnotes. PmWiki does not provide footnotes by default. However, a site administrator may enable this function via a plug-in. See Cookbook:Cookbook for more information.
Quoting. PmWiki does not provide quoting by default. However, a site administrator may enable this function via a plug-in. See Cookbook:Cookbook for more information.
Custom styles. PmWiki's efficient templating system allows a site administrator proficient in HTML and CSS to create a custom style. See PmWiki:Skins for more information. See also Cookbook:Styles for a list of custom styles.
Scripting. PmWiki does not provide feed aggregation by default. However, a site administrator may enable this function via a plug-in. See Cookbook:Cookbook for more information.
Feed Aggregation. PmWiki does not provide feed aggregation by default. However, a site administrator may enable this function via a plug-in. See Cookbook:Cookbook for more information.
CamelCase. PmWiki provides Camel Case as part of its core software. However, the site administrator must enable this feature. See PmWiki:Links for more information.
Free Links. Instead of offering Camel Case by default, PmWiki offers free links. The use of free links allows the author to space words and capitalize them appropriately, while PmWiki silently links the the correct page. It is even possible to refer to a page and use alternative text for display. See PmWiki:Page? for more information.
Back Links. PmWiki gives the ability to provide a link to all pages linking themselves to that page. This is provided via the PageLists directive.
Inter/Sister Wiki. PmWiki does not automatically link to similar pages of sister wiki web sites. However, PmWiki offers a simple syntax to link to other wikies. See PmWiki:InterMap for more information.
Image Links. PmWiki enables page authors to include images either within the wiki or outside. Additionally, the image link system is tied into the upload system, which allows authorized authors to upload images to the wiki site.
Double-Click Edit Mode. PmWiki does not directly provide a way for page authors to enter into edit mode via double-click. However, there is a plug-in available to enable this capability. Additionally, the same plug-in may be modified to provide other click-based actions. See Cookbook:Cookbook for more information.
Toolbar. PmWiki's toolbar makes simple text markup possible for novice page authors. It will either provide the markup to selected text, or insert a blank markup entry at the cursor. See PmWiki:Page? for more information.
Orphaned/Wanted Pages. PmWiki has the option to list page links that exist but do not link to an actual page. This is possible on the individual page level (i.e., on the page you can see if a link leads to an actual page), and optionally on the site level. See PmWiki:RefCount for more information.
Most/Least Popular. At present, there is no way to view the popularity of a wiki page.
Recent Visitors. Via a plug-in, PmWiki allows a site administrator to view a list of recent visitors to the wiki. See Cookbook:Cookbook for more information.
Analysis. There is no specific web analyzer bundled with PmWiki, although this capability is available via a recipe. See Cookbook:Cookbook for more information.
Printer Friendly. PmWiki provides a printer-friendly XHTML format by default, and it is possible to configure a Skin to direct printer-friendly output to any printer request. See PmWiki:Page? for more information.
Themes & Skins. PmWiki makes it easy to develop and change "skins" for the look and feel of the pages. This portion of the Cookbook is a repository to demonstrate and describe some PmWiki skins. See PmWiki:Page? for more information.
ATOM, Dublin, and RSS Feeds. Web feeds are a convenient mechanism to let visitors be notified of changes to a site. Instead of repeatedly checking a site's recent changes page every day to see what is new, a visitor can use a news aggregator to quickly see what pages of interest have changed on a site. Web feeds are commonly recognized by terms such as RSS, Atom, and web syndication. They are also the foundation for podcasting. See PmWiki:WebFeeds for more information.
Abbreviations. Through the use of a plug-in, a site administrator may enable the use of centrally located abbreviations. See Cookbook:MarkupExtensions for more information.
Auto-TOC. PmWiki does not automatically create a page table of contents. However, this feature may be implemented by a site administrator though the use of a plug-in. See Cookbook:Page Table of Contents for more information.
Raw Export. PmWiki allows a wiki page to be viewed without converting any markup to HTML. See action=source in PmWiki:Available Actions for more information.
HTML Export. PmWiki does not provide a way to export HTML without navigational support by default. However, a site administrator may implement this feature via a plug-in. See Cookbook:StaticPages for more information.
XML export. PmWiki does not export page content via XML.
PDF Export. PmWiki does not export wiki content via the Portable Document Format (PDF) by default. However, a site administrator may implement this feature via a plug-in. See Cookbook:GeneratePDF, Cookbook:PmWiki2PDF, and Cookbook:PublishPDF for more information.
File Attachements. PmWiki provides the ability to upload files, and download files directly or by visiting a page. However, for security purposes, this feature is not enabled by default. See PmWiki:Uploads and PmWiki:UploadsAdmin for more information.
Media Revisions. PmWiki also allows the site administrator to determine whether an uploaded file is overwritten by subsequent versions, or if previous versions are archived for future access. See PmWiki:Uploads and PmWiki:UploadsAdmin for more information.
Embedded Flash. PmWiki does not provide embedded flash by default. However, through the use of a plug-in, this feature is accessible to site administrators. See Cookbook:Flash for more information.
Embedded Video. PmWiki does not provide embedded video by default. However, through the use of a plug-in, this feature is accessible to site administrators. See Cookbook:Ape, Cookbook:Flash, Cookbook:QuickTime, and Cookbook:WMPlayer for more information.
Image Editing. PmWiki does not provide image editing.
SVG Editing. PmWiki does not provide SVG display by default. However, through the use of a plug-in, this feature is accessible to site administrators. See Cookbook:Svg for more information.
MindMap Editing. PmWiki does not enable Mind Mapping.
Media Search. PmWiki does not enable searching of multimedia or binary files.
Chess markup PmWiki does not provide chess markup by default. However, through the use of a plug-in, this feature is accessible to site administrators. See Cookbook:chess markup for more information.