Version 10 of Ideas for Wikit enhancements

Updated 2003-01-13 17:22:26

This page relocated from www.equi4.com/wikit ... most of this is by Christophe Muller.


My page on the Tcler's wiki is http://mini.net/tcl/3367.html

Also note StarSite, there is considerable overlap.


News

(July 9th 02)

Well, everything is pretty new here, because this page has just been created from contents found in the link above.. :-). I have been updating the "already implemented" list with details on each feature (see below). Also the "map" feature is now working in local mode (one must copy to the local partition not only the image but also a .map file that has been generated by gimp or other tools, then the wiki engine will automatically see there is a map description and include it). I have somewhat abandoned the java applet figure editor for now.. and also the LaTeX generation (we just wrote an article proposition and we have cut-and-pasted from the wiki page, it works quite well enough.. :-). The index generator works but I would like to get a nicer result...

What I would like is some feedbacks on what features would need to be ported first to the new wikit structure. My first guess would be the HTML tags, CSS tags with a sample of CSS, and the generation of headers. Maybe also the title information for brackets links. Any thoughts?

(Same day -jcw)

Please be sure to visit the new starkit site [L1 ]. It's a name change, but also has some technical implications. Very very new, though the plans to do this were born several months ago.

Well, first of all, by now the new wikit is a fact, it's a starkit, it drives the Tcl'ers Wiki, and it seems to hold out. I've made a few changes since you first set up this page - I sure hope they simplify your future work on wikit:

  • conflict detection is now part of the web-mode of wikit
  • all pages link to the Help page
  • there's a static page cache facility, see Wikit configuration
  • there are also some logging and archive facilities, see that same config page

Ideas for Wikit enhancements

In this wiki, wikit enhancements ideas are gathered into the Suggested changes page. Below are described a couple of ideas that I have been experimenting with, unfortunately on the previous sources, and they have not been applied to the new wikit source yet. However, everything is available on request for adventurous persons! :-)

I first describe the principles in which I believe, from a GUI-guy point of view, you might disagree of course.. debate is always welcome. See also in the "Biblio" section below a link to Dr. Nielsen's illuminating harangue :-). Then I (too shortly) describe the ideas one by one, and precise if they have been implemented already, if the developments are in progress, or if they are just vaporware..

Rationale

The question one might ask is Why are you not using a Perl or PHP wiki that is already much more developed than wikit?

And my answer is that I'm very much concerned by the usability issue. I see other wikis with embedded HTML, %variables%, keywords, plugins, etc. and IMHO, they have many advantages but they also have a big drawback- their learning curve is slowly becoming as steep as HTML or LaTeX or even worse (Word!). Actually, I even find the rendered HTML pages difficult to read (and so difficult to use!) with many links, tables, etc. KISS is a good principle in UI (still IMHO). See, in the links below, Dr. Nielsen's site.

So yes, I would like more powerful features in wikit, and also a better looking CSS-ized HTML code with a few nice looking features, but no, I don't want Word at all. For this reason, I prefer to slowly modify wikit in a way that suits this philosophy rather than switch to Twiki, PHPWiki, or you-name-it-wiki.

A good example of this is the "Generation of headers" feature (see below) in wikit without any new markup!

Roadmap

Already implemented features are:

  • Page Editing Conflict Detection. This is using mostly code in the CGI launching script and so uses the bourne shell heavily. I have an almost complete TCL counterpart (still in the CGI script) but I never tested it too much and the conflict detection has not been ported to TCL yet. People on the mailing-list would like to have the mechanism inside wikit directly, which indeed is probably a good idea in case of shared disk partition and local mode usage (is there a DB lock in this case?).
  • Local FS access through the new "local://" protocol. As we use the wiki internally on our intranet, it is very easy to mount the partition which is used and copy files on it (HTML, GIF, ZIP, etc.) that then can be referenced inside the wiki pages. AK has some ideas about wiki pages that are non-wiki-code content, e.g., GIF, with an associated mime type. Any description somewhere? Note also that the current referenced contents of our project (6 persons) weigths 80MB. Wouldn't that slow the accesses?
  • Proper HTML <html>, <head>, tags are generated. It was needed for the export feature.
  • A <link> tag for CSS is generated with styles/wiki.css as default. I have setup styles for headers, links, lines, lists, and pre-formatted zones.
  • Possibility of giving labels to external links (this one is a yucky hack...). The users sees a labeled link (such as a link to a wiki page) but it references an external page. The (horrible) syntax is something like h ttp://[email protected]/. With a better work in regexps and wikit code, it is certainely possible to think of something better.. :-( but the users love this feature!
  • Title information added to numbered links in brackets. An HTML "title" indications is added to the URL. It works with Mozilla on Linux and I think it works with IE too (this is real HTML but not always implemented).
  • Generation of headers for the title (H1), bold (H2) or italic (H3) lines. This one is really simple and I'll try to describe it with a patch (on the new sources) soon. With a proper CSS, it leads to very nice looking pages. Who needs word anymore? :-D.
  • Addition of Named anchors for headers, to make linking easier. Each section header (H2, as H1 is the title) has an anchor that allows referencing in emails, etc. Something like http://wiki/12.html#section3
  • Link to the Help page in every footer.
  • Static caching of pages after each edition for speed-ups. The new wiki is generating a dump of the page in wikit source form. Would it be possible to get a dump in HTML form as well? (or a background script doing it that after the page has been sent back). For some reasons, I couldn't use the Unix "tee" command in the CGI script, and so I have implemented it using my own "tee" in the wikit sources, but I am pretty sure this is also a hack and there is an other way to do it "right"!
  • Export script that allows tagging some of the pages as "public" and export them to a static web site (was useful for us..). This is done mostly in a shell script, using all sort of Unix tools such as find, grep, perl, sed, and... lynx! Anyway, if you want to have a look, do not hesitate to ask and I will send the source...

