About the TWiki Extensions
This web is the repository for TWikiExtensions
: Add-ons, Plugins, Skins and Contributed code. Topics are named as follows:
<name><type>: Ready-to-install download package of an extension submitted to TWiki.org
<name><type>Dev: Ongoing development of an extension (bug report and fixes, enhancements, ...)
<name><type>Appraisal: Appraisal of an extension
<name><type>Brainstorming: Brainstorming and development of a new extension
- Please use the Support web for all non-bug-related problems of an extension
denotes the type of TWiki extension: AddOn, Plugin, Skin or Contrib.
TWiki has the following types of extensions:
- A PluginPackage allows authors to add certain kinds of new behavior without requiring changes to the core TWiki code. The main way this is done is by plugins writing
handlers that are called from the TWiki core at specified points in the core functionality.
- A SkinPackage changes the visual appearance of pages, but leaves the topic contents exactly the same. For example the Printable link at the bottom of every page here on TWiki.org uses the PrintSkin to render the topic in a way more suitable for printing.
- An AddOnPackage implements a script that goes into the
bin directory and can be called from a TWiki topic. In contrast, a Tool is designed to go into the tools directory and can only be called from the shell. Most tools are written by core developers.
- A ContribPackage is reusable code that is available for use by other extensions. Its functionality is made available by using the package name (via
use) in your perl code.
Each released TWikiExtension
-- that is, each stable release -- is zipped and attached to its homepage in this web, either manually or through SVN. Some extensions will work on any version of TWiki; some will only work with specified ones. The latest "bleeding-edge" version of the TWiki extension may reside in the SVN
trunk repository and is only available that way.
Info for Developers
- Learn how to be a good developer
- Learn how to create and publish Plugins.
- Please note the ModificationPolicy! If it says PleaseFeelFreeToModify then anyone (including YOU) can release the new version - don't just attach patches! Otherwise, please check with the authors.
- Please review the PluginsApiPolicies that describes a stable API that you can rely on. This is important! Not following these policies may lead to your plugin breaking. It's in the interest of everyone to try to ensure reliable plugins. This will also help you from having to do extra recoding in the future.
- TWiki is constantly improved, and older versions of the code may not have all the functions that are available in the version that you are using (and some older functions will be deprecated). If at all possible, please consider keeping your plugin compatible with older code versions.
- If possible, use Subversion to maintain your extensions. See also in DakarDevelopersPleaseNote how to use the BuildContrib for easy plugin install/uninstall.
- Note: You do not have to use subversion and BuildContrib to write or maintain your plugin: you can publish extensions by attaching the ZIP file to its homepage in this web.
- Internationalise your plugin through InternationalisationGuidelines - simple changes to make your plugin work with international characters (part of I18N), opening it up to much wider user base across the world.
runs separately from the TWiki scripts, e.g. for data import, export to static HTML, etc. Add-Ons normally do not call any TWiki code directly, though may invoke TWiki scripts.
is loaded at run-time by the TWiki scripts on the server (a bit like Netscape Plugins or Java Applets that are loaded by the browser) - it typically provides a new feature within TWiki pages, e.g. spreadsheets, action tracking, editable tables, etc.
changes the visual appearance
of pages, but leaves the contents exactly the same. For example the Printable
link at the bottom of every page here on TWiki.org is a skin. A skin package will normally only ship topics and templates, and should not
ship any perl code.
Reusable code modules
A ContribPackage module packages reusable code that may be used over several, though not all, plugins and add-ons. Contribs are also used to provide alternative implementations for sections of the TWiki core e.g. user management, or when an extension just can't be implemented as a plugin because it requires very close access to TWiki internals.
Plugins Web Utilities
-- Contributors: AndreaSterbini