I often need something like this as well, but it looks like there's no ready solution.
What I've done is written a script that helps me grab revisions using the MediaWiki API and import them to the Bazaar version control system. bzr qblame article.wiki
, then gives a nice view of who changed what. The script is not really ready for release, but you can find it below or on Pastebin. The script adds to a mercurial repo, which can then be converted to Bazaar.
# I hereby place this script into the Public Domain!
import os, sys
import time
import mwclient
import mercurial.ui
from mercurial import localrepo
from mercurial import commands
article = 'Love'
#start_time = None
start_time = '2011-01-01T00:00:00Z'
# set up mercurial repo
ui = mercurial.ui.ui()
repo_dir = article
repo = localrepo.localrepository(ui, path=repo_dir, create = not os.path.isdir(repo_dir))
#if not os.path.isdir(article):
# os.mkdir(article)
#os.chdir(article)
print "rep in", repo.root
content_path = os.path.join(repo.root, article + '.wiki')
site = mwclient.Site('en.wikipedia.org')
page = site.Pages[article]
for rev in page.revisions(start=start_time, limit=50,dir='newer', prop='ids|timestamp|flags|comment|user|content'):
content = rev['*']
timestamp = time.asctime(rev['timestamp'])
comment = rev['comment'].encode('utf8')
if len(comment) == 0: comment = "blank"
print "writing revision from", timestamp
f = open(content_path, 'wb')
f.write(content.encode('utf8'))
f.close()
commands.addremove(ui, repo)
commands.commit(ui, repo, message=comment, user=rev['user'].encode('utf8'), date=timestamp)
Since v1.18, out-of-the-box you can do the following (as described here):
<div class="mw-collapsible mw-collapsed">
This text is not collapsible; but the next is collapsible and
hidden by default:
<div class="mw-collapsible-content">{{Lorem}}</div>
</div>
Best Answer
If you can get away with only supporting MSIE users, you could do it with an ActiveX control: http://www.outlookcode.com/article.aspx?id=70
This requires all users to have MSIE and Outlook installed on their local computers. Everyone must also have access to the calendar being displayed.