DokuWiki

It's better when it's simple

User Tools

Site Tools


development

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
development [2020-11-22 03:06] – [Ideas and brainstorms] Fred23development [2024-02-02 16:51] (current) – PhpStorm externally linked 193.72.18.225
Line 1: Line 1:
 +====== 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]] or on the [[devel:ideas|idea pages]]. You could also consider [[devel:adoption|adopting a plugin or template]]. Begin by reading the [[#Getting Started]] chapter.
 +
 +
 +===== Getting Started =====
 +
 +  - [[devel:Git]] -- Obtaining the code and working with Git((the VCS used for DokuWiki development))
 +    - [[devel:github|Working with Github Pull Requests]]
 +  - [[devel:coding_style|Coding Style]]
 +  - [[devel:Composer]]
 +  - Editor Setup
 +    - [[devel:VIM]]
 +    - [[devel:IntelliJ Idea]] (or [[https://www.jetbrains.com/phpstorm/|PhpStorm]]) {{http://www.jetbrains.com/img/logos/logo_intellij_idea.png?80&nolink&recache}}
 +  - [[devel:Security]]
 +  - Testing
 +    - [[devel:unittesting|Unit Testing]]
 +    - [[devel:browserstack|BrowserStack]] browser testing {{browserstack-logo.png?100&nolink}}
 +  - [[devel:Patches]]
 +  - [[devel:Debugging]]
 +
 +===== The Development Manual =====
 +
 +  - [[devel:Overview]], walk through of how a page request is served
 +    - [[devel:dirlayout|Directory Layout]]
 +    - [[devel:Environment]] -- global variables and defines
 +      * Accessing [[devel:request_vars|Request Variables]]
 +      * [[devel:Session handling]]
 +      * [[devel:Preload]]
 +    - [[devel:Autoloader]] 
 +    - [[devel:Callgraph]]
 +    - [[devel:Logging]]
 +    - [[devel:Locking]]
 +    - [[devel:Action Modes]]
 +    - [[devel:Authentication]]
 +    - [[devel:caching|Caching facilities]]
 +    - [[devel:Parser]]
 +    - [[devel:Metadata]]
 +    - [[devel:fulltextindex|Fulltext Index]]
 +  - [[devel:Plugins]]
 +    - [[devel:Plugin File Structure]]
 +    - [[devel:Common Plugin Functions]]
 +    - [[devel:Action Plugins]]
 +      * [[devel:events|Event System]]
 +      * [[devel:events_list|Events Overview]]
 +      * [[devel:event_handlers|Event Handlers]]
 +      * Examples of [[devel:event handlers code]]
 +    - [[devel:Syntax Plugins]]
 +    - [[devel:Helper Plugins]]
 +    - [[devel:Renderer Plugins]]
 +    - [[devel:Admin Plugins]]
 +    - [[devel:Remote Plugins]]
 +    - [[devel:Auth Plugins]]
 +    - [[devel:CLI Plugins]]
 +    - [[devel:unittesting#plugin_and_template_tests|Plugin and Template Unittests]]
 +    - [[devel:toolbar|The Toolbar]]
 +    - [[devel:Plugin Programming Tips]]
 +  - [[devel:Templates]]
 +    - [[template:Starter]] template -- Basic building block for new templates
 +    - [[devel:Menus]]
 +    - [[devel:style.ini|style.ini]] -- CSS: loading styles and setting variables
 +  - [[devel:Configuration]]
 +  - [[devel:Localization]]
 +  - [[devel:CSS]]
 +    - [[devel:LESS]] preprocessor
 +  - [[devel:JavaScript]] (jQuery, jQueryUI)
 +    - [[devel:jqueryfaq|jQuery FAQ for Plugin Developers]]
 +  - [[devel:SVG]]
 +  - Internal Libraries
 +    - [[devel:utf-8|UTF-8 String handling]]
 +    - [[devel:request_vars|Request (GET/POST) variable handling]]
 +    - [[devel:mail|E-Mail Sending]]
 +    - [[devel:httpclient|HTTP Client Library]]
 +    - [[devel:simplepie|RSS Parser]]
 +    - [[devel:form|Forms]]
 +  - Composer Libraries
 +    - [[devel:geshi|GeSHi Syntax Highlighting]]
 +    - [[devel:phparchive|Zip and Tgz Compression/Decompression]]
 +  - [[devel:Remote API]]
 +    - [[devel:XMLRPC|XML-RPC]]
 +    - [[devel:JSONRPC|JSON-RPC]]
 +  - Further Resources
 +    - [[https://codesearch.dokuwiki.org/xref/dokuwiki/|Development API Reference]]((built daily))
 +    - [[devel:snapshots|Daily Snapshots]]
 +    - [[devel:releases|Developers' Release notes]]
 +    - [[https://github.com/dokuwiki/dokuwiki|Git Webinterface]] for browsing the source and patches
 +    - [[https://www.openhub.net/p/dokuwiki/contributors|Hall of Fame]] -- all DokuWiki contributors
  
 ===== Development Team Guides ===== ===== Development Team Guides =====
Line 7: Line 94:
   - [[devel:release_process|Release process and information on building a release]]   - [[devel:release_process|Release process and information on building a release]]
  
 +===== Ideas and brainstorms =====
  
 +  * Planning an external [[devel:Security Audit]] of DokuWiki
 +  * [[devel:Ideas|Ideas with some concepting]] that could be picked up and implemented by (new) DokuWiki developers.
 +  * Plans for more radical [[devel:Template changes]]
 +  * DokuWiki [[devel:Refactoring]]
 +  * [[devel:Farm]] - ideas for [[tips:farm|tips:farm]]
 +  * Some remarks on [[devel:Memory footprint reduction]]
 +  * Brainstorm about [[devel:scalability]], [[devel:scalability_proposal]]
 +  * Brainstorm [[devel:Tagline]] for dokuwiki.org
development.1606010781.txt.gz · Last modified: 2020-11-22 03:06 by Fred23

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