Plus the integration of two patches:

  • the Image Embedding patch from Jean-Claude, and
  • the Last Diffs patch from Brian Theado.

Brian is the author of tkoutline. For seeing its new feature in action, click to see the last diffs of its own wiki - Home Page: [L2 ]). BTW, I find it very nice the way Brian gave access to the diff (i.e., the footer's Update on ... becomes a link).

My roadmap is:

  1. Finish implementing the new enhancements (see the list below)
  2. Port everything to the new nwikit
  3. Work on future enhancements, from the suggestion list (see below)

Still in progress are:

  • I didn't take the time to integrate a second patch from Brian dealing with "Table of Contents",
  • Support for map images, (I will be using the Local FS feature for the first time, so for an internet wiki, it would need an upload script in addition, but this is not something very hard), Update: It works now!
  • Support for drawing images with a Java applet [L3 ] such as Jfig or TWikiDraw,
  • A small wiki2latex script similar to the wiki2html (see Wiki format to HTML) that already exists, to help producing papers.. :-) although generation of Docbook instead of LaTeX would be fine too,
  • An index maker script that lists all the existing pages by alphabetic order, or by page number,

Other Suggestions (see also Suggestions for Wikit):

  • Submission of comments by email,
  • Printable Version link,
  • Page GC (or page deletion) for an empty page after an amount of time,
  • Preview button on the edit form showing the rendered HTML below the form,
  • Table syntax (?) I'm not sure about this one.. Maybe a small Java spreadsheet widget generating a GIF would be simpler.. (?),
  • Email alerts on specific pages,
  • Conversion of the CGI shell script to pure Tclsh first, then conversion either to FastCGI or to a script that does RPC to a wiki server using the Tcllib comm features. This would dramatically reduce the browsing time (although after the implementation of static pages features, the priority lowered..),
  • Upload of attachments for using local:// references,
  • Support for a user-friendly editor as a Java applet that could be launched from the form (?) I'm not so sure about this one either.. it is aimed at "Word users" but I would like them to give a try to wiki syntax first... :-).

LV with regards to the editor comment - perhaps there is a way to write something in Word (VisualBasic for Apps, etc.) that would convert a document formatted for Word into an equivalent Wikit formatted document... of course, it would be a 'downgraded' format. Note also that one requirement for wikits are that all features are accessible via the lynx text html browser. So a things like a Java component needs to have equivalent text access.


Wow... - After seeing all this, I'm now bent more than ever on placing nwikit into CVS. It will, as with MetaKit and TclKit, be essentially a reado-only setup. But in this case with eager interest in helping to consolidate things. There seem to be, right now, three people working on wikit improvements - not to ignore several who have helped in the past. The CVS setup is not intended to prevent anyone from going their own way and doing whatever they like with the wikit codebase - just an option for those who wish to see things come back full circle.

One last comment, *please* consider joining the TclersWiki discussion group on Yahoo. It's been dormant lately, but I suspect that'll change soon. I'll announce my nwikit progress there asap.

Anyway, great to see all these ideas... -JCW

PS. One of these day's I'll move my notes to the WiKit or Suggestions for Wikit page, or perhaps create a new page do discuss progress.

CM Thanks for your fast comment! I also agree that for three developers, a full-featured sourceforge site is really not worth the time to set it up!.. but a CVS with all the versions would be nice. I will try to finish the features that I am currently developing asap, in order to reach a stable state (hopefully). Then I will send a version to you and Brian, so that you can play with it, then I'll try to apply my patches to your new version (CVS might help me there.. :-). BTW, I am subscribed to the TclersWiki mailing-list (Larry "LV" put me in :-)

BTW, I am not sure that everything listed above will be desirable for the official version, even if some features are very necessary for us internally (I'm thinking about the export mechanism for instance), I'll leave it to you to decide what to integrate...


JCW Ah, but see, that's one of the things I'd like to refine a bit: the presence of packages will trigger functionality, i.e. plugins - in the nicest possible way I hope.

Info about Obtaining Wikit from CVS has been moved to a separate page -jcw


KPV I like it when you search for a page, the resulting list has the date the page was last changed. I'd like that also when clicking on a reference. That's the page you get when you click on another page's title, or by going to, say "[http://mini.net/tcl/1683!] ". mmmm, how do I get the "!" to be part of the URL?

12nov02 jcw - Date is now listed on back-ref ("bang!") pages. As for getting it into an URL wikit will accept, try this: http://mini.net/tcl/1683%21


DKF If you're going to refer to local resources, couldn't you use a file: URL?

Also, the most painful part about going from something based on ISO 8859-1, or even ASCII, to (La)TeX is the fact that TeX uses a completely different encoding, but which is similar in enough places for you to think you've done enough when just doing simple tests.


Biblio

A few interesting links for people working on Wiki engines (there are so many! ;-)


Category Wikit