Featured Site: MindTouch Deki Wiki
Where? http://wiki.mindtouch.com/
Developer: MindTouch
The Site
MindTouch Deki Wiki (a combination of Japanese and Hawaiian
words for “smart” and “quick”) is the
Web’s most popular commercially supported wiki platform for
creating content and mashups using a wiki interface. The free, open
source application is an easy to use program for authoring,
aggregating, organizing, and sharing almost any kind of content.
Enterprises can build online communities and in-house Intranets,
create collaborative applications, or add wiki capabilities to
existing applications. Deki Wiki leverages the Microsoft™
Windows Live™ network of Internet services. In the example, a
visitor to the wiki can read a restaurant review and immediately
get a map and driving directions from any starting point to the
restaurant. The map and directions are obtained dynamically from
Microsoft Virtual Earth™ mapping software, using a few simple
calls (see below).
Why the Windows Live Platform?
Windows Live services provide a number of benefits:
- Clear APIs, SDKs, and the large repository of technical
documentation available on Microsoft’s http://dev.live.com/ website.
- A large, helpful online developer community.
- Very fast startup (several hours from software download to demo
pages).
- No additional training or investment needed to deploy Live
Services.
- Fully compatible with Microsoft development environment.
Programming Environment
MindTouch developed Deki Wiki on the Microsoft .NET framework
with the Visual Studio® development system. The application
logic is implemented in C#, while the presentation layer is handled
independently using PHP. This makes it possible for a designer to
alter the user interface quickly and without compromising the
application’s business logic.
Under the Hood
The following code snippet uses DekiScript, the built-in
scripting language developed by MindTouch to create visually rich
and interactive pages in Deki Wiki. The snippet shows how controls,
map, and directions are placed on a wiki page so that a visitor can
easily find a restaurant. DekiScript embraces the new programming
model of information subscribers and publishers, which enables
editors to easily create mashups with web-services and widgets.
{{ live.map{ address: args.address, title: args.title, description: args.description,
kind: 'road', publish: @directions, subscribe: @from, zoom: 15 } }}
{{ dhtml.form{ inputs: [ { label: args.label ?? 'Driving from:', field: 'from' },
{ field: 'to', value: args.address, hidden: true } ],
button: 'Get directions to ' .. args.title, publish: @from } }}
{{ dhtml.table{ columns: [ { label: 'Directions', field: 'text' }, { label: 'Distance', field: 'info' } ],
subscribe: @directions } }}