====== DokuWiki Development ====== You are welcome to contribute to DokuWiki and join the development. What you want to contribute is of course up to you -- you should scratch your own itches first. If you need some ideas of what is missing you should have a look at the [[bugs|bugtracker]]. You could also consider [[devel:adoption|adopting a plugin or template]]. Begin with reading the [[#Getting Started]] chapter. Working together is more fun. The DokuWiki community needs a lot of different skills and is organized in [[teams]]. Please feel free to join one or just hang around the [[mailinglist]] and [[irc|irc channel]] for development talk. There are also [[devel:bughunting|bughunting weekends]] where eh, bugs are fixed, and sometime developers meet IRL at DokuWiki [[devel:hackfest]]. ===== Getting Started ===== - [[devel:Git]] -- Obtaining the code and working with Git((the VCS used for DokuWiki development)) - [[devel:coding_style|Coding Style]] - [[devel:Security]] - [[devel:unittesting|Unit Testing]] - [[devel:Patches]] - [[devel:dirlayout|Directory Layout]] ===== The Development Manual ===== - [[devel:Overview]], walk through of how a page request is served - [[devel:dirlayout|Directory Layout]] - [[devel:Environment]] -- global variables and defines - [[devel:Callgraph]] - [[devel:Locking]] - [[devel:Action Modes]] - [[devel:Parser]] - [[devel:Metadata]] - [[devel:fulltextindex]] - [[devel:Plugins]] - [[devel:Plugin File Structure]] - [[devel:Common Plugin Functions]] - [[devel:Action Plugins]] * [[devel:events|Event System]] * [[devel:event_handlers|Event Handlers]] * [[devel:events_list|Events Overview]] * [[devel:event_handlers_code|Example 1]] * [[devel:event_objects|Example 2]] - [[devel:Syntax Plugins]] - [[devel:Helper Plugins]] - [[devel:Renderer Plugins]] - [[devel:Admin Plugins]] - [[devel:Remote Plugins]] - [[devel:Plugin Unittests]] - [[devel:toolbar|The Toolbar]] - [[devel:Configuration]] - [[devel:Plugin Cookbook]] - [[devel:Plugin Programming Tips]] - [[devel:Templates]] - [[devel:Configuration]] - [[devel:Localization]] - [[devel:CSS]] - [[devel:JavaScript]] - [[devel:Preload]] - Internal Libraries - [[devel:utf-8|UTF-8 String handling]] - [[devel:mail|E-Mail Sending]] - [[devel:compression|Zip and Tgz compression/Decompression]] - [[devel:httpclient|HTTP Client Library]] - [[devel:simplepie|RSS Parser]] - [[devel:json|JSON Parser/Writer]] - [[devel:geshi|GeSHi Syntax Highlighting]] - [[devel:XMLRPC]] - [[devel:custom webservices]] - [[devel:Scalability]] - Further Resources - [[http://xref.dokuwiki.org/reference/dokuwiki/|Development API Reference]]((built daily)) - [[http://phpxref.com/xref/dokuwiki/|Stable API Reference]]((not maintained by dokuwiki.org)) - [[devel:snapshots|Daily Snapshots]] - [[http://github.com/splitbrain/dokuwiki|Git Webinterface]] for browsing the source and patches - [[https://www.ohloh.net/p/dokuwiki/contributors|Hall of Fame]] -- all DokuWiki contributors ===== Development Team Guides ===== - [[devel:release_process|Release process and information on building a release]]