Suggestions for Wikit

Purpose: to collect information about the implementation of the Wikit being used to present the content of this web site.

To prevent this page growing too large it has been split into a number of smaller pages. New suggestions should be added to this page. Other suggestions are available in:


DCP: 12/05/05: OK, Could you make the page open at the bottom so that I see the most recent news/changes without having to scroll around!

Those who post to this page do not seem to agree whether new posts should be made on top or at the bottom of the page... LV That's true of most of this web site...


LV I have, at times, wished that the wiki by default placed comments on the page (time stamping them), on its own, so the issue was moot. If it did, I'd advocate the comments being added at the top of the page - less scrolling that way.

---> Indeed but please check first in this page and the other pages mentioned on the very top if your suggestion has not been given by someone else. In that case, add your comments to the existing suggestion. Thanks!

A table of contents

2004/11/2 sheila

Is there a way to generate a table of contents similar to the %TOC% in twiki?

23 February 2005 unperson

Here is the answer Sheila

20041216 RA2 What is the link to click on to get a list of all pages on WikiT. Thanks!

aa - A typical Wikit stores its pages in a Metakit database. See Some Wikit scripts for ways to extract information from one. The first script on that page can be trivially modified to give a list of all pages. (Oh, and it's spelled Wikit. It isn't the word "Wiki" followed by a capital T. It's a blend of Wiki and kit, because it's usually implemented as a Starkit.)

RA2 Thanks Allan but I'm afraid I don't have that programming knowledge and talent for I'm not a programmer. I thought there was an index of all pages function here like on all wikis... I guess not... But thanks anyway...

aa - Pardon? I thought I showed you where to find the programming knowledge you seemed to want. You want an index of all pages in a Wikit? Use the first of some Wikit scripts to get it. The trivial modification I mentioned is merely to change a reference from db.scripts to db.pages and remove anything related to text (i.e. the last three lines of the mk::loop body). Change the puts line if you want the index to be in a particular format.

If you're "not a programmer", it seems rather odd that you'd be frequenting a Wiki dedicated to a programming language. (Oh, and it's spelled Alan.)

RA2 Well it is not that odd. I am a software designer, an architect, a non-coding project manager you might say. In the old days the term was "analyst". My interest is more in designing algorithms, writing pseudo-code, interfaces and of course managing computing projects. I am primarily a linguist, a computational linguist (translation by computer).

In any case, I could certainly try to modify the script you suggest and maybe I'll make an exe out of it and ask JCW to put it on the site so that others don't have to go through the same hassle everytime they need a list of all pages. Especially non-programmers like me. :-)

Thanks Alan (with one "l") :-) and happy new year!

It would be great to have this index among the functions on the bottom of the page!

LV The topic of a master index of pages for the wiki has come up before. The owner of the wiki so far has not created that. However, you can generate an index without writing any code. Take a look at wikitool, which has a wonderful set of various functions, such as generating cross references, indexes, extracting and updating pages, etc.

DKF (11-11-2007): Can now have within-page TOC (used in this page). A whole-wiki TOC is something else entirely...

A wiki with sections in different languages

LES on June 05, 2004: Someone (not me) has started to provide the translation of a few pages into Portuguese, like after PT e Boas Práticas. The intention is good, but I fear for the sanity of this wiki if many people start doing it. A Tower of Babel it will be.

So I suggest, like the new /tcl/revs/ sub-section, language-specific sub-sections: /tcl/pt/, /tcl/fr/, /tcl/jp/ etc. This page in Portuguese would be found at , for example.

I fear for a tower of Babel too. Can't easily do language subdirs. My vote would be to keep this wiki mostly English, with pointers to everything else. -jcw

A create a new page function

LV One thing that might make it easier for new users to get involved in contributed new material on the wiki would be a new function on each page called Create a new page.

My first thought of how that might work would be this. Upon activation, a form would come up. On that form would be the following info:

Title: Entry field with the words "Replace this text with your new page title"

Body: A text entry box with a dozen lines or so

See also: Entry box with the title of the previous page in [brackets], but with room for more references.

Category: current categories listed as checkboxes

Save button Cancel button

DKF (11-11-2007): That would make it too easy to create unlinked pages. OTOH, the current form for going from an empty to a non-empty page makes a number of things easy to fill in.

Patch for a Preview

sm January 23, 2004

A number of people at our site have requested a "Preview" button on the Edit page. I've seen this requested on the Tclers Wiki as well. So, I've created a patch that adds this functionality at Wikit web Preview button.

Patch to rename pages

AKG September 26, 2003

I've extended the patch in Wikit web Cancel button to allow pages to be renamed. As with the Tk interface, all references to the page are updated.

Another Patch of wikit.kit to rename pages

DQ January 08, 2007

Add a textarea in the 'Edit' page. When 'Save' the page, get the new name and replace...

 Index: wikit.vfs\lib\wikit\web.tcl
 >       ## added 2007-01-08 - get new name from textarea B
 >       if {![catch {import B}] && [import B] != ""} {
 >           set name $B
 >       }
 >            textarea B=$name rows=1 cols=72 wrap=virtual \
 >              style=width:100%

Synchronization of the lap-top and pocket pc

AKG September 1, 2003 (updated September 9, 2003)

I would like to synchronise my personal Wikit database between my laptop and PocketPC. The major stumbling block at the moment seems to be the lack of Metakit on PocketPC. Pages could then be viewed and edited using the Tk interface on the PocketPC.

jcw - FWIW, there's a build of the Mk4tcl.dll for WinCE 3 (i.e. Pocket/PC 2002) ARM at [L1 ]. Still young...

AKG (September 9, 2003) Thanks! I have a basic version of Wikit up and running on my iPAQ 5450 using the Tk interface. I had to modify Wikit to not use gbutton's since IncrTcl isn't available on the PocketPC (unless I've missed it). A description of how to get Wikit running on the PocketPC is available at Wikit on PocketPC.

Still hoping that someone can fix the menu's on PocketPC :-) (it's annoying to go and edit a page and not be able to get the keyboard up).

P.S. I've also put two other patches/suggestions up: Wikit web Cancel button and Wikit web Search prompt.

jcw Thank you! I've integrated the two patches, running in this wiki as well, now :) - for the gbutton changes, I suggest contacting Steve Landers, the author. I for one wouldn't mind adopting this in wikit too, since it drops the only dependency on incrTcl. Feel free to email Steve/me, and I'll do my best get it all in there :)

AKG See Wikit on PocketPC. This may not be what you want since it doesn't modify gbutton, but rather replaces them with standard buttons.

Note that you can easily update your local copy of wikit.kit with "sdx update wikit.kit" ... (yes, this is a plug for "starsync")

gg There is an [incr Tcl] available for the pocket PC (well, sort of). Take a look at tcl++ for a pure-Tcl version of [incr Tcl] which should work on the pocket PC as well.

A wikipedia style markup

AKG August 28, 2003 (updated August 29, 2003)

I second the support for wikipedia [L2 ] style markup.

In particular the headlines, lists and alternate labels for references. You can obtain my patch for alternate labels from Wikit Reference Formatting.

lv [] appears to be the page that discusses the markup. After looking at the material, it seems unlikely that all of the wikipedia markup will be supported here. The goal for this software is simplicity rather than a wide variety of features. That's not to say that things here couldn't be made more simple. But the goal, at least to date, seems to have been to keep the number of formatting options to a minimum so that users can keep them in mind. I know I have suggested in the past taking a look at things like setext or one of the other plain text markup languages to see if there might be a few other natural markup additions that could be added with minimal code and that would be intuitive to someone writing.

