As I promise with my overly-technical posts, a picture of a beautiful woman to balance it out:


"Roy, I can't believe you stayed in on a Friday night to work on THIS!"

Long-time readers of Tabulas will have known that I've long been interested in pushing data across services - this is why crossposting was such a big deal for me. I believe that federating data is incredibly important (and one of the few good things that's come up from this Web 2.0 bubble).

Last week, I asked one of the MindTouch developers to look into the feasibility of MindTouch Deki / Wordpress integration after I got a little excited about the Universal Edit Button. He got back with a very rough prototype this week - it was enough of a proof of concept for me to waste my Friday night hacking out the proof-of-concept into a slightly better proof-of-concept. The stuff I hacked together tonight only accomplishes one task: A WordPress install can push content into MindTouch Deki and maintain the data association between the Deki page and the WordPress page. Obviously, the second part of this is MindTouch Deki pushing data back into Wordpress - unfortunately this type of functionality doesn't quite exist inside Deki yet, so that part will be harder to accomplish.

Why it's awesome

  • It. Just. Works.
  • No updates necessary for Deki - the APIs I used exist in very old versions of Deki ... which means it'll work on Wik.is!
  • It adds wiki functionality to your blog - each blog edit gets stored in the wiki - you can always go there and revert changes and see what's happening! And all you need to do is install a friggin' WordPress plugin!
  • Unless your wiki engine stores in XML (XHTML), you can't do this without writing a Wordpress XHTML -> Your-custom-markup-language ... Deki can. Sucks for you, MediaWiki! (Also, even if you managed to get it one way, once you add functionality to push from your wiki to your wiki, you're bound to end up with all sorts of formatting nightmares). Features like this which "just work" is exactly why creating your own markup language when XHTML exists is such a horrible, horrible idea. 
  • It lets you point multiple WordPress installs into a single Deki install. Got 30 WordPress installs you want to oversee? Simple. Install the plugin, and point. Don't forget that once it's in Deki,  you can export it in all sorts of crazy formats using the API, and you can take advantage of our kick-ass search engine across all the sites at once (WordPress' search doesn't scale so well anyways).
  • I wrote it.

How it works

  • (Prerequisites: Install Wordpress plugin, create a MindTouch Deki account, enter information on plug-in to authenticate into MindTouch Deki account)
  • Anytime a post is published (e.g. made public) in WordPress, it saves the page in a configurable location in your Deki ("Example: "Blog Posts/")
  • It utilizes the Wordpress URL as the Deki page URL, and the WP title as the Deki display title (this lets the URL between Deki + WP remain consistent)
  • All categories and tags that were set in the Wordpress entry are collapsed into a single tag list inside Deki
    1.  A few special tags are added to the Deki page: "wordpress-id:#", "wp-author: {name}", "from: {wordpress site url}"
  • When a WordPress entry is updated, it will automatically update your Deki page by finding the "wordpress-id:#" tag, and then saving the update. If your WordPress entry URL changed, the page will also automatically move inside Deki (or if you decide to move it).
    1.  You can also take advantage of a special WordPress tag to target the entry's location inside your Deki; this lets you override the configurable path!
  • When you delete your WordPress entry, it also deletes the Deki page.

This is pretty f'ing awesome, if I may say so myself.

It was really nice working on this, because I've been working on such shitty, boring projects lately (like integration with Sharepoint integration ... ugh). I've been leading a project lately for another demonstration of how awesome Deki's API is (a kick-ass mobile interface), but I've forced myself not to be too hands-on so others can learn the joys of creating a product that's their own ... it'll probably be one of the first projects where I have almost no direct code/UI contributions :)

P.S. Just to demonstrate this, I created a WordPress blog on my own domain (which I will eventually have my Tabulas account automatically crosspost to) to post this entry to the MindTouch Developer wiki. With luck my WordPress entry should show up on the MT developer wiki. (edit: yay it worked!)

 

Posted by roy on July 12, 2008 at 12:50 AM in Web Development, Tabulas, MindTouch | 3 Comments

Related Entries

Want to comment with Tabulas?. Please login.

Comment posted on July 13th, 2008 at 06:46 PM
I tried this out and it is awesome...it is pushing my blog post into my wik.is account...supersweet.

Nick P. (guest)

Comment posted on July 12th, 2008 at 09:41 AM
Excellent!
http://forums.developer.mindtouch.com/showthread.php?t=1522
is coming true!
Comment posted on July 12th, 2008 at 04:13 PM
Absolutely! You should try it out :)