Wikit in local mode

Wikit and Tclkit were designed to run out-of-the-box, with no installation or configuration whatsoever. This goes beyond what you are probably used to with software applications as elaborate as Wikit.


Enough said, let's get you started:

  1. Grab a compressed copy of the Tcl'ers Wiki at [awaiting confirmation of new address in the future for wikit.tkd.gz] and uncompress it to wikit.tkd (unless you want to start with a fresh set of pages).

LV As of 2007-12-12, a weekly snapshot of wikit.gz is available via https://sourceforge.net/project/showfiles.php?group_id=211498 .

  1. Grab the appropriate runtime of Tclkit for your system at http://www.equi4.com/tclkit/ , or in the case of Mac OS X, even better is Daniel Steffens' latest "Wishkit" [L1 ].
  2. Uncompress and rename it to tclkit (leave as is on Windows)
  3. Grab a copy of the latest wikit code at [L2 ] and rename to wikit
  4. Make both files executable: chmod +x tclkit wikit
  5. Type tclkit wikit ... and you should be up and running

LV Quick note - Daniel's latest wishkit at the above URL appears to be Tcl 8.4.10 . Is there some newer location for this item?


Welcome to Wikit!

You can put "tclkit" anywhere on your $PATH; it's just a runtime. The file "wikit" is an executable starkit containing all the scripts - typing just "wikit" (or "./wikit") should also work. Note that wikit expects a wikit.tkd file in the current directory (else it will create a fresh one).

This means that if you wish for people to share wikit data locally, you need to write a wrapper that cd's to a common, writable directory, before invoking the wikit.kit file. That is the only way that all the users - or even you yourself - will see an accumulation of data. It is an unfortunate consequence of the new design.

For example, such a sample script might look like:

 #! /bin/ksh
 cd /usr/local/wikit/shareddata/
 wikit wikit.tkd

You can specify the name of the datafile on the command line. To open the wiki in read-only mode, add "-readonly" as command-line arg.

Wikit does not require Tcl/Tk or Metakit to be installed separately on your system - nor does it care if they are (or will be, one day). Everything is wrapped up inside the Tclkit standalone excutable. To uninstall Wikit: delete these files again. To use this on another machine: move them. If it's a different platform: switch to the proper Tclkit runtime and move only the wikit and wikit.tkd files.

That's all there is to it.


LV Someone want to document the benefits of running wikit as a desktop app instead of as a CGI application?

  • The wikit as a desktop is faster.
  • Pages can be renamed. RPH Why can't you do this with the CGI version? LV Because the wikit has no security.

aa How about listing some of the drawbacks of a Wikit in local mode?

  • The wiki external URL links don't work.
  • There's no way to "find" text on a page (the browser will provide you this function with the web app) - try "blah*" LV Nope - certainly a search of 'blah* in the seach entry widget will display the pages which contain blah - but the original point was that once you get to the page, there's no way to display where a specific string appears on a particular page.
  • The local editor doesn't support drag-and-drop, which your web browser might.

