Wikiversity, interested? - How to make a wiki editable slideshow

A friend at LCA came up to me with an interesting problem. She has some sets of slides, that she uses to teach beginner’s programming workshops in Python. She wants to share the slides with other people so they can be more widely used. What should she do?

Firstly, she could upload them to Wikimedia Commons just as a file. Oh, but, wait!, SXW and ODP OpenOffice formats were removed from the accepted file types list because of security concerns! Which means the only file format you can upload slides in is PDF. And PDF is like a paper book. It is not editable at all. If you want to edit it you pretty much need to start from scratch.

The second problem is, even if OpenOffice formats were accepted, there is no good versioning for uploaded files. For wiki pages, blobs of marked-up text, we have an awesome interface via the History tab. We can see who made each revision, what exactly they did, and we can also easily see the diff between any two edits of any given wiki page. But for uploaded files, all we know is that there may be uploaded multiple versions of a file. If we want to see anything like a “diff” we have to download both versions and
compare them manually. This is tedious and severely hinders collaboration.

So, hm… seems like wikis are out. Maybe there are some other sites that allow collaborative editing of slides? Slideshare, nope, no editing, just viewing and commenting. Well there is Google Docs, but you need to invite in advance who you want to let edit it (and I’m pretty sure they need a Google account). That is rather contrary to the aim of making them available for anyone to use.

I had a bit of look around the web and I didn’t see any other service offering collaborative editing of slide sets.

Hm…. but now, there is S5:

S5 is a slide show format based entirely on XHTML, CSS, and JavaScript. With one file, you can run a complete slide show and have a printer-friendly version as well. The markup used for the slides is very simple, highly semantic, and completely accessible. Anyone with even a smidgen of familiarity with HTML or XHTML can look at the markup and figure out how to adapt it to their particular needs. Anyone familiar with CSS can create their own slide show theme. It’s totally simple, and it’s totally standards-driven.

Sounds pretty awesome, eh? You can check out a demo as well.

So the S5 format is not much more than a text file with some markup (and maybe some images). This is good for slideshows with minimal bleeding-edge techniques, which I guess is about 99% of them.

So I started workshopping with my friend about how this might be adapted to MediaWiki. Maybe a S5 slideshow could just be a regular wiki page, so we get all the diff/history page benefits of MediaWiki, and just insert a link that says “view/save as slideshow”… have some parser-thingy that perhaps interprets a subset of MediaWiki syntax and converts it to the S5 format…hm…. sounding good??

I then did a bit more googling and found out I wasn’t the first to share this brainwave. Dokuwiki have a plugin to do just what I described. So do PmWiki. I do recommend checking out the Dokuwiki example — it is very impressive. (Click the “pull down poster” icon in the top right to start the slideshow view.) That looks so awesome to me that I think I will try and do all my slides from now on in a Dokuwiki using that plugin. The only thing that is missing is a “convert to PDF” button. Not sure how difficult that one would be.

So back to MediaWiki. Other wikis have done it, which means probably MediaWiki could too. Actually someone did start work on such an extension, although it has not been touched for a couple of years.

My friend is a competent coder and interested in this small challenge, of writing a MediaWiki extension for wiki-editable slideshows, good enough to be accepted on Wikimedia projects (that is the challenge bit :)).

So, Wikimedians, should she bother? Wikiversity folk – would you find it useful? Would it be useful for others too? Wikiversity is the most obvious use that springs to my mind, but perhaps you can think of other great uses that I have missed?

29 January, 2009 • , ,



How about LaTeX? It‘s plain text as well.

Adrian Lang · 30. January 2009, 02:57


S5 is rather old, HTML Slidy is an improved successor.

Joseph Reagle · 30. January 2009, 08:45


Uhm… well, that introduces an extra layer of complexity, whereas with my idea, users could just use regular wiki syntax which they already know.

It might be an interesting extension to use on an academic/scientific-oriented wiki, maybe to co-author papers, but just for regular slideshows, I don’t see what the benefit would be.

pfctdayelise · 30. January 2009, 09:32


Considering S5 is just html css and js. Someone could probably just make a js script that turns:




into A slideshow after you press a link on the toolbar or something like that. (Could even make it linkable by have a dummy parameter say ?view=slideshow that the js looks for and does its magic if it sees it)

bawolff · 30. January 2009, 21:14


@bawolff well yeah, that is pretty much the idea, although making it an extension instead of just a JS function might let you do a few more useful things: * produce PDF version. * list all pages in a wiki marked as “slideshows”.

pfctdayelise · 31. January 2009, 13:17


we want it for nmrwiki! we are interested to develop this.

thanks for the post.


Evgeny Fadeev · 8. March 2009, 08:49

Elsewhere on the web...

Commenting is closed for this article.

list of all posts, ever

find articles by tag

monthly archive

most popular articles

  1. [guest] Rethinking the Top Ten
  2. How to use Gmail to manage high-traffic mailing lists
  3. NLA Innovative Ideas Forum audio/video now available
  4. An alternative term for "User-generated content"
  5. Write API enabled on Wikimedia sites!
  6. Top 10 software extensions Wikimedia Commons needs in 2008
  7. Is mass collaboration all it's cracked up to be?
  8. GLAM-WIKI, day one
  9. Free MediaWiki hosting offered by Dreamhost Apps
  10. Reflections on PGIP phase 1

(from the last 30 days)