bengillies.net

a blog by Ben Gillies

Projects

Most of my work within Osmosoft revolves around TiddlyWeb and TiddlyWiki, both Open Source projects, with TiddlyWeb being a serverside designed to better facilitate multi-user TiddlyWikis.

Most recently, I have been involved in the creation of a new web site for ILGA (International Lesbian, Gay, Bisexual and Intersex Association) with Jon Robson and Jonathan Lister. Utilising ideas we have gained from our experience with TiddlyWiki, and built in TiddlyWeb, the site provides information about LGBTI rights throughout the world in an interactive map format. Have a look at it at http://new.ilga.org.

Listed below, you can find details about plugins I have written to extend both TiddlyWiki and TiddlyWeb. TiddlyWeb plugins end in .py, while TiddlyWiki plugins tend to be named using CamelCase:
  • Like.py - This is a Python plugin for TiddlyWeb that filters tiddlers, returning all tiddlers that have the specified string somewhere in the specified field (aka - partial matching on fields). It is available on GitHub at like.py .

    The code is republished below for reference purposes (though any future updates will only appear on GitHub ):

    ""

    ...More
  • Related.py - This is a Python plugin for TiddlyWeb that filters tiddlers, returning all related tiddlers, ranked in order of related-ness. It is available on GitHub at related.py .

    The code is republished below for reference purposes (though any future updates will only appear on GitHub ):

    """
    Compare the given tiddler 

    ...More
  • tiddlywiki_validator.py - This is a Python plugin for TiddlyWeb that filters out specific tiddlers base on titles matched with a blacklist. It also removes the systemConfig tag, if present and is designed to be used speficially to validate TiddlyWebWiki . It is available on GitHub at tiddlywiki_validator.py .

    The code is republished below for reference purposes (tho
    ...More
  • html_validator.py - This is a Python plugin for TiddlyWeb that restricts HTML tags and attributes to a whitelist. It is available on GitHub at html_validator.py .

    The code is republished below for reference purposes (though any future updates will only appear on GitHub ):

    from tiddlyweb.web.validator import TIDDLER_VALIDATORS

    ...More
  • ZPublishCleanup -
    // hijack function to handle 412 edit conflict response
    config.extensions.ServerSideSavingPlugin.saveTiddlerCallback = function(context, userParams) {
      var tiddler = context.tiddler;
      if(context.status || context.httpStatus == 1223) { 
        handle204(context);
      } else {
        if(context.httpStatus == 412) {
          handle412(context);
        } else {
          displayMessage(config.extensions.ServerSideSavingPlugin.locale.saveError.format([tiddler.title, context.statusText]));
        }
      }
    };

    function handle204(context) {
      var tiddler = context.tiddler;

    ...More
  • PublishCommand -
    config.commands.saveTiddler.old_handler = config.commands.saveTiddler.handler;
    config.commands.saveTiddler.handler = function (event, src, title) { 
            var stored_tiddler = store.getTiddler(title);

        if(stored_tiddler&&stored_tiddler.fields && stored_tiddler.fields['sourceworkspace']){
            delete stored_tiddler.fields['sourceworkspace'];
        }

        config.commands.saveTiddler.old_handler(event,src,title);
    };

    config.commands.publishtiddler = {
        text: "publish",
        tooltip: "publish this so everyone can see it",
        confirmMsg: "Are you

    ...More
  • BlogLayout -
    Name: BlogLayout
    Description: adds a blog like view and tiddler summary view to TiddlyWiki
    Author

    ...More