AKG I agree with you, in the sense that we don't want the formatting rules to become too complicated, and I'm not really interested in everything that wikipedia provides. I disagree in that I'd like to see the items I listed above. It's always nice to have consistent user requirements. :-) Thanks for the reply.

escargo 29 Aug 2003 - I came across a place where a nonbreaking space would have been really handy, but I haven't seen that for any other wiki markup.

01sep03 jcw - Perhaps the best way forward would be to discuss this on the tclerswiki mailing list. Headlines ought to be easy to introduce - changing list formating (would be nice) would be quite a bit more involved, due to the need to fixup all existing pages (and people's habits).

In favour of Wikipedia-style mark-up

Ckohl July 16, 2003

Concerning wiki-markup:

Would you consider supporting wikipedia [L3 ] style markup in future releases? It would be nice to have markup for headlines for example. I also think wikipedia's list-syntax is easier to use.

Organization of code

LV July 11, 2003

I keep wondering about the wonderful content on the wiki. If someday I ever have the privledge of having a personal machine on which I can develop Tcl code, I would like to benefit from all the wonderful code here on the wiki.

One useful project would probably be to begin locating code here and trying to figure out how to organize it into a format that I, as a Tcl developer, would be able to use in my programs. Perhaps, as this progresses, the result would be something suitable for tcllib, tklib, tclapps, or a similar project. I don't know ...

TV You mean like you'd have a list of applets, full blown programs, procedures? I mean I guess the distinction would be minimal from a list of 'programs' or libraries. Or a way to (as I never tried) 'reap' code from the friendly pages, maybe a program that makes that more comfortable, automatic blocks with single click select/deselect or so.

It's great fun simply cut-and-pasting a nice piece of code and seeing what it does, I have to say, and it makes points well, even when sometimes wrestling with them when they are incomplete or refering to other functions.

Maybe one could have a parallel page where the code is easily obtainable, too, which can be read by a simple tcl program. Many 'wonderful' pieces of code, and imo not necessarily less important 'hard line' pieces of essentials and great inventions could maybe be traced to assuming a certain environment: machine kind, tcl version, assumed existing libraries. And expected interaction from the programmer/code user.

Luciano ES Maybe pages could be downloaded in a suitable format for the excellent Notebook App to import them.

escargo 13 Jul 2003 - While I was out for a walk this evening, I was thinking perhaps that one answer might be for the wiki itself to have code to transform a page with embedded to into a page with nothing but code on it (like this page is when it is being edited, some other special suffix that could be used when the code-only version of the page was requested. That way the markup needed for code would be restricted to the wiki itself and not any external programs.

lv What I was thinking about was to take each page of this wiki, and where a stand alone application is found, place it into a flat file into some sort of directory structure. When encountering a full package, place it and a pkgIndex.tcl into an appropriately named lib directory. When encountering other code (clippings?) place into some sort of appropriate directory that perhaps Komodo or one of the free editors recognize. Then, turn the entire created directory hierarchy into a .zip/.tar/.kit type format for distribution, so that others do not need to do the same. The problem comes in tracking changes to the wiki'd version of the code as well as changes needed for the extracted code. I wonder - perhaps if the wiki itself is a starkit, then the files could be put into the vfs, then managed from there.

lv 2006-Feb-04 Here we are, 2-3 years later. The wiki continues to grow in terms of code contributions. And that's wonderful. And some effort has been made, by a number of code writers, to contribute packages to tcllib and tklib.

I just keep thinking about use of the code posted here. Having source that one can look at is great. However, this web site isn't really designed as a primary source code repository. Functionaly for turn the code from this site into a series of modules and applications, and the tracking changes to the code here so that one can be alerted of differences is still missing .

Other lists of Recent Changes

TV Apr 17 03 Because timing is often an easy way to search, isn't it a good idea to have the older 'recent changes ' pages available somehow? And maybe also a list per creation period? I'm not sure this is the right page for content suggestions.

escargo There are a couple of features I was wondering about.

  1. Global search and replace. Let the Wikit itself search and replace strings (such as page titles with typographical errors in them), so that links can be added or repaired.
  2. A numerical index, where all page titles can be listed in numerical order.

Leveraging X Link and X pointer

April 10, 2003: Anyone thought how XLink and/or XPointer might be leveraged into some useful Wiki facilities?

Notification of changes to a page

escargo 18 Mar 2003 - How hard would it be to add a mechanism to register an e-mail address to send notifications to when a page changes? (Actually, I can see where it might be pretty hard. You would need an open-ended data base to handle the mapping of pages to e-mail addresses; ideally people could only put their own e-mail addresses on the list and only remove their own e-mail addresses from the list. It might be handy, but it might not be worth the trouble. I thought I would at least bring up the idea.)

jcw - David, as you point out, some of the complexity is going to be the social/organizational aspect. My suggestion would be to try to come up with a design on *top* of the wiki, possibly even implemented on another server while it evolves. Once it's stable and enough people feel it is worth bringing it over, I'm all for doing so (you'll probably also want to think about aspects such as abuse, admin, vacations). It's a bit like Pascal Scheffer's wikidiff, I suppose...

escargo - The toughest nut to crack is the mailing list management part. There is nothing like mailman[L4 ] in Tcl, is there? I can see for some Wikis that this service would be really useful (especially if there was also a notion of page ownership). In terms of partitioning the work, I guess I see three branches.

  1. User registration (users being able to add and delete themselves from an address data base)
  2. Per page registration (users being able to subscribe and unsubscribe from different pages)
  3. Change notice distribution (where registered users are notified of a change)

Restricting users to a single e-mail address for changes simplifies things a bit. Per page registration just links up a registered user to a change notice for a page. The integration of the Wiki with change notification should really be at the level where there is a link on the bottom of each page where you can register to receive notification of changes. That's less practical with something built and maintained separately.

LV Two observations - if this facility enables pests to register someone else's email, then it is going to quickly be a target. Second, there was (perhaps still is) a facility that was out on the net to monitor changing pages of a web site. It quickly was overwhelmed by the massive number of pages it had to check, by huge numbers of emails that had to be generated, bouncing email addresses, etc. I think a separate facility is a great idea - since one can fetch the wikit data at any point (ala wikidiff), then the resources and management thereof can be handled by someone interested in championing such a thing. The old service was called NetMind - that is gone now, but a two tiered service at provides web page monitoring. Perhaps people could just use it?

escargo 27 Dec 2006 - Perhaps the more modern approach would be to generate an RSS feed from Recent Changes . It's not the same as sending e-mail, but still useful.

DKF (11-11-2007): Recent Changes has been an RSS feed for a while now.

Scrolling through Wiki pages vertically

22 Jan 2003 TR - I have a suggestion here. In local mode it is not possible to scroll through the wiki pages vertically using the keyboard since the used text widget is in -disable state. By adding these four lines of code in the file wikit.vfs/lib/wikit/gui.tcl after the creation of the text widget $top.scroll (line 325 in my copy), we can get that ability back again:

 bind . <Next>  "$top.details yview scroll  1 pages"
 bind . <Prior> "$top.details yview scroll -1 pages"
 bind . <Up>    "$top.details yview scroll -1 units"
 bind . <Down>  "$top.details yview scroll  1 units"

I found this very handy since I use the keyboard much for scrolling. The only drawback is, it makes the window scroll twice when in edit mode. How can this be avoided?

A Blogkit

20jan2003 Dossy: Has anyone started work on a Wikit-derivative BlogKit? Maybe I'm treading dangerous ground by suggesting it ... but with blogs being "all the craze" perhaps there's significant interest in a BlogKit? What kind of features would/could it possibly need that Wikit doesn't have out-of-the-box? I imagine just HTTP auth protecting the Wikit "Edit" functionality would be enough to make it a "personal" wiki -- read-only, except for the authorized users who know the correct username/password. Just a thought ...

05feb03 jcw - If password protection is all you need extra, then it can be done right now. The trick is to launch the public wikit normally, but append "-readonly" on the command line. The Equi4 website [L5 ] runs that way. In addition, I've set up a second CGI access pass with Apache user authentication turned on. That is set up to launch wikit on the same datafile, but in r/w mode. Bingo - remote editing of what is essentially a read-only site. The Equi4 website takes this one step further, in that it uses an error redirect to mix static pages with wiki pages. All pages which exist "normally" are served as is, while all the rest becomes a search into a "backing wikit". It's very flexible - I've been able to re-engineer the Equi4 website gradually, by taking away pages, and adding new ones with the same name in wikit.

For another (starkit-, metakit-, tclkit-based) wiki implementation, with more authentication built in, see Mark Roseman's ProjectForum.

26mar2003 sm: Using Apache's user authentication as described above provided what we wanted to do. In addition, we wanted to see who had changed a page last, in addition to the IP address the change was made from. That was easy to do -- in the source of web.tcl, I added in the following line to the Wikit::ProcessCGI proc, just after the host variable gets set via "set host $::env(REMOTE_HOST)".

 catch {set host "$::env(REMOTE_USER)@$host"}

If user authentication isn't being used, REMOTE_USER isn't set, so the behaviour is as it was before.

Wiki developed as a TCL Kit optionally

Ya know, if the Wiki were developed as a Tcl CGI script, and were available as a Tclkit optionally, it would be a lot easier to contribute and support the darn thing. As it is, I have given it up for the usemodwiki Perl script, which in spite of being Perl, is easy to fiddle with, since it is a standalone script. This whole Starkit business is fine, but only as a way to package up something for release... it totally screws up development!! -sluggo

10dec02 jcw - On the contrary, Phil: starkits are designed to ease development. Do "sdx unwrap wikit.kit", launch as "tclkit wikit.vfs/main.tcl", and you'll be running the whole thing in unpacked mode... trivial to edit, tweak, and wrap up again. As a matter of fact, you can grab the CVS sources, run unpacked, and never ever see a starkit or touch "sdx".

31oct03 rph - I have to agree with -sluggo - The Starkit business does not really ease development. One should not have to "unwrap" something. While I guess grabbing from the CVS sources might be an option, some of us (myself) would really prefer to be able to download a good old fashioned .tar.gz file and work from there.

14jun06 ngps - Come now. "tar xzf wikit.tar.gz" versus "sdx unwrap wikit.kit". What's the difference?

If that is the case, then something has gone by the wayside between design and implementation. The documentation for manipulating the wikit.kit is distributed throughout this wiki, and is unified nowhere. The command line interface to sdx seems only to be documented in the source, and the distributed tclkit's, wikit's, and starkits have no version numbers and often come with the admonishment: "requires a recent version of ***kit", a rather elastic form of version specification.

The API has a habit of going through violent gyrations in very short periods of time also. And always without warning in the form of comments on the download page or via version changes.

Pasting HTML

OMAR: I'm sure that this has been brought up, but it would be nice to be able to paste html into the editing window and have it appear within the saved page. -- is there anything preventing the adaptation of this ability ?

Won't work in the local-mode and embedded uses of wikit, neither of which are HTML-based -jcw

So if you have a particular wikit that you'll only use over the net, you could paste in HTML and it will work? Only then if you try to look at it in local mode you'll see a mess. A particular wikit that you intend to use in more than one mode shouldn't use HTML, it's only when you're willing to give up the other modes that HTML makes sense. Right? -JET

Against square braces for titles

ZB: I think that putting square braces inside titles not only kills the title, but makes it impossible to get back to the malformed page, leaving a zombie page lying around for posterity...

29nov02 jcw - You can always force an edit for page, say 1234, using the manually entered URL (note the trailing at sign) to try and fix the page.

Or YOU could fix your badly damaged use of regsub for updating titles... if you feel obliged to use regsub then pre-treat the title string by backslash escaping all nasty characters first:

 proc safeRxPat { string } {
      set pat_rx {[\(\)\{\}\[\]\.\+\-\*\?]}
      regsub -all $pat_rx $string {\\&} string
      return $string

Http proxy support

16mar2004 daapp: How about http proxy support in wikit.kit? I make it yesterday during 10 minutes. Recipe:

  • sdx unwrap wikit.kit
  • add uri (from tcllib) and autoproxy libraries to directory lib (in my case i take it from sdx.kit :)
  • in file wikit.vfs/lib/wikit/utils.tcl replace
 package require http


 package require http
 package require autoproxy
  • sdx wrap wikit

Thats all!!!

I test new wikit in Win2000 to update my local copy of wiki. Works fine.

autoproxy takes proxy settings from IE.

Re: the search mechanism

LES on Apr 10 2004: What I don't like in wikit is the "guessing" mechanism. I try* and it gives me interactive command composer and no alternative to actually look for "interactive" inside pages. I try* and gives me shell and no alternative to actually look for "shell" inside pages. Grrr...

KPV This bugged me too until I figured out a neat trick: search for "2?shell*" instead of just "shell" and it will always give you a list of hits instead of actually going to a matching page. (I'll leave it as a fun exercise to figure out why this works.)

A facelift for WikiT

nl on Apr 10 2004: What about a small facelift for the old wiki. The style below is about as creative as I can get, but i am sure there are some creative people out there waiting for their chance to make things look better.

  body {font-family:"times new roman", Verdana, sans-serif}
  a {font-weight:normal;color:navy;text-decoration:underline}
  a:line {font-weight:normal;color:navy;text-decoration:underline}
  a:active {font-weight:normal;color:#DD9933;text-decoration:none}
  a:hover {font-weight:normal;color:#DD9933;text-decoration:none}
  a:visited {font-weight:normal;color:#DD3399;text-decoration:underline}
  pre {font-face:courier new;font-size:9pt;background-color:#DDE5DD;color:navy;font-weight:normal}

DKF (11-11-2007): There's been a lot of work in this area recently.

Preventing the edit page to be included in the back history

Sep 29 2004: I have a habit of using 'Back' on my browser, and have often found myself re-editing a page by accident. Is there a way to modify Wikit to prevent the edit page from being included in the 'Back' history?

How to change the language in Wikit: hard coded or source code?

LES on 20 Oct 2004: all wikit's pages come from a template and therefore have some text in common: "Updated on...", "Last saved on...", "Edit", "Search", "Revisions" etc. I wonder if that is hard-coded. More specifically, if someone wanted to implement wikit somewhere in another language, like Portuguese or Spanish, is that provided already or do we have to hack into the source?

Kroc - You'll have to edit source. I've done it for the french tcl'ers wiki:

DKF: Perhaps it ought to be msgcat-enabled?

Miscellaneous notes

A few suggestions gleaned from the "Ask and it shall be given" ordeal: Subpages, Formal Comment System, Tables of Contents, and Preview.

*About Sub-pages

Subpages are a feature of some wiki programs, but not currently Wikit, that allow you to define a pages in an abstract hierarchical relationship, much like a file system, that augments the free-flow of hypertext linkage with page-level structure. Typically with other wiki programs this is done with a link like [/Tcl Advocacy/Companies that use Tcl] and [/Tcl Advocacy/Articles] that shows up in a page like a normal [Companies that use Tcl] and [Articles] links. In the referenced page its self, the title shows up as normal or may contain each of the path elements depending on software, but generally provides a link to the parent (as if [Tcl Advocacy] in this case). It also allows another page (such as [Tcl Advocacy] its self) to embed a single tag that gets replaced automatically by the software listing each of the subpages of that page.

This is similar to the current Category system in that it groups page relationships, but different in a number of ways. First, it allows finer granularity in the groupings. Second, it's not flat: the current system provides a list of pages in a category and a list of all categories, but nothing in between. (The category system its self could be augmented by grouping categories, which are nothing more than regular pages with Category Category in them.) Third, it works to a degree in reverse of the Category system: where categories are are large-grained groups of pages in a general topic that you get to from a page in that category (somewhat like a "See Also" link), subpages allow you to find a page by starting with a general topic and getting increasingly specific. This leads to Fourth, which is that the tag (if any - it could just be a given that subpages are always listed) creates a maintanence free Site Map type navigational hierarchy. It "just happens" that if you create a page via [/Tcl Advocacy/Companies that use Tcl/Acme Widget Co.] that [Companies that use Tcl] is listed in the subpages for [Tcl Advocacy] and [Acme Widget Co.] is listed in the subpages for [Companies that use Tcl].

A formal comment system

A Formal Comment System would provide some automatic structure and standardization in commentary such as who made a comment, when it was made, and keep them in chronological order to avoid confusion (especially with regards to who's making the comment versus to whom the comment is made). It would also allow pages to be a little more formal and documentation-like in their content rather than informal chats.

Whether they're read-only, who could delete them, etc. are matters for discussion and implementation. In the simplest implementation (not necessarily the only/best), it would simply work just like the normal page edit, but would always append rather than modify and use a common format that includes author and date, and maybe some other coloring to set it off from content, and then it could be edited or deleted with the rest of the page contents like normal. Another would be that they would be read-only, but could be voted off the page or expire after some time.

The idea is that a person could/would make comments on a page's contents that would be incorporated into the contents as appropriate, after which the commentary aspect of it is no longer relevant or needed. One possible use would be as an alternative to Ask and it shall be given. A person might use it to post a question on a page that they think is most appropriate for the topic, like a "How to" question on a particular widget. It would stand out and be spotted due to coloring and formatting. A person "in the know" would then come along, write about that topic in the contents of the page, answering the question in the process, after which the question could be deleted. Someone else might say "this URL is no longer valid; does anyone have a current one?" and then someone else who has a current one would know to fix it and delete the question when they come across it.

DKF (11-11-2007): You mean something more like projectforum?

Table of contents

Tables of Contents would add a few formatting rules similar to automatic numbering that allow a page to have a flow similar to a numbered outline. Numbers are automatically assigned to sections headings in the page through tags like === # Some Section Title ===, and a special tag can be placed in the document that provides an outline showing each of these section headings with in-page anchor links to jump to the section.

(Suggest using the ~ heading format, like the tip format)

DKF (11-11-2007): Something like this has been implemented recently.


Preview would provide an additional button with Save/Cancel when editing a page that, instead of saving, would show the page as it would appear if it were saved along with the text field with the current unsaved edit. This would allow a person editing a page to optionally check their changes for formatting, spelling, grammar, etc. before saving. minimizing the number of saves for such minor things, and improving the usefulness of revision diffs.

The no follow feature against spam has been added

KBK 2005-01-20: Google has announced that it will honor <a rel="nofollow" href="...">links</a> ... so that a site like this can make sure that there's no benefit to comment spam.

See [L6 ] for details.

jcw - Added!

Line breaks

VK 2005-02-14: All is good, but I can't do without line breaks (<br> tag); sometimes it is desired to split a sentence but not to start new paragraph.

Another my thought is to (optionally) allow user to enter raw HTML markup. This must prohibited in public place, like Tcl-ers wiki, but could be extremely handy for those who uses wiki as a speedup for creation of ordinary HTML pages.

For some reason, on my Mobile-2003 PocketPC, search page displays without entry for entering a search expression, all other pages look beautifull, even editing entries in multiline entry works perfectly.

LV Just this week (Feb 23, 2005) , someone on the lynx developer mailing list mentioned that the search page for this wiki uses an HTML feature which declares obsolete. Perhaps the browser on your PocketPC just doesn't provide support for it any longer.

DKF (11-11-2007): This now supported (slightly different syntax).

Description area for each page + anchors

sheila 2004/04/14 I use another wiki that is implemented with [L7 ] Use Mod Wiki. there are a few features from it that I would like see here.

  • when editing a page, you are allowed to write a small description of your change or designate it as a minor change. This will show up in the Recent Changes page. (for example, [L8 ] though they don't use it as well as they could)
  • people are allowed to create anchors in the page and link to them. Is that possible here? I didn't find it in the text formatting rules.

unperson What are anchors? (Excuse my ignorance! :-))

DKF (11-11-2007): It's possible to link to (sub)-sections, but since they're just numbered the sectioning can't be considered stable yet. Use XPointer/XLink instead so you can refer to the contents of the section headings, which are stable.

Problem with the search field

MSW (2004-03-16) A little annoyance: The search field on the search page doesn't remember its last content yet it gets erased when the results are displayed. I suggest the search field should still contain the string which lead to the result page being displayed.

DKF (11-11-2007): The search field in the body of the page now remembers.

A mark-up for tt text

UKo 2005-01-19: May I suggest a markup for tt text?

And then I second all the wishes for structural markup that most likely will give support for a toc!

And there is a problem with linebreaks in bullet lists (or enumerations): It is not possible to begin a new paragraph inside the list (and it is also impossible to make nested lists)

DKF (11-11-2007): This can be done by enclosing the text in backtick characters.

Right justification for the highlighted text

unperson 23 February 2005

I find the wikit works pretty well.. Very well indeed. The navigation is excellent.

A list of all pages could be useful as pointed out by Sheila on top. A comment line to be added with each edit also...

A small change I would recommend would be to right-justify the highlighted text (when we put a few spaces + an asterisk (*). Right now we can't read beyond a certain column and it's pretty annoying...

  • That's because you're formatting wrong.
 * You're doing this, which is preformatted text.

CLN Can we make initials/signatures link to authors' wiki pages? I was just trying to chase down "lwv" and found that his wiki page is "lv". I had to search for "lwv*" to get there. Or maybe this is Larry's fault for being "LV" and "lwv" ;-)

SS 11Mar2005: I may like to see this feature: when a user saves an edited page, he can select a checkbox don't show in recent changes, that avoid that the change is shown. This because sometimes there are users that add categories to many pages every day, and this makes the recent changes page almost useless.

DKF (11-11-2007): Only problem with this is that it can lead to people making changes maliciously in a way that won't show up so that people can spot them and back them out. Ergo needs proper accounts and authorization, etc. Lot of work.

Change the style sheet

Sarnold Is it possible to change the style sheet to have a fresh look on something like

 Code like that is not looking as good as in or

Of course, this is just a question about look'n'feel, sure it won't change the behavior of the wiki of which I am happy. It is so good to be able to cut and paste pieces of code !

DKF (11-11-2007): Style sheet was changed recently.

Changes to a page: why do they take so long to appear?

MG I've never looked at the code for Wikit, so there may well be a good reason for this that I'm not aware of. But why does it take some time (how long I'm not sure) for changes to a page to appear on the revision history? I can't think of any reason it would happen, but like I said, I've not seen the code...

And the suggestion that bought that question on - would it be possible to add the number of the latest revision for a page to the Recent Changes page, either before or after the IP address? Very often when my connection's flaky I sit and wait for a long page to load just to find that I've already seen everything on it a few hours ago, and it's just at the top of the Recent Changes list because it's been a quiet night, and that seems like an easy (?) way to 'fix' that...

LV The owner of this web site currently has things configured (see Wikit configuration) so that a cron job runs once a night to check each page change into the revision CVS. That's why the changes that are made on one day don't generally appear until the next day.

MG Ah, I see. Thanks, Larry :)

DKF (11-11-2007): Current implementation (in Wub) is quick to generate diffs.

Search results truncated

Why does the wiki search mechanism truncate the search results ? When I see (Remaining matches omitted...), I feel cheated !

LV March 25, 2005 I agree with the previous poster. If nothing else, how about a secondary, specialized search that returns all hits. For instance, just searching for the word Category in wikit page titles now exceeds the search return number.

DKF (11-11-2007): I believe you can search further back now.

Larry's dream: Building TCL modules

LV April 14, 2005 One of my dreams is, one day in the future (when I get a decent computer that I can connect to the internet) is to begin taking, page by page, the code on the wiki and building Tcl modules out of them. But, to maintain currency, I really need some method of notification when a page that I've used has been updated. Given the hundreds of pages of code on this wiki, simply depending on me noticing an updated page probably isn't sufficient. Is anyone aware of any programs that have been written to monitor an RSS stream and compare the results against some sort of local database? I could see something similar being useful to monitor Freshmeat as well.

jcw - Grab (which is static, i.e. quick, and updated once a day), and compare all entries over time. Lines contain: page#, pagerev, modtime. That's how "wikit -update" works.

LV Great! Thanks - I didn't know about that one!

Chronological sort of pages that belong to a category

escargo 05/05/05 - The Category systems works, but there does not appear to be a way to chronologically sort pages that appear when clicking on a Category; you only get an alphabetically sorted list. Is there a way to get the same page references but sorted chronologically?

LV I'm not certain that the category scheme really works, but perhaps it is better than nothing. As for alternative methods of sorting, I don't believe there is any support for such a thing within the wikit.

One could try writing some sort of application that grabs the wikit data, uses wikitool or similar code to perform some sort of searching and sorting. What kind of chronological sorting did you have in mind - by date of last modification, I presume? One of the issues that exist as well is that there is no way to indicate the number of search hits you wish returned. This results in useful searches not returning all relevant hits.

escargo Some searches ought to always be complete, category references being one of them (or at least divided into multiple pages for presentation). In my case, category references sorted like "Recent Changes" would be what I want.

DKF (11-11-2007): I believe "references" searches are now chronological. Might also be complete; haven't checked.

Links on the Recent Changes

MG 12 May 2005 - Even though I'm using , the links on the Recent Changes page all seem to be pointing to the site today. Maybe I'm being extremely dumb again, but I'm sure it never used to do that. Is this an error, or just a change I hadn't read about?

LV hmm - the name is just an alias for - but in the past, as you implied, if someone comes in with one, the references stay in that format.

Uh oh - mea culpa - I changed it. Trying to reduce the clutter of having two parallel URL hierarchies. Is it a problem? -jcw

LV Not for me right now. However, I guess it will be a problem when the .tk domain is down, which used to happen at least once a month. I don't recall how long it has been since that happened though.

MG - The only difference it makes to me is that the cookies that mark pages I edit with my initials need re-doing for the other domain, and pages aren't marked as visited any more (link-color-wise) - neither are exactly the end of the world. LV's point is a good one, though - if it's no more hassle from the POV of maintaining it (since it seems both domains still work entirely anyway?), it could be better from the user POV to have both still point their links to their own respective domains.

DKF (11-11-2007): Only works now; change of wiki maintainer/hoster.

A Find function

Stefan Vogel 19 May 2005 - Isn't anyone else using this Wikit in local mode? I'm using it all the time to grow some sort of personal "knowledge-base". It's pretty handy, especially because I only have to take one file along with me. Now that pages are growing more and more I'd like to have some kind of find inside the pages. Similar to the "browsers"-find but only in local mode.

Add a page to the list of protected pages

PJR 27 May 2005 - Is there a way to add a page to the list of protected pages ? I'd like to do this for my own wikis but I don't know how. Perhaps an environment variable at startup?

Not from the web - you have to edit the wiki in local (Tk) mode -jcw

File extension for inline images

MG June 8th 2005 - Inline images on the Wiki (with JPGs, at least) seem to only work if the file extension is lower-case, otherwise it just produces the '[ n ]' style link. Any chance that could be changed, if there's no particular reason for it being that way?

Syntax for a deleted page

Lars H, 31 July 2005: This is perhaps mostly a suggestion for the Tcler's Wiki, but since there seems to be no page particularly for such matters, I enter it here instead.

Although I haven't seen it explicitly documented anywhere, there seems to be a custom that if a page should be deleted (usually because the title was wrong in some way, but perhaps also when the contents are just nonsense), the contents for that page are replaced by the word "delete". Presumably the site administrator (working in local mode) occationally goes through the Wiki and deletes such pages. I have no idea how difficult it is, but scripting it should simplify the task.

The markup is not all that self-explanatory however, so it occurred to me that maybe it would be better if it was done as a category -- there could be a Category KindlyDeleteThisPage for those pages someone would like to nominate for deletion. Not having a fixed content that signals deletion would make it possible for users to also give a short explanation of why they think the page should be deleted, such as

Spelling mistake. Contents are now at page [...].

jcw - Pages never go away in wikit, the way to get them to be ignored is to 1) store just a space or some such in them, and 2) remove all references to them on other wiki pages. The page will show up one last time in the recent changes list (no longer as a link), but for all practical purposes it will be gone. Just like links to pages which have never been filled in.

DKF (11-11-2007): There's a special history of deleted pages now.

Wiki Code and HTML output for a revision

MG August 10th 2005 - When you're viewing the revisions for a page, it would be handy if you could see the Wiki code for a particular revision, as well as the HTML output (for restoring defaced pages, etc)..

- Available (a bit tedious I admit) via -jcw

DKF (11-11-2007): Available much more easily from the page history page.

Revision links for a page

MG This is a Tcl Wiki "issue", not the Wikit implementation. The revisions links for a page all seem to go to the site, even though all the other links use the site. Not sure if that's a bug/oversite, or deliberate, but thought I'd point it out.

- Thanks. Oversight. Fixed. -jcw

Miscellaneous suggestions from HJG

HJG 2006-02-04 My suggestions:

  • Search: Remembering the text in the input-field would be nice and useful.
  • Maybe also a checkbox for "match / ignore case".
  • Markup for lists: just "* " at start of line should be enough.
  • Add some markup for line breaks. Maybe allow some specific HTML-markup, such as "<br>".
  • Add some markup for headings, i.e. "===" at start of line, like wikipedia-markup.
  • For the reaper, it would be nice to have some "<code>" .. "</code>" markup. This would avoid excessive "if 0 {...}" suites.
  • Maybe a bug: I get the impression that the Revision History is updated only with a long delay, as in "days". (MG The Revisions are only updated once a day, on a cron job, not instantly when the page is updated)

''Agreed, good points - I'll see if/when I can some of this in, thx. -jcw'

Log entries

I suggest we ask the user that modifies a page to fill a little log entry to explain his changes. Then the Recent Changes page could show the latest log line. (examples : "Spam removed", "Page deleted", "URL updated", "Link added", "New question about xx topic"...) -- Sarnold 20060525

HTML please

PN 2006-06-20 I want to use wikit for wikis that will appeal to children. The wiki is to be written by adults and read by children. For this I want to have html content. I see protestations above, - but frankly pages are just as easy to edit locally on a webbrowser as on the Tk text widget. The only necessary reason to use the Tk edit is to change page titles. I looked at how to change wikit to allow html.

I figured a line beginning with a "<" could signal text with html content. I looked at recognising this in the text and creating a stream type for it and doing clever things with it at the other end. It all started to look too complicated, so I opted for a one line change instead.

In wikit.vfs/wikit/format.tcl I added a line at the top of the quote proc.

     proc quote {q} {
                if { [ string index $q 0] == "<" } { return $q } ; # Changed PN 20060620
        regsub -all {&} $q {\&}  q
        regsub -all {"} $q {\"} q ; # "
        regsub -all {<} $q {\<}   q
        regsub -all {>} $q {\>}   q
        regsub -all {&(#\d+;)} $q {\&\1}   q
        return $q

This works for basic html BUT link URLs still get turned into <a href=...> and image URLs get turned into <img ...> and <script> ... </script> gets trashed and the URL's in embed and object get mangled. So this is NOT the ideal quickfix.

LV If you have total control over who is adding content to your pages, and they know what they are doing, then input of html is okay, I guess. Each time we talk about adding HTML here, though, we decide that the negatives far outweight the positives. With HTML supported, you have to worry more about phishing, page hijacking, viral javascripting, and many more security/policing matters.

unperson Very well summed up, Larry: the negatives far outweight the positives. I'll add this to your excellent conclusion: what is to be gained by implementing HTML anyway? What don't we have already? Well the colour of fonts maybe.


unperson Often I see a page at Recent Changes, I want to read it but I have no clue what has been added. I don't read the page. I'll pass.. (Some may say it is a good thing however. :-))

We can't write text anywhere. We add stuff on the bottom of the page, on the top etc. There is a big debate about that.

As I said the very first day I entered this site: a diffs is the minimum of minimums. Without a diffs, a wiki is close to non-functional.

I understand a diffs is not easy to program. I know an excellent professional programmer who has programmed a great diffs for his wiki written in Python. If anyone is interested, I'll ask him to post his algorithm on WikiT and anyone could work on the code.

DKF (11-11-2007): Current implementation has a "last change diffs" link for each changed page on the Recent Changes page, plus access to a full history page.

NEM 21 Sept 2006: Is there an easy way to get the wiki markup for a given revision of a page? That would be useful when manually reverting pages after vandalism etc.

Lars H: Yes, there is. First view the revision you're interested in. Then change the "tclrevs" part of the URL to "tclhist". Everything below the first empty line is the wiki markup for that revision of the page.

DKF (11-11-2007): See appropriate column of page history page table.

Sarnold 2 Oct 2006: I often use diffs to get the latest changes (yesterday vs. now most frequently). Shouldn't it be a shortcut at the bottom of the page?

DKF (11-11-2007): There's a "Latest Change" link in the sidebar.

LWV Any chance of enhancing the Wiki's search to include, on the search page, a special link to the next set of hits, when the number of hits are more than currently are returned?

An example of a common place I hit the limit is searching for "Category" in page titles... there's now over 130 category pages, apparently.

DKF 8-Oct-2006: It would be nice the line of "category" links (plus separator above it) at the bottom of the page was drawn specially. It would still be edited as normal wiki text, but if in a particular form it would appear as part of the structure of the page and not as part of the content.

LWV That would be nice - sort of page metadata...

DKF (11-11-2007): Can now do that using centred table headers. Excellent!

Including other pages

dizzy 8 Nov 2006: it would be nice to be able to include other pages from the wiki in the current page. This could be useful for defining a common header/trailer for all pages of a wiki. For example:

 [@include common_header]

 page content...

 [@include common_trailer]

I have implemented the above syntax with this simple patch but maybe there is a better way to do it:

 --- lib/wikit/format.tcl.orig  2005-07-23 22:44:08.000000000 +0200
 +++ lib/wikit/format.tcl       2006-11-07 12:19:05.342326520 +0100
 @@ -109,6 +109,12 @@

        foreach line [split $text \n] {
            # Per line, classify the it and extract the main textual information.
 +            # Expand included pages: [@include Other Page]
 +            if {[regexp {^\[@include (.*)\]$} $line - arg]} {
 +                eval lappend irep [IncludeStream $arg]
 +                continue
 +            }
            foreach {tag depth txt aux} [linetype $line] break ; # lassign

            # Classification tags
 @@ -622,6 +647,33 @@
        StreamToHTML [TextToStream $str] $::env(SCRIPT_NAME) [list ::Wikit::InfoProc $db]

 +    # Return expanded stream for included page
 +    proc IncludeStream {arg} {
 +        set arg [string trim $arg]
 +        # Avoid infinite recursion
 +        if {[info level] > 100} {
 +            puts stderr "IncludeStream: infinite recursion on $arg"
 +            return {}
 +        }
 +        if {![regexp {^[0-9]+$} $arg]} {
 +            # Search page by name
 +            set pages [mk::select wdb.pages name $arg]
 +            if {[set num [llength $pages]] != 1} {
 +                puts stderr "IncludeStream: $num pages for $arg"
 +                return {}
 +            }
 +            set arg [lindex $pages 0]
 +        }
 +        if {$arg < 10} {
 +            # Don't include reserved pages
 +            puts stderr "IncludeStream: invalid include $arg"
 +            return {}
 +        }
 +        set page [Wikit::GetPage $arg]
 +        set stream [TextToStream $page]
 +        return $stream
 +    }
      # =========================================================================

      # Output specific conversion. Takes a token stream and converts this

This feature could also be used to create aliases of existing pages. For example the page jcw could be defined as alias of Jean-Claude Wippler with:

 [@include Jean-Claude Wippler]

Comments in page code

dizzy 8 Nov 2006: it would be nice to be able to include comments in the page source which are not included in the output page. I have implemented it with this trivial patch which simply discards any line staring with '###' in column 1:

 --- lib/wikit/format.tcl.orig  2005-07-23 22:44:08.000000000 +0200
 +++ lib/wikit/format.tcl       2006-11-07 12:19:05.342326520 +0100
 @@ -109,6 +109,12 @@

        foreach line [split $text \n] {
            # Per line, classify the it and extract the main textual information.
 +            # Skip comments: ### comment
 +            if {[regexp {^###} $line]} {
 +                #debug "comment $line"
 +                continue
 +            }
            foreach {tag depth txt aux} [linetype $line] break ; # lassign

            # Classification tags

Optional config files

dizzy 8 Nov 2006: it would be nice to be able to load optional Tcl config files at program startup. These could contain config settings, local hacks or a quick load of a file for testing or debugging a wikit source without needing to rewrap the whole starkit. I have added this code to my wikit:

 --- lib/app-wikit/start.tcl.orig       2005-11-03 22:21:05.000000000 +0100
 +++ lib/app-wikit/start.tcl    2006-11-07 12:14:07.719572056 +0100
 @@ -3,6 +3,17 @@
  package provide app-wikit 0.1
  package require Mk4tcl

 +# Load optional Tcl config files
 +if {[file exists /etc/wikit.conf]} {
 +    source /etc/wikit.conf
 +if {[file exists ~/.wikit.conf]} {
 +    source ~/.wikit.conf
 +if {[info exists env(WIKIT_CONFIG)] && [file exists $env(WIKIT_CONFIG)]} {
 +    source $env(WIKIT_CONFIG)
  set roflag [lsearch -exact $argv "-readonly"]
  if {$roflag >= 0} {
    set argv [lreplace $argv $roflag $roflag]

Configurable timezone in timestamps

dizzy 8 Nov 2006: it would be nice to be able to change the format of the update time at the bottom of the page. The timezone, which is currently forced to GMT, could be the local timezone or a timezone specified by the env(TZ) variable:

 --- lib/wikit/web.tcl.orig     2005-02-02 00:45:03.000000000 +0100
 +++ lib/wikit/web.tcl  2006-11-07 12:20:35.256657464 +0100
 @@ -343,7 +350,8 @@
      if {$N == 4} { set Changes "" }

      if {$date != 0} {
 -      set date [clock format $date -gmt 1 -format {%e %b %Y, %R GMT}]
 +      # Removed -gmt option, use env(TZ) or localtime instead
 +      set date [clock format $date -format {%e %b %Y, %R %Z}]

      set updated "Updated [cgi_font size=-1 $date]"

You need also this patches to search.tcl and utils.tcl:

 --- lib/wikit/search.tcl.orig  2004-10-01 00:16:03.000000000 +0200
 +++ lib/wikit/search.tcl       2006-12-03 11:40:58.000000000 +0100
 @@ -30,7 +30,8 @@

    proc GetTimeStamp {{t ""}} {
      if {$t == ""} { set t [clock seconds] }
 -    clock format $t -gmt 1 -format {%Y/%m/%d %T}
 +    # Removed -gmt option, use env(TZ) or localtime instead
 +    clock format $t -format {%Y/%m/%d %T}

    proc SearchResults {rows {db wdb}} {
 --- lib/wikit/utils.tcl.orig   2006-01-12 23:46:00.000000000 +0100
 +++ lib/wikit/utils.tcl        2006-12-03 11:53:35.517665376 +0100
 @@ -25,7 +25,8 @@
        if {$id == 2 || $id == 4} continue

        # only report last change to a page on each day
 -      set day [expr {$date/86400}]
 +      # Count days accordingly to env(TZ) or localtime
 +      set day [clock format $date -format {%Y%m%d}]

        #insert a header for each new date
        incr count
 @@ -37,7 +38,8 @@

          set lastDay $day
 -        append result "'''[clock format $date -gmt 1 -format {%B %e, %Y}]'''\n"
 +        # Removed -gmt option, use env(TZ) or localtime instead
 +        append result "'''[clock format $date -format {%B %e, %Y}]'''\n"

        append result "   * \[$name\] . . . $who\n"
 @@ -90,7 +92,7 @@

    proc AddLogEntry {id db} {
      upvar #0 env(WIKIT_HIST) ewh
 -    set fmt {%e %b %Y %H:%M:%S GMT}
 +    set fmt {%e %b %Y %H:%M:%S %Z}

      pagevarsDB $db $id date page who name

 @@ -100,7 +102,7 @@
          set fd [open $ewh/$id-$date-$who w]
        fconfigure $fd -encoding utf-8 ;# 2006-01-12 ticket #1
          puts $fd "Title:\t$name"
 -        puts $fd "Date:\t[clock format $date -gmt 1 -format $fmt]"
 +        puts $fd "Date:\t[clock format $date -format $fmt]"
          puts $fd "Site:\t$who"
          puts $fd ""
          puts $fd $t

Show modifications of Search and Recent changed pages

dizzy 8 Nov 2006: it would be nice to be able to change the content of the Search and Recent changes pages. The pages can actually be changed but the content is ignored by GetPage which returns the computed results instead. A better solution would be appending the results to the (user editable) page content:

 --- lib/wikit/db.tcl.orig      2005-01-07 23:15:31.000000000 +0100
 +++ lib/wikit/db.tcl   2006-11-07 11:54:47.000000000 +0100
 @@ -149,12 +149,14 @@
      return $title

 +  # Show user content in Search and Recent Changes pages
    proc GetPage {id {db wdb}} {
 +    set page [mk::get $db.pages!$id page]
      switch $id {
 -      2               { SearchResults [SearchList] }
 -      4               { RecentChanges $db}
 -      default { return [mk::get $db.pages!$id page] }
 +      2 { append page "\n\n" [SearchResults [SearchList]] }
 +      4 { append page "\n\n" [RecentChanges $db] }
 +    set page

    # addRefs - a newly created page $id contains $refs references to other pages


LV 2006 Nov 15: Today I thought of a sticky point and wondered whether a new feature is needed on the wikit for it.

I was adding some text to a numbered bullet. I realized the paragraph was getting a bit wordy. I would have LIKED to broken it into some sub-bullets, but as far as I am aware, sub-bullets are not currently supported, right? I mean, if I have:

  1. first
  2. second
  3. third
  4. first sub bullet
  5. second sub bullet
  6. fourth

or even

  1. first
  2. second
  3. third
  • first sub bullet
  • second sub bullet
  1. fourth

I don't get what I am after...

MAK (2006 Nov 15) Make orphaned pages uneditable. This would prevent e.g. that annoying "wanyozxy" page from being re-spammed over and over. As DKF said on the chat in regards to the idea, "anything worth editing is worth having a link to."

LV As long as they become editable again once there is a link to the page, then it really doesn't help that much.

MAK Sure it does. The point wasn't to lock a page permanently out of existence, but to stop a spam-bot from stumbling across a random dead page and being able to edit it directly, and to encourage someone who wants to edit a page with useful (but orphaned) content to bring it back into the fold.

dizzy Why not simply adding 12536 to the ProtectedPages list in page 9?

jcw 2006 Nov 20 - Done, thx

escargo 15 Nov 2006 - How about a URL that would return the preformatted code on a page? (Getting the Wiki to do some of the work that the wiki-reaper and wish-reaper do now.)

(Then somebody can modify package unknown to search the Wiki for packages and load them from the Wiki on demand.;)

LV That would be dangerous. All someone would have to do is add the line

 exec rm -rf ~/.

to a wiki page and there goes all sorts of files that shouldn't be deleted...

escargo 16 Nov 2006 - Added the emoticon to show that the suggestion to allow for package unknown wasn't really serious.

dizzy 20 nov 2006 - The Save command in the edit form should be handled by the /edit/ URL. This would allow easy access control on page editing under Apache with a simple .htpass file. I wrote this patch:

 --- lib/wikit/web.tcl.orig     2005-02-02 00:45:03.000000000 +0100
 +++ lib/wikit/web.tcl  2006-11-15 10:48:25.023489472 +0100
 @@ -213,6 +220,8 @@
      catch {source $::env(WIKIT_WRU)}

      # if there is new page content, save it now
 +    # (allow save command only from edit section)
 +  if {$section == "edit/"} {
      if {$N != "" && [lsearch -exact $::ProtectedPages $N] < 0} {
        if {$roflag < 0 && ![catch {import C}] && [import C] != ""} {
        # added 2002-06-13 - edit conflict detection
 @@ -294,6 +312,7 @@
        # end of changes
 +  }

      # set up a few standard URLs an strings

 @@ -396,7 +416,8 @@
          cgi_body bgcolor=#ffffff {
            cgi_h2 [Wiki - ../$N]

 -          cgi_form $::script_name/$N {
 +          # Added "edit/" to form url
 +          cgi_form $::script_name/edit/$N {
              cgi_export O=$origtag
              catch {
                set z "http://$::env(HTTP_HOST)$::env(REDIRECT_URL)"

and the corresponding Apache config:

     <LocationMatch "/edit/">
         AuthUserFile /var/www/my_wiki/.htpass
         AuthName 'Admin'
         AuthType Basic
         Require valid-user

DKF (11-11-2007): Is this applicable in a Wub-hosted wiki?

dizzy 20 nov 2006 - For privacy reasons it would better not showing the user ipaddr in Recent changes if the user is identified by REMOTE_USER or WIKIT_WRU:

 --- lib/wikit/utils.tcl.orig   2006-01-12 23:46:00.000000000 +0100
 +++ lib/wikit/utils.tcl        2006-11-11 01:13:35.000000000 +0100
 @@ -40,6 +40,10 @@
          append result "'''[clock format $date -gmt 1 -format {%B %e, %Y}]'''\n"

 +      # hide ipaddr for identified users      
 +      if {[string match {*@*} $who]} {
 +      regsub -all {@.*} $who {} who
 +      }
        append result "   * \[$name\] . . . $who\n"

 --- lib/wikit/web.tcl.orig     2005-02-02 00:45:03.000000000 +0100
 +++ lib/wikit/web.tcl  2006-11-15 10:48:25.023489472 +0100
 @@ -465,6 +488,10 @@
              foreach x [lsort -dict -index 0 [lsort -dict $refList]] {
                lassign $x name r
                pagevars $r who date
 +              # hide ipaddr for identified users      
 +              if {[string match {*@*} $who]} {
 +                regsub -all {@.*} $who {} who
 +              }
                li "[GetTimeStamp $date] . . . [Wiki - ../$r] . . . $who"

Web accessible wikit introspection

escargo 27 Dec 2006 - Timestamp recent changes on the Recent Changes page. That would give finer granularity than just the day when things changed.

Minor Edits again

MJ - In other Wiki's I have seen the abillity to mark edits as minor changes. Minor changes will not show up in the Recent Changes page. This is nice when you are doing for instance spelling corrections. This will restrict the pages in Recent Changes to the pages that have actual change in content. This would work nicely together with the edit comment suggested above.

LV With, of course, some sort of control so that someone doesn't, for instance, use this ability to hide spam insertions, defaming comments, deletion of valuable content, etc.

MJ - Good point, didn't think of that. Maybe a new page that only shows the major edits and Recent Changes still showing all the edits.

LV In the mean time, if you use wikidiff to view the updates, you will quickly see what has changed without a lot of effort (well, except when a LOT of changes were made on the page...)

LV While I don't expect anyone has time to implement it, what I think would be useful would be a bit different - each page edit would require the person to select from a fixed list of reasons for change. Then, a change to the Recent Changes page code would be to allow the viewer to select what types of changes s/he wished to view (with all types being one of the options). Perhaps one would choose from types of edits such as:

  • fix typo/punctation/other minor, less than one line, edit
  • delete inappropriate, inaccurate, or stale information
  • add category
  • add question
  • add new link
  • add new content
  • comment on existing content

MJ - That sounds like an excellent idea.

Wiki Icon

Could we get an icon for the wiki? Reference a feather in the HTML like:

   <link rel="SHORTCUT ICON" href="favicon.ico">

? It'd make the wiki prettier in my bookmark list. -- CLN

DKF (11-11-2007): Looks to me like we have an icon these days.

Page drill-down in search results

LV Here's a feature I'd love to see. Along with a page content and title, I'd love to see the wikit gather a one sentence description for a page. This description would display in two places - the top of the page, just under the title, of course would be the first place you would see it. HOWEVER the second place would be in search results. That way, the indexer lovers would no longer need to create specialized pages. The wikit itself would generate lists of applications with descriptions, and they could spend their time putting screenshots, categories, etc. on the application pages themselves.


escargo 6 Sep 2007 - There was apparently a project to define standardized Wiki markup. The result is apparently referred to as Creole 1.0:

It might be useful to see what can be adopted, since it's somewhat richer than wikit markup. It's designed to make interchanging pages between wikis easier to do.

LV Back in Sept 2007, Xavier Garreau announced to comp.lang.tcl

As I did it for the french wiki ( ), I've set up an open search plugin for Firefox 2 and IE7 for

Its source is available here:

An automagic installer can be found here:

Having it shown when browsing can be achieved by adding the following line to the <head/> section of the page header source :

  <link rel="search" type="application/opensearchdescription+xml" title="The Tcler's Wiki" href="">

For Firefox 1.x users, I kept the old version here: Source : Install :

Hope, you'll find it useful

Regards, -- Xavier Garreau <[email protected]>

2 february 2008 - can i suggest that somebody put a version number to wikit. and put the number as part of the download file name. and what's going on with the development of wikit? there's no version history doc and no roadmap. michaely

CMcC Version history: try the SVN repository. Roadmap?

LV Perhaps michaely is familar with other projects, which lays out the direction one is going with the project. This information is sometimes called a roadmap, or release plans, or milestones. It generally conveys to developers in the project (and users of the project) what new or enhanced features are in the pipeline for the upcoming releases.

9 feb 2008 - sorry for the confusion. i am referring to the wikit.kit file. every once a month or two, i will download that file, rename it wikitlatest.kit , just to make sure its the latest. as there is no version history to read, i will not know if there are any new features or new formattings. the SVN repository did not document (maybe i couldn't find it) the new Formatting Rules ... (scroll down to 2007 Oct 28) . michaely

Ro Howdy yall, hey Colin, thanks for keeping this thing running smoothly... Can I get some youtube linking going? So I can link somehow to a video on youtube and have it embed it in the page. It would be really cool as I've started making tcltk videos and putting them up there (as user xrocode). Thanks boss. jdc While wubwikit allows inline html, this is disabled for this wiki. I don't need inline html... just something like

  [youtube: 4382YOUTUBE_VIDEO_ID4343]

LAM - 2014-10-18 02:04:49

Making easy to copy source code

One purpose of this wiki is to share source code and having so many examples, would be very useful a button for copy the code to clipboard or, at least, to select only "this" source code for easy copy.

LAM 2014-11-15 Or something like this (tested on FF 33 and IE 11):

function seleccionar(obj){
        var sel = window.getSelection();
        var range = document.createRange();

using, for example

<pre onclick="seleccionar(this)">This is a test in a paragraph</pre>

fr: LAM's solution to test click to select . 2014-02-12 converts unicode to \u%04.4x format now.

ABC - 2014-11-04 13:17:17

I am frequently browsing dozens of search results on the and I have trouble with old entries which do not have dates at all, not even the comments. Makes me waste a lot of time. Could someone please think about adding a simple '?' next to a poster tag like ABC? showing the date of the posting when hovering over the ? ? Or when hovering on the poster tag itself ? Would be great to sort old/new things. Sorting search results by date may not be so relevant since pages opened >10 years ago may percolate to the top on account of recent comments and vice versa. That is not a simple matter. But a simple hover date would be great.

Roy Keene I've started a page for Requirements for the Wiki, which cover any implementation so that we can come up with a list of things we must have, would like to have, and do not care about.