It's better when it's simple

User Tools

Site Tools


projects Plugin

Compatible with DokuWiki

2012-10-13, 2012-01-25, 2011-11-10, 2011-05-25, 2010-11-07

plugin A plugin that allows wiki pages to represent files, and to generate files basing on some recipe (rules). This empowers a DokuWiki to become a collaboration tool on project management and content creation.

Last updated on
Syntax, Admin, Action
Conflicts with

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Security warning (please read plugin security guidelines): This extension will allow execution of scripts. It should only be used when you trust ALL editors, best suited in private personal wikis.

Tagged with collaboration, file, generate, make, projects, recipe, source


SECURITY WARNING: There is a huge security risk enabling this plugin on a publicly editable wiki, just as enabling the php embedding in wiki pages, i.e., it is equivalent of opening up access to the user and group that the apache process is running with. To mitigate this risk, you need to restrict the editing privilege to only trusted user to the :projects namespace.

The newest version is 2013-01-21, which is compatible with the “Adora Belle” release. See the change log below.

Installation instructions

  • Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.
  • Then create a “:projects” namespace.
  • Any page under the “:projects” namespace and its sub-namepaces are managed by projects wiki.
  • Restrict editing access to the “:projects” namespace to trusted users only.


See the development page:


Basic syntax:

  • Declaring a page as a file with the page name as file name: <project-file type="TYPE"/>
    • TYPE can be one of
      • source
      • generated
      • crosslink
  • Dependency: <use name="some file name"/>
  • The content of a source file: <source>whatever content you want to put here</content>
  • The recipe for a generated file: <recipe>some unix sh shell commands to generate a file</recipe>

Configuration and Settings

The presentation of a file in a project can be customized using the style.css file.



If you would like to contribute to the development, please email Junling Ma.

Change Log

  • 2013-01-21:
    • Fixed the link on the target file page to download/display the content of the target file.
    • The default rule for linking to a media file was broken in the previous version. Now fixed.
  • 2012-11-06:
    • Fixed cross-links. It was completely broken before.
    • Source and target files are uploaded to the media folder, so they can be retreated as a media file. File information are thus available for source and target files in media links.
    • Fixed the CodeMirror editor for “Adora Belle”.
    • Change the once arcane button name of “Add Use” to “Add dependency”.
    • Adding dependency and removing dependency are now actions, this also cleans up the HTML code that Projects Wiki generates.
    • Fixed plugin settings. Now auto-checking for updates is truly configurable.
  • 2012-08-13:
    • Use CodeMirror as the code editor for projects wiki represented source files and scripts for generated files. Note however this is not compatible with JavaScript and CSS compression!
  • 2011-11-24:
    • A simple fix for 2011-11-10 (Angua RC).
  • 2011-08-07:
    • Fixed a typo in action.php that prevents processing the creation of a subproject.
  • 2011-05-17:
    • Feature: now it is possible to specify which syntax to use for highlighting for the file, or a specific content/recipe block. See the documentation for details.
    • Bug fix: On the project management page, the remake and delete buttons acted on the current page, not the file next to it.
  • 2011-05-14:
    • Fixed a bug that prevented the renaming of dependencies.
    • Fixed a bug that caused fatal error when a page does not have a project-file tag but uses other tags such as use, content, and recipe.
  • 2011-05-11:
    • More fixes to metadata handling. This should solve the problem that the file and wiki page are out of sync bug introduced in 2011-04-29 version.
  • 2011-05-10:
    • More adaptation to Rincewind RC2: The INFO global variable is gone?
  • 2011-04-29:
    • Adapted to Rincewind RC1: fixed metadata usage in metadata rendering in syntax plugins.
  • 2011-04-28:
    • Fixed a bug that prevent the display of file with missing dependencies.
  • 2011-03-07:
    • Fixed the horrendous bug that all the buttons on the manage_files page are still using the old theme of commands.
    • use the correct php script on to check for new versions.
  • 2011-02-25:
    • Display a notice for the admin when a new version is available.
    • Managing files in a project are now handled by a “manage_files” action, instead of using the admin menu. This makes users without admin privileges to be able to manage files in a project.
    • Editing buttons are no longer shown only if the user has respective permission.
    • The project file pages are not cached. This fixes any caching issue it could have been there.
    • Removed the leading and trailing empty line (one the first line).
    • Remake, create a file, create a subprojects, rebuild a project, and clean a project are now all events (remake, create, create_subproject, rebuild, clean, respectively)
    • Fixed an off-by-one bug in adding and removing the use tag.
  • 2011-01-28:
    • Initial release

Known Bugs and Issues

ToDo/Wish List



Please post your comments and suggestions, bug reports, etc, here.

Bug Reports

  • conflicts with plugin bookcreator: pictures (PNGs / JPGs) are generated within the projects directory, but don't show up in wiki.
    • Fixed as of 2012-11-06. Now all generated files are copied into the media folder. Please check.
  • “clear project” function can delete whole wiki: restrict access of the plugin to certain configured namespaces.

Comments and suggestions

  • thanks for this AMAZING plugin!!
  • Further Development idea:
    check for (new / updated) files of a certain filetype (scripts) in project directory and display them as sources page in wiki.
    • Technically, these are generated files. So they should have a proper generated file page. The main need for this automatic detection mechanism that I can see is if a recipe for a generated file A actually generates two files A and B simultaneously. In this case, a common work around (as least common in the makefile world) is to make file B depend on file A, in our case, with a simple recipe as “touch B”.
  • Feature request:
    Regarding latex, it would be great if the plugin could use the CLSI api (, so that one doesn't need a local Latex installation. Perhaps there could be an option in the Admin page, where the administrator can choose between using the local installation, or the CLSI api. Then one would not need to install Latex in the servers, just Dokuwiki and this plugin, and done.
plugin/projects.txt · Last modified: 2023-12-21 17:15 by Aleksandr

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki