The programatic bit of this Wiki is a single Python CGI script, based on PikiPiki and hacked around by RobHague. The source is available at https://sourceforge.net/projects/unitywiki/ - for quick reference, to get the source, you want to: {{{cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/unitywiki login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/unitywiki co unitywiki}}}
<<< For some reason, this didn't work and I had to go in over ssh. weird. -- SimonBooth >>>
<<< Yes; the anonymous server seems a bit dodgy, not just for unitywiki, but in general. It usually works for me after a few attempts, and once it's started it makes it all the way trhough. -- RobHague >>>
If you want write access to the CVS repository, let me know your SF user ID and I'll add you as a developer.
Additions not found in PikiPiki include:
Very simple versioning; if the page has changed since the version you based your edit on, you'll have to redo the edit.
WikiNotation for:
- Tables
- Square Bracket links
- Comments
- Anchors
- "Clear Messages" link to get you back to just the page (as opposed to the page plus a load of submitted data)
Adding spaces inbetween the component parts of WikiWords when rendered
- Recent changes page now shows you the name of the last user to make the change; old edits show up as hostnames, but I'll remove this facility when there are sufficient named updates.
- An "Edit Page" link at the top of the page, and the ability to double-click anywhere to edit the text (thanks to Alden for the suggestion and Mike for the sample code).
Facilities to support dumping old text in a "GraveyardPage", for handcrafted versioning.
Header shows users when a page with the same title is available on one of the SisterSites
See UnityWikiTips for usage tips.
There is also a separate script to download a .tgz archive of the source files; useful if you want to make a mirror, or backup the data. The URL is http://www.chiark.greenend.org.uk/ucgi/~robh/archive.cgi?unityfiles (and not the old SRCF one).
<<< I'm doing this - I rotate 5 days' worth of backups out of cron. -- Steve McIntyre >>> <<< In case it's useful for others, the script I'm using is in UnityBackup -- Steve McIntyre >>>
<<<I've got a script now to automatically add a diff-style digest every week. It needs some changes to the wiki, though, and it breaks horizontal rules of more than four minuses. Diff at
If people are OK with that I'll check it in. -- SimonBooth >>>
<<< I've got no problem with breaking long rules, so go ahead. In the long term, It'd be nice to have a Wiki page you could visit with the changes digest since you last looked at that page (or possibly clicked on a "reset" button), but that's be quite a bit more work. -- RobHague >>>
<<<The change is in CVS. Let me know whenit's live, and I'll set up the UnityDigest. Does weekly sound best? -- SimonBooth >>>
<<< Turns out I got the Chiark copy of unitywiki via anonymous CVS, which is about a day behind. I'm checking out a version via developer CVS, but it'll take a little while. Oh, and am I rightin thinking that you've got a script that runs as a cron job somewhere else, and updates the Wiki page UnityDigest (or UnityWeekly, or whatever), or have I missed something? -- RobHague >>>
<<< OK; done now. (Sorry if you started getting errors for a minute; I forgot to update one of the files...) -- RobHague >>>
<<< Yeah, unitydigest.sh gets the archive, does a diff, reformats it with some dog-ugly perl, and then updates UnityDigest and (frex) [Unity Digest 2003-09-04]
Is UnityDigest an OK name, or does that tread on your namespace? -- SimonBooth >>>
<<< The "Digest" thing mentioned below is probably not going to happen, but just in case, would we call it UnityWeekly? On another note, what's the advantage of putting these on the Wiki as opposed to a normal web server? Presumably, we don't want them to be edited, and the Wiki currently doesn't support per-page refusal to edit. -- RobHague >>>
<<<UnityWeekly is fine.
I think it makes sense to have the changes on the wiki, so that they appear in the RecentChanges, but that may just be because of the way I use the wiki. -- SimonBooth >>>
<<< I haven't set this going because it doesn't work very well - things like comments tend to bleed. I might put this on another wiki so people can see it without it having to uglify this wiki. -- SimonBooth >>>
Bug reports may now be found on the UnityWikiBugs page. Discussions about the future design of the software are at BraveNewWiki.
Possible future features (comments encouraged):
<<< This was an idea I had when we first started, where you could have the source of a page mailed to you, and then you reply with an edited version, which (assuming you haven't been WikiGazumped) is then added. This has the advantages of not needing a net connection while editing, plus being able to use your mail editor, which is usually better than the one in the browser). However, we seem to be doing fine without it, and I gone off the idea. Is anyone interested in this, or should I move it to UnityWikiGraveyard? -- RobHague >>>
<<< Unity Dot El allows offline editing in one editor -- Vivek Dasmohapatra >>>
A way of downloading the whole current database (for printing offline etc) --BenChalmers
<<< I'm thinking of making the page "FooBarDigest" be autogenerated to contain the concatenation of all of the pages linked to from page FooBar (eg, TheTownOfUnityDigest would contain UnityHistory, JenkinUniversity...) - would that be sufficient? -- RobHague >>>
<<< Doesn't UnityBackup do exactly this? -- SimonBooth >>>
Email on changes to pages (subscription?) MikePitt
<<< Again, could do (although it's not a feature I'd use much myself, except perhaps for this page). -- RobHague >>>
<<< I think that could be a Bad Thing - as the system stands, you'd get one mail per edit plus one per spelling error. -- SimonBooth >>>
<<< MoinMoin has a "don't send mail" option. Which could be used for typos. Who is Anon anyway? MikePitt >>>
<<< An option to set a change priority, and have recent changes only display changes with a defined priority or higher, is on my to do list. This would work well with mail-on-change (more accurately, mail-on-change-when-priority-exceeds-N). -- RobHague >>>
<<< I am -- Anon >>>
When you fail to submit an edit, because someone else has beaten you to it, a merged version of the text (as per the merge command) in the text box would be nice. --BenChalmers
<<< Yes; however, it wouldn't work quite as well as the CVS one, as we don't store old versions to do a three-way merge against. -- RobHague >>>
<<< Ah, but you could (make a copy of the existing page every time an edit page is brought up. Merge with that, the current copy and the copy that I submit) -- BenChalmers>>>
<<< Good idea -- RobHague >>>
<<< How would you know the edit page has gone away? I often change my mind about edits. MikePitt >>>
<<< Store the original file as a hidden field and submit that too -- BenChalmers>>>
<<< Unity Dot EL Also allows diff/merge/resubmit on failed submit -- Vivek Dasmohapatra >>>
- Headings for text.
<<< we have Anchors - will they do? -- SimonBooth >>>
- Spellchecking
<<< People have mentioned this (and, indeed, there are plenty of spelling errors around for it to catch), and MoinMoin has one. However, I don't like the way the MoinMoin's works, and I kind of feel that it's the clients job anyway - I get around the problem by using OmniWeb (spell-checking in forms) or w3m (uses $EDITOR to edit text boxes, so I can use emacs and flyspell-mode), but both of these are below-par in other respects, so I'd be open to suggestions. -- RobHague >>>
<<< Further to the above comment, I think I've come up with a not-too-bad way of doing it; please go to http://www.cl.cam.ac.uk/~rgh22/spellcheck.html and tell me if this is worth implementing. -- RobHague >>>
<<< I think it's funky. Well, it certainly smells a bit funky. I say do it. If you can be bothered of course. -- StevenKitson >>>
- "Read by" record.
<<< It's useful to know who's read a page - if you've put a comment on a page (for example)and you expect feeback on it, if you know that that person that it effects has read it, and not posted any response, you can probably assume it's okay, or etc. Is it possible to add a link to a log of who's read the page since the last edit? -- AldenSpiess >>>
<<< Big Brother is Watching You >>>
<<< One trivial consequence of the attribute scheme proposed on BraveNewWiki would be that you could place an attribute "Attention: <whoever>" on a page. It could then become customary to have your home page include a list of all pages that have "Attention: <yourname>" on. This would let you poke people to respond to certain pages (and we could say that once you've seen an Attention attribute, you remove it, allowing optional feedback of whether you've read it or not). This seems a more sociable mechanism for acheiving much the same result. -- RobHague >>>
- Image maps?
<<< Image support is quite sketchy so far. It would be nice to have support for an image map so you could (e.g.) click on bits of the town map and get taken to the right page. Or we could just do this via external pages... -- Steve McIntyre >>>
<<< Client side image maps would be quite simple to integrate... Though I'm not sure what a good syntax for them would be -- BenChalmers >>>
<<< The way I'm picturing file upload at them moment is that you have a page to manage an image, to allow you to do things like replace it with another one. On this page you could also have a "Image-map link to" text box, where you put a page name in and click on the image where you want it to go. -- RobHague >>>
Support for saving images directly into the wiki itself - that way all of the information is in one place so we can get full backups easily (and random images are less likely to get lost) -- Steve McIntyre
<<< Possibly. I'm going to ask my manager about how IBM feels about doing this sort of thing outside of work hours, and if he OKs it, I'll add it to the list... -- RobHague >>>
- Sister Sites - if a link doesn't appear here, but does appear on another wiki, then you are presented with a link to that wiki
<<<I'm not sure this would be helpful here, though it does solve the problems that some people have proposed other solutions for, but IWBNI this wiki provided the necessaries (just a list of pages that exist) that other wikis could link to it. I would say we could add this as a handler, but we'd have to move emit_header into the handlers since IIRC the names list ought to be text/plain
Also, I'd like to talk to Rob about NooParse modules, because I think Sister Sites are the sort of thing that belongs in a module, but AIUI the NooParser concept of modules is too narrow to include that. -- SimonBooth >>>
<<< MoinMoin et al have something called InterWiki, although I'm not sure how that works. In any case, the proposed new module system, of which NooParser is the first part, is discussed on BraveNewWiki - any comments would be much appreciated. -- RobHague >>>
<<< Actually, this has turned out the opposite way round to what I was expecting. Adding in the ability to watch SisterSites is only about 20 lines of code, and I can generate the list of pages using the archive script. -- SimonBooth >>>
If I type (Ampersand)ldquo; in a page, at first the HTML source reads (Ampersand)amp;ldquo;. If I then go and edit the page again, magically the left double quote character appears raw in the text and will be saved thusly. Can't we have HTML character entities survive unmolested? -- AndrewMobbs
<<< I have a rewritten parser that's been sitting in my home directory for about nine months now. I may dust it off and implement the remaining bits (there's not much) at the weekend. In any case, I'll add this to it. If it doesn't look like NooParser will see the light of Chiark any time soon, I'll try and find time to have a look at fixing it in the current version. -- RobHague >>>
Shortcut icon. Firefox gets some odd ideas about what icon to give sites that don't have them, so I see a slashdot icon for UnityWiki. -- SimonBooth
