TiddlyDocs – Collaborating on large documents

Recently I’ve been building a proof of concept, the brief was simple…

“Come up with a way for my team to collaborate with people outside the organisation on large Word document. At the moment, we tend to email them between us, which can degenerate into a nightmare.”

Our approach was to think about breaking these large documents down into small sections which could be assigned to individuals for authoring and/or review. These sections could then be reassembled into a single document for printing.

To build this proof of concept we used TiddlyWiki and jQuery. The latest release of TiddlyWiki (2.5) includes jQuery (1.2.6) so this provided a fine opportunity to explore the new potential.

So here is the demo,

The online demo does not demonstrate the iGoogle integration of TiddlyDocs.   The iGoogle integration showed how we could provide a personalised view of the sections assigned to each user.  While we used iGoogle for the original demo this portlet just contains HTML so could be embedded into any portal framework which supports HTML.

PSD wrote some XSL-FO to translate the generated HTML into a printable PDF document. Paul’s code can be found here.

Features :

Drag and Drop your Table of Content

Allows users to change the order and hierarchy of the document table of content

Easily assign sections to Users

Allows each section to be easily assigned to a pre-populated list of users.

Full WYSIWYG text editing with FCKEditor

Allows users to edit the document content in a familiar word style environment.  Also allows content including images to be pasted in the textarea from the clipboard.

iGoogle Integration of Personalised Task Lists

The iGoogle integration allows each users to have their own view of all the tasks assigned to them. This can be used in various portal frameworks.

Easy view of the documents status

The bar to the right of the table of content shows the status of each section. When the bar is completely green the document is complete.  This example demonstrates that only one of the sections has been completed.

Each Section Allows for Comments

Each section allows multi-threaded comments which will not be printed in the final document.  This allows for conversations to take place around each section of content.

The Components :

We were able to build this proof of concept so quickly by reusing open source code that is available in the TiddlyWiki and jQuery communities.  Below I talk about the components that make up TiddlyDocs.

SplitView Plugin

This is one of the plugins I wrote specifically for the demo. The macro accepts one parameter which is the name of another tiddler to store the document specification. The document specification is stored in list format, eg:

* Heading 1
* Heading 2
** Heading 2.1
** Heading 2.2

* Heading 3

Every time the document is re-arranged the specification tiddler is saved.

PrintView Plugin

This is the other plugin which I wrote specifically for the demo.  This plugin can read the document specification, collect the data from each of the required tiddlers, and then generate a static html file on the server which can then be converted to PDF for printing.

Single Page Mode Plugin

Provided by Eric of TiddlyTools, the singlePageModePlugin ensures only one tiddler is viewed at a time.

http://tiddlytools.com/#SinglePageModePlugin

Comments Plugin

Allows users to post comments against individual sections. These comments are presented as a threaded discussion, allowing rich conversations to take place around the content.  Thanks to Michael Mahemoff for this plugin who also helped with the demo.

http://tiddlyguv.com/CommentsPlugin.html

Value Switcher Plugin TeamTasks

Taken from Phil Hawksworth‘s TeamTasks, this allows the fields provided by TiddlyWiki to be used to store information about ownership and current status.

http://svn.tiddlywiki.org/Trunk/contributors/PhilHawksworth/verticals/TeamTasks/core/plugins/ValueSwitcherPlugin.js

from:  http://getteamtasks.com

FCKEditor

FCKEditor is a project to make a nice WYSIWYG editor from any HTML textarea.  I have to say a I have been very impressed with FCKEditor.

http://www.fckeditor.net/

TiddlyWiki FCKEditor Plugin

A TiddlyWiki plugin that makes FCKEditor work nicely with TiddlyWiki.

http://visualtw.ouvaton.org/VisualTW.html#FCKeditorPlugin

NestedSortable -(a  jQuery plugin)
This jQuery plugin provides the drag and drop interface for the demo.

http://code.google.com/p/nestedsortables/

This demo is hosted by ccTiddly but its been written to work on TiddlyWeb and any other server-side implementation of TiddlyWiki.  Over the next few months I will be working on TiddlyDocs to prepare it for easy consumption.

Updated : Michael Mahemoff has produced a screencast talking through the features of this demo :  http://vimeo.com/3109248

Advertisements

9 thoughts on “TiddlyDocs – Collaborating on large documents

  1. Wow – a PoC based entirely on reusing open source code base…and what’s more it looks so intuitive! Well done so far not just on the output, but how you went about it.

    Keen to get views on how best to manage user data (i.e. responsibilities and task activity) against user access/privileges models central to portal frameworks.

  2. A quick look at the demo and I see it fills an urgent need I have within my work…great stuff…when can we officially get our hands on a copy ??????

    Skye

  3. Hi Skye,

    It’s currently available in SVN here:

    http://svn.tiddlywiki.org/Trunk/association/serversides/cctiddly/Trunk/plugins/TiddlyDocs

    I’m developing it in ccTiddly so the easiest way to get the code running at the moment is to pull down the ccTiddly latest code from SVN:

    http://svn.tiddlywiki.org/Trunk/association/serversides/cctiddly/Trunk/

    TiddlyDocs will will included in the ccTiddly 1.8 release but I am also making sure it works on TiddlyWeb at the moment.

  4. great, really.

    a question: would it be (just in principle) be possible, to build a sort of gdoc-paragraphs2tiddlers engine that transforms “macrotexts” into a TW-microcontent-hypertext-file-with-tagging-etc., and back again?

    so that paragraphs=tiddlers would have automatic (but changeable) tags describing the sequence in the “doc”?

    reason: i would love to write in GDocs/Gears with some typographic features, but also be able to transform this into a TW-file with one click. And work collaboratively on “tiddlers/paragraphs” which would behave like a mixture of (micro-)wikipedia-entries (with discussion page and earlier versions) and/or (micro-)blog entries (with comments).

    basically: i love TiddlyWiki but need a different input interface to really make it work for me. i just use it for GTD and names/addresses now, in practice. a sort of external microcontent-client for writing/clipping and reading-in-a-flow like Twitter-Air-clients would also be great.

  5. Hi Martin,

    You could export from google Docs in HTML format, parse the document and create Tiddlers for each HTML paragraph.

    This could be done quite easily with a TiddlyWiki macro to create the Tiddlers.

    This may help :

    http://tiddlywiki.org/wiki/Dev:Custom_Macros

    The TiddlyWiki dev group is probably the best place to find help:

    http://groups.google.com/group/TiddlyWikiDev

    Although I am also happy to provide help if you get stuck.

    Once you have the content in tiddlers the possibilities are endless.

  6. hi simon, thanks a lot. i will try and report!
    cheers to you & the osmosoft team.
    martin

  7. Hi, I am very impressed! TiddlyDocs seems to do everything right that we learned from a collaborative text annotation tool we delveloped at the Technical University of Darmstadt, Germany http://www.emargo.de/

    Unfortunately tiddlydocs.com seems to be down and I cannot find the source on svn.tiddlywiki.org. Is TiddlyDocs actively developed any more and is there a possibility to get the code?

    Thanks

Comments are closed.