MindTouch DekiWiki provides an intuitive and powerful administrative control panel for administering the application. To minimize the likelihood of unnecessary changes or application outages only administrators have access to the Control panel.
Select Tools from the menu bar and click Control panel (only administrators can view the link to Control panel).
Tools menu selected from menu bar
A redirect occurs anytime a page is moved. Redirects allow users to find the desired page when clicking on a link to the page that has been moved. If a page has been moved many times it can end up with many redirects. You may remove unnecessary redirects by accessing Tools > Control panel > Double redirects
Pages that are moved will never corrupt links
Once you have added integration with a seperate authentication provider you will be able to manage groups in this section.
Only administrators can restore a deleted page. Browse to the location of
the deleted page by clicking What's
New or typing the address of the page directly into your
browser. You will be presented with an option to View or restore N deleted edits,
where is N is the number of versions of this page. Click this. You may view any
of the versions. To restore check
the box adjacent to the version you wish to restore and click the Restore button.
Deleted files can be restored from the Control panel
Alternatively, you can permanently delete files from the system by selecting the desired files and clicking Delete permanently. If you like, you can select all the files on a given view by selecting the topmost check box, this will toggle the checks on and off for all the files shown.
Table of Contents
Deki Wiki "Hayes" introduces a new mechanism to add dynamic content to pages. Dynamic content capabilities were introduced with Deki Wiki "Gooseberry", but adding custom extensions required changing the source code of the application. With "Hayes", the dynamic content capabilities have been greatly improved and the implementation has been recast to leverage the new service-oriented architecture. Adding extensions is now a simple registration step in the Control Panel using the Service Management pane.
Extensions are services that can either run locally or remotely. Running an extension locally has the advantage of better bandwidth by not requiring additional network traffic. However, in order to run an extension locally, it must be configured, which may sometimes require several steps, such as installing additional applications. Alternatively, an extension can run remotely as a service on the intranet or internet. In this case, it has been configured by someone else and is readily available for consumption. A remotely running extension can be used by many Deki Wiki installations, making it easier to update the extension for all sites.
The following screen shots show how easy it is to add an extension service.
![]() | Service Management - List View | ![]() |
When adding an extension, there are several preference settings that can be applied to affect how it can be used:
Deki Wiki includes several extensions out of the box, which make it easy to embed dynamic content into wiki pages.
| Flickr Service Slideshows & Badges ![]() | Google Service Google Maps with marker and pop-up bubble ![]() |
| Graphviz Service Generate complex graphs ![]() | ImageMagick Service Apply effects to images ![]() |
| MathService Advanced math formulae rendering ![]() | Yahoo Service Show stock information and charts ![]() |
An extension defines a set of functions, which become available when the service is enabled in the Control Panel. These functions can be invoked in different ways.
The most common use for simple invocations is done directly inline using the double-curly brace notation {{...}}. The following function will include a page called "My Page".
{{wiki.page("My page")}}
Another common use is to put the invocation inside a <pre class="script"> block. The <pre> notation has the advantage that it can span multiple lines without interference from other markup.
<pre class="script">wiki.page("My Page")</pre>
The last notation is a bit special, but lends itself well for functions that can take a large string argument. It also uses the <pre class="script"> notation, but adds one more attribute that specifies the function to invoke. For example <pre class="script" function="function-name">. The contents of the <pre> block are then passed in as a string as the first argument.
<pre class="script" function="wiki.page">My Page</pre>
DekiWiki ships with a dozen extensions for Google, Windows Live, Flickr, and many others. All extensions are setup in a similar manner, but some extension have prerequisites before they can be used. Consult the documentation for each extension to see what is needed to set it up.
Extensions use a small set of data types. They are
Refer here for a step-by-step tutorial on creating a new extension.
Extensions use a simple document exchange protocol for registering and invocation. This makes it possible to write extensions in any language.
When an extension is registered, it is queried for its list of functions. Let's assume our service resides at http://ext.mindtouch.com:8080/math. When we register it, Deki Wiki issues a GET request on this uri, resulting in the following response:
<extension>
<title>MindTouch Deki Math Service</title>
<copyright>Copyright (c) 2007 MindTouch, Inc.</copyright>
<uri.help>http://doc.opengarden.org/Deki_API/Reference/Math</uri.help>
<namespace>math</namespace>
<function>
<name>formula</name>
<uri>http://ext.mindtouch.com:8080/math/formula</uri>
<return type="xml" />
<param name="formula" type="str">formula in Latex-AMS notation</param>
</function>
</extension>
The important parts in this response are the <namespace> and <function> elements. The <namespace> element is optional and determines the prefix for the functions. For example, in this case, the namespace is "math", which means that all functions from this service will be prefixed with "math.".
The <function> element describes a function in the extension. There can be any number of <function> elements in the response document. The crucial parts in this element are the <name> and <uri> elements. The <name> element is the name of the function, which will be combined with the namespace prefix to create the full name; in this case "math.formula". The <uri> element specifies where the function is located. When Deki Wiki finds a reference to this functions, it resolves the name to this URI and the POSTs a request document to it.
The rest of the elements (<title>, <uri.help>, <param>, <access>, etc.) are only informative and do not impact registration and execution. These elements are only used to provide guidance to users when they access extensions.
The next step in the chain is invoking an extension function. Keeping with the Math service, let's look at the following wiki text:
{{math.formula("\\pi=\\frac{3}{4} \\sqrt{3}+24 \\int_0^{1/4}{\\sqrt{x-x^2}dx}")}}
The parameters get converted into a list, which is then serialized to XML.
<value type="list">
<value key="#" type="str">\pi=\frac{3}{4} \sqrt{3}+24 \int_0^{1/4}{\sqrt{x-x^2}dx}</value>
</value>
The 'key' attribute is always '#' for lists, but has an alphanumeric value for maps. The 'type' attribute specifies the value type (e.g. nil, bool, num, str, uri, map, list, or xml).
When the function completes, it responds with the invocation result, which is also returned inside an array:
<value type="doc">
<value key="#" type="xml">
<html>
<body>
<img src="http://ext.mindtouch.com:8080/host/$store/_x002F_math/806b359f-94ef-3aae-e253-2877a0af8a8c.img" />
</body>
</html>
</value>
</value>
The XML format for extensions is based on DekiScript, the built-in expression language for Deki Wiki. The following table shows how the native DekiScript types are encoded as XML.
| Type | Encoding |
| nil | <value type="nil" /> |
| bool | <value type="bool>true</value> <value type="bool">false</value> |
| numbers | <value type="num">123.4</value> |
| string | <value type="str">Hello World!</value> |
| uri | <value type="uri">http://somewhere.com</value> |
| map | <value type="map">...</value> where ... contains zero or more <value> elements with a "key" attribute |
| list | <value type="list">...</value> where ... contains zero or more <value> elements with a "key" attribute equal to "#" (e.g. <value type="nil" key="#" />) |
| xml | <value type="xml">...</value> where ... contains a single xml node |
For more practical infomation about extensions, please refer to FAQ.
| Service | Description |
| Digg | The Digg service embeds the "Digg It" widget. |
| Feed | The Feed service embeds RSS and ATOM feeds. |
| Flickr | The Flickr service emeds photo badges and slideshows. |
| Gabbly | The Gabbly service embeds a chat room that allows users to talk with anyone else across a site. |
| The Google service embeds an interactive Google map control. | |
| Graphviz | The Graphviz service generates dynamic flowcharts using the dot graphics notation. |
| ImageMagick | The ImageMagick service allows images to be manipulated in various ways. |
| Math | The Math service generate representations of mathematical formulae. |
| Media | The Media service embeds videos from YouTube, Google, VMix, and others. |
| MySql | The MySql service embeds tables from SQL queries. |
| Widgetbox | The Widgetbox service embeds widgets from Widgetbox.com |
| WindowsLive | The WindowsLive service embeds an interactive Virtual Earth control. |
| Yahoo | The Yahoo service embeds interactive stock quotes from Yahoo! Finance |
An unused redirect is one that is not needed because no page is linking to the old page title. You can remove these by accessing Tools > Control panel > Unused redirects. From here you may elect to remove any unused redirects.
Pages that are moved will never corrupt links
This is the interface for managing users for Deki Wiki that were either added locally or are connected to a seperate authentication Server.
To add a user locally to the wiki make sure that local is selected and then add a username, email, the user's password, and then assign a role to them:
This section allows you to customize the look and feel of your site. You can add a custom logo, change the CSS styles, and change the color of the site.
To implement a custom skin for your Deki Wiki go here