[go: nahoru, domu]

Jump to content

PmWiki: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
pizza
Tags: Reverted Visual edit
→‎Design focus: Changed the sentence structure for clarity and toned down promotional language.
 
(45 intermediate revisions by 31 users not shown)
Line 4: Line 4:
| logo = PmWiki Logo.svg
| logo = PmWiki Logo.svg
| logo size = 160px
| logo size = 160px
| screenshot = Pmwiki_screenshot.png
| name = PmWiki
| name = PmWiki
| author = Patrick R. Michaud<ref>[http://www.pmichaud.com/wiki/Pm/AboutPm Dr. Patrick Michaud.] About Page</ref>
| author = Patrick R. Michaud<ref>[http://www.pmichaud.com/wiki/Pm/AboutPm Dr. Patrick Michaud.] About Page</ref>
| developer = {{URL|https://www.pmwiki.org|PmWiki}}
| developer = {{URL|https://www.pmwiki.org|PmWiki community}}
| released = {{start date and age|2002|01}}<ref>[http://www.pmwiki.org/pub/pmwiki/older-releases/ PmWiki version 0.1 (tgz archive)] has its most recent file from Jan 08, 2002. The [http://www.pmichaud.com/pipermail/pmwiki-users/ PmWiki-Users Mailing list] exist since August 2002.</ref>
| released = {{start date and age|2002|01}}<ref>[http://www.pmwiki.org/pub/pmwiki/older-releases/ PmWiki version 0.1 (tgz archive)] has its most recent file from Jan 08, 2002. The [http://www.pmichaud.com/pipermail/pmwiki-users/ PmWiki-Users Mailing list] exist since August 2002.</ref>
| latest release version = <!-- If you update [[Template:PmWiki version]], it will automatically update this page, [[Comparison of wiki software]] and [[List of content management systems]]--> {{PmWiki version}}
| latest release version = <!-- If you update [[Template:PmWiki version]], it will automatically update this page, [[Comparison of wiki software]] and [[List of content management systems]]--> {{PmWiki version}}
Line 18: Line 19:
| website = {{url|https://www.pmwiki.org|www.pmwiki.org}}
| website = {{url|https://www.pmwiki.org|www.pmwiki.org}}
}}
}}
'''PmWiki''' is [[wiki software]]<ref name=wikimatrix>[http://www.wikimatrix.org/show/PmWiki WikiMatrix / PmWiki Features - Compare Them All], WikiMatrix. Cosmo Code, 22 Nov. 2005. Web. 30 Nov. 2011.</ref> written by Patrick R. Michaud in the [[PHP]] programming language.<ref>"PmWiki - DreamHost." DreamHost. New Dream Network, LLC, 7 July 2005. Web. 30 Nov. 2011. <http://wiki.dreamhost.com/PmWiki {{Webarchive|url=https://web.archive.org/web/20160514172428/http://wiki.dreamhost.com/PmWiki |date=2016-05-14 }}>.</ref><ref>"OCN-435 Climate Change and Urbanization Wiki | PmWiki / Pm Wiki." Climate Change and Urbanization OCN435. Climate Change and Urbanization OCN435, 20 Oct. 2009. Web. 30 Nov. 2011. <http://hokulea.soest.hawaii.edu/ocn435/wiki/index.php?n=PmWiki.PmWiki {{Webarchive|url=https://web.archive.org/web/20120426011406/http://hokulea.soest.hawaii.edu/ocn435/wiki/index.php?n=PmWiki.PmWiki |date=2012-04-26 }}>.</ref>
'''PmWiki''' is a [[wiki software|wiki-based]]<ref name=wikimatrix>[http://www.wikimatrix.org/show/PmWiki WikiMatrix / PmWiki Features - Compare Them All], WikiMatrix. Cosmo Code, 22 Nov. 2005. Web. 30 Nov. 2011.</ref> [[content management system]] designed for a collaborative creation and maintenance of websites.<ref name=PmWiki>[https://www.pmwiki.org/ PmWiki home page]</ref>


It is [[free software]], licensed under the terms of the [[GNU General Public License]].
It is [[free software]] written in [[PHP]],<ref>[http://wiki.dreamhost.com/PmWiki "PmWiki - DreamHost." DreamHost. New Dream Network, LLC, 7 July 2005. Web. 30 Nov. 2011.] {{Webarchive|url=https://web.archive.org/web/20160514172428/http://wiki.dreamhost.com/PmWiki |date=2016-05-14 }}</ref> licensed under the terms of the [[GNU General Public License]].


==Pizza focus==
==Design focus==
The PmWiki philosophy<ref name=philosophy>[https://www.pmwiki.org/wiki/PmWiki/PmWikiPhilosophy PmWiki philosophy]</ref> prioritizes writers over readers, aiming to facilitate easy document authoring despite limitations in document types. It supports collaborative website maintenance with built-in tools for access control, delegation, monitoring, review, and edit reversion. Ease of maintenance is a key design goal, and PmWiki is configurable and extensible, allowing independent updates to the core while maintaining compatibility with local customizations.
PmWiki is designed to be easy to install and customize as an engine for creating professional web sites with one to any number of content authors. The software focuses on ease-of-use, so people with little IT or wiki experience will be able to put it to use. The software is also designed to be extensible and customizable.


Besides the usual collaborative features such as content management and knowledge base, PmWiki has been used by companies or groups as an internal communication platform<ref name=inc>[https://web.archive.org/web/20060314022943/http://www.inc.com/magazine/20060201/handson-technology.html The End of E-Mail], article by Darren Dahl, published in [[Inc. Magazine]], February 2006, page 41</ref> with task management and meeting archives.<ref name=lg>[http://linuxgazette.net/114/shekhar.html PmWiki - Wiki the Painless Way], article by Raj Shekhar, [[Linux Gazette]] magazine, May 2005</ref> It is also used by university and research teams.<ref>[https://www.projet-plume.org/fr/fiche/pmwiki PmWiki : wiki simple], article in PLUME, association promoting useful, accessible and economic software in higher education and research (French language)</ref>
In addition to standard collaborative features like content management and knowledge bases, PmWiki is utilized by companies and groups<ref>[https://www.pmwiki.org/wiki/PmWiki/PmWikiUsers PmWiki Users]</ref> as an internal communication platform<ref name=inc>[https://web.archive.org/web/20060314022943/http://www.inc.com/magazine/20060201/handson-technology.html The End of E-Mail], article by Darren Dahl, published in [[Inc. Magazine]], February 2006, page 41</ref> offering tools for task management and meeting archives.<ref name=lg>[http://linuxgazette.net/114/shekhar.html PmWiki - Wiki the Painless Way], article by Raj Shekhar, [[Linux Gazette]] magazine, May 2005</ref> It is also employed by university and research teams.<ref>{{cite web|url=https://www.projet-plume.org/fr/fiche/pmwiki|title=PmWiki: wiki simple|language=fr|url-status=dead|archive-url=https://web.archive.org/web/20220525025519/https://www.projet-plume.org/fr/fiche/pmwiki|archive-date=2022-05-25}} (article in PLUME, an association promoting useful, accessible, and economic software in higher education and research)</ref>


The PmWiki [[wiki markup]] shares similarities with [[MediaWiki]] (used by [[Wikipedia]]) and has a large number of features not found in other wiki engines<ref name=wikimatrix/> however its primary goal is to help with the collaborative maintenance of websites. The PmWiki markup engine is highly customizable, allowing adding, modifying or disabling markup rules, and it can support other markup languages. As an example, the [[Creole (markup)|Creole]] specifications can be enabled.<ref>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/Creole|title=PmWiki - Cookbook / Creole|work=pmwiki.org}}</ref>
The PmWiki wiki markup shares similarities with MediaWiki (used by Wikipedia) but includes unique features not found in other wiki engines.<ref name=wikimatrix/> The PmWiki markup engine is customizable, and markup rules can be added, replaced or removed, and it can support other markup languages. As an example, the [[Creole (markup)|Creole]] specifications can be enabled.<ref>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/Creole|title=PmWiki - Cookbook / Creole|work=pmwiki.org}}</ref> The edit form, since version 2.3.0, can have [[syntax highlighting]] enabled for its own wiki markup dialect.<ref name=v230>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/ReleaseNotes#v230|title=PmWiki Release notes, version 2.3.0}}</ref><ref name=PmSyntax>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/PmSyntax|title=PmWiki Cookbook / PmSyntax}}</ref>


==Features==
==Features==


===Content storage===
===Content storage===
PmWiki uses regular files to store content. Each page of the wiki is stored in its own file on the web server. Pages are stored in ASCII format and may be edited directly by the wiki administrator. According to the author, "''For the standard operations (view, edit, page revisions), holding the information in flat files is clearly faster than accessing them in a database...''"<ref>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/FlatFileAdvantages|title=PmWiki Design - Flat File Advantages|access-date=2019-01-09}}</ref>
PmWiki uses regular text files to store content. Each page of the wiki is stored in its own file on the web server. By default pages are stored in [[8-bit]] or [[UTF-8]] encoding, with page text, metadata, and revision history in the same file. According to the author, "''For the standard operations (view, edit, page revisions), holding the information in flat files is clearly faster than accessing them in a database...''"<ref name=flat>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/FlatFileAdvantages|title=PmWiki Design - Flat File Advantages|access-date=2019-01-09}}</ref>


PmWiki is designed to be able to store and retrieve the pages' text and metadata on various systems and formats. It does not support databases in its default installation. However, via plug-ins, PmWiki can already use MySQL or SQLite databases for data storage.
The storage class is extensible, allowing add-ons to enable other storage systems and formats. For example, with add-ons, a website can use [[SQLite]] or [[MySQL]] databases, or [[XML]] files for storage.


PmWiki supports "attachments" (uploads: images or other files) to its wiki pages. The uploads can be attached to a group of pages (default), individually to each page, or to the whole wiki, depending on the content needs and structure. There are PmWiki recipes allowing an easier management of the uploaded files, e.g. deletion or thumbnail/gallery creation.
PmWiki supports "attachments" (uploads: images or other files) to its wiki pages. The attachments can be versioned.<ref name=uploads>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/UploadsAdmin|title=Uploads administration}}</ref> There are PmWiki add-ons allowing easier management of the uploaded files, e.g. deletion or thumbnail/gallery creation.<ref name=cookbookuploads>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/Uploads|title=Cookbook / Attachments/Uploads}}</ref>


===Wiki structure===
===Wiki structure===
In PmWiki, wiki pages are contained within "wiki groups" (or "namespaces"). Each wiki group can have its own configuration options, plug-ins, access control, skin, sidebar (menu), language of the content and of the interface.
Wiki pages are contained within namespaces, called "wiki groups".<ref name=wikigroups>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/WikiGroup|title=PmWiki / WikiGroup}}</ref> Multiple namespaces can be used, and each namespace can have its own configuration options, add-ons, access control, skin, styles, sidebar (menu), the language of the content, and interface.<ref name=localcust>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/LocalCustomizations|title=PmWiki / Local customizations}}</ref>