VVF - I have a problem by using copy/paste (Ctrl^C Ctrl^V) How to fix this? (problema - ne rabotayut funkcii Ctrl^C Ctrl^V, a `eto dovol'no neudobno)

01dec06 NPS: External links work with the current wikit on Windows. On OSX, apply the following patch to gui.tcl:

   @@ -61,7 +61,11 @@
               $D tag configure $tag -font wikit_underline
               $D tag bind $tag <ButtonPress-1> \
               "eval exec [auto_execok start] $c &"
   -         }
   +         } elseif { $tcl_platform(os) == "Darwin" } {
   +           $D tag configure $tag -font wikit_underline
   +           $D tag bind $tag <ButtonPress-1> \
   +           "exec open $c"
   +          }
           }

           if {$a == "g"} {

LV: Note however that all 3 of these are things that could be addressed, if someone wanted them badly enough to work on the code.

17feb04 jcw - Note also that there's the option to run "wikit.kit -httpd 12345" and then point your browser at http://localhost:12345 ...


[L3 ] 2004-04-20 Lawrence: Hello! The standalone wikit allow hyperlink to files. Say "file://c:\a.jpg " can link to a.jpg in c:\ However I can't figure out how to specify URLs using relative paths.


November 26, 2002 - wikit has the ability to fetch newer versions of the data file itself - just do this:

 tclkit wikit.kit /path/to/wikit.tkd -update http://mini.net/tclhist

Note that the versions fetched are the daily commits, not the very last-minute pages.

Also, note that the fetched information overwrites the previous info - any changes made locally are NOT synchronized or kept.

LV Anyone remember which page documents the whole Tcler's Wiki CVS page commit'' information? If so, replace this line with a page reference. Otherwise, I suppose this would be as good a place as any to document it.

Basically, the idea is that each time a page is modified, the new page , along with the date and IP address, are saved. Then at the end of the day, these changes are comitted to a CVS repository. There is an interface to that repository so that previous revisions of a page can be seen.

LV 2007 Oct 31 - the previous method of tracking updates via CVS has now been replaced. At the bottom of each wiki page is a link to the various revisions of the current page. Also, if you check the Recent Changes page, the link at the end of the lines take you to a diff of the latest two versions of the page.


What are some of the differences between the Wikit in local mode and the wikit in CGI mode?

  • In local mode, on some machines anyway, the font used is very very small.
  • In CGI mode, one can apply Style Sheets. (Is there a web page that discusses how to do this? Not a discussion, but an example is on Matthias Hoffmann - Tcl-Code-Snippets - wikit-related)
  • In local mode, each viewing page has a search box at the top of the page.
  • In local mode, HTTP is not supported. Thus, links outside of the wikit do not work. In fact, if you use http: links for pages within the wiki, instead of using wiki links like formatting rules, even the self-referential links won't work.
  • In local mode, you can add image files into the wikit itself Adding images to local mode wikis

Lars H, 16 Feb 2004: What is supposed to happen when one starts wikit in local mode? When I try the above instructions (in Mac OS X) the tclkit command takes a second or two to complete, but there is no visible result: No window that opens, no error message, nothing! It just returns.

jcw - Don't know why it doesn't report errors, but you need to have X11 running on OSX to use Tclkit in GUI mode. Or get Daniel Steffens latest "Wishkit" [L4 ] - which is already set up to run .kit files simply by double-clicking on it, anti-aliased and all:

http://mini.net/pub/wikit.png

Lars H: OK, with wishkit it works fine, and looks quite cool (as your image shows). However, I find it really strange that tclkit should require X11 on Mac OS X; I suppose the combination is technically possible, but from a novice usability standpoint it could be a nightmare. Sort of spoils the "trivial installation" idea. Therefore I modified the instructions above, to include at the wishkit alternative.

Some other points:

  • Why isn't the wiki downloadable as "wikit.tkd.gz" rather than "wikit.gz"? This would remove a renaming step (cryptically described as "uncompress it to" above).
  • I'd like to be able to use the page up/down keys to scroll the page, but the only way to scroll seems to be to use the mouse.
  • The search-as-you-type feature seems a bit over-zealous, searching before one has finished typing. Possibly it is meant to be immediate, but the wiki has grown too large for that.
  • Browsing via categories is a bit more awkward than on the net, because if you go from a Category page -> list of references to it -> Some page in that list and then click Back, you're back to the category page rather than the list.

On the whole, though, it is a major improvement to have access to wisdom of The Tcler's Wiki even when I'm off-line.


Some information which used to be on the About this site page:

Running your own local copy of the Tcl Wiki

Here's my cookbook approach to acquiring the necessary files to run your own copy of the Tcl Wiki on your own server. This was last updated on 15 July 2003.

Assumptions:

  • Apache Web Server
  • UNIX Operating System
  • Your version of the Wiki will be accessed from this URL: http://www.foobar.com/tcl/wiki
  • Your htdocs root is /usr/local/apache/www/

Download these files:

In your htdocs directory, create the tcl/wiki directory:

  • cd /usr/local/apache/www
  • mkdir -p tcl/wiki

Copy the 3 downloaded files to /usr/local/apache/www/tcl/wiki and uncompress as necessary.

Rename wikit to wikit.tkd

In the tcl/wiki directory, create a shell script called 'wiki'

  #!/bin/sh
  WIKIT_BASE=http://www.foobar.com/tcl/wiki
  export WIKIT_BASE
  exec /usr/local/apache/www/tcl/wiki/tclkit wikit.kit wikit.tkd

Set permissions for wikit.tkd to 0777, and wiki to 0555.

Add this entry in your httpd.conf and restart Apache:

  <Directory "/usr/local/apache/www/tcl/wiki">
      options ExecCGI
      SetHandler cgi-script
      Allow from all
  </Directory>

That's it. Enter http://www.foobar.com/tcl/wiki in your favorite browser and surf away.

Marty Backe - 14 Jul 2002

TS 18 Nov 2004 - It seems impossible to use directly http://www.foobar.com/wiki without the additional tcl subdirectory. Renaming tcl to wiki results in wrong edit/reference and so on URLS.

jcw - Try adding a slash at the end (this is probably a long-standing bug).


TR 13 Jan 2003 - I found the above description of setting up the wiki was not working for me. The WIKIT_BASE had to be set up as

 WIKIT_BASE=http://www.foobar.com/tcl/wiki/
 export WIKIT_BASE

Note the slash at the end, which was needed, otherwise it wouldn't work.

(Yes, in the wikit code ::env(WIKIT_BASE)edit is used, so separator is strictly required)


LV 2006-Feb-06 Today I tried starting up a local version of the wikit. And I failed miserably. Alas, I've no idea where along the line things went wrong. However, right now, when I use a tclkit downloaded today, as well as a wikit.kit and wikit.gz downloaded, renamed, and permission suitably set, the result I get is a termination of the tclkit, without comment, and a return code of 1. No desktop wikit is displayed.


LV In October, 2008, on comp.lang.tcl, RF wrote:

 On 27 Okt., 18:59, Mel <[email protected]> wrote: 
 > is there anyway to get rid of unused pages in wikit ? I notice that 
 > everytime I change the text for a link, my old page is no longer 
 > accessible. how is it possbile to rename an old page ? 

 > thanks in advance 

 I used this some time ago
proc titlerename {oldtitle newtitle} { 
        set id [Wikit::LookupPage $oldtitle] 
        set newid [Wikit::LookupPage $newtitle] 
        set old_date [mk::get wdb.pages!$id date] 
        set page [mk::get wdb.pages!$id page] 
        # save under new title 
        Wikit::SavePage $newid $page local $newtitle $old_date 
        # rename old page 
        Wikit::SavePage $id {} local $oldtitle 
        # rename this, leading double dagger 
        Wikit::SavePage $id { } local \u2021$id 
        #eventually delete 
        #mk::row delete wdb.pages!$id 
}