Outlining in MediaWiki

Earlier this month I blogged about something I’d like called a “Micki”: a wiki that works like an outliner. Now, thanks to mind-opening help from Dave, I’m looking to edit existing wikis with an outliner. That’s a great place to start. I’m writing this blog in an outliner. Why not a wiki?

MediaWiki is what we like to use at the Berkman Center. It’s what we use for ProjectVRM, and it’s what Wikipedia uses. And it has an API. This is good.

The first thing I want to do is edit pages. Wiki pages have outline characteristics. For example: section headings, subsections and smaller subsections. Each is a level — same as with outlining — and each is created by flanking the heading with larger numbers of equal signs:

  ==section heading==

  ===subsection heading===

  ====smaller subsection heading===

Lists also follow an outline mode, again with levels. As it explains here,

  * ”Unordered lists” are easy to do:
** Start every line with a star.
*** More stars indicate a deeper level.
*: Previous item continues.
** A new line
* in a list
marks the end of the list.

And…

  # ”Numbered lists” are:
## Very organized
## Easy to follow
#: Previous item continues
A new line marks the end of the list.
# New numbering starts with 1.

No, that wasn’t all too clear to me either, but what matters is that wikis do outlining. So it only makes sense that outliners can do wikis. Why not? That was Dave’s question for me, and I’m running with it.

There is another reason, in addition to my own personal wants and needs here. I think outlines are excellent ways to organize personal data stores — a subject of work and discussion at ProjectVRM.

Along those lines I had an interesting conversation with Brian Behlendorf yesterday, about how we manage receipts for online purchases. I think what most of us do is just search through old emails for keywords, or sort by moving receipts and other commercial correspondence to a dedicated mailbox.

I’d like to organize them in outline form. And re-organize them as well. By vendor. By date. By item purchased. By category. By how much I paid. The list can go on. If we come up with a standard or consistent way for vendors to report the data to us, so much the better. (That’s downstream, but it’s very much in the scope of our ambitions for VRM. We want to tell vendors how to help us in consistent ways, instead of different ways inside each of their silos.)

That’s a digression, but it’s relevant to the degree that outlining is a model for organizing the miscellaneous-yet-organizable nature of all the subects we care about more deeply than at a single level.

There’s something about the flat nature of wikis that serves to disorganize things. I think outlining can help with that. So let’s start inside individual pages and see what new we can do.

Back to the API. I see stuff here about searching, actions such as login and logout, doing queries for text, data, edits and site info, formatting output…

I don’t see anything here that looks like it welcomes editors. So here’s where the dumb questions start. Can you use text editors such as vi or emacs to edit wikis? Or are wikis so bound to their own editing system, with its own markup conventions, that they don’t welcome editors (including outliners, which I think of as a kind of editor, though that might be too limiting)? Dunno yet. Just starting here.

10 comments

  1. Ilan’s avatar

    Doc,

    The API for deki  www.mindtouch.com) would probably be friendly to this type of integration.

    Ilan

  2. Craig Box’s avatar

    Look at MindTouch Deki (originally a MediaWiki fork), which has two useful characteristics here: (a) its API is completely separate from its’ frontend (the frontend is just an API client), so you could use any editor of your choice and a simple REST API; and (b) the markup language is XHTML, so you can use any editor of your choice and don’t have to worry about wikitext. You can also edit just one section (as defined in your outline by headings) at a time.

    Plus, a built-in scripting language (DekiScript) lets you massage your data in any way you want. Some potential uses – include sections of a page from another page; templating; pulling data from other sources, processing and displaying – a.k.a. the Web 2.0 ‘mashup’.

  3. Craig Box’s avatar

    Should have added a link to the open source community for it: http://wiki.developer.mindtouch.com/MindTouch_Deki. MindTouch also provide a commercially supported version for those who want/need it, so the OSS version isn’t currently very easy to find from the mindtouch.com website.

  4. Christina’s avatar

    I don’t know if this is exactly what you’re asking, but OpenOffice has an “export to MediaWiki” option–which means that you can edit something in it using a friendly WYSIWIG interface and it’ll do all the Wiki formatting for you. I mostly use it to convert the minutes I take with Tomboy notes (which export to HTML) to MediaWiki format–works like a charm!

  5. Don Marti’s avatar

    Doc, you might want to check out Ikiwiki, which you might call “the wiki that gets along with your other software” or maybe “the lazy wiki that makes other software do most of the work”. Ikiwiki uses a revision control system as the back end. So any application with a hook to commit into the revision control system will update the wiki, too–auto-freaking-magically. The other k3wl thing about ikiwiki is that you can add any input format by writing a plugin — so you can have the wiki work from your outliner’s native format. So that means the critical path from where you are now to total outliner/wiki smoothness is (1) a revision control hook for your outliner and (2) an ikiwiki plugin to handle your outliner’s native format.

  6. Bill Seitz’s avatar

    Within a given node, are you satisfied with plaintext editing (e.g. using the wiki-specific pseudo-tags for links, italics, etc)?

  7. Bill Seitz’s avatar

    Will other people be able to edit these pages? Will you/other people be able to edit pages directly (e.g. without the outlining tool)? This makes things a bit tricker as you need to handle “broken” wiki-text when sucking it into the outliner.

  8. Jon’s avatar

    Following on from Don’s comment: Ikiwiki currently has an “opl” plugin, so it can interpret and render OPL lists into HTML. However, it lacks any kind of intelligent editor, yet, so if you wanted to edit the OPL via the ikiwiki web interface, you would be hacking on it inside a TEXTAREA. Of course, this isn’t a problem if you just clone the wiki source and open it up in your outliner.

    I’ve been working on-and-off on a javascript outliner plugin for ikiwiki which would let you create lists in the web interface more easily. It’s a long way off useful, though.

  9. Jon’s avatar

    Chomped link was http://dev.jmtd.net/outliner/ (commits currently broken)

Comments are now closed.