By default, PmWiki allows exactly one hierarchical level of the pages ("WikiGroup/WikiPage"), but through recipes, it is possible to have a flat structure (no wiki groups), multiple nested groups, or sub-pages.
Hierarchically, every page is contained in a namespace. It is possible to display and navigate through pages in a tree-like structure with a "wiki trail".<ref name=wikitrails>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/WikiTrails|title=PmWiki / WikiTrails}}</ref> Through recipes, it is possible to have a flat structure (no wiki groups), multiple nested groups, or sub-pages.


Special wiki groups are "PmWiki", Site, SiteAdmin and Category which contain the documentation and some configuration templates.
Special namespaces are "PmWiki", Site, SiteAdmin, and Category which contain the documentation and some configuration templates.


===Templates (skins)===
=== Markup ===
The PmWiki markup shares similarities with [[MediaWiki]]. Here is a sample of commonly used markup rules.<ref> {{cite web|url=https://www.pmwiki.org/wiki/PmWiki/BasicEditing|title=PmWiki Basic Editing|access-date=2023-08-16}}</ref>
PmWiki offers a template scheme that makes it possible to change the look and feel of the wiki or website with a high degree of flexibility in both functionality and appearance.<ref>"Yate | PmWiki / SkinTemplates." Yate. Web. 30 Nov. 2011. <http://yate.null.ro/pmwiki/index.php?n=PmWiki.SkinTemplates>.</ref>

'''Links''' are usually wrapped in double brackets, optionally with link text:
<pre>
[[Other page]], [[Page|link text]], [[Page|+]] (shows the page title), [[Page#anchor|Link text]]
https://example.com/path/, mailto:mailbox@example.com (plain links)
[[https://example.com/path/|Link text]]
Wikipedia:Wiki_software (InterMap links)
</pre>
It is possible to enable internal links for [[CamelCase]] words without brackets, and add-ons can enable other link markups like <code>@Page</code>.

'''Headings''' are preceded with exclamation marks:
<pre>
! Top-level heading (&lt;h1&gt;)
!! Second-level heading
...
!!!!!! Sixth-level heading
</pre>

It is possible to enable an automated table of contents coming with the PmWiki core, or install one among several Table of contents add-ons.<ref name=toc>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/TableOfContents|title=PmWiki / Table of contents}}</ref>

'''Lists''' are prefixed by "*" (bulleted) and "#" (numbered) and can be nested:
<pre>
* List item
* List item
** Nested item

# Ordered list
# Another item
** Nested bulleted item
</pre>

'''Directives''' for listing pages and attachments, and including pages and templates:
<pre>
(:pagelist group=Cookbook order=-time count=20:)

(:attachlist name=*.jpg:)

(:include AnotherPage#fromanchor#toanchor:)

(:include MyTemplate variable=value othervariable="Some value":)
</pre>

Other page directives allow setting the page title, description, and keywords, disabling layout sections like sidebars or footers, creating tables, or defining page text variables. Add-ons allow for extra functionality.

'''Inline markup''':
<pre>
'''Bold''', ''italic'', @@code (fixed-width)@@, %classname%CSS styled text%%,
[-small text-], [+large text+], {+inserted+}, {-deleted-},
'^superscript^', '_subscript_',
[@
code block, possibly with syntax highlighting
@]
</pre>

Other markup rules can be enabled through recipes (add-ons).

HTML is not available for the edit form out of the box, but it is possible to enable selected tags through add-ons.

===Skin templates===
PmWiki offers a skin template scheme that makes it possible to change the look and feel of the wiki or website with a high degree of flexibility in both functionality and appearance.<ref name=pmwikiskins>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/Skins|title=PmWiki / Skins}}</ref>

Since version 2.3.30, the core responsive skin can have a dark theme enabled. The dark mode functions are available for reuse by custom skins.<ref name=darktheme>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/DarkColorScheme|title=Cookbook / DarkColorScheme}}</ref>


===Access control===
===Access control===
PmWiki permits users and administrators to establish password protection for individual pages, groups of pages or the entire site. For example, defined zones may be established to enable collaborative work by certain groups, such as in a company intranet.
PmWiki permits users and administrators to establish password protection for individual pages, groups of pages, or the entire site. For example, defined zones may be established to enable collaborative work by certain groups, such as in a company intranet.<ref name=passwordadmin>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/PasswordsAdmin|title=PmWiki / Password administration}}</ref>


