TiddlyWiki.org

TiddlyWiki Server Side

See this discussion on tiddlywikidev

Background

There are four distinct ways in which TiddlyWiki can interact with a server:

  1. the server can generate a TiddlyWiki file with baked-in content. Usually, this means marking up empty.html so that it can be treated as a template into which tiddler text is spliced from, say, a database
  2. using the UploadPlugin? (or the new WebDAVSavingPlugin for TW 2.2) TiddlyWiki can save changes to a server instead of to a local file
  3. the server can participate in TiddlyWiki's infrastructure for importing, exporting and synchronising tiddlers between occasionally or manually connected stores
  4. the server can take over key TiddlyWiki operations to give the user the semantics of a traditional shared wiki

This discussion is chiefly concerned with the fourth category, but they overlap somewhat - these servers would still use the first technique to splice their machinery into the TiddlyWiki file in the first place.

Goals

To have a common server API that means you could link any client (from a full serverside TW plugin, to a tiny TW plugin to save Minesweeper scores to a common server, to a TiddlySnip-type browser extension) to any server (db-backed with versioning services like ccT and ZW, a read-only plugin repository, etc etc).

TW shouldn't really require it's own custom server implementations, but rather should use industry standard protocols to exploit existing servers. For example, Amazon's S3 and similar services expose commodotised data storage that is suitable for TiddlyWiki as a file-level storage medium. Similarly, Zope provides a commodotised content management system that TiddlyWiki can use as a tiddler-level storage medium.

Architecture

REST

What is REST?

MediaWiki? REST APIs

new API
MediaWiki REST API
Self documenting form of MediaWiki REST API

older API for retrieving data (will be obsolete upon new API completion).
MediaWiki REST Query API
Self documenting form of MediaWiki REST Query API

TWiki REST APIs

TWiki Scripts
TWiki REST

TWiki REST discussion

Socialtext REST

Socialtext REST Documentation

Moodle

Tiddlywiki integration with New Moodle Wiki

Confluence

Confluence Remote API Specification

Ruby helper class for Confluence XML-RPC

PBWiki

PBWiki REST API

JavaScript? APIs

What is Zope?

Resources for Amazon Simple Storage Service

Google Data APIs (Beta) Developer's Guide

An overview of the Atom 1.0 Syndication Format

mime types: http://www.faqs.org/rfcs/rfc4288.html