Password protection can be applied to reading, editing, uploading to and changing passwords for the restricted zone. The out-of-the box installation uses "shared passwords" rather than login names, but a built-in option can enable a sophisticated user/group based access control system on pages, groups of pages or the whole wiki.
Password protection can be applied to reading, editing, uploading to, and changing passwords for the restricted zone. The out-of-the-box installation uses "shared passwords" rather than login names, but a built-in option can enable a sophisticated user/group-based access control system on pages, groups of pages or the whole wiki.


PmWiki can use passwords from config files, special wiki pages, [[.htpasswd]]/.htgroup files. There are also user-based authorization possibilities and authentication via various external sources (e.g. [[Lightweight Directory Access Protocol|LDAP]], forum databases etc.).
PmWiki can use passwords from config files, special wiki pages, and [[.htpasswd]]/.htgroup files. There are also user-based authorization possibilities and authentication via various external sources (e.g. [[Lightweight Directory Access Protocol|LDAP]], forum databases, etc.).


===Customization===
===Customization===
PmWiki follows a design philosophy <ref>{{cite web|url=https://www.pmwiki.org/wiki/PmWiki/PmWikiPhilosophy|title=PmWiki - PmWiki / PmWikiPhilosophy|work=pmwiki.org}}</ref> with the main objectives of ease of installation, maintainability, and keeping non-required features out of the core distribution of the software. PmWiki's design encourages customization with a wide selection of custom extensions, known as "recipes" available from the PmWiki Cookbook.<ref>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/Cookbook|title=PmWiki - Cookbook / Cookbook|work=pmwiki.org}}</ref> Creating and maintaining extensions and custom installations is easy thanks to a number of well documented [[callback (computer science)|hooks]] in the wiki engine.
PmWiki follows a design philosophy<ref name=philosophy/> with the main objectives of ease of installation, maintainability, and keeping non-required features out of the core distribution of the software. This design encourages customization with a wide selection of custom extensions, known as "recipes" available from the PmWiki Cookbook.<ref name="cookbook">{{cite web |title=PmWiki Cookbook |url=https://www.pmwiki.org/wiki/Cookbook/Cookbook}}</ref> Creating and maintaining extensions and custom installations is easy thanks to a number of well documented [[callback (computer science)|hooks]] in the wiki engine.


==System requirements==
==System requirements==
Recent PmWiki releases require a web server that can run [[PHP]] version 5.4 or more recent. PmWiki can be deployed to standard hosting providers, or locally. There is a "recipe" to allow running PmWiki "Standalone", with the [https://www.php.net/manual/en/features.commandline.webserver.php PHP built-in webserver], for example from a [[USB flash drive]].<ref>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/Standalone|title=PmWiki - Cookbook / Standalone|work=pmwiki.org}}</ref>
Prerequisites for running the PmWiki wiki engine:

* PHP 4.3 or later
* Any webserver (or hosting plan) that can run PHP scripts (e.g. [[Apache HTTP Server]], Microsoft [[Internet Information Services|Microsoft IIS]], [[Lighttpd]], [[Hiawatha (web server)|Hiawatha]], [[Cherokee (Webserver)|Cherokee]]).
* Write permissions for the webserver user account in the PmWiki tree (required for off-line editing only)
* No file type extension restrictions on the webserver (sometimes a problem with free web hosting providers)
* There is a "recipe" to allow running PmWiki "Standalone", without a webserver, for example from a [[USB flash drive|Flash USB stick]].<ref>{{cite web|url=https://www.pmwiki.org/wiki/Cookbook/Standalone|title=PmWiki - Cookbook / Standalone|work=pmwiki.org}}</ref>

==Author==
PmWiki was written by the university professor and [[Raku (programming language)|Perl 6]] developer Patrick R. Michaud, who owns a trademark on the name "PmWiki". A number of other developers and users write, maintain and discuss "recipes" (special purpose configurations, skins or plug-ins) in the PmWiki Cookbook.


== Books and articles about PmWiki ==
== Books and articles about PmWiki ==
<!-- Some of these can be found at https://wikipedialibrary.wmflabs.org -->
The following books mention PmWiki or have dedicated chapters or sections:
The following books analyse PmWiki, have dedicated chapters or sections, compare it with other wiki and CMS software:
* Todd Stauffer, ''How to Do Everything With Your Web 2.0 Blog'', {{ISBN|978-0-07-149218-8}}
* Todd Stauffer, ''How to Do Everything With Your Web 2.0 Blog'', {{ISBN|978-0-07-149218-8}}
* White, Pauxtis, ''Web 2.0 for Business: Learning the New Tools'', {{ISBN|978-0-470-43618-9}}
* White, Pauxtis, ''Web 2.0 for Business: Learning the New Tools'', {{ISBN|978-0-470-43618-9}}
* Nancy Courtney, ''More Technology for the Rest of Us: A Second Primer on Computing for the Non-IT Librarian'', {{ISBN|978-1-59158-939-6}}
* Nancy Courtney, ''More Technology for the Rest of Us: A Second Primer on Computing for the Non-IT Librarian'', {{ISBN|978-1-59158-939-6}}
* Karen A. Coombs, Amanda J. Hollister, ''Open Source Web Applications for Libraries'', 2010, {{ISBN|978-1-57387-400-7}}
* Holtz, Demopoulos, ''Blogging for Business: Everything You Need to Know And Why You Should Care'', {{ISBN|978-1-4195-3645-8}}
* Holtz, Demopoulos, ''Blogging for Business: Everything You Need to Know And Why You Should Care'', {{ISBN|978-1-4195-3645-8}}
* Ebersbach, Glaser, Heigl, ''Wiki: Kooperation Im Web'', {{ISBN|978-3-540-35110-8}}
* Ebersbach, Glaser, Heigl, ''Wiki: Kooperation Im Web'' (German), {{ISBN|978-3-540-35110-8}}
* Lange, Christoph (ed.): ''Wikis und Blogs - Planen, Einrichten, Verwalten'', C&L 2006 (German) {{ISBN|978-3-936546-44-6}}
* Lange, Christoph (ed.): ''Wikis und Blogs - Planen, Einrichten, Verwalten'', C&L 2006 (German) {{ISBN|978-3-936546-44-6}}
* Frank Kleiner, ''[https://www.google.fr/books/edition/A_Semantic_Wiki_based_Platform_for_IT_Se/PqKrBwAAQBAJ?hl=fr&gbpv=0 A Semantic Wiki-based Platform for IT Service Management]'', Karlsruhe Institute of Technology (KIT) Scientific Publishing, 2015, {{ISBN|978-3-731-50333-0}}
* Pullman, Baotong, ''[https://archive.org/details/designingwebbase0000unse/ Designing Web-Based Applications for 21st Century Writing Classrooms]'', Taylor & Francis, Abingdon-on-Thames, 2016, {{ISBN|978-1-351-86810-5}}
* Tim Massaro, Toni Cairns (IBM), ''Collaborate Quickly with Wiki!'', iSeries NEWS, 2005
* Brian May, ''Open Source Applications on IBM i'', System iNEWS, 2009
* Lauren Barack, ''Never-Ending Story'' (''Histoire sans fin''), School Library Journal, 2007, about a collaborative effort of 8 authors writing a children's book on PmWiki
* Brenda Chawner, Paul Lewis, ''WikiWikiWebs: New Ways to Communicate in a Web Environment'', Information Technology & Libraries, 2006.
* Matthew Bejune (Perdue U), ''Wikis in Libraries'', Information Technology & Libraries, 2007


PmWiki has been featured in a number of printed and online magazines including
PmWiki has been featured in a number of printed and online magazines including
''[[Inc Magazine]]'',<ref name=inc/> [[Linux Gazette]],<ref name=lg/> ''[[PCMag]]'',<ref>[https://www.pcmag.com/article2/0%2c2817%2c1843783%2c00.asp Working Together With Wikis], article by Anil Hemrajani, August 3, 2005, [https://books.google.fr/books?id=z_gb8AdBqj8C&pg=PA69&dq=PmWiki&hl=fr&sa=X&ved=2ahUKEwi-pdHi5_qEAxWhU6QEHbsvCTAQ6AF6BAgJEAI#v=onepage&q=PmWiki&f=false scanned pages on Google Books]</ref>
[[Inc Magazine]],<ref name=inc/> [[Linux Gazette]],<ref name=lg/>
''LXer'',<ref>[http://lxer.com/module/newswire/view/89566/index.html Organizing Information], article by Ian MacGregor, July 8, 2007</ref> ''[[Framasoft]],<ref>[http://www.framasoft.net/article2972.html PmWiki], September 2004, December 2010 (French)</ref> ''Linuxfr''.<ref>[http://linuxfr.org/news/sortie-de-pmwiki%C2%A02229 Sortie de PmWiki 2.2.29], article by Lucas Bonnet, July 2011 (French)</ref>
[[PCMag]],<ref>[https://www.pcmag.com/article2/0%2c2817%2c1843783%2c00.asp Working Together With Wikis], article by Anil Hemrajani, August 3, 2005</ref>

LXer,<ref>[http://lxer.com/module/newswire/view/89566/index.html Organizing Information], article by Ian MacGregor, July 8, 2007</ref>
The page PmWiki References<ref>{{Cite web|url=https://www.pmwiki.org/wiki/PmWiki/References|title=PmWiki &#124; PmWiki / References|website=www.pmwiki.org}}</ref> lists publications about PmWiki in various languages.
[[:fr:Framasoft]],<ref>[http://www.framasoft.net/article2972.html PmWiki], September 2004, December 2010 (French)</ref>
Linuxfr.<ref>[http://linuxfr.org/news/sortie-de-pmwiki%C2%A02229 Sortie de PmWiki 2.2.29], article by Lucas Bonnet, July 2011 (French)</ref>
The page [https://www.pmwiki.org/wiki/PmWiki/References PmWiki References] lists publications about PmWiki in various languages.


==See also==
==See also==
Line 98: Line 159:
==External links==
==External links==
* [https://www.pmwiki.org/wiki/PmWiki/PmWiki PmWiki Home Page]
* [https://www.pmwiki.org/wiki/PmWiki/PmWiki PmWiki Home Page]
<!-- Some of these can be found at https://wikipedialibrary.wmflabs.org -->
* [https://www.researchgate.net/publication/200773279 Wiki Communities in the Context of Work Processes], [https://doi.org/10.1145/1104973.1104977 DOI:10.1145/1104973.1104977], Frank Fuchs-Kittowski, Hochschule für Technik und Wirtschaft Berlin, octobre 2005, on the choice of PmWiki for organizing community knowledge bases and its integration with an analytics software.
* [https://www.researchgate.net/profile/Eric-Duquenoy/publication/272014372_Keys_to_Success_How_a_small_Keys_to_Success_How_a_small_French_university_manages_and_French_university_manages_and_supports_Sakai_CLE_supports_Sakai_CLE/links/54d881bf0cf24647581a9067/Keys-to-Success-How-a-small-French-university-manages-and-supports-Sakai-CLE.pdf Keys to Success: How a small French university manages and supports Sakai CLE], Eric Duquenoy, Frédéric Dooremont, San Diego, 2013, on the integration of PmWiki with [[Sakai (software)|Sakai]].
* [https://heinonline.org/HOL/LandingPage?handle=hein.journals/dttp36&div=33 Mashing Congress: Using Web 2.0 Tools to Teach Congressional Research], Karen Munro, Jesse Silva, ''DttP'', 2008, on the choice of PmWiki for a library knowledge base that hosts tutorials, micro-Web sites, RSS feeds and a custom search engine.
* [https://dl.acm.org/doi/10.1145/1823854.1823900 Geospatial data and server on USB], S. Lyle, Richard Smith, Cynthia M. Lyle, juin 2010, on the creation of an online and offline distributed PmWiki knowledge base on hurricane preparedness and evacuation decision-making, developed for NASA's John C. Stennis Space Center (NASA SSC).
* [https://www.researchgate.net/profile/Oliver-Vornberger-2/publication/220969750_Media2mult_-_A_Wiki-Based_Authoring_Tool_For_Collaborative_Development_Of_Multimedial_Documents/links/0deec51d664bb81dde000000/Media2mult-A-Wiki-Based-Authoring-Tool-For-Collaborative-Development-Of-Multimedial-Documents.pdf Media2mult: A Wiki-Based Authoring Tool For Collaborative Development Of Multimedial Documents], Martin Gieseking, Oliver Vornberger, Osnabrück University, Germany, 2008, on the use and extension of PmWiki.

{{Wiki software}}
{{Wiki software}}



Latest revision as of 15:12, 25 June 2024

PmWiki
Original author(s)Patrick R. Michaud[1]
Developer(s)PmWiki community
Initial releaseJanuary 2002; 22 years ago (2002-01)[2]
Stable release
2.3.35[3] / 2024-07-07[±]
Preview release
SVN only / nightly
Repository
Operating systemCross-platform
PlatformPHP
TypeWiki
LicenseGNU General Public License
Websitewww.pmwiki.org

PmWiki is a wiki-based[4] content management system designed for a collaborative creation and maintenance of websites.[5]

It is free software written in PHP,[6] licensed under the terms of the GNU General Public License.

Design focus[edit]

The PmWiki philosophy[7] prioritizes writers over readers, aiming to facilitate easy document authoring despite limitations in document types. It supports collaborative website maintenance with built-in tools for access control, delegation, monitoring, review, and edit reversion. Ease of maintenance is a key design goal, and PmWiki is configurable and extensible, allowing independent updates to the core while maintaining compatibility with local customizations.

In addition to standard collaborative features like content management and knowledge bases, PmWiki is utilized by companies and groups[8] as an internal communication platform[9] offering tools for task management and meeting archives.[10] It is also employed by university and research teams.[11]

The PmWiki wiki markup shares similarities with MediaWiki (used by Wikipedia) but includes unique features not found in other wiki engines.[4] The PmWiki markup engine is customizable, and markup rules can be added, replaced or removed, and it can support other markup languages. As an example, the Creole specifications can be enabled.[12] The edit form, since version 2.3.0, can have syntax highlighting enabled for its own wiki markup dialect.[13][14]

Features[edit]

Content storage[edit]

PmWiki uses regular text files to store content. Each page of the wiki is stored in its own file on the web server. By default pages are stored in 8-bit or UTF-8 encoding, with page text, metadata, and revision history in the same file. According to the author, "For the standard operations (view, edit, page revisions), holding the information in flat files is clearly faster than accessing them in a database..."[15]

The storage class is extensible, allowing add-ons to enable other storage systems and formats. For example, with add-ons, a website can use SQLite or MySQL databases, or XML files for storage.

PmWiki supports "attachments" (uploads: images or other files) to its wiki pages. The attachments can be versioned.[16] There are PmWiki add-ons allowing easier management of the uploaded files, e.g. deletion or thumbnail/gallery creation.[17]

Wiki structure[edit]

Wiki pages are contained within namespaces, called "wiki groups".[18] Multiple namespaces can be used, and each namespace can have its own configuration options, add-ons, access control, skin, styles, sidebar (menu), the language of the content, and interface.[19]

Hierarchically, every page is contained in a namespace. It is possible to display and navigate through pages in a tree-like structure with a "wiki trail".[20] Through recipes, it is possible to have a flat structure (no wiki groups), multiple nested groups, or sub-pages.

Special namespaces are "PmWiki", Site, SiteAdmin, and Category which contain the documentation and some configuration templates.

Markup[edit]

The PmWiki markup shares similarities with MediaWiki. Here is a sample of commonly used markup rules.[21]

Links are usually wrapped in double brackets, optionally with link text:

[[Other page]], [[Page|link text]], [[Page|+]] (shows the page title), [[Page#anchor|Link text]]
https://example.com/path/, mailto:mailbox@example.com (plain links)
[[https://example.com/path/|Link text]]
Wikipedia:Wiki_software (InterMap links)

It is possible to enable internal links for CamelCase words without brackets, and add-ons can enable other link markups like @Page.

Headings are preceded with exclamation marks:

! Top-level heading (<h1>)
!! Second-level heading
...
!!!!!! Sixth-level heading

It is possible to enable an automated table of contents coming with the PmWiki core, or install one among several Table of contents add-ons.[22]

Lists are prefixed by "*" (bulleted) and "#" (numbered) and can be nested:

* List item
* List item
** Nested item

# Ordered list
# Another item
** Nested bulleted item

Directives for listing pages and attachments, and including pages and templates:

(:pagelist group=Cookbook order=-time count=20:)

(:attachlist name=*.jpg:)

(:include AnotherPage#fromanchor#toanchor:)

(:include MyTemplate variable=value othervariable="Some value":)

Other page directives allow setting the page title, description, and keywords, disabling layout sections like sidebars or footers, creating tables, or defining page text variables. Add-ons allow for extra functionality.

Inline markup:

'''Bold''', ''italic'', @@code (fixed-width)@@, %classname%CSS styled text%%,
[-small text-], [+large text+], {+inserted+}, {-deleted-}, 
'^superscript^', '_subscript_',
[@
code block, possibly with syntax highlighting
@]

Other markup rules can be enabled through recipes (add-ons).

HTML is not available for the edit form out of the box, but it is possible to enable selected tags through add-ons.

Skin templates[edit]

PmWiki offers a skin template scheme that makes it possible to change the look and feel of the wiki or website with a high degree of flexibility in both functionality and appearance.[23]

Since version 2.3.30, the core responsive skin can have a dark theme enabled. The dark mode functions are available for reuse by custom skins.[24]

Access control[edit]

PmWiki permits users and administrators to establish password protection for individual pages, groups of pages, or the entire site. For example, defined zones may be established to enable collaborative work by certain groups, such as in a company intranet.[25]

Password protection can be applied to reading, editing, uploading to, and changing passwords for the restricted zone. The out-of-the-box installation uses "shared passwords" rather than login names, but a built-in option can enable a sophisticated user/group-based access control system on pages, groups of pages or the whole wiki.

PmWiki can use passwords from config files, special wiki pages, and .htpasswd/.htgroup files. There are also user-based authorization possibilities and authentication via various external sources (e.g. LDAP, forum databases, etc.).

Customization[edit]

PmWiki follows a design philosophy[7] with the main objectives of ease of installation, maintainability, and keeping non-required features out of the core distribution of the software. This design encourages customization with a wide selection of custom extensions, known as "recipes" available from the PmWiki Cookbook.[26] Creating and maintaining extensions and custom installations is easy thanks to a number of well documented hooks in the wiki engine.

System requirements[edit]

Recent PmWiki releases require a web server that can run PHP version 5.4 or more recent. PmWiki can be deployed to standard hosting providers, or locally. There is a "recipe" to allow running PmWiki "Standalone", with the PHP built-in webserver, for example from a USB flash drive.[27]

Books and articles about PmWiki[edit]

The following books analyse PmWiki, have dedicated chapters or sections, compare it with other wiki and CMS software:

  • Todd Stauffer, How to Do Everything With Your Web 2.0 Blog, ISBN 978-0-07-149218-8
  • White, Pauxtis, Web 2.0 for Business: Learning the New Tools, ISBN 978-0-470-43618-9
  • Nancy Courtney, More Technology for the Rest of Us: A Second Primer on Computing for the Non-IT Librarian, ISBN 978-1-59158-939-6
  • Karen A. Coombs, Amanda J. Hollister, Open Source Web Applications for Libraries, 2010, ISBN 978-1-57387-400-7
  • Holtz, Demopoulos, Blogging for Business: Everything You Need to Know And Why You Should Care, ISBN 978-1-4195-3645-8
  • Ebersbach, Glaser, Heigl, Wiki: Kooperation Im Web (German), ISBN 978-3-540-35110-8
  • Lange, Christoph (ed.): Wikis und Blogs - Planen, Einrichten, Verwalten, C&L 2006 (German) ISBN 978-3-936546-44-6
  • Frank Kleiner, A Semantic Wiki-based Platform for IT Service Management, Karlsruhe Institute of Technology (KIT) Scientific Publishing, 2015, ISBN 978-3-731-50333-0
  • Pullman, Baotong, Designing Web-Based Applications for 21st Century Writing Classrooms, Taylor & Francis, Abingdon-on-Thames, 2016, ISBN 978-1-351-86810-5
  • Tim Massaro, Toni Cairns (IBM), Collaborate Quickly with Wiki!, iSeries NEWS, 2005
  • Brian May, Open Source Applications on IBM i, System iNEWS, 2009
  • Lauren Barack, Never-Ending Story (Histoire sans fin), School Library Journal, 2007, about a collaborative effort of 8 authors writing a children's book on PmWiki
  • Brenda Chawner, Paul Lewis, WikiWikiWebs: New Ways to Communicate in a Web Environment, Information Technology & Libraries, 2006.
  • Matthew Bejune (Perdue U), Wikis in Libraries, Information Technology & Libraries, 2007

PmWiki has been featured in a number of printed and online magazines including Inc Magazine,[9] Linux Gazette,[10] PCMag,[28] LXer,[29] Framasoft,[30] Linuxfr.[31]

The page PmWiki References[32] lists publications about PmWiki in various languages.

See also[edit]

References[edit]

  1. ^ Dr. Patrick Michaud. About Page
  2. ^ PmWiki version 0.1 (tgz archive) has its most recent file from Jan 08, 2002. The PmWiki-Users Mailing list exist since August 2002.
  3. ^ "Release Notes". pmwiki.org. Retrieved 2024-07-07.
  4. ^ a b WikiMatrix / PmWiki Features - Compare Them All, WikiMatrix. Cosmo Code, 22 Nov. 2005. Web. 30 Nov. 2011.
  5. ^ PmWiki home page
  6. ^ "PmWiki - DreamHost." DreamHost. New Dream Network, LLC, 7 July 2005. Web. 30 Nov. 2011. Archived 2016-05-14 at the Wayback Machine
  7. ^ a b PmWiki philosophy
  8. ^ PmWiki Users
  9. ^ a b The End of E-Mail, article by Darren Dahl, published in Inc. Magazine, February 2006, page 41
  10. ^ a b PmWiki - Wiki the Painless Way, article by Raj Shekhar, Linux Gazette magazine, May 2005
  11. ^ "PmWiki: wiki simple" (in French). Archived from the original on 2022-05-25. (article in PLUME, an association promoting useful, accessible, and economic software in higher education and research)
  12. ^ "PmWiki - Cookbook / Creole". pmwiki.org.
  13. ^ "PmWiki Release notes, version 2.3.0".
  14. ^ "PmWiki Cookbook / PmSyntax".
  15. ^ "PmWiki Design - Flat File Advantages". Retrieved 2019-01-09.
  16. ^ "Uploads administration".
  17. ^ "Cookbook / Attachments/Uploads".
  18. ^ "PmWiki / WikiGroup".
  19. ^ "PmWiki / Local customizations".
  20. ^ "PmWiki / WikiTrails".
  21. ^ "PmWiki Basic Editing". Retrieved 2023-08-16.
  22. ^ "PmWiki / Table of contents".
  23. ^ "PmWiki / Skins".
  24. ^ "Cookbook / DarkColorScheme".
  25. ^ "PmWiki / Password administration".
  26. ^ "PmWiki Cookbook".
  27. ^ "PmWiki - Cookbook / Standalone". pmwiki.org.
  28. ^ Working Together With Wikis, article by Anil Hemrajani, August 3, 2005, scanned pages on Google Books
  29. ^ Organizing Information, article by Ian MacGregor, July 8, 2007
  30. ^ PmWiki, September 2004, December 2010 (French)
  31. ^ Sortie de PmWiki 2.2.29, article by Lucas Bonnet, July 2011 (French)
  32. ^ "PmWiki | PmWiki / References". www.pmwiki.org.

External links[edit]