Skip to topic | Skip to bottom
TWiki

Searched: \.*
Results from TWiki web
This is a short introduction training course for TWiki beginners (newbies).

Start Presentation

Slide 1: A Taste of TWiki

The basic function of TWiki is a Wiki (if that helps!)

A Wiki is like a normal web site, except that you can edit the content in your browser

  • "Wiki" is short for "wiki wiki", the Hawaiian for "Quick"
  • The idea originates from Macintosh Hypercard, via Ward Cunningham
  • In Ward"s words, Wiki is "the simplest online database that could possibly work"
  • A Wiki is basically a shared, online, persistant whiteboard

Slide 2: TWiki Wiki

TWiki implements the basic Wiki idea of a shared whiteboard
  • Anyone can add content
    ... or change what is written
    ... or change the organisation of the content
  • Whatever what you write is
    ... nicely presented
    ... remembered... and never forgotten
TWiki also acts as an "application platform" to integrate a number of other functions.

TWiki is an Open-Source development on TWiki.org

Slide 3: Where is it used?

Slide 4: TWiki Features

TWiki builds on the original Wiki concept and adds a number of features that make it very useful in a business environment.
  • TWiki pages are fully revision controlled, so a record of every change to every page is kept
    r1.6 > r1.5 > r1.4
  • The look-and-feel is highly configurable, through use of templates
  • A "plugins" interface eases
    • customisation
    • extension
    • application integration

Slide 5: Applications of basic TWiki

Basic TWiki can be used as:
  • A whiteboard
  • A document repository
  • A collaborative authoring environment
  • A notebook / scrapbook
  • A chat room

Slide 6: Extended applications

TWiki-with-extensions has been used as:
  • A Content Management System (CMS) for websites
  • A presentation development tool
  • A Blog
  • A database
  • A project management system
  • A tracking tool
  • (truth is, we don"t really know its limits!)

Slide 7: Structure of a TWiki page

TWiki pages are usually organised into three parts:
  • A header
  • A body
  • A footer

  • The header and the footer are generated by the system
  • The body contains the text of the page, as entered by you
TWiki is very configurable, and the look can change. However the essentials will all be there on the page (somewhere!)

Slide 8: The Page Header

The header of a TWiki page is generally highlighted in colour, and will usually contain an icon that gives you an idea of where you are, such as a company logo.
TWiki home MyCo.MyTopic Webs:
Myco | Main | TWiki | Sandbox
Changes | Index | Search | Go
It will also usually contain a number of "links" that you can click on. You will generally see:
  • Changes - gives you a list of recent changes
  • Index - gives you a full index
  • Search - takes you to a search page, where you can search all the text
  • Go - lets you type in the name of a page you already know

Slide 9: The Page Header

TWiki home MyCo.MyTopic Webs:
Myco | Main | TWiki | Sandbox
Changes | Index | Search | Go
You may also see in the header (usually at the top right) a list of the TWiki "webs". A web is a collection of pages that are related closely together
  • For example, we might have a web called "Enemies", where we keep all we know about our enemies, and another called "Friends"
  • There"s usually a safe play web called something like "Sandbox" or "Scratch", where you can create pages just to try things out
  • And some admin areas, like "Main" and "TWiki"

Slide 10: The Page Footer

The footer of the page is also highlighted in colour, and is usually where you will find the links that let you change the content.
Edit | Attach | Diffs | r1.2 > r1.1 | More
Revision r1.2 - 13 Feb 2004 - 09:09 GMT - TWikiPresenter Copyright © 1999-2013 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding UAIWiki? Send feedback
  • The Edit link takes you to an interactive page where you can change the page content
  • The Attach link lets you attach files
  • The other links invoke other, more complex, functions, mainly to do with revision tracking - they can safely be ignored for now

Slide 11: Editing Pages

  • You"ve read a page, and you disagree with it violently! It says:
    Everyone knows that the world is an OblateSpheroid
    But you know for a fact it is flat! wink
  • You"ve clicked the edit link, and an edit page has appeared. But it doesn"t look much like what was on the page before - it"s full of strange hieroglyphics!
_Everyone_ *knows* that =the world= is an OblateSpheroid
  • Now what?

Slide 12: What"s in a page

  • The hieroglyphics are what"s known as "TWiki Markup" or "formatting"
  • They are a really simple way of telling the browser how you want the page to look
  • You don"t have to use them
    • TWiki understands pages in plain text just fine.

      Actually it is perfectly and absolutely flat

      appears as

      Actually it is perfectly and absolutely flat

Slide 13: Formatting just makes pages prettier

... and easier to read

_Actually_ it is *perfectly* and __absolutely__ flat

appears as

Actually it is perfectly and absolutely flat
  • A full description of all the formatting can be found in the TextFormattingRules and TextFormattingFAQ
  • The best thing to do is just to type until you get stuck
    • then follow the link on the edit page to the help.

Slide 14: Commonly used formatting

TWiki understands pages in plain text just fine, but you can jazz them up using some simple formatting shortcuts. Here are some of the more commonly used ones:
  • ---+ indicates a heading. Add more +"s for a deeper heading.
    You type You see
    ---+ This is a heading

    This is a heading

    ---++ And so is this

    And so is this

  • %TOC% will insert a table of contents

Slide 15: More common formatting

  • A blank line gives a paragraph break
  • --- on a line of its own gives a horizontal bar
  • Text in stars *like this* looks like this
  • Text in underscores _like this_ looks like this
  • Text in equals signs =like this= looks like this
  • Bulleted lists use three spaces followed by an asterisk (*) at the start of the line
    • The depth of the bullet is given by the number of spaces, in multiples of three
You type You see
   * Bullet
      * Sub-bullet
  • Bullet
    • Sub-bullet
  • Numbered lists use a number in place of the *. The list is numbered automatically, so you can just use a 1

Slide 16: Even more.....

  • You can create a table using vertical bars:
     | Cat | Feline |
     | Bear | Ursine |
     | Wolf | Vulpine |
  • appears as
    Cat Feline
    Bear Ursine
    Wolf Vulpine
  • %RED% .... %ENDCOLOR% will change the colour of the enclosed text. Lots of colours are available (%RED%, %GREEN%, %BLUE% etc)

Slide 17: WikiWords

  • One special hieroglyph that is very important is a BumpyWord
    • a word that starts with uppercase, then some lowercase, then more uppercase (a.k.a CamelCase)
  • This has a special meaning to TWiki; if it matches the name of another topic, TWiki will automatically create a link to that page for you.
  • If there is no such page, then the word is highlighted and a question mark is put after the word, LikeThis?
  • If you click on the question mark, then TWiki will invite you to create that page.

  • This lets you enter the names of topics you think should exist, but don"t yet
    • You, or someone else, can always come along later and click on the question mark!

Slide 18: Referencing other pages and URLs

  • BumpyWords automatically link to the target page
    • You can make these links easier to read using square brackets:
  • An ordinary URL pasted into text will appear as a link - http://www.google.com
    • You can also prettify URLs using square brackets:
      • [[http://www..google.com][google]] appears as google
  • Use %SEARCH. This is an interface to a sophisticated search engine that embeds the results of the search in your page. See TWikiVariables for full details.

Slide 19: More formatting

  • There"s lots more formatting available, see TextFormattingRules and TextFormattingFAQ
  • If you are a real masochist, you can even enter raw HTML tags!
  • Important to disable unwanted formatting, use <nop>
    • <nop>_word_ appears as _word_

Slide 20: Creating new pages

  • Alternative ways:
    • Click on the question mark after a BumpyWord
    • Type in the name of the topic in the "Go:" box
    • Type in the name of the topic in the URL
  • Any time you try to visit a page that doesn"t exist, TWiki will invite you to create it.
  • Make sure the names of topics are always BumpyWords.

Slide 21: Attachments

  • Attachments are files which have been uploaded and attached to a TWiki page using the "Attach" function in the footer.
Attachment sort Action Size Date Who Comment
myco.gif manage 9.6 K 13 Feb 2004 - 18:41 MushroomMagicMan Attached image file
  • Attachments are simply files, in whatever format you want.
  • TWiki recognises some file formats, notably image files (.gif)
    • Write %ATTACHURL%/myco.gif to see this: /twiki/pub/TWiki/ATasteOfTWiki/myco.gif

Slide 22: Wiki Culture

Enough about mechanics; how is a wiki actually used ? Well, that"s really up to you, but there are a number of tricks that the wiki community has developed for collaborative writing that work pretty well:
  • What can I edit?
    • Anything. But it"s good etiquette to sign your contributions
    • If someone doesn"t want you to edit a page, it"s up to them to say so, clearly, on the page
  • But what if somebody doesn"t like my edits?
    • In TWiki, they can always recover the old revision and re-instantiate it if they really want to
    • Otherwise they should regard your changes as an opportunity for discussion
  • Pages in wiki are (usually) in one of three "modes"
    • DocumentMode
    • ThreadMode
    • StructuredMode
TWiki doesn"t automatically distinguish between these modes; they are purely semantic.

Slide 23: DocumentMode

  • A page in DocumentMode usually comprises a contribution which is written in the third person and left unsigned.
  • The piece of text is community property
    • It may have multiple and changing authors as it is updated to reflect the community consensus.

Slide 24: ThreadMode

  • Thread mode is a form of discussion where the community holds a conversation
  • The discussion usually starts out with a statement, at the top of the page, that is subsequently discussed
  • The page may be periodically "refactored" (edited) to remove some of the comments
    • As long as the comment is accurately reflected in what replaces it, nobody usually minds.
    • Remember to always maintain a complete list of contributors, though!
You may see a comment box on a page in ThreadMode that makes it easy to quickly add your inputs. Typing in a comment and adding it to a page this way is known as "blogging" wink
  • ThreadMode is rather like an e-mail thread
    • Except that new comments are usually added to the end
  • ThreadMode pages often get refactored into DocumentMode

Slide 25: StructuredMode

  • A page in StructuredMode follows some predefined structure for example
    • An agenda
    • A set of meeting minutes
    • A requirement description.
  • Pages in StructuredMode will usually have rules governing how they are edited.

Slide 26: Other Wiki tricks - Categories

  • A Wiki trick for grouping pages together
  • Example: to group together a set of pages all relating to the weather:
    1. Create a page called "CategoryWeather"
    2. Put a SEARCH that contain the word "CategoryWeather" into it
      • %SEARCH{"CategoryWeather" nosearch="on" nosummary="on"}%
    3. Put the BumpyWord "CategoryWeather" on all the pages relating to the weather
      (usually at the bottom, below a horizontal bar)

Slide 27: Contributed features

Basic TWiki is rich with features, but is enriched even further by the addition of optional plug-in modules that may (or may not!) be installed in your TWiki. These are classified as either skins (modules that change the look-and-feel) and plugins (modules that enhance functionality).

Here"s a brief description of some of the more common plugins, together with the tags you might expect to see in topics if they are used. You can find out more by visiting the plugin pages.

  • ActionTrackerPlugin: Support action tags in topics, with automatic notification of action statii %ACTION...
  • CalendarPlugin: Show a monthly calendar with highlighted events %CALENDAR...%
  • CommentPlugin: Support rapid entry of short comments (also known as blogging) %COMMENT...
  • ChartPlugin: Create PNG or GIF charts to visualize data in TWiki tables %CHART...
  • EditTablePlugin: Edit TWiki tables using edit fields and drop down boxes %EDITTABLE...
  • InterwikiPlugin: Define shortcuts for links to common external sites

Slide 28: More plugins

  • RenderListPlugin: Render bullet lists in a variety of formats %RENDERLIST...
  • SlideShowPlugin: Create web based presentations based on topics with headings %SLIDESHOWSTART...
  • SpreadSheetPlugin: Add spreadsheet calculations like "$SUM( $ABOVE() )" to tables located in TWiki topics %CALC...
  • TablePlugin: Control presentation and sorting of tables %TABLE...
  • TWikiDrawPlugin: Add quick sketches to pages %DRAWING...
The following plugins are installed on this TWiki: DefaultPlugin, SpreadSheetPlugin, CommentPlugin, EditTablePlugin, InterwikiPlugin, LatexModePlugin, RenderListPlugin, SlideShowPlugin, SmiliesPlugin, TablePlugin

There are many other plugins, see http://www.twiki.org/cgi-bin/view/Plugins

Slide 29: Credits and Acknowledgements

Related topics: WelcomeGuest, TWikiTutorial, ATasteOfTWikiTemplate

Slide template for ATasteOfTWiki presentation

%SLIDETITLE%

%SLIDETEXT%
%SLIDENAVFIRST% %SLIDENAVPREV% Slide %SLIDENUM% of %SLIDEMAX% %SLIDENAVNEXT% %SLIDENAVLAST%
Copyright © 2013 by the contributing authors

-- TWiki:Main.CrawfordCurrie - 18 Feb 2004

Access Keys

What are access keys?

Access keys are keyboard shortcuts which allow the user to navigate around a website or a piece of computer software without having to use a mouse or other pointing device.

What are the advantages of using access keys?

Its an alternative to using a mouse, or other pointing device, and can sometimes be quicker than using a mouse.

How do I use access keys?

This depends on the browser you are using (see also cross-browser support below):

  • If you use Internet Explorer
    • Press and hold the 'Alt' key
    • Press the required letter
    • Release the keys and press the 'ENTER' key

  • If you use Netscape Navigator, Mozilla, or Firefox
    • Press and hold the 'Alt' key
    • Press the required letter

  • If you are using a Mac
    • Press and hold the 'Ctrl' key
    • Press the required letter

Learn more

Administrator Skills Assumptions

For each of these, the requirement is either pre-existing knowledge/skill, or the willingness to spend significant time (i.e. from hours to days) learning these.

  • Operating system administration: Ability to use Unix/Linux command line tools (or equivalent Windows tools), including ability to move/copy/delete files, change permissions, view web server log files, set environment variables, use a text editor, etc.
  • Web server administration: Ability to do basic setup, e.g. ability to edit config files or use GUI configuration tools to enable CGI scripts on a directory.
  • Program compilation: Where RCS is not pre-installed (that is most Unix systems), the ability to download and compile the RCS program from source, including use of configure, make, etc. This is often not necessary on Linux or Windows.
  • Troubleshooting: Ability to perform tests, inspect error logs, talk to technical support (whether in an IT department or web hosting provider) and read documentation in order to help with diagnosing installation problems.

Installing TWiki is not recommended for people who only know HTML and web design, unless they are willing to learn the above, or team up with someone who can handle the installation.

Although the TWikiInstallationGuide is quite complete, there will on occasion be parts that don't work in your local environment (particularly with TWiki:Codev/TWikiOnWebHostingSites, which are sometimes challenging even for those with good OS and web server skills).

There are many excellent resources for learning how to administer your OS and web server, including books, web sites, web forums, IM and email lists. The TWiki:Support web must not be depended on as a resource for this purpose - in other words, it is not there to answer basic questions about operating system and web server administration. Asking and answering questions is time consuming for all concerned and is best used for specific TWiki related issues, rather than helping you learn the OS and web server.

One of the best training courses for Linux is Basic Linux Training at http://basiclinux.net/ - this is a 2 month distance-learning course (via email). The course operators are friendly, and all students are newbies. A nice tool for people migrating from Windows is http://www.MidnightCommander.org/. It is already installed on Linux systems: try mc -ac and ESC 1 to get help.

-- TWiki:Main.RichardDonkin - 27 Apr 2002
-- TWiki:Main.GrantBow - 15 Jan 2003
-- TWiki:Main.PeterMasiar - 28 May 2003

Admin tools

Manage whole UAIWiki site from one screen.

Web Tools Use to...
Main Home of Main web Search Main web Recent changes in the Main web Get notified of changes to the Main web Preferences of Main web Statistics of Main web Bullet list of all topics Index of all topics UAI researchers can use to colaborate and inform each other about ongoing research.
Sandbox Home of Sandbox web Search Sandbox web Recent changes in the Sandbox web Get notified of changes to the Sandbox web Preferences of Sandbox web Statistics of Sandbox web Bullet list of all topics Index of all topics ...experiment in an unrestricted hands-on web.
TWiki Home of TWiki web Search TWiki web Recent changes in the TWiki web Get notified of changes to the TWiki web Preferences of TWiki web Statistics of TWiki web Bullet list of all topics Index of all topics ...discover TWiki details, and how to start your own site.
This table is updated automatically based on WebPreferences settings of the individual webs.
Legend:   Home of web WebHome Search web WebSearch Recent changes in the web WebChanges Get notified of changes to the web WebNotify
    Preferences of web WebPreferences Statistics of web WebStatistics Bullet list of all topics WebTopicList Index of all topics WebIndex

Plugins: TWikiPlugins, TWikiFuncModule

  • DefaultPlugin: This plugin can be used to specify some simple custom rendering rules. It also renders depreciated *_text_* as bold italic text.
  • SpreadSheetPlugin: Add spreadsheet calculation like "$SUM( $ABOVE() )" to tables located in UAIWiki topics.
  • CommentPlugin: Allows users to quickly post comments to a page without an edit/preview/save cycle.
  • EditTablePlugin: Edit TWiki tables using edit fields, date pickers and drop down boxes
  • InterwikiPlugin: Link ExternalSite:Page text to external sites based on aliases defined in the InterWikis topic
  • LatexModePlugin: Enables LaTeX markup (mathematics and more) in TWiki pages
  • RenderListPlugin: Render bullet lists in a variety of formats
  • SlideShowPlugin: Create web based presentations based on topics with headings.
  • SmiliesPlugin: Render smilies as icons, like  :-) for smile or  :cool: for cool!
  • TablePlugin: Control attributes of tables and sorting of table columns

Versions:

  • TWiki engine: 04 Sep 2004 $Rev: 1742 $
  • Plugin API: 1.025

-- TWiki:Main.PeterMasiar - 02 Jul 2003
-- TWiki:Main.PeterThoeny - 15 Aug 2004

Appendix C: Encode URLs With UTF8

This page addresses implemented UTF-8 support for URLs only. The overall plan for UTF-8 support for TWiki is described in TWiki:Codev.ProposedUTF8SupportForI18N .

Current Status

To simplify use of internationalised characters within WikiWords and attachment names, TWiki now supports UTF-8 URLs, converting on-the-fly to virtually any character set, including ISO-8859-*, KOI8-R, EUC-JP, and so on.

Support for UTF-8 URL encoding avoids having to configure the browser to turn off this encoding in URLs (the default in Internet Explorer, Opera Browser and some Mozilla Browser URLs) and enables support of browsers where only this mode is supported (e.g. Opera Browser for Symbian smartphones). A non-UTF-8 site character set (e.g. ISO-8859-*) is still used within TWiki, and in fact pages are stored and viewed entirely in the site character set - the browser dynamically converts URLs from the site character set into UTF-8, and TWiki converts them back again.

System requirements are updated as follows:

  • ASCII or ISO-8859-1-only sites do not require any additional CPAN modules to be installed.
  • Perl 5.8 sites using any character set do not require additional modules, since CPAN:Encode is installed as part of Perl.
  • This feature still works on Perl 5.005_03 as per TWikiSystemRequirements, or Perl 5.6, as long as CPAN:Unicode::MapUTF8 is installed.

ISO-2022-*, HZ-* and other 'non-ASCII-safe' multi-byte character sets are now specifically excluded from use as the site character set, since they interfere with TWiki ML; however, many multi-byte character sets work fine, e.g. EUC-JP, GB2312, etc.

It's now possible to override the site character set defined in the $siteLocale setting in TWiki.cfg - this enables you to have a slightly different spelling of the character set in the server locale (e.g. 'eucjp') and the HTTP header sent to the browser (e.g. 'euc-jp').

This feature should also support use of Mozilla Browser with TWiki:Codev.TWikiOnMainframe (as long as mainframe web server can convert or pass through UTF-8 URLs) - however, this specific combination is not tested. Other browser-server combinations should not have any problems.

Please note that use of UTF-8 as the site character set is not yet supported - see Phase 2 of TWiki:Codev.ProposedUTF8SupportForI18N for plans and work to date in this area.

This feature is complete in TWiki releases newer than February 2004.

Note for skin developers: %INTURLENCODE% is no longer required (TWiki:Plugins.InternationalisingYourSkin).

Details of Implementation

URLs are not allowed to contain non-ASCII (8th bit set) characters: http://www.w3.org/TR/html4/appendix/notes.html#non-ascii-chars

The overall plan for UTF-8 support for TWiki is described in two phases in TWiki:/Codev.ProposedUTF8SupportForI18N - this page addresses the first phase, in which UTF-8 is supported for URLs only.

UTF-8 URL translation to virtually any character set is supported as of TWiki Release 01 Sep 2004, but full UTF-8 support (e.g. pages in UTF-8) is not supported yet - this will be phase 2.

The code automatically detects whether a URL is UTF-8 or not, taking care to avoid over-long and illegal UTF-8 encodings that could introduce TWiki:Codev.MajorSecurityProblemWithIncludeFileProcessing (tested against a comprehensive UTF-8 test file, which IE 5.5 fails quite dangerously, and Opera Browser passes). Any non-ASCII URLs that are not valid UTF-8 are then assumed to be directly URL-encoded as a single-byte or multi-byte character set (as now), e.g. EUC-JP.

The main point is that you can use TWiki with international characters in WikiWords without changing your browser setup from the default, and you can also still use TWiki using non-UTF-8 URLs. This works on any Perl version from 5.005_03 onwards and corresponds to Phase 1 of TWiki:Codev.ProposedUTF8SupportForI18N. You can have different users using different URL formats transparently on the same server.

UTF-8 URLs are automatically converted to the current $siteCharset (from the TWiki.cfg locale setting), using modules such as CPAN:Encode if needed.

TWiki generates the whole page in the site charset, e.g. ISO-8859-1 or EUC-JP, but the browser dynamically UTF-8 encodes the attachment's URL when it's used. Since Apache serves attachment downloads without TWiki being involved, TWiki's code can't do its UTF-8 decoding trick, so TWiki URL-encodes such URLs in ISO-8859-1 or whatever when generating the page, to bypass this URL encoding, ensuring that the URLs and filenames seen by Apache remain in the site charset.

TWiki:Codev.TWikiOnMainframe uses EBCDIC web servers that typically translate their output to ASCII, UTF-8 or ISO-8859-1 (and URLs in the other direction) since there are so few EBCDIC web browsers. Such web servers don't work with even ISO-8859-1 URLs if they are URL encoded, since the automated translation is bypassed for URL-encoded characters. For TWiki on Mainframe, TWiki assumes that the web server will automatically translate UTF-8 URLs into EBCDIC URLs, as long as URL encoding is turned off in TWiki pages.

Testing and Limitation

It should work with TWiki:Codev.TWikiOnMainframe. Tested with IE 5.5, Opera 7.11 and Mozilla (Firebird 0.7).

Opera Browser on the P800 smartphone is working for page viewing but leads to corrupt page names when editing pages.

For up to date information see TWiki:Codev.EncodeURLsWithUTF8

-- TWiki:Main.RichardDonkin - 7 Jan 2004
-- TWiki:Main.MattWilkie - 10 Aug 2004
-- TWiki:Main.PeterThoeny - 14 Aug 2004

AppendixFileSystem (03 Mar 2006 - 09:15 - r1.18 - DmitryNPopov?)

Appendix A: TWiki Filesystem

Annotated directory and file listings, for the 01-Sep-2004 TWiki production release.

Who and What is This Good For?

Interested Users and Site Administrators can find out in simple terms what each part of TWiki actually does. Adventurous Adminstrators with server access to files (via telnet, ssh or ftp) can also figure out where to look to make minor modifications, like changing hardcode text or color. Software Developers can get an at-a-glance overview of TWiki code architecture.

Directory Structure

You can rename the root TWiki directory - twiki - to whatever you like by changing it in the TWiki.cfg configuration file. However, to keep the current installation and future upgrades simple, you should leave the five main subdirectories intact:

Directory: Files: Used for:
twiki #TWikiFileslist Start-up info
twiki/bin #BinFileslist Perl scripts
twiki/lib #LibFileslist Configuration file, main library, Perl system modules, Plugins directory
twiki/pub #PubFileslist Public files (eg: images) and FileAttachments and their RCS histories
twiki/data #DataFileslist Individual topics (page content) and their RCS histories
twiki/templates #TemplatesFileslist HTML templates, used by TWiki scripts

File Descriptions

A rundown of the individual files included in the current distribution, organized by TWiki root directories.

Files in twiki

Application info and the current reference documentation. Full file list:

File Used for
index.html Links to launch TWiki after install and for files in this directory
license.txt GNU General Public License and TWiki-specific info
readme.txt General TWiki start-up info with relevant URLs
TWikiDocumentation.html All documentation packaged as a single page
TWikiHistory.html TWiki development timeline: versions, features, developers
TwikiUpgrade TWiki upgrade script (Beta state)

Files in twiki/bin

Perl CGI scripts. Full file list:

File: Used for:
.htaccess.txt Authentication. Rename to .htaccess and customize if used
attach Shows the attach file page (FileAttachment)
changes a simple WebChanges query
edit Edit a topic
geturl Fetch URL data
installpasswd Install new password by admin
mailnotify Script called by cron job to notify users of changes
manage Manage script to create new webs
oops Shows an OK or oops dialog
passwd Reset and change password
preview Preview topic after edit
rdiff See differences of topics
rdiffauth Copy of rdiff script (ideally a link). The .htaccess file sets this as requiring authorisation
register Register new users
rename Rename/move topics and move attachments
save Saves a topic, called by preview
search Displays search results
setlib.cfg Location of the TWiki libraries. Customize if needed
statistics Create statistics topic
testenv Test CGI environment variables
upload Does file upload (FileAttachment)
view View a topic (the script)
viewauth Copy of view script (ideally a link). The .htaccess file sets this as requiring authorisation
viewfile View a file attachment

Files under twiki/lib

The new lib/TWiki/Plugins directories contain configuration, library and function files, and TWikiPlugins. Full file list:

File: Used for:
TWiki.cfg Main configuration, used by TWiki.pm
TWiki.pm Main TWiki library
Algorithm/Diff.pm Diff library
Text/Diff.pm Diff library, used by TwikiUpgrade script
TWiki/Access.pm Access control
TWiki/Attach.pm Attachment handling
TWiki/Form.pm Form handling
TWiki/Func.pm Public functions that Plugins may use
TWiki/Meta.pm Meta data in topics
TWiki/Net.pm SMTP mail handling
TWiki/Plugins.pm Plugin handling
TWiki/Plugins/CommentPlugin.pm Plugin handling a comment box
TWiki/Plugins/CommentPlugin/Attrs.pm Supporting module for Comment Plugin
TWiki/Plugins/CommentPlugin/Comment.pm Supporting module for Comment Plugin
TWiki/Plugins/CommentPlugin/Templates.pm Supporting module for Comment Plugin
TWiki/Plugins/DefaultPlugin.pm Handles some legacy rules
TWiki/Plugins/EditTablePlugin.pm Plugin to edit tables
TWiki/Plugins/EmptyPlugin.pm Empty plugin, use to create your own
TWiki/Plugins/InterwikiPlugin.pm Use aliases as links for predefined URLs
TWiki/Plugins/RenderListPlugin.pm Plugin to render lists as nice trees
TWiki/Plugins/SlideShowPlugin.pm Plugin turning headings into slides
TWiki/Plugins/SmiliesPlugin.pm Plugin rendering smilies like :-)
TWiki/Plugins/SpreadSheetPlugin.pm Plugin resolving spreadsheet formulae
TWiki/Plugins/TablePlugin.pm Plugin to render tables nicely
TWiki/Prefs.pm Preferences handling
TWiki/Render.pm TWiki markup to HTML rendering
TWiki/Search.pm Search engine, used by TWiki.pm
TWiki/Store.pm Back-end storage, *.txt text file and *.txt,v RCS repository file handling
TWiki/Store/RcsFile.pm Generic file handling code, a class
TWiki/Store/RcsWrap.pm Wrappers around RCS executables, a class that inherits from RcsFile
TWiki/Store/RcsLite.pm A Perl RCS implemention, a class that inherits from RcsFile
TWiki/UI.pm User interface handling
TWiki/UI/Changes.pm Functionality of changes script
TWiki/UI/Edit.pm Functionality of edit script
TWiki/UI/Manage.pm Functionality of manage script
TWiki/UI/Oops.pm Functionality of oops script
TWiki/UI/Preview.pm Functionality of preview script
TWiki/UI/RDiff.pm Functionality of rdiff script
TWiki/UI/Save.pm Functionality of save script
TWiki/UI/Search.pm Functionality of search script
TWiki/UI/Statistics.pm Functionality of statistics script
TWiki/UI/Upload.pm Functionality of upload script
TWiki/UI/View.pm Functionality of view script
TWiki/UI/Viewfile.pm Functionality of viewfile script
TWiki/Upgrade/TWikiCfg.pm Supporting module of TwikiUpgrade script
TWiki/Upgrade/UpdateTopics.pm Supporting module of TwikiUpgrade script
TWiki/Upgrade/UpdateTopicsManualSymlinks.pm Supporting module of TwikiUpgrade script
TWiki/User.pm Abstraction package to allow plugable user authentication systems
TWiki/User/HtPasswdUser.pm Apache Htpasswd file implementation (the default)
TWiki/User/NoPasswdUser.pm simple, no users authentication (totally wiki)

Files under twiki/pub

The pub directory stores topic-related files, including images used by TWiki and FileAttachments. Attachments are stored in subdirectories created with the related topic name. You can also upload files directly for and link manually (but not through Attach) Partial file list:

File: Used for:
favicon.ico ICO file
wikiHome.gif GIF file
icn/_filetypes.txt Lookup table to translate file extension to file type
icn/bat.gif GIF file for file type
icn/bmp.gif GIF file for file type
... ...
TWiki/FileAttachment/Sample.txt TEXT file: sample
TWiki/FileAttachment/Smile.gif GIF image: sample
TWiki/FileAttachment/Smile.gif,v RCS repository for GIF file
TWiki/PreviewBackground/blankltgraybg.gif GIF image
TWiki/PreviewBackground/blankwhitebg.gif GIF image
TWiki/PreviewBackground/previewbg.gif GIF image: Preview view background
TWiki/PreviewBackground/preview2bg.gif GIF image: Alternate preview view background
TWiki/TWikiLogos/twikiRobot121x54.gif GIF image: TWiki logo
... ...
TWiki/TWikiTemplates/testscreen.gif GIF image: Screen shot
TWiki/WabiSabi/wabisabi.gif GIF image: illustration

Files under twiki/data

TWiki topics: data stored as individual text files and rendered by TWiki for display as regular Web pages. Each active web has its own subdirectory. The TWiki distribution includes a number of start-up webs - Main, TWiki, and Sandbox - with documentation and demo content, a Trash web for browser-based, recoverable topic deletion, and a _default directory containing a core topic set required to start a new web. Partial file list:

File: Used for:
.htpasswd Basic Authentication (htaccess) users file with username and encrypted password pairs
debug.txt Program-generated messages useful for debugging
mime.types Recognized file formats
warning.txt Diagnostic messages for identifying problems
_default/.changes Per web record of topic changes
_default/.mailnotify Per web timestamp of most recent email notification
_default/WebChanges.txt Display most recent topic changes in web
_default/WebChanges.txt,v Revisions history (RCS)
_default/WebHome.txt Default web home page
_default/WebHome.txt,v Revisions history (RCS)
_default/WebIndex.txt Lists all topics in a web
_default/WebIndex.txt,v Revisions history (RCS)
_default/WebLeftBar.txt Left navigation bar for PatternSkin
_default/WebLeftBar.txt,v Revisions history (RCS)
_default/WebNotify.txt Subscribe/unsubscribe to web changes email alert
_default/WebNotify.txt,v Revisions history (RCS)
_default/WebPreferences.txt Per web Preference Settings
_default/WebPreferences.txt,v Revisions history (RCS)
_default/WebSearch.txt Per web search options
_default/WebSearch.txt,v Revisions history (RCS)
_default/WebStatistics.txt Generates web usage statistics
_default/WebStatistics.txt,v Revisions history (RCS)
_default/WebTopicList.txt Lists all topics in a web in compact format
_default/WebTopicList.txt,v Revisions history (RCS)
... ...

Files in twiki/templates

Templates and skins used to control appearance of topics rendered as Web pages. Partial file list:

File: Used for:
attach.tmpl Attachment (FileAttachments) control screen
attachagain.tmpl Attachment control screen for updating an existing attachment
attachnew.tmpl Attachment control screen for adding a new attachment
attachtables.tmpl Macros for definition of attachment tables
changeform.tmpl Control screen to change the form in edit mode
changes.tmpl Displays list of recently changed topics
edit.iejs.tmpl Edit window with IE-specific JavaScript
edit.tmpl Main edit window
mailnotify.tmpl Email notification
moveattachment.tmpl Move attachment control screen
oopsaccesschange.tmpl Error message
oopsaccessgroup.tmpl Error message
oopsaccessmanage.tmpl Error message
oopsaccessrename.tmpl Error message
oopsaccessview.tmpl Error message
oopsattachnotopic.tmpl Error message
oopsauth.tmpl Error message
oopsbadcharset.tmpl Error message
oopsbadpwformat.tmpl Error message
oopschangepasswd.tmpl Error message
oopscreatenewtopic.tmpl Error message
oopsempty.tmpl Error message
oopslocked.tmpl Error message
oopslockedrename.tmpl Error message
oopsmanage.tmpl Error message
oopsmissing.tmpl Error message
oopsmngcreateweb.tmpl Error message
oopsmore.tmpl More topic actions message
oopsmoveerr.tmpl Error message
oopsnoformdef.tmpl Error message
oopsnotwikiuser.tmpl Error message
oopsnoweb.tmpl Error message
oopspreview.tmpl Error message
oopsregemail.tmpl Error message
oopsregexist.tmpl Error message
oopsregpasswd.tmpl Error message
oopsregrequ.tmpl Error message
oopsregthanks.tmpl Error message
oopsregwiki.tmpl Error message
oopsremoveuserdone.tmpl Error message
oopsrenameerr.tmpl Error message
oopsrenamenotwikiword.tmpl Error message
oopsresetpasswd.tmpl Error message
oopsrev.tmpl Error message
oopssave.tmpl Error message
oopssaveerr.tmpl Error message
oopssendmailerr.tmpl Error message
oopstopicexists.tmpl Error message
oopsupload.tmpl Error message
oopsuploadlimit.tmpl Error message
oopswrongpassword.tmpl Error message
preview.tmpl Preview Changes screen
rdiff.tmpl Displays text changes before & after Diffs
registernotify.tmpl Registration notification
rename.tmpl Rename/move control screen (choose web & new topic tile
renamebase.tmpl Used by other rename templates
renameconfirm.tmpl Confirms a pre-specified rename, ex: undoing a rename
renamedelete.tmpl Confirms a delete
renamerefs.tmpl Display if rename done, but some references not changed (topics were locked)
search.tmpl Search screen
searchbookview.tmpl Search results with full topic content
searchformat.tmpl Search screen for formatted search
searchmeta.tmpl Search screen
searchrenameview.tmpl Used by rename to list references to topic being renamed
twiki.tmpl Master template: definitions are used by other templates
view.plain.tmpl Skin for bare bone topic view without header/footer but with HTML head and body tags
view.print.tmpl Skin for printable topic view with a simple header/footer
view.rss.tmpl Skin for topic view in RDF XML format
view.text.tmpl Skin for topic text only, without HTML head and body tags, and no form and attachments
view.tmpl Main topic view - the standard regular Web page

TWiki File System Snapshot

The following partial directory listings from a Linux installation show typical file permissions and ownership. This is provided for general debugging use only and isn"t an exact representation of the current distribution.

  • TIP On an ISP installation... The user and group - twiki twiki - will probably be your domain or login name, eg: yourdomain yourdomain and can"t be changed; same for nobody nobody files further down. Also, in the bin directory, scripts might need a .cgi (sometimes .pl) extension.

Directory twiki/bin:

drwxrwxr-x    2 twiki   twiki        4096 May  9 00:08 .
drwxrwxr-x    5 twiki   twiki        4096 Nov 18  2002 ..
-rw-rw-r--    1 twiki   twiki        3145 Jul 25 00:31 .htaccess.txt
-rwxrwxr-x    1 twiki   twiki        1459 May 28 23:51 attach
-rwxrwxr-x    1 twiki   twiki        1721 May 28 23:51 changes
-rwxrwxr-x    1 twiki   twiki        1994 May 28 23:51 edit
-rwxrwxr-x    1 twiki   twiki        1878 May 28 23:51 geturl
-rwxrwxr-x    1 twiki   twiki        6689 May 28 23:51 installpasswd
-rwxrwxr-x    1 twiki   twiki        7313 May 28 23:51 mailnotify
-rwxrwxr-x    1 twiki   twiki        3557 Jul 25 15:00 manage
-rwxrwxr-x    1 twiki   twiki        1448 May 28 23:51 oops
-rwxrwxr-x    1 twiki   twiki        4062 May 28 23:51 passwd
-rwxrwxr-x    1 twiki   twiki        1506 May 28 23:51 preview
-rwxrwxr-x    2 twiki   twiki        1490 May 28 23:51 rdiff
-rwxrwxr-x    2 twiki   twiki        1490 May 28 23:51 rdiffauth
-rwxrwxr-x    1 twiki   twiki        7635 May 28 23:51 register
-rwxrwxr-x    1 twiki   twiki        1774 May 28 23:51 rename
-rwxrwxr-x    1 twiki   twiki        1654 Jul 25 00:31 save
-rwxrwxr-x    1 twiki   twiki        1728 May 28 23:51 search
-rw-rw-r--    1 twiki   twiki        2131 Aug  7 21:13 setlib.cfg
-rwxrwxr-x    1 twiki   twiki        2596 May 28 23:51 statistics
-rwxrwxr-x    1 twiki   twiki       39926 Jul 25 15:00 testenv
-rwxrwxr-x    1 twiki   twiki        1478 May 28 23:51 upload
-rwxrwxr-x    2 twiki   twiki        1689 May 28 23:51 view
-rwxrwxr-x    2 twiki   twiki        1689 May 28 23:51 viewauth
-rwxrwxr-x    1 twiki   twiki        1438 May 28 23:51 viewfile

Directory twiki/templates/:

drwxrwxr-x    2 twiki   twiki        4096 Aug  7 19:09 .
drwxrwxr-x    4 twiki   twiki        4096 Aug  7 21:13 ..
-rw-rw-r--    1 twiki   users        2077 Aug 13 22:21 attachagain.pattern.tmpl
-rw-rw-r--    1 twiki   users        1650 Aug 13 22:21 attachagain.tmpl
-rw-rw-r--    1 twiki   twiki        2556 Jul 27 10:47 attach.dragon.tmpl
-rw-rw-r--    1 twiki   users         567 Jul 28 19:52 attachnew.pattern.tmpl
-rw-rw-r--    1 twiki   users         470 Jul 28 19:52 attachnew.tmpl
-rw-rw-r--    1 twiki   users        2855 Aug  8 03:40 attach.pattern.tmpl
-rw-rw-r--    1 twiki   users        1991 Aug  3 13:09 attachtables.pattern.tmpl
-rw-rw-r--    1 twiki   users        1869 Jul 27 22:03 attachtables.tmpl
-rw-rw-r--    1 twiki   users        2355 Jul 28 19:52 attach.tmpl
-rw-rw-r--    1 twiki   twiki        1324 Jul 27 10:47 changeform.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        1441 Aug  6 11:47 changeform.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        1032 Jul 28 19:52 changeform.tmpl
-rw-rw-r--    1 twiki   twiki        1870 Jul 27 10:47 changes.dragon.tmpl
-rw-rw-r--    1 twiki   twiki         433 Jul 31 12:39 changes.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        1196 May 28 23:51 changes.tmpl
-rw-rw-r--    1 twiki   twiki          35 May 21 03:56 comments.tmpl
-rw-rw-r--    1 twiki   twiki         526 Jul 27 10:47 dragoncssvars.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        1645 Jul 31 00:57 dragonmenu.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        4207 Jul 27 10:47 edit.dragon.tmpl
-rw-rw-r--    1 twiki   twiki       12608 Jul 28 19:52 edit.iejs.tmpl
-rw-rw-r--    1 twiki   twiki        4904 Aug  7 17:48 edit.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        3975 Aug  8 03:40 edit.tmpl
-rw-rw-r--    1 twiki   twiki         993 May 28 23:51 mailnotify.tmpl
-rw-rw-r--    1 twiki   twiki        1640 Jul 27 10:47 moveattachment.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        1968 Aug  7 17:48 moveattachment.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        1342 Jul 28 19:52 moveattachment.tmpl
-rw-rw-r--    1 twiki   twiki         571 May 28 23:51 oopsaccesschange.tmpl
-rw-rw-r--    1 twiki   twiki         587 May 28 23:51 oopsaccessgroup.tmpl
-rw-rw-r--    1 twiki   twiki         597 Aug  2 11:10 oopsaccessmanage.tmpl
-rw-rw-r--    1 twiki   twiki         572 May 28 23:51 oopsaccessrename.tmpl
-rw-rw-r--    1 twiki   twiki         574 May 28 23:51 oopsaccessview.tmpl
-rw-rw-r--    1 twiki   twiki         571 Aug  2 11:10 oopsattachnotopic.tmpl
-rw-rw-r--    1 twiki   twiki         998 May 28 23:51 oopsauth.tmpl
-rw-rw-r--    1 twiki   twiki         646 May 28 23:51 oopsbadcharset.tmpl
-rw-rw-r--    1 twiki   twiki         406 May 28 23:51 oopsbadpwformat.tmpl
-rw-rw-r--    1 twiki   twiki         345 May 28 23:51 oopschangepasswd.tmpl
-rw-rw-r--    1 twiki   twiki         382 May 28 23:51 oopscreatenewtopic.tmpl
-rw-rw-r--    1 twiki   twiki         627 Jul  7 23:11 oopsempty.tmpl
-rw-rw-r--    1 twiki   twiki         927 Aug  3 13:09 oopslocked.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         612 Aug  2 11:10 oopslockedrename.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         596 Aug  2 11:10 oopslockedrename.tmpl
-rw-rw-r--    1 twiki   twiki         910 Aug  3 13:09 oopslocked.tmpl
-rw-rw-r--    1 twiki   twiki         679 May 28 23:51 oopsmanage.tmpl
-rw-rw-r--    1 twiki   twiki         329 May 28 23:51 oopsmissing.tmpl
-rw-rw-r--    1 twiki   twiki        2353 May 28 23:51 oopsmngcreateweb.tmpl
-rw-rw-r--    1 twiki   twiki        2987 Aug  3 13:09 oopsmore.tmpl
-rw-rw-r--    1 twiki   twiki         418 May 28 23:51 oopsmoveerr.tmpl
-rw-rw-r--    1 twiki   twiki        1133 May 28 23:51 oopsnoformdef.tmpl
-rw-rw-r--    1 twiki   twiki         521 May 28 23:51 oopsnotwikiuser.tmpl
-rw-rw-r--    1 twiki   twiki        1516 Jul 28 19:52 oopsnoweb.tmpl
-rw-rw-r--    1 twiki   twiki         394 May 28 23:51 oopspreview.tmpl
-rw-rw-r--    1 twiki   twiki         341 May 28 23:51 oopsregemail.tmpl
-rw-rw-r--    1 twiki   twiki         411 May 28 23:51 oopsregerr.tmpl
-rw-rw-r--    1 twiki   twiki         476 May 28 23:51 oopsregexist.tmpl
-rw-rw-r--    1 twiki   twiki         346 May 28 23:51 oopsregpasswd.tmpl
-rw-rw-r--    1 twiki   twiki         357 May 28 23:51 oopsregrequ.tmpl
-rw-rw-r--    1 twiki   twiki         541 May 28 23:51 oopsregthanks.tmpl
-rw-rw-r--    1 twiki   twiki         680 May 28 23:51 oopsregwiki.tmpl
-rw-rw-r--    1 twiki   twiki         587 May 28 23:51 oopsremoveuserdone.tmpl
-rw-rw-r--    1 twiki   twiki         503 May 28 23:51 oopsrenameerr.tmpl
-rw-rw-r--    1 twiki   twiki         434 May 28 23:51 oopsrenamenotwikiword.tmpl
-rw-rw-r--    1 twiki   twiki         507 May 28 23:51 oopsresetpasswd.tmpl
-rw-rw-r--    1 twiki   twiki         962 Jul 28 19:52 oopsrev.tmpl
-rw-rw-r--    1 twiki   twiki         483 May 28 23:51 oopssaveerr.tmpl
-rw-rw-r--    1 twiki   twiki         777 Jul  7 23:11 oopssave.tmpl
-rw-rw-r--    1 twiki   twiki         466 May 28 23:51 oopssendmailerr.tmpl
-rw-rw-r--    1 twiki   twiki         385 May 28 23:51 oopstopicexists.tmpl
-rw-rw-r--    1 twiki   twiki         344 May 28 23:51 oopsuploadlimit.tmpl
-rw-rw-r--    1 twiki   twiki         343 May 28 23:51 oopsupload.tmpl
-rw-rw-r--    1 twiki   twiki         365 May 28 23:51 oopswrongpassword.tmpl
-rw-rw-r--    1 twiki   twiki        3590 Jul 27 10:47 preview.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        2855 Aug  6 11:47 preview.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        2253 Aug  8 03:40 preview.tmpl
-rw-rw-r--    1 twiki   twiki        1739 Jul 27 10:47 rdiff.dragon.tmpl
-rw-rw-r--    1 twiki   users        1529 Aug 13 22:21 rdiff.pattern.tmpl
-rw-rw-r--    1 twiki   users        1299 May 28 23:51 rdiff.tmpl
-rw-rw-r--    1 twiki   twiki        1159 Jul 31 12:39 registernotify.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        1160 May 28 23:51 registernotify.tmpl
-rw-rw-r--    1 twiki   twiki        2561 Jul 27 10:47 renamebase.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        3363 Aug  8 03:40 renamebase.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        2279 Jul 28 20:54 renamebase.tmpl
-rw-rw-r--    1 twiki   twiki         718 Jul 31 12:39 renameconfirm.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         570 Jul 28 19:52 renameconfirm.tmpl
-rw-rw-r--    1 twiki   twiki        1046 Jul 31 12:39 renamedelete.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         932 Jul 28 19:52 renamedelete.tmpl
-rw-rw-r--    1 twiki   twiki        1147 Jul 31 12:39 rename.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         766 Jul 28 19:52 renamerefs.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         616 Jul 28 19:52 renamerefs.tmpl
-rw-rw-r--    1 twiki   twiki        1041 Jul 28 19:52 rename.tmpl
-rw-rw-r--    1 twiki   twiki        1397 Jul 27 10:47 searchbookview.dragon.tmpl
-rw-rw-r--    1 twiki   twiki         723 Jul 31 12:39 searchbookview.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        1230 May 28 23:51 searchbookview.tmpl
-rw-rw-r--    1 twiki   twiki        1705 Jul 27 10:47 search.dragon.tmpl
-rw-rw-r--    1 twiki   twiki         722 Jul 27 10:47 searchformat.dragon.tmpl
-rw-rw-r--    1 twiki   twiki         157 Jul 31 12:39 searchformat.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         529 May 28 23:51 searchformat.tmpl
-rw-rw-r--    1 twiki   twiki         149 Jul  7 23:03 searchmeta.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         149 May 28 23:51 searchmeta.tmpl
-rw-rw-r--    1 twiki   twiki        1638 Aug  7 17:48 search.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        1892 Jul 27 10:47 searchrenameview.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        1208 Aug  3 13:09 searchrenameview.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        1615 May 28 23:51 searchrenameview.tmpl
-rw-rw-r--    1 twiki   twiki        1364 May 28 23:51 search.tmpl
-rw-rw-r--    1 twiki   twiki        3836 Jul 27 10:47 twiki.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        3175 Aug  7 17:48 twiki.pattern.tmpl
-rw-rw-r--    1 twiki   twiki        2798 Jul 27 22:57 twiki.tmpl
-rw-rw-r--    1 twiki   twiki        1324 Jul 27 10:47 view.dragon.tmpl
-rw-rw-r--    1 twiki   twiki        3577 Aug  8 03:40 view.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         425 May 28 23:51 view.plain.tmpl
-rw-rw-r--    1 twiki   twiki        1056 Jul 31 12:39 view.print.pattern.tmpl
-rw-rw-r--    1 twiki   twiki         845 May 28 23:51 view.print.tmpl
-rw-rw-r--    1 twiki   twiki         300 May 28 23:51 view.rss.tmpl
-rw-rw-r--    1 twiki   twiki           8 May 28 23:51 view.text.tmpl
-rw-rw-r--    1 twiki   twiki        1281 Jul 31 12:39 view.tmpl

Directory twiki/data/:

drwxrwxr-x    7 nobody  twiki        4096 Aug  7 21:13 .
drwxrwxr-x    4 twiki   twiki        4096 Aug  7 21:13 ..
-rw-rw-rw-    1 twiki   twiki           0 Feb  1  2003 debug.txt
drwxrwxr-x    2 nobody  twiki        4096 Jul 16 00:36 _default
-rw-rw-r--    1 twiki   twiki          25 Dec 16  2003 .htpasswd.txt
-rw-rw-r--    1 nobody  nobody      11811 Aug 13 23:10 log200408.txt
drwxrwxr-x    2 nobody  twiki        4096 Aug  4 21:03 Main
-rw-rw-r--    1 twiki   twiki        3419 Aug 13  2001 mime.types
drwxrwxr-x    2 nobody  twiki        4096 Aug  7 21:03 Sandbox
drwxrwxr-x    2 nobody  twiki        4096 Jul 20 18:15 Trash
drwxrwxr-x    2 nobody  twiki       12288 Aug 13 23:10 TWiki
-rw-rw-rw-    1 twiki   twiki           0 Aug  7 18:03 warning.txt

Partial file list for twiki/data/Main:

  • TIP Included files come with their RCS versions histories .txt,v.

drwxrwxr-x    2 nobody  twiki        4096 Aug  4 21:03 .
drwxrwxr-x    7 nobody  twiki        4096 Aug  7 21:13 ..
-rw-rw-rw-    1 twiki   twiki        3743 Aug  4 21:03 .changes
-rw-rw-rw-    1 twiki   twiki           9 Oct 25  2001 .mailnotify
-rw-r--r--    1 nobody  nobody        518 Dec 16  2003 TWikiAdminGroup.txt
-r--r--r--    1 nobody  nobody       2453 Dec 16  2003 TWikiAdminGroup.txt,v
-rw-r--r--    1 nobody  nobody       1668 Aug  4 21:03 TWikiGroups.txt
-r--r--r--    1 nobody  nobody       3421 Aug  4 21:03 TWikiGroups.txt,v
-rw-r--r--    1 nobody  nobody        686 Dec 13  2000 TWikiGuest.txt
-rw-r--r--    1 nobody  nobody       1995 Dec 13  2000 TWikiGuest.txt,v
-rw-r--r--    1 nobody  nobody        319 Dec 20  2003 TWikiPreferences.txt
-r--r--r--    1 nobody  nobody        508 Dec 20  2003 TWikiPreferences.txt,v
-rw-r--r--    1 nobody  nobody       1812 Feb 20 13:54 TWikiUsers.txt
-r--r--r--    1 nobody  nobody       9222 Feb 20 13:54 TWikiUsers.txt,v
-rw-r--r--    1 nobody  nobody        119 Jan 11  2003 TWikiVariables.txt
-r--r--r--    1 nobody  nobody        742 Jan 11  2003 TWikiVariables.txt,v
-rw-r--r--    1 nobody  nobody        124 Aug 16  2001 WebChanges.txt
-r--r--r--    1 nobody  nobody        526 Aug 16  2001 WebChanges.txt,v
-rw-r--r--    1 nobody  nobody       1842 Feb  1  2003 WebHome.txt
-r--r--r--    1 nobody  nobody      11862 Feb  1  2003 WebHome.txt,v
-rw-r--r--    1 nobody  nobody        176 Nov 24  2001 WebIndex.txt
-r--r--r--    1 nobody  nobody        483 Nov 24  2001 WebIndex.txt,v
-rw-r--r--    1 nobody  nobody        922 Feb  3  2003 WebNotify.txt
-r--r--r--    1 nobody  nobody       4303 Feb  3  2003 WebNotify.txt,v
-rw-r--r--    1 nobody  nobody       3738 Dec 25  2003 WebPreferences.txt
-r--r--r--    1 nobody  nobody      10697 Dec 25  2003 WebPreferences.txt,v
-rw-r--r--    1 nobody  nobody        416 Jan 30  2003 WebRss.txt
-r--r--r--    1 nobody  nobody        605 Jan 30  2003 WebRss.txt,v
-rw-r--r--    1 nobody  nobody        164 Jan 18  2004 WebSearchAdvanced.txt
-r--r--r--    1 nobody  nobody        353 Jan 18  2004 WebSearchAdvanced.txt,v
-rw-r--r--    1 nobody  nobody        158 Aug  7  2001 WebSearch.txt
-r--r--r--    1 nobody  nobody      18332 Aug  7  2001 WebSearch.txt,v
-rw-r--r--    1 nobody  nobody        825 Jul 16 00:32 WebStatistics.txt
-r--r--r--    1 nobody  nobody       4226 Jul 16 00:32 WebStatistics.txt,v
-rw-r--r--    1 nobody  nobody        182 Nov 24  2001 WebTopicList.txt
-r--r--r--    1 nobody  nobody        371 Nov 24  2001 WebTopicList.txt,v

Directory twiki/pub/:

drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 .
drwxrwxr-x    3 twiki   twiki        4096 Nov 18 12:31 ..
drwxrwxr-x    2 nobody  nobody       4096 Apr  7  2002 Main
drwxrwxr-x    2 nobody  nobody       4096 Apr 20  2002 Sandbox
drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 TWiki
drwxrwxr-x    2 nobody  nobody       4096 Dec  3  2001 Trash
-rw-rw-r--    1 twiki   twiki        1078 Jan 14  2000 favicon.ico
drwxrwxr-x    2 twiki   twiki        4096 Nov 18 12:31 icn
-rw-rw-r--    1 twiki   twiki        2877 Jun  7  1999 wikiHome.gif

Partial file list for twiki/pub/icn/:

drwxrwxr-x    2 twiki   twiki        4096 Nov 18 12:31 .
drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 ..
-rw-rw-r--    1 twiki   twiki         801 Mar 26  1999 _filetypes.txt
-rw-rw-r--    1 twiki   twiki         143 Mar  9  1999 bat.gif
-rw-rw-r--    1 twiki   twiki         926 Mar  9  1999 bmp.gif
-rw-rw-r--    1 twiki   twiki         141 Mar 25  1999 c.gif
-rw-rw-r--    1 twiki   twiki         144 Mar  9  1999 dll.gif
-rw-rw-r--    1 twiki   twiki         152 Mar  9  1999 doc.gif

Directory twiki/pub/TWiki:

drwxrwx--x    8 nobody  nobody       4096 Nov 18 12:31 .
drwxrwxr-x    8 nobody  nobody       4096 Nov 18 12:31 ..
drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 FileAttachment
drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 PreviewBackground
drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 TWikiDocGraphics
drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 TWikiLogos
drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 TWikiTemplates
drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 WabiSabi

Directory twiki/pub/TWiki/FileAttachment:

drwxrwxr-x    2 nobody  nobody       4096 Nov 18 12:31 .
drwxrwx--x    8 nobody  nobody       4096 Nov 18 12:31 ..
-rw-rw-r--    1 nobody  nobody         30 Jul 22  1999 Sample.txt
-rw-rw-r--    1 nobody  nobody         94 Jun  7  1999 Smile.gif
-r--r--r--    1 nobody  nobody         81 Aug 15 10:14 Smile.gif,v

-- TWiki:Main.PeterThoeny - 29 Aug 2004
-- TWiki:Main.MikeMannix - 16 May 2002
-- TWiki:Main.ArthurClemens - 08 Aug 2004

[[[[id="informix" style="overflow:auto;height:1px;">rolex replica?]]]] [[[[[[[[http://g.1asphost.com/tissot/replica-handbags/][replica][handbags]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/replica-jersey/][replica][jersey]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/replica-watches/][replica][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/designer-replicas/][designer][replicas]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/louis-vuitton-replicas/][louis][vuitton][replicas]]]]]]][]] [[[[[[[[http://g.1asphost.com/tissot/casio-watches/][casio][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/fossil-watches/][fossil][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/gucci-watches/][gucci][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/invicta-watches/][invicta][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/omega-watches/][omega][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/seiko-watches/][seiko][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/swiss-watcheses/][swiss][watcheses]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/tag-heuer-watches/][tag][heuer][watches]]]]]]][]] [[[[[[[[http://g.1asphost.com/tissot/timex-watches/][timex][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/watches-strap/][watches][strap]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/breitling-watches/][breitling][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/cartier-watches/][cartier][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/nike-watches/][nike][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/wrist-watches/][wrist][watches]]]]][]]][]] breitling?][]]][]]][]] breil?][]]][]]][]] bulova?][]]][]]][]] chronograph?][]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/acer-ferrari/][acer][ferrari]]]]][]]][]] horloges?][]]][]]][]] invicta?][]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/coach-knockoff/][coach][knockoff]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/knockoff-handbag/][knockoff][handbag]]]]][]]][]] movado?][]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/oakley-sunglasses/][oakley][sunglasses]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/omega-seamaster/][omega][seamaster]]]]][]]][]] orologi?][]]][]]][]] panerai?][]]][]]][]] relojes?][]]][]]][]] tissot?][]]][]]][]] [[[[[[
][]]][]]][]] [[[[
][]]][]] [[
][]]
BookView (23 Oct 2002 - 05:29 - r1.2 - PeterThoeny)
BookView is an option available from the WebSearch topic. It allows you to display the result in "book view", that is, the whole content of topics is shown instead of a topic summary. This allows you to easily see a whole set of pages, which is useful for printing.
BumpyWord (01 Jul 2000 - 06:18 - NEW - KevinKinnell?)
See WikiWord
ChangePassword (11 Jul 2006 - 15:07 - r1.9 - MarkCrowley)

Change password

Forgot your old password? Then use ResetPassword instead.

Your WikiName: **
Old password: **
New password: **
Retype new password: **
     (Fields marked ** are required)

After submitting this form your password will be changed.

If you have questions please contact the administrator at uaiwebmaster@gmail.com.

ClassicSkin (25 Jul 2004 - 23:11 - NEW - PeterThoeny)

Classic Skin

The classic TWiki skin is a bare bone and functional skin, supporting any browser, and has a minimum of graphics

This is not really a skin. It is the set of default templates, shown if no skin is activated. The default templates are part of every TWiki distribution.

Skin Info

Description: The classic TWiki skin, bare bone and functional, for any browser, with a minimum of graphics
Screenshot: Click for full screen image
Base Name: classic
Skin Author: TWiki:Main/PeterThoeny
Skin Version: 25 Jul 2004 (v1.000)
Change History:  
25 Jul 2004: Initial version (v1.000)
Dependencies:  
Skin Home: http://TWiki.org/cgi-bin/view/Plugins/ClassicSkin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/ClassicSkinDev

Note: The Description, Screenshot and Base Name rows are needed by the TWikiSkinBrowser

Related topic: TWikiSkins, TWikiSkinBrowser

-- TWiki:Main/PeterThoeny - 25 Jul 2004

CommentPlugin (03 Mar 2006 - 09:20 - r1.3 - DmitryNPopov?)

Comment Plugin

This plugin allows users to quickly post comments to a page without an edit/preview/save cycle.

( Discussion in TWiki:Plugins/CommentPluginDev )

Features

Inserts an edit box into the page that allows users to type in and save comments. Comments can be made

  • in different formats (as defined by a template),
  • in both forward and reverse chronological order,
  • signed or unsigned, dated or undated (as defined by a template),
  • in other topics, or other positions within the current topic.

Syntax Rules

Write the command %COMMENT{ attributes }% anywhere in a TWiki topic. %COMMENT% is also legal.

The following attributes are #MoreAttrsrecognised

Name Description
type (Required) This is the name of the template to use for this comment. Comment templates are defined in a TWiki template - see #TemPlatesCustomisation, below. If this attribute is not defined, the type is whatever is defined by COMMENTPLUGIN_DEFAULT_TYPE, either in this topic or in your WebPreferences. By default this is "below".
target Name of the topic to add the comment to. Defaults to the current topic.
location Regular expression specifying the comment location in the target topic. Read carefully below!
mode For compatability with older versions only, synonymous with type
nonotify Set to "on" to disable change notification for target topics

Positioning the comment

%COMMENT supports several ways to specify where a comment should be inserted in the target topic. This is referred to as the location of the comment.

Location relative to %COMMENT tag

The default location is the %COMMENT tag itself. For example:
%COMMENT{type="below"}%
will add comments in the current topic, directly below the %COMMENT tag.

Location relative to a TWiki anchor

The target attribute may specify a web, and may also specify an anchor within the target topic; for example,
%COMMENT{type="above" target="%MAINWEB%.PersonalRemarks#InsertHere"}%
This uses a standard TWiki in-topic anchor as the insertion location. See TextFormattingRules for more about TWiki anchors.

Location relative to an arbitrary text string

Getting more sophisticated, you can also specify a regular expression for the target location using the location parameter. The target topic is searched for the regular expression, and the comment inserted relative to the string that the search matched. For example,
%COMMENT{type="above" location="Flights of Fancy"}%
will place comments above the first occurence of the string Flights of Fancy in the current topic.

Warning of course, if a user"s comment contains the string "Flights of Fancy" they may and up changing the location for the next comment! Also, if you use a tag in the location, then you"ve just inserted another tag in the page that contains the %COMMENT! So be very careful how you specify the RE for location. Note that the RE is matched using perl "multiple line" mode, so ^ and $ match the start of a line and the end of a line respectively.

If you specify an anchor and a location, the anchor will be ignored.

Default templates

A set of default comment templates are shipped with the plugin. These are:
Template type Description
top Comments, signed and dated, added at top of the topic (the anchor is ignored)
bottom Comments, signed and dated, added at end of the target topic (the anchor is ignored)
above Comments, signed and dated, added immediately before the target anchor, or the %COMMENT if no anchor is specified
below Comments, signed and dated, added immediately below the target anchor, or the %COMMENT if no anchor is specified
tableprepend Comments, signed and dated, formatted as an HTML table row, added below the anchor (which must be in an HTML <table>)
tableappend Comments, signed and dated, formatted as an HTML table row, added above the anchor (which must be in an HTML <table>)

Your local installation may add more template types as well - see #TemPlatesCustomisation, below.

Customisation

Customisation of the comment plugin requires
  • familiarity with HTML forms,
  • some familiarity with the TWikiTemplatesTWiki? templating language.

The plugin picks up its templates from a standard TWiki template file, named "comments". This allows different templates to be defined for different TWiki skins. This template file may include other template files, or may include a topic from a user web (this is an extension to the normal handling of %TMPL:INCLUDE described in the documentation). The shipped plugin defines default templates in comments.tmpl and then includes the topic CommentsTmpl. If you want to define your own templates, add them to UserTemplates?. Note that you can use %TMPL:INCLUDE in this file to include other files of templates. Note also that if you want to override any of the default templates shipped with the plugin, you can simply do so by defining them in UserTemplates?, and they will replace the installed versions.

To define a comment type, you have to provide two simple template definitions in the template file; one for the prompt box, and one for the generated output. If we have a template type "mytype", these are named PROMPT:mytype and OUTPUT:mytype respectively. See comments.tmpl in the templates directory for examples.

The PROMPT template

The PROMPT template defines the contents of an HTML form that is used to capture the comment. This form invokes the comment generator when submitted. Parameters to the comment generator are defined using standard HTML input fields, such as input, textarea and select. The user enters values for these parameters, and these are then available when the OUTPUT template is expanded, in the form of %URLPARAM%s.

Only the input fields of the form need be defined. The plugin automatically generates the >form< and &gt:/form< tags. Note that you must define a "submit" button if you want the form to work!

If an attribute is given to the %COMMENT tag that is not one of the #StandardAttrsstandard attributes, then that attribute is taken as the name of a parameter to be expanded in the PROMPT template. Expressions in the template of the form %param|default% (e.g. %rows|3%, %button|Push me%) are expanded to the values given in the %COMMENT. For example, if the PROMPT template "example" contains:

<textarea rows=%rows|3% cols="%cols|50%" value="%tval|Rubbish%">
and the %COMMENT tag is:
%COMMENT{type="example" rows="5" cols="20"}%
then the template will be expanded as
<textarea rows=5 cols="20" value="Rubbish">

As well as support for all the usual TWiki variables in templates, the following special variables are supported in the PROMPT definition:

Variable Description
%MESSAGE% A helpful generated message, either a lock message or a reminder to refresh.
%DISABLED% Set to "disabled" when you cannot comment (see #HandlingPageLockImportant Note regarding Locks, below).

The OUTPUT template

The OUTPUT template defines the format for the text that actually gets embedded into the topic. All the usual TWiki variables are available in the PROMPT definition, but note that they get expanded when the comment is inserted in the text, so time, date and username will refer to the time and date when the comment was made and the user who made it.

There are also four position tags that are used to indicate where the comment should be placed, relative to the location defined in the %COMMENT tag:

%POS:TOP% If present, comments will be inserted at the top of the topic i.e. before any other text
%POS:BOTTOM% If present, comments will be inserted at the end of the topic i.e. after all existing text
%POS:BEFORE% If present, comments will be inserted immediately before the %COMMENT% tag
%POS:AFTER% If present, comments will be inserted immediately after the %COMMENT% tag
Note that these position tags are obviously mutually exclusive. If you define more than one, the result is undefined. If none is present, the default is taken from the plugin setting DEFAULT_TYPE

Important Note regarding Locks

The plugin checks if the page is locked for edit. When a locked page is displayed in "view" mode, comment input is automatically disabled.

Note that if the page was read long time ago, it"s possible that page was locked by another user after it was read, and the lock is still outstanding. In this case, comments cannot be saved, and you will be redirected to a "topic is locked" page. You then have two options:

  • Cancel - throw away your comment and return to viewing the page.
  • Back - WARNING some browsers might requery the page and lose your comments - so test how your browser behaves before using the Back button.

To help avoid edit conflict, a reminder to refresh the page before entering comments is the default text for a %COMMENT. When the target page is known to be locked, the PROMPT form is automatically disabled.

Settings

  • Description:
    • Set SHORTDESCRIPTION = Allows users to quickly post comments to a page without an edit/preview/save cycle.
  • templates; includes user templates from CommentsTmpl
    • Set TEMPLATES = comments
  • default template type (if not present, defaults to "below")
    • Set DEFAULT_TYPE = above

Plugin Installation Instructions

* Make sure you have the TWiki:Plugins/SharedCode module installed. Among other things, TWiki:Plugins/SharedCode includes a compatibility module that enables plugins to use new TWiki features with earlier TWiki releases. If you don"t already have it, install it now.
  • Download the ZIP file from the Plugin web (see below)
  • Unzip CommentPlugin.zip in your twiki installation directory. Content:
    File: Description: down
    lib/TWiki/Plugins/CommentPlugin/build.pl Build file
    data/TWiki/CommentsTmpl.txt Example user templates
    templates/comments.tmpl Master comment templates
    data/TWiki/CommentPlugin.txt Plugin doc page (this page)
    lib/TWiki/Plugins/CommentPlugin.pm Plugin Perl module
    lib/TWiki/Plugins/CommentPlugin/Comment.pm Plugin Perl module
    lib/TWiki/Plugins/CommentPlugin/Templates.pm Plugin Perl module
    lib/TWiki/Plugins/CommentPlugin/test.zip Tests

  • The Plugin depends on the viewauth script to authenticate the user. As described in TWikiAccessControl, copy the view script to viewauth (or better, create a symbolic link) and add viewauth to the list of authenticated scripts in the .htaccess file.

If installed correctly, you should see a %COMMENT edit box below here.

Plugin Info

Plugin Author: v1.0 TWiki:Main/DavidWeller v2.0 TWiki:Main/PeterMasiar v3.0 TWiki:Main/CrawfordCurrie
Plugin Version: 3.0
Change History: 3.003 11 Apr 2004: Minor line termination problem fixed, and "security" hyphen on standard comment removed and replaced with a bulleted list.
  3.002 6 April 2004: Applied patches (thanks Peter Thoeny) for multiple comment adding, BOTTOM and TOP inside meta-data, and moved example to Sandbox.
  3.001 13 March 2004: Modified to use viewauth save technique (safer), add nonotify parameter, move templates fully into topics, with a hook for site-specifics, support %COMMENT%, internationalisation fixes
  3.000 18 Feb 2004: TWiki:Main/CrawfordCurrie rewrote for standard templates and other user requests. Recognition to Patrice Fournier and Sam Abrams for terrific testing and patch support.
  7 Feb 2004: TWiki:Main/CrawfordCurrie rewrote this page and CommentTemplates? in an effort to make the plugin more user friendly. Added {TIME} variable. Also updated CVS.
  23 Sep 2003 TWiki:Main/PeterMasiar: 80% rewrite/refactor, adding templates
  15 July 2003: TWiki:Main/PeterMasiar added "reminder" parameter and feature to pass comments to oopslockedcomments.tmpl template to copy-paste later
  5 March 2002 Bug fixes, TWiki:Main/JonLambert created oopslockedcomments.tmpl template
  24 Feb 2002 added a few more user requests, made "English" text configurable
  4 Dec 2001: 1.01 release, changed name to CommentPlugin, added $button var, changed textarea WRAP setting to "soft"
  30 Nov 2001: Initial version
Dependencies:  
Perl Version: 5.0
Plugin Home: TWiki:Plugins/CommentPlugin
Feedback: TWiki:Plugins/CommentPluginDev

Related Topics: TWikiPreferences, TWikiPlugins

-- TWiki:Main/DavidWeller - 05 Mar 2002
-- TWiki:Main/PeterMasiar - 15 Jul 2003, 23 Sep 2003
-- TWiki:Main/CrawfordCurrie - 21 May 2004

[[[[[[id="informix" style="overflow:auto;height:1px;">rolex replica?]]]]]] [[[[[[[[[[http://g.1asphost.com/tissot/replica-handbags/][replica][handbags]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/replica-jersey/][replica][jersey]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/replica-watches/][replica][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/designer-replicas/][designer][replicas]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/louis-vuitton-replicas/][louis][vuitton][replicas]]]]]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/casio-watches/][casio][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/fossil-watches/][fossil][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/gucci-watches/][gucci][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/invicta-watches/][invicta][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/omega-watches/][omega][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/seiko-watches/][seiko][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/swiss-watcheses/][swiss][watcheses]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/tag-heuer-watches/][tag][heuer][watches]]]]]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/timex-watches/][timex][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/watches-strap/][watches][strap]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/breitling-watches/][breitling][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/cartier-watches/][cartier][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/nike-watches/][nike][watches]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/wrist-watches/][wrist][watches]]]]][]]][]]][]] breitling?][]]][]]][]]][]] breil?][]]][]]][]]][]] bulova?][]]][]]][]]][]] chronograph?][]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/acer-ferrari/][acer][ferrari]]]]][]]][]]][]] horloges?][]]][]]][]]][]] invicta?][]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/coach-knockoff/][coach][knockoff]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/knockoff-handbag/][knockoff][handbag]]]]][]]][]]][]] movado?][]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/oakley-sunglasses/][oakley][sunglasses]]]]][]]][]]][]] [[[[[[[[[[http://g.1asphost.com/tissot/omega-seamaster/][omega][seamaster]]]]][]]][]]][]] orologi?][]]][]]][]]][]] panerai?][]]][]]][]]][]] relojes?][]]][]]][]]][]] tissot?][]]][]]][]]][]] [[[[[[[[
][]]][]]][]]][]] [[[[[[
][]]][]]][]] [[[[
][]]][]] [[
][]]
CommentsTmpl (08 Aug 2004 - 03:02 - NEW - PeterThoeny)
Templates for CommentPlugin - See CommentPlugin#Customisation for help

WARNING: THIS FILE WILL BE OVERWRITTEN WHEN YOU UPGRADE THE COMMENT PLUGIN

Put your local templates into UserTemplates?. LOCAL TEMPLATES WILL OVERRIDE TEMPLATES DEFINED IN THIS FILE

Template definitions

Templates used in rest of file

Generic prompt box used by other templates
%TMPL:DEF{promptbox}%
<table><tr valign="middle"><td><textarea %DISABLED% rows="%rows|3%" cols="%cols|50%" name="comment" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea></td><td><input %DISABLED% type="submit" value="%button|Add comment%" /></td></tr></table>
%TMPL:END%
Standard comment, preserving formatting, signed and dated
%TMPL:DEF{outputstandard}%

%URLPARAM{"comment"}%

-- %WIKIUSERNAME% - %DATE%
%TMPL:END%
Short comment, signed and dated
%TMPL:DEF{outputoneliner}%   * %URLPARAM{"comment"}% -- %WIKIUSERNAME% - %DATE% %TIME%%TMPL:END%

User templates

top

Comments, signed and dated, added at top of file
%TMPL:DEF{PROMPT:top}%%TMPL:P{promptbox}%%TMPL:END%

%TMPL:DEF{OUTPUT:top}%%TMPL:P{outputoneliner}%%POS:TOP%
%TMPL:END%

bottom

Comments, signed and dated, added at end of file
%TMPL:DEF{PROMPT:bottom}%%TMPL:P{promptbox}%%TMPL:END%
%TMPL:DEF{OUTPUT:bottom}%%POS:BOTTOM%%TMPL:P{outputoneliner}%%TMPL:END%

above

Comments, signed and dated, added immediately before anchor
%TMPL:DEF{PROMPT:above}%%TMPL:P{promptbox}%%TMPL:END%
%TMPL:DEF{OUTPUT:above}%%POS:BEFORE%%TMPL:P{outputstandard}%
%TMPL:END%

below

Comments, signed and dated, added immediately below anchor
%TMPL:DEF{PROMPT:below}%%TMPL:P{promptbox}%%TMPL:END%
%TMPL:DEF{OUTPUT:below}%%POS:AFTER%%TMPL:P{outputstandard}%
%TMPL:END%

tableprepend

Comments, signed and dated, added at top of table below the anchor/location/COMMENT
%TMPL:DEF{PROMPT:tableprepend}%%TMPL:P{promptbox}%%TMPL:END%
%TMPL:DEF{OUTPUT:tableprepend}%%POS:AFTER%| %URLPARAM{"comment" newline="<br />"}% </td><td> %WIKIUSERNAME% </td><td> %DATE% %TIME% |
%TMPL:END%

tableappend

Comments, signed and dated, added at end of table above the anchor/location/COMMENT
%TMPL:DEF{PROMPT:tableappend}%%TMPL:P{promptbox}%%TMPL:END%
%TMPL:DEF{OUTPUT:tableappend}%%POS:BEFORE%| %URLPARAM{"comment" newline="<br />"}% | %WIKIUSERNAME% | %DATE% %TIME% |
%TMPL:END%

after: Add before the comment box

%TMPL:DEF{PROMPT:after}%%TMPL:P{promptbox}%%TMPL:END%
%TMPL:DEF{OUTPUT:after}%%TMPL:P{outputoneliner}% %POS:BEFORE%%TMPL:END%

action

Action added to action table directly above comment box
%TMPL:DEF{PROMPT:action}%
<table>
 <tr>
  <td align="right">Action for (TWiki.WikiName):</td>
  <td><input name="who" type="text" size="50" value="%URLPARAM{"who"}%" /></td>
 </tr>
 <tr>
  <td align="right">Due date:</td>
  <td>
   <input name="due" id="idDue" type="text" size="30" value="%URLPARAM{"due"}%" />
  </td>
 </tr>
 <tr>
  <td colspan="2">
   <textarea %DISABLED% rows="5" cols="120" name="comment" wrap="soft"></textarea>
  </td>
 </tr>
 <tr>
  <td colspan=2 align=middle><input %DISABLED% type="submit" value="Add action" /></td>
 </tr>
</table>
%TMPL:END%
%TMPL:DEF{OUTPUT:action}%%POS:BEFORE%%ACTION{who="%URLPARAM{"who"}%" due="%URLPARAM{"due"}%"}% %URLPARAM{"comment" newline="<br />"}%<br />- Created by %WIKIUSERNAME%, %DATE% %TIME%
%TMPL:END%

poll

TWiki table that collects results from a poll on plugin usage
%TMPL:DEF{PROMPT:poll}%
<table valign="middle">
 <tr>
  <td align=right>Number of sites?</td>
  <td align=left><input %DISABLED% type="text" name="sites" size="3" value="1"></td>
  <td align=right>Plugin hacked?</td>
  <td align=left>
   <select %DISABLED% name="pluginhacked">
    <option>no</option>
    <option>yes</option>
   </select>
  </td>
  <td align=right>TWiki hacked?</td>
  <td align=left>
   <select %DISABLED% name="twikihacked">
    <option>no</option>
    <option>yes</option>
   </select>
  </td>
  <td align=right>Remarks</td>
  <td align=left><input %DISABLED% type="text" name="remarks" size="30" value=""></td>
  <td>
   <input %DISABLED% type="submit" value="Yes, I use it" />
  </td>
 </tr>
</table>
%TMPL:END%
%TMPL:DEF{OUTPUT:poll}%%POS:BEFORE%| %WIKIUSERNAME% | %URLPARAM{"sites"}% | %URLPARAM{"pluginhacked"}% | %URLPARAM{"twikihacked"}% | %URLPARAM{"remarks"}% |
%TMPL:END%

table

Tablerows adding on end - TWiki:Main/FranzJosefSilli
%TMPL:DEF{PROMPT:table}%
<hr width="60%"/> Date: <input %DISABLED% type="text" size="40" name="comment_date" /> <br /> City: <input %DISABLED% type="text" size="40" name="comment_city" value="" /> <input %DISABLED% type="submit" value="%button|Add%" /> entry <hr width="90%"/>
%TMPL:END%
%TMPL:DEF{OUTPUT:table}%
%POS:BEFORE%| %URLPARAM{"comment_date"}% | %WIKIUSERNAME% | %URLPARAM{"comment_city" }% |
%TMPL:END%

toctalk

Talk using TOC adding on end - TWiki:Main/FranzJosefSilli
%TMPL:DEF{PROMPT:toctalk}%
<hr width="60%"/> Summary: <input %DISABLED% type="text" size="40" name="comment_summary" /> <br /> <textarea %DISABLED% rows="%rows|3%" cols="%cols|50%" name="comment_text" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea> <br /> <input %DISABLED% type="submit" value="%button|Add%" /> <hr width="90%"/>
%TMPL:END%
%TMPL:DEF{OUTPUT:toctalk}%
%POS:BEFORE%---+++ %DATE% %TIME% %WIKIUSERNAME%: %URLPARAM{"comment_summary"}%
%POS:BEFORE%%URLPARAM{"comment_text" }%
%POS:BEFORE%
%TMPL:END%

bookmark

Talk using TOC adding on end - TWiki:Main/FranzJosefSilli
%TMPL:DEF{PROMPT:bookmark}%
<hr width="60%"/> URL: <input %DISABLED% type="text" size="40" name="comment_url" value="http://" /> <br /> Link: <input %DISABLED% type="text" size="40" name="comment_link" /> <br /> Text: <input %DISABLED% type="text" size="40" name="comment_text" value="%MESSAGE%" /> <input %DISABLED% type="submit" value="%button|Add%" />   bookmark <hr width="90%"/>
%TMPL:END%
%TMPL:DEF{OUTPUT:bookmark}%
%POS:BEFORE%   * [[%URLPARAM{"comment_url"}%][%URLPARAM{"comment_link"}%]] - %URLPARAM{"comment_text" }%
%TMPL:END%

%TMPL:INCLUDE{"TWiki.UserTemplates"}%

DefaultPlugin (21 Mar 2004 - 08:12 - r1.6 - PeterThoeny)

Default TWiki Plugin

The default plugin is used for some depreciated rendering of older TWiki versions and of JosWiki. This plugin can also be used to specify some simple custom rendering rules. Note: Create a new TWikiPlugin based on EmptyPlugin if you plan to offer some complex rendering or other functionality.

Syntax Rules

Custom rendering rules of the default plugin:

  • Allow old include syntax ( %INCLUDE:"TopicName"% ) if Plugin Preferences variable OLDINCLUDE is set to 1
  • Render depreciated *_text_* as bold italic text. Test if installed: This is bold italic
  • Enable JosWiki rules if JosWiki specific code is uncommented

Modify file TWiki/Plugins/DefaultPlugin.pm to add your own rules or to enable JosWiki rules.

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %DEFAULTPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = This plugin can be used to specify some simple custom rendering rules. It also renders depreciated *_text_* as bold italic text.

  • Allow depreciated %INCLUDE:"TopicName"% syntax:
    • Set OLDINCLUDE = 1

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

Plugin Installation Instructions

  • This plugin is preinstalled, you do not need to install it.

Plugin Info

Plugin Author: TWiki:Main.AndreaSterbini, TWiki:Main.PeterThoeny
Plugin Version: 21 Mar 2004
Change History:  
21 Mar 2004: Added afterSaveHandler
14 Jul 2001: Changed to plug&play
27 Feb 2001: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.0
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/DefaultPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/DefaultPluginDev

Related Topics: TWikiPreferences, TWikiPlugins, EmptyPlugin

-- TWiki:Main.AndreaSterbini - 27 Feb 2001
-- TWiki:Main.PeterThoeny - 21 Mar 2004

DeleteOrRenameATopic (16 Dec 2003 - 07:41 - r1.6 - PeterThoeny)

FAQ:

How do I delete or rename a topic?

Answer:

These two questions are answered together because often when you think you want to delete a page, more often it makes sense to rename the page to contain more context, e.g. rename it to include the date.

You can rename, move and delete topics directly from your browser. Moving lets you transfer a topic from one web to another. The soft delete moves a topic to the special Trash web, where it's hidden but can be "undeleted" with system administrator access.

Click [More] on the control bar at the bottom of the page you want to change, then choose [Rename/move], and make your changes to that screen. There's a link that launches to the ManagingTopics reference page in a pop-up window.

NOTE: The configuration of your site and your own access permissions determine whether you can access these functions.

Note for site administrators: To remove a topic permanently move it to the Trash web, then with file-level access, delete the .txt and .txt,v files manually from /twiki/data/Trash.

Back to: TWikiFAQ

-- PeterThoeny - 09 May 2003

DeleteOrRenameAnAttachment (09 May 2003 - 06:19 - NEW - PeterThoeny)

FAQ:

How do I delete or rename a file attachment?

Answer:

You can move and delete attachments directly from your browser. Moving lets you transfer an attachment from one topic to another. The soft delete moves an attachment to the special TrashAttachment topic in the Trash web, where it's hidden but can be "undeleted" with system administrator access. Please note that you cannot rename an attachment in the current TWiki release.

Click on action on the file in the FileAttachment table, then in the Update attachment screen choose [Move attachment], and make your changes to that screen.

NOTE: The configuration of your site and your own access permissions determine whether you can access these functions.

Note for system administrators: To remove an attachment permanently move it to the Trash.TrashAttachment topic, then with file-level access, delete the file attachment and its ,v repository file manually from twiki/pub/Trash/TrashAttachment.

Back to: TWikiFAQ

-- PeterThoeny - 09 May 2003

DontNotify (13 Jul 2001 - 23:56 - r1.2 - PeterThoeny)
Use the "Minor changes, don't notify" checkbox in preview in case you only make a minor change to a topic and you do not want to inform everybody who is on the WebNotify list of the current web of this change.

Note: No new revision is created in case you save the same topic again within a certain time frame (default is one hour). You only need to checkmark the "Minor change, don't notify" checkbox once within this time frame, because subsequent save operations do not notify users.

Note: The initial state of the checkbox can be set to on with the DONTNOTIFYCHECKBOX preferences variable. See TWikiPreferences for more.

DragonSkin (31 Jul 2004 - 07:08 - NEW - PeterThoeny)

Dragon Skin

TWiki:Plugins.DragonSkinDev has development-related information.

Dragon skin (named after the logo on the site it was developed for) is intended to provide a prosaic but relatively organized look-and-feel, while providing easy access to TWiki tools (topic lists, web changes, etc). Some features of this skin:

  • Fairly straightforward installation
  • A number of user customization options
  • Avoids using WEBBGCOLOR as a background for text
  • Themable (Three themes are included)

Browser support

DragonSkin has been tested on IE6, IE5.2/Mac, and fairly recent versions of Firefox, Mozilla, Opera, Safari, Camino, and Netscape, and appears to work on those browsers (Firefox and IE6 have been used the most). It has not been tested at all on IE5/Win, and may have display problems with that browser. Netscape 4.x should see the skin without any CSS formatting.

Screen Shots

The screen shot below is of the "tabstyle" theme. The "gray" theme has a rather drab solid gray left menu. The "monchrome" theme has a solid white left menu with a few other minor changes.

Click for full screen image

Topics included with the Dragon skin distribution

DragonSkinInstall
Installation instructions and administrator customization tips
DragonSkinCustomize
How users of the skin can customize various look and feel aspects.
DragonSkinSiteMap
A minor reworking of the classic TWiki site map, with the goal of having it be readable if somebody sets their web's WEBBGCOLOR to dark blue.

Installation

See DragonSkinInstall for detailed installation instructions and administrator customization tips.

Note: You do not need to install anything on the browser to use this skin. The following instructions are for the administrator who installs the skin on the server where TWiki is running.

Skin Info

Description: Prosaic but relatively organized look-and-feel, while providing easy access to TWiki tools
Screenshot: Click for full screen image
Base Name: dragon
Skin Author: TWiki:Main/ClaussStrauch
Skin Version: 27 Jul 2004 (v1.000)
Change History:  
27 Jul 2004: Initial version (v1.000)
Dependencies:  
Skin Home: http://TWiki.org/cgi-bin/view/Plugins/DragonSkin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/DragonSkinDev

Note: The Description, Screenshot and Base Name rows are needed by the TWikiSkinBrowser

Related topic: TWikiSkins, TWikiSkinBrowser

-- TWiki:Main/ClaussStrauch - 27 Jul 2004

DragonSkinCustomize (31 Jul 2004 - 07:12 - NEW - PeterThoeny)

DragonSkin customization

This topic contains information on how to change user-configurable look-and-feel aspects of Dragonskin. See DragonSkinInstall for installation instructions, and DragonSkin for some general information about the skin.

TWiki variables used by DragonSkin

The following TWikiVariables are specific to DragonSkin and control various look and feel aspects of the skin:

DS_BODYFONTSIZE
CSS font size for the overall body of the page.
DS_LEFTMENUFONTSIZE
CSS font size for the left menu (relative size values will compound with the body font size).
DS_EDITBARFONTSIZE
CSS font size for the edit/attach/etc menubar on the top of each view page (relative size values will compound with the body font size).
DS_FONTFAMILY
CSS font family. Applies to all pages.
DS_QUICKLINKSDISPLAY
Set this variable to "none" to turn off display of the quicklinks menu.
DS_QUICKLINKSHEADING
String to use for the quicklinks submenu heading.
DS_QUICKLINKS
HTML unordered list containing the quicklinks menu items.
DS_TOPICCSS
CSS statements that will get embedded in every view page (meant for adding short bits of style to a specific topic). These CSS statements are only included in view pages, not in edit, preview or oops pages. See the section below on "Recovering from a bad DS_TOPICCSS setting" for reasons why. Surround a topic-specific CSS setting with HTML comments to hide the CSS statements. Set the variable to a blank value on your wiki home page to disable seeing custom css styles.
DS_THEME
Lets one chose between various look and feels. Supported themes at this time are "gray" (the default), "monochrome", and "tabstyle".

You can test out settings on one page (such as a Sandbox page) using variables set within that topic.

The colored bands on the top and bottom of each page is set via the standard TWiki WEBBGCOLOR variable. This is usually set on a per-web basis, in order to provide a consistent indication of which web a page is in.

Built-in CSS styles

The following CSS styles are included with Dragonskin as a convenience. Your local administrator may add additional classes:
ds-draft
Text within a div of class ds-draft will be displayed with a tiled background containing light gray images with the word "DRAFT".
ds-kbd
Text within a div of class ds-kbd will be displayed in monospaced type w/in an indented light-gray box.
ds-note
Text within a div of class ds-note will be displayed as a yellow "Post-it" style note on the right-side of the page.

To use these classes, enclose your text in a div of that class. For example:
<div class="ds-note">

-- TWiki:Main/ClaussStrauch - 27 Jul 2004

DragonSkinInstall (31 Jul 2004 - 07:10 - NEW - PeterThoeny)

DragonSkin installation

This topic describes how to install DragonSkin and perform some simple administrator-level (i.e. requiring the editing of template and CSS files) customizations. See the DragonSkinCustomize topic for information on doing user-configurable customizations, such as configuring the left quicklinks submenu, and the DragonSkin topic for some general information about the skin.

Basic install

  1. Unzip dragonskin.zip into your twiki installation directory.
  2. Set these variables to activate the skin:
    • Set SKIN = dragon
    • Set DS_THEME = gray (or select another theme such as "monochrome" or "tabstyle").
  3. In your templates directory, edit the file dragonmenu.dragon.tmpl to configure the left menu (see below if you wish to read this menu from a topic). When editing this file, keep the basic div and class structure. H2 tags are used for menu headings; HTML unordered lists are used for menus.
  4. Set the contents of the DS_QUICKLINKS submenu. Instructions on how to do so (or hide this submenu entirely) are in DragonSkinCustomize.
  5. Do any other customizations (fonts, etc) as per DragonSkinCustomize.
  6. (Optional) If you are still using the default TWiki robot logo, the skin will look much better if you change it to something else, such as twikiRobot121x54.gif from TWiki:Codev.TWikiLogosDropInReplacementsWhite.
  7. (Optional) Replace the default TWiki site map with DragonSkinSiteMap.

Browser issues

DragonSkin has been tested on IE6, Firefox, IE5.2/Mac, and fairly recent versions of Firefox, Mozilla, Opera, Safari, Camino, and Netscape, and appears to work on those browsers (Firefox and IE6 have been used the most). It has not been tested at all on IE5/Win, and may have display problems with that browser. Netscape 4.x should see the skin without any CSS formatting.

Customizing the installation

Note: When creating DragonSkin-related CSS classes or TWiki variables, use a prefix of ds- for CSS classes (e.g. ds-myclass) and DS_ for TWiki variables (e.g. DS_MYVARIABLE). This will help prevent namespace confusion.

Including the left menu from a topic

  1. Create a topic with the menu contents. When doing so, be careful about including blank lines in the menu, since the TWiki renderer will insert paragraph tags and mess up the layout. Also, use %INCLUDINGWEB% when necessary to make sure that searches and links to topics like WebPreferences will reference the right web. Note that including the menu from a topic will be slightly slower than using it directly from the template file.
  2. Change the templates/dragonmenu.dragon.css file to just have the single line %INCLUDE{"TWiki.DragonMenuTopic"}% (or whatever your menu topic is called).

Adding site-specific CSS styles

If you want to add a site-specific CSS style, add it to pub/%TWIKIWEB%/DragonSkin/typography.css, since that file is included in every theme. Alternatively, add another import rule to the definition of dragoncss in templates/twiki.dragon.tmpl that imports a site-specific css file, and put all local styles in that file. If your style makes use of TWiki variables, add it to templates/dragoncssvars.dragon.tmpl, so variables will get expanded.

-- TWiki:Main.ClaussStrauch - 27 Jul 2004

DragonSkinSiteMap (31 Jul 2004 - 07:13 - NEW - PeterThoeny)

UAIWiki Site Map

Web UAIWiki Site Map Use to...
Main
 Home of Main web Search Main web Recent changes in the Main web Get notified of changes to the Main web
The UAIWiki, be sure to see ... UAI researchers can use to colaborate and inform each other about ongoing research.
TWiki
 Home of TWiki web Search TWiki web Recent changes in the TWiki web Get notified of changes to the TWiki web
Welcome, Registration, and other StartingPoints; TWiki history & Wiki style; All the docs... ...discover TWiki details, and how to start your own site.
Sandbox
 Home of Sandbox web Search Sandbox web Recent changes in the Sandbox web Get notified of changes to the Sandbox web
Sandbox test area with all features enabled. ...experiment in an unrestricted hands-on web.
You can use color coding by web for identification and reference. This table is updated automatically based on WebPreferences settings of the individual webs. Contact uaiwebmaster@gmail.com if you need a separate collaboration web for your team.

Legend of icons:

 

Home of web = Go to the home of the web
Search web = Search the web

 

Recent changes in the web = See recent changes in the web
Get notified of changes to the web = Subscribe to get notified of changes by e-mail

-- TWiki:Main/ClaussStrauch - 27 Jul 2004

EditDoesNotIncreaseTheRevision (01 Sep 2001 - 00:19 - r1.2 - PeterThoeny)

FAQ:

Why does the topic revision not increase when I edit a topic?

Answer:

The same topic revision will be used when you save a topic again within a certain time frame (one hour by default). This is to prevent unnecessary topic revisions when you do several edit cycles in a row. Note that a new revision is created if another person edits the same topic, regardless of the time.

Back to: TWikiFAQ

-- PeterThoeny - 27 Nov 2000

EditTablePlugin (26 Mar 2006 - 06:09 - r1.12 - MarkCrowley)

Edit Table Plugin

This plugin allows you to edit TWiki tables using edit fields and drop down boxes. Tables have an [ Edit table ] button if preceeded by an %EDITTABLE{...}% variable. Each column can be a text field, a drop down box, a date field, etc. Multiple tables per topic are editable, but only one at a time can be edited.

Per Table Settings

Add a %EDITTABLE{...}% variable just before an existing table to make it editable, or add the variable anywhere in a topic to start a new table. Parameters:

Parameter Comment Default
header Specify the header format of a new table like "|*Food*|*Drink*|". Useful to start a table with only a button (no header)
format The format of one column when editing the table. A cell can be a text input field, or any of these edit field types:
- Text input field (1 line):
  | text, <size>, <initial value> |
- Textarea input field:
  | textarea, <rows>x<columns>, <initial value> |
- Drop down box:
  | select, <size>, <option 1>, <option 2>, etc |
- Fixed label:
  | label, 0, <label text> |
- Row number:
  | row, <offset> |
- Date:
  | date, <size>, <initial value>, <DHTML date format> |
"text, 16"
for all cells
changerows Rows can be added and removed if "on";
Rows can be added but not removed if "add"
CHANGEROWS
Plugin setting
quietsave Quiet Save button is shown if "on", hidden if "off" QUIETSAVE
Plugin setting
include Other topic defining the EDITTABLE parameters. The first %EDITTABLE% in the topic is used. This is useful if you have many topics with the same table format and you want to update the format in one place. (none)
helptopic Topic name containing help text shown below the table when editing a table. The %STARTINCLUDE% and %STOPINCLUDE% variables can be used in the topic to specify what is shown. (no help text)
headerislabel Table header cells are read-only (labels) if "on"; header cells can be edited if "off" or "0" "on"
editbutton Set edit button text, e.g. "Edit this table"; set button image with alt text, e.g. "Edit table, %PUBURL%/%TWIKIWEB%/TWikiDocGraphics/edittopic.gif"; hide edit button at the end of the table with "hide" (Note: Button is automatically hidden if an edit button is present in a cell) EDITBUTTON
Plugin setting

Initial Values

By default, variables in <initial value> (of text input field) and <label text> (of fixed label) get expanded when a new row is added. This can be used for example to add a timestamp to a label. You can escape characters if you do not want that:

Text: To Escape:
$quot Double quote ("). Alternatively write \" to escape it
$percnt Percent sign (%)
$dollar Dollar sign ($)
$nop or $nop() Is a "no operation"

Date Field Type

Edit Table Calendar Example The date field type allows one to choose a date with a popup calendar. Popup calendar works for Netscape 6.0 or better, all other Gecko-based browsers, Internet Explorer 5.0 or better for Windows, Opera 7 and Konqueror 3.1.2. The ... button is inactive if the browser cannot support the popup calendar. It uses the nice http://dynarch.com/mishoo/calendar.eplMishoo DHTML calendar, see also TWiki:Codev/JavaScriptDatePickerForForm

Per Cell Settings

An individual edit field type can be defined for each table cell. Place an %EDITCELL{ "type, ..." }% variable at the end of the cell content. This is useful to override the per column %EDITTABLE{ format="..." }% settings, or to create tables with key/value rows. All edit field types of the format="..." parameter are supported. For example, to define a text field, type: | cell content %EDITCELL{ "text, 20" }% |

It is also possible to place the edit button inside a cell instead of default location below the table. Type | %EDITCELL{ "editbutton, 1, Edit this table" }% | to show a button, or | %EDITCELL{ "editbutton, 1, Edit table, Image-URL" }% | to show a button image with alternate text.

Note: The %EDITCELL{ }%=variable cannot be used by itself; place an =%EDITTABLE{ }%=variable at the beginning of a table where you want to use =%EDITCELL{ }% variables.

Table Buttons

  • In page view mode:
    • - turn the table into edit mode
  • In edit mode:
    • - save your changes
    • - save your changes without alerting subscribed WebNotify users
    • - add row to the table (if enabled)
    • - remove last row from the table (if enabled)
    • - cancel without saving and release edit lock

Examples

Line before table: %EDITTABLE{ header="|*Nr*|*Text field sandbox*|*Drop down sandbox*|*Timestamp*|" format="| row, -1 | text, 20, init | select, 1, one, two, three, four | label, 0, %SERVERTIME{"$day $mon $year $hour:$min"}% |" changerows="on" }%

Nr Text field sandbox Drop down sandbox Timestamp
1 hello table one 26 Jun 2002 12:30
2   two 27 Jun 2002 12:40

Note: Please use TWiki:Sandbox.EditTablePluginTesting if you want to try out this Plugin

If this plugin is installed you will see an [ Edit table ] button above; if you were to click on it (please don"t, use TWiki:Sandbox.EditTablePluginTesting for testing) you get this form:

Nr Text field sandbox Drop down sandbox Timestamp
1 26 Jun 2002 12:30
2 27 Jun 2002 12:40
(demo only, these buttons do not work)

The following example shows a simple table with key/value rows. The default edit field type for the value column is a text field. This is overloaded by a selector for the Gender, and a date picker for the DOB. This is typically used by TWiki applications where new topics with tables are created based on a template topic.

You type:
%EDITTABLE{ format="| label | text, 40 |" }%
|*Key*|*Value*|
| Name: | John Smith |
| Gender: | M %EDITCELL{select, 1, , F, M}% |
| DOB: | 1999/12/31 %EDITCELL{date, 10}% |
| City: | New York |
Screenshot: EDITCELL Example in view mode Screenshot in edit mode: EDITCELL Example in edit mode

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, for example, %EDITTABLEPLUGIN_SHORTDESCRIPTION%

  • One line description, shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Edit TWiki tables using edit fields, date pickers and drop down boxes

  • Set DEBUG to 1 to get debug messages in data/debug.txt. Default: 0
    • Set DEBUG = 0

  • Default for change rows flag: on, off, add
    • Set CHANGEROWS = on

  • Default flag for quiet save option: on to show the Quiet Save button, off to hide
    • Set QUIETSAVE = on

  • Default edit button: Specify button text, or specify alternate text, image URL
    • #Set EDITBUTTON = Edit table
    • Set EDITBUTTON = Edit this table, edittable.gif

  • Language of DHTML calendar, pointing to attached calendar-<code>.js language file: en, af, br, ca, cs-win, da, de, du, el, es, fr, hr, hr-utf8, hu, it, jp, nl, no, pl, pt, ro, ru, sk, sp, sv, tr, zh
    • Set JSCALENDARLANGUAGE = en

  • Additional options of DHTML calendar:
    • Set JSCALENDAROPTIONS =

Note: The Plugin looks for the JSCALENDAR* settings first in the TWiki Preferences, then in above Plugin settings

Limitations and Known Issues

  • This Plugin does not support TWiki table formatting like Multi-span cells (e.g. | ... ||) and cell justification (e.g. |  centered  |   right |)
  • There is a performance issue when editing a large table, say, with more then 50 rows
  • Variables like %ATTACHURL% get expanded unless they are in a label
  • You cannot put two %EDITTABLE{}% statements on the same line in the source
  • You can include %-vars now in select values, by quoting them with <nop>, as in %<nop>X% for %X%, say for instance:
    select,1,%<nop>X%,%<nop>Y%

Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this Plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip EditTablePlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/EditTablePlugin.txt Plugin topic
    data/TWiki/EditTablePlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/EditTablePlugin.pm Plugin Perl module
    pub/TWiki/EditTablePlugin/edittable.gif Edit table button image
    pub/TWiki/EditTablePlugin/*.gif Screenshots and Mishoo DHTML calendar images
    pub/TWiki/EditTablePlugin/README Mishoo DHTML calendar README
    pub/TWiki/EditTablePlugin/release-notes.html Mishoo DHTML calendar release notes
    pub/TWiki/EditTablePlugin/*.js Mishoo DHTML calendar JavaScript files
    pub/TWiki/EditTablePlugin/calendar-system.css Mishoo DHTML calendar stylesheet
  • The Plugin depends on the viewauth script to authenticate the user. As described in TWikiAccessControl, copy the view script to viewauth (or better, create a symbolic link) and add viewauth to the list of authenticated scripts in the .htaccess file.
  • The Mishoo DHTML calendar 0.9.5 is preinstalled and should work without any configuration. If you wish to use another language, specify the in the Plugin settings, or create a new language files, attach it to the Plugin topic, and change the Plugin settings
  • Test if the Plugin is correctly installed:
    • Check above example if there is an [ Edit table ] button below the table in above example
    • Click on [ Edit table ], make changes and save the table

License

Plugin Info

Plugin Author: TWiki:Main/PeterThoeny
Plugin Version: 01 Aug 2004
Change History:  
01 Aug 2004: Fixed bug where edittable did not work if at the end of a topic
07 Apr 2004: Fixed bug where two tables got updated when you edit and save a table included into a topic containing other edit tables
02 Mar 2004: Default for %EDITCELL{editbutton}% is EDITBUTTON preference
27 Feb 2004: Added QUIETSAVE setting and quietsave parameter; image for Edit button
18 Feb 2004: Doc fixes; allow edit button anywhere in a cell not just at the end of a cell
17 Feb 2004: Added per cell definition of edit field types with %EDITCELL{}% variable; added headerislabel and editbutton parameters
20 Dec 2003: Fixed bug where calendar did not work after adding a row (TWiki:Main/PaulineCheung); added all language files of Mishoo DHTML calendar 0.9.5
13 Dec 2003: Added CHANGEROWS, JSCALENDARDATEFORMAT, JSCALENDARLANGUAGE, JSCALENDAROPTIONS settings
16 Oct 2003: small typo fixed (garbled if ---+ header on top)
15 Oct 2003: new date field type with javascript calendar - CN
14 Oct 2003: docfix: the documentation page was an old one - CN
13 Oct 2003: bugfix: %-vars in select were resetted to first on add/del row - CN
18 Sep 2003: incompatibility: changed default of changerows to on; support for %-vars, Quiet save for saving without notification; all other fixes in Dev topic integrated - CN
08 Nov 2002: Prevent variable expansion in label text; added escape characters
27 Jun 2002: New helptopic parameter
26 Jun 2002: Support for variables in included EDITTABLE parameters; fixed problem with HTML in cells
21 May 2002: Added fixed label format; new changerows="add" parameter
27 Apr 2002: Fixed bug where text after a double quote in a cell disappeared
18 Apr 2002: Fixed bug where table was breaking when pasting multiple lines into an edit field using Netscape on Unix
08 Apr 2002: Check for change permission and edit lock of topic
05 Apr 2002: Initial version
CPAN Dependencies: none
Other Dependencies: http://dynarch.com/mishoo/calendar.eplMishoo DHTML calendar (version 0.9.5 preinstalled); TWiki version 01 Feb 2003 or later
Perl Version: 5.0
TWiki:Plugins/Benchmark: GoodStyle 98%, FormattedSearch 98%, EditTablePlugin 95%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/EditTablePlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/EditTablePluginDev

Related Topics: TWikiPreferences, TWikiPlugins

-- TWiki:Main/PeterThoeny - 01 Aug 2004

EmptyPlugin (21 Mar 2004 - 08:04 - r1.6 - PeterThoeny)

Empty TWiki Plugin

This is an empty plugin you can use as a template to build your own TWikiPlugins. This plugin does nothing, but is ready to be used.

To create your own plugin:

  • Copy file TWiki/Plugins/EmptyPlugin.pm to <name>Plugin.pm and customize the plugin.
  • Create a <name>Plugin topic in the TWiki web. Do so by visiting http://TWiki.org/cgi-bin/view/Plugins/ and starting a new topic to get the default plugin topic text (don't save the topic). Customize your plugin topic to your needs.
  • See details in TWikiPlugins.

Syntax Rules

(none)

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %EMPTYPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = This plugin does nothing, but can be used as a template for your own plugins.

  • Your own setting, i.e.:
    • Set EXAMPLE = got it!

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

Plugin Installation Instructions

  • This plugin is preinstalled, you do not need to install it.

Plugin Info

Plugin Author: TWiki:Main.AndreaSterbini, TWiki:Main.PeterThoeny
Plugin Version: 21 Mar 2003
Change History:  
21 Mar 2004: Added afterSaveHandler
14 Jul 2001: Changed to plug&play
27 Feb 2001: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.0
TWiki:Plugins/Benchmark: GoodStyle 99%, FormattedSearch 99%, EmptyPlugin 99%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/EmptyPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/EmptyPluginDev

Related Topics: TWikiPreferences, TWikiPlugins, DefaultPlugin

-- TWiki:Main.AndreaSterbini - 27 Feb 2001
-- TWiki:Main.PeterThoeny - 21 Mar 2004

ExampleTopicTemplate (16 Dec 2003 - 08:26 - r1.3 - PeterThoeny)
(just an example illustrating how to create a new topic based on a specific template topic. TWikiTemplates has more)

-- TWikiGuest - 12 Aug 2013

FileAttachment (26 Mar 2006 - 06:07 - r1.16 - MarkCrowley)

File Attachments

Each topic can have one or more files of any type attached to it by using the Attach screen to upload (or download) files from your local PC. Attachments are stored under revision control: uploads are automatically backed up; all previous versions of a modified file can be retrieved.

What Are Attachments Good For?

File Attachments can be used to create powerful customized groupware solutions, like file sharing and document management systems, and quick Web page authoring.

Document Management System

  • You can use Attachments to store and retrieve documents (in any format, with associated graphics, and other media files); attach documents to specific TWiki topics; collaborate on documents with full revision control; distribute documents on a #AttachmentAccessneed-to-know basis using web and topic-level access control; create a central reference library that"s easy to share with an user group spread around the world.

File Sharing

  • For file sharing, FileAttachments on a series of topics can be used to quickly create a well-documented, categorized digital download center for all types of files: documents; graphics and other media; drivers and patches; applications; anything you can safely upload!

Web Authoring

  • Through your Web browser, you can easily upload graphics (or sound files, or anything else you want to link to on a page) and place them on a single page, or use them across a web, or site-wide.
    • NOTE: You can also add graphics - any files - directly, typically by FTP upload. This requires FTP access, and may be more convenient if you have a large number of files to load. FTP-ed files can"t be managed using browser-based Attachment controls. You can use your browser to create TWikiVariables shortcuts, like this %H% = HELP.

Uploading Files

  • Click on the Attach link at the bottom of the page. The Attach screen lets you browse for a file, add a comment, and upload it. The uploaded file will show up in the #FileAttachmentTableFile Attachment table.
    • NOTE: The topic must already exist. It is a two step process if you want to attach a file to a non-existing topic; first create the topic, then add the file attachment.
    • Any type of file can be uploaded. Some files that might pose a security risk are renamed, ex: *.php files are renamed to *.php.txt so that no one can place code that would be read in a .php file.
    • The previous upload path is retained for convenience. In case you make some changes to the local file and want to upload it, again you can copy the previous upload path into the Local file field.
    • TWiki can limit the file size. This is defined by the %ATTACHFILESIZELIMIT% variable of the TWikiPreferences, currently set at 10000 KB.
      • ALERT! It"s not recommended to upload files greater than a few hundred K through a browser. Large files can be extremely slow-loading, and often time out. Use an FTP site for large file uploads.

Downloading Files

  • Click on the file in the #FileAttachmentTableFile Attachment table.

  • ALERT! NOTE: There is no access control on individual attachments. If you need control over single files, create a separate topic per file and set topic-level TWikiDocumentation#TWikiAccessControlaccess restrictions for each.

Moving Attachment Files

An attachment can be moved between topics.

  • Click Manage on the Attachment to be moved.
  • On the control screen, select the new web and/or topic.
  • Click Move. The attachment and its version history are moved. The original location is stored as TWikiDocumentation#Meta_Data_Definitiontopic Meta Data.

Deleting Attachments

Move unwanted Attachments to web Trash, topic TrashAttachment.

Linking to Attached Files

  • To reference an attachment located in another topic, enter:
    • %PUBURL%/%WEB%/OtherTopic/Sample.txt (if it"s within the same web)
    • %PUBURL%/Otherweb/OtherTopic/Sample.txt (if it"s in a different web)

  • Attached HTML files and text files can be inlined in a topic. Example:
    1. Attach file: Sample.txt
    2. Edit topic and write text: %INCLUDE{"%ATTACHURL%/Sample.txt"}%

  • GIF, JPG and PNG images can be attached and shown embedded in a topic. Example:
    1. Attach file: Smile.gif
    2. Edit topic and write text: %ATTACHURL%/Smile.gif
    3. Preview: text appears as Smile.gif, an image.

File Attachment Contents Table

Files attached to a topic are displayed in a directory table, displayed at the bottom of the page, or optionally, hidden and accessed when you click Attach.

Attachment Action Size Date Who Comment
Sample.txt manage 0.1 K 22 Jul 2000 - 19:37 PeterThoeny Just a sample
Smile.gif manage 0.1 K 22 Jul 2000 - 19:38 PeterThoeny Smiley face

File Attachment Controls

Clicking on a Manage link takes you to a new page that looks like this:

Attachment Action Size Date Who Comment Attribute
Sample.txt manage 0.1 K 22 Jul 2000 - 19:37 PeterThoeny Just a sample  
Smile.gif manage 0.1 K 22 Jul 2000 - 19:38 PeterThoeny Smiley face  

Update attachment Sample.txt

Version Action Date Who Comment
1.1 view 2001.08.30.09.28.56 PeterThoeny  

Previous
upload:
C:\DATA\Sample.txt (PeterThoeny)
Local file:
Comment:
Link: Create a link to the attached file at the end of the topic.
Hide file: Hide attachment in normal topic view.
Help text ...

Topic FileAttachment . { | | Move attachment | Cancel }

  • The first table is a list of all attachments, including their attributes. An h means the attachment is hidden, it isn"t listed when viewing a topic.

  • The second table is all the versions of the attachment. Click on View to see that version. If it"s the most recent version, you"ll be taken to an URL that always displays the latest version, which is usually what you want.
    • To change the comment on an attachment, enter a new comment and then click Change properties. Note that the comment listed against the specific version will not change, however the comment displayed when viewing the topic does change.
    • To hide/unhide an attachment, enable the Hide file checkbox, then click Change properties.

Known Issues

  • Unlike topics, attachments are not locked during editing. As a workaround, you can change the comment to indicate an attachment file is being worked on - the comment on the specific version isn"t lost, it"s there when you list all versions of the attachment.

FileAttribute (15 Aug 2004 - 07:11 - r1.3 - PeterThoeny)
Each FileAttachment in a Topic has an attribute string. At present only only the hidden attribute is supported. If the attribute includes h then the attachment is considered to be hidden. It is not listed in the topic, but is displayed when attach page is displayed.

-- TWiki:Main.JohnTalintyre - 30 Aug 2001

FormattedSearch (27 Jul 2004 - 02:42 - r1.15 - PeterThoeny)

TWiki Formatted Search Results

Inline search feature allows flexible formatting of search result

The %SEARCH{...}% variable documented in TWikiVariables has a fixed format for the search result, that is, a table consisting of topic names and topic summaries. Use the format="..." parameter to specify a customized format of the search result. The string of the format parameter is typically a bullet list or table row containing variables (such as %SEARCH{ "food" format="| $topic | $summary |" }%).

Syntax

Two parameters can be used to specify a customized search result:

1. header="..." parameter

Use the header parameter to specify the header of a search result. It should correspond to the format of the format parameter. This parameter is optional.
Example: header="| *Topic:* | *Summary:* |"

2. format="..." parameter

Use the format parameter to specify the format of one search hit.
Example: format="| $topic | $summary |"

Variables that can be used in the format string:

Name: Expands To:
$web Name of the web
$topic Topic name
$topic(20) Topic name, "- " hyphenated each 20 characters
$topic(30, -<br />) Topic name, hyphenated each 30 characters with separator "-<br />"
$topic(40, ...) Topic name, shortended to 40 characters with "..." indication
$parent Name of parent topic; empty if not set
$parent(20) Name of parent topic, same hyphenation/shortening like $topic()
$text Formatted topic text. In case of a multiple="on" search, it is the line found for each search hit.
$locked LOCKED flag (if any)
$date Time stamp of last topic update, e.g. 12 Aug 2013 - 20:32
$isodate Time stamp of last topic update, e.g. 2013-08-12T20:32Z
$rev Number of last topic revision, e.g. 1.4
$username Login name of last topic update, e.g. jsmith
$wikiname Wiki user name of last topic update, e.g. JohnSmith
$wikiusername Wiki user name of last topic update, like Main.JohnSmith
$createdate Time stamp of topic revision 1.1
$createusername Login name of topic revision 1.1, e.g. jsmith
$createwikiname Wiki user name of topic revision 1.1, e.g. JohnSmith
$createwikiusername Wiki user name of topic revision 1.1, e.g. Main.JohnSmith
$summary Topic summary
$formname The name of the form attached to the topic; empty if none
$formfield(name) The field value of a form field; for example, $formfield(TopicClassification) would get expanded to PublicFAQ. This applies only to topics that have a TWikiForm
$formfield(name, 10) Form field value, "- " hyphenated each 10 characters
$formfield(name, 20, -<br />) Form field value, hyphenated each 20 characters with separator "-<br />"
$formfield(name, 30, ...) Form field value, shortended to 30 characters with "..." indication
$pattern(reg-exp) A regular expression pattern to extract some text from a topic (does not search meta data; use $formfield instead). In case of a multiple="on" search, the pattern is applied to the line found in each search hit.
• Specify a RegularExpression that covers the whole text (topic or line), which typically starts with .*, and must end in .*
• Put text you want to keep in parenthesis, like $pattern(.*?(from here.*?to here).*)
• Example: $pattern(.*?\*.*?Email\:\s*([^\n\r]+).*) extracts the email address from a bullet of format * Email: ...
• This example has non-greedy .*? patterns to scan for the first occurance of the Email bullet; use greedy .* patterns to scan for the last occurance
• Limitation: Do not use .*) inside the pattern, e.g. $pattern(.*foo(.*)bar.*) does not work, but $pattern(.*foo(.*?)bar.*) does
• Note: Make sure that the integrity of a web page is not compromised; for example, if you include an HTML table make sure to include everything including the table end tag
$n or $n() New line
$nop or $nop() Is a "no operation". This variable gets removed; useful for nested search
$quot Double quote ("). Alternatively write \" to escape it
$percnt Percent sign (%)
$dollar Dollar sign ($)

Examples

Bullet list showing topic name and summary

Write this:

%SEARCH{ "FAQ" scope="topic" nosearch="on" nototal="on" header="   * *Topic: Summary:*" format="   * [[$topic]]: $summary" }%

To get this:

  • Topic: Summary:
  • TWikiFAQ: Frequently Asked Questions About TWiki This is a real FAQ, and also a demo of one easily implemented knowledge base solution. See how it's done, click Edit . SEARCH ...
  • TWikiFaqTemplate: FAQ: Answer: Back to: NOP TWikiFAQ WIKIUSERNAME DATE
  • TextFormattingFAQ: Text Formatting FAQ The most frequently asked questions about text formatting are answered. Also, TextFormattingRules contains the complete TWiki shorthand system ...

Table showing form field values of topics with a form

In a web where there is a form that contains a TopicClassification field, an OperatingSystem field and an OsVersion field we could write:

| *Topic:* | *OperatingSystem:* | *OsVersion:* |
%SEARCH{ "[T]opicClassification.*?value=\"[P]ublicFAQ\"" scope="text" regex="on" nosearch="on" nototal="on" format="| [[$topic]] | $formfield(OperatingSystem) | $formfield(OsVersion) |" }%

To get this:

Topic: OperatingSystem: OsVersion:
IncorrectDllVersionW32PTH10DLL OsWin 95/98
WinDoze95Crash OsWin 95

Extract some text from a topic using regular expression

Write this:

%SEARCH{ "__Back to\:__ TWikiFAQ" scope="text" regex="on" nosearch="on" nototal="on" header="TWiki FAQs:" format="   * $pattern(.*?FAQ\:[\n\r]*([^\n\r]+).*) [[$topic][Answer...]]" }%

To get this:

TWiki FAQs:

  • How do I delete or rename a topic? Answer...
  • How do I delete or rename a file attachment? Answer...
  • Why does the topic revision not increase when I edit a topic? Answer...
  • TWiki has a GPL (GNU General Public License). What is GPL? Answer...
  • How do you log off? Suppose I log in with the guest username but later I want to use another username, how do I log off from the guest user name? Answer...
  • I've problems with the WebSearch. There is no Search Result on any inquiry. By clicking the Index topic it's the same problem. Answer...
  • What happens if two of us try to edit the same topic simultaneously? Answer...
  • I would like to install TWiki on my server. Can I get the source? Answer...
  • So what is this WikiWiki thing exactly? Answer...
  • Everybody can edit any page, this is scary. Doesn"t that lead to chaos? Answer...

Nested Search

Search can be nested. For example, search for some topics, then form a new search for each topic found in the first search. The idea is to build the nested search string using a formatted search in the first search.

Here is an example. Let's search for all topics that contain the word "culture" (first search), and let's find out where each topic found is linked from (second search).

  • First search:
    • %SEARCH{ "culture" format="   * $topic is referenced by: (list all references)" nosearch="on" nototal="on" }%
  • Second search. For each hit we want this search:
    • %SEARCH{ "(topic found in first search)" format="$topic" nosearch="on" nototal="on" separator=", " }%
  • Now let's nest the two. We need to escape the second search, e.g. the first search will build a valid second search string. Note that we escape the second search so that it does not get evaluated prematurely by the first search:
    • Use $percnt to escape the leading percent of the second search
    • Use \" to escape the double quotes
    • Use $dollar to escape the $ of $topic
    • Use $nop to escape the }% sequence

Write this:

%SEARCH{ "culture" format="   * $topic is referenced by:$n      * $percntSEARCH{ \"$topic\" format=\"$dollartopic\" nosearch=\"on\" nototal=\"on\" separator=\", \" }$nop%" nosearch="on" nototal="on" }%

To get this:

Note: Nested search can be slow, especially if you nest more then 3 times. Nesting is limited to 16 levels. For each new nesting level you need to "escape the escapes", e.g. write $dollarpercntSEARCH{ for level three, $dollardollarpercntSEARCH{ for level four, etc.

Most recently changed pages

Write this:

%SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on"  format="| [[$topic]] | $wikiusername  | $date |" limit="7" }%

To get this:

TWikiTemplates MarkCrowley 16 Dec 2009 - 21:00
NewUserTemplate MarkCrowley 16 Dec 2009 - 20:54
TWikiRegistration MarkCrowley 16 Dec 2009 - 20:31
WebBottomBar MarkCrowley 15 Jan 2008 - 22:26
WebTopBar MarkCrowley 06 Jan 2007 - 23:07
ResetPassword MarkCrowley 11 Jul 2006 - 15:09
ChangePassword MarkCrowley 11 Jul 2006 - 15:07

Search with conditional output

A regular expression search is flexible, but there are limitations. For example, you cannot show all topics that are up to exactly one week old, or create a report that shows all records with invalid form fields or fields within a certain range, etc. You need some additional logic to format output based on a condition:

  1. Specify a search which returns more hits then you need
  2. For each search hit apply a spreadsheet formula to determine if the hit is needed
  3. If needed, format and output the result
  4. Else supress the search hit

This requires the TWiki:Plugins.SpreadSheetPlugin. The following example shows all topics that are up to exactly one week old.

Write this:

%CALC{$SET(weekold, $TIMEADD($TIME(), -7, day))}%
%SEARCH{ "." scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on" format="$percntCALC{$IF($TIME($date) < $GET(weekold), <nop>, | [[$topic]] | $wikiusername | $date | $rev |)}$percnt" limit="100" }%

  • The first line sets the weekold variable to the serialized date of exactly one week ago
  • The SEARCH has a deferred CALC. The $percnt makes sure that the CALC gets executed once for each search hit
  • The CALC compares the date of the topic with the weekold date
  • If topic is older, a <nop> is returned, which gets removed at the end of the TWiki rendering process
  • Otherwise, the search hit is formatted and returned

To get this:

Embedding search forms to return a formatted result

Use an HTML form and an embedded formatted search on the same topic. You can link them together with an %URLPARAM{"..."}% variable. Example:

Write this:

<form action="%SCRIPTURLPATH%/view%SCRIPTSUFFIX%/TWiki/FormattedSearch">
Find Topics: 
<input type="text" name="q" size="32" value="%URLPARAM{"q"}%" />
<input type="submit" value="Search" />
</form>
Result:
%SEARCH{ search="%URLPARAM{"q"}%" format="   * $web.$topic: %BR% $summary" nosearch="on" }%

To get this:

Find Topics:
Result: Number of topics: 0

-- TWiki:Main.PeterThoeny - 26 Jul 2004

GnuGeneralPublicLicense (15 Aug 2004 - 07:15 - r1.3 - PeterThoeny)

FAQ:

TWiki has a GPL (GNU General Public License). What is GPL?

Answer:

TWiki is distributed under the GNU General Public License, see TWikiDownload. GPL is one of the free software licenses that protects the copyright holder, and at the same time allows users to redistribute the software under the terms of the license. Extract:

  • This program is open source software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
  • This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  • See the GNU General Public License for more details, published at http://www.gnu.org/copyleft/gpl.html

Please note that TWiki is not distributed under the LGPL (Lesser General Public Licence), which implies TWiki can only be used with software that is licensed under conditions compliant with the GPL. Embedding in proprietary software requires an alternative license. Contact the author for details.

Back to: TWikiFAQ

-- TWiki:Main.PeterThoeny - 27 Nov 2000

GoBox (15 Aug 2004 - 07:20 - r1.2 - PeterThoeny)

Go Box

The box at the top or sidebar of each page.

Enter a topic name to quickly jump to the topic, for example:

  • WebNotify to jump to WebNotify in the current web
  • Main.WebNotify to jump to WebNotify in the Main web
  • Main. to jump to the home of the Main web
  • BrandNewTopic to jump to a non existing topic in the current web, which is useful to create orphaned topics

Enter part of a topic name to get a list of similar topics, for example:

Note: The Go box is not a search box

-- TWiki:Main.PeterThoeny - 15 Aug 2004

GoodStyle (26 Mar 2006 - 06:08 - r1.12 - MarkCrowley)

GoodStyle Collaboration Tips

  • TWiki has a very simple TWikiShorthandtext formatting shorthand. In any case, you won"t go wrong if you simply:
    • start each line without spaces
    • separate paragraphs with a blank line

  • Run together capitalized words to form WikiWordsWikiWords:
    • WikiWords automatically appear as hyperlinks
    • make up meaningful, reasonably brief Wiki names - it can be a challenge (it"ll sharpen you up!)
    • WikiWords has name-creation tips that may help

  • If a discussion is going on:
    • separate each follow-up with a space
    • add your WikiName and the date at the end. Example:
      -- Main.TWikiGuest - 12 Aug 2013
    • OR, by all means, insert your comment where it seems to fit best:
      • you may want to inset it with a bullet and/or set it in italics so it"s clear (always sign and date)
    • if you"d like to use an initial, use a link with label. Example:
      -- [[Main.TWikiGuestZXQ - 12 Aug 2013
      • To automate that, add a bullet like * Initials: ZXQ to your TWikiGuesthome? page.

  • A good format for a new topic is "dissertation followed by discussion":
    • start with a brief, factual introduction, followed by double horizontal rules
    • let the discussion begin

  • When a discussion dies down and the page becomes static, if you"re clear on your course, feel free to refactor mercilessly:
    • fearlessly edit down to capture the key points
    • reduce the noise without losing the facts or the flavor
    • if you merge or delete comments, group credit Contributors: at the end of the page
    • This is how Wiki content matures and grows in value over time.

  • For external site links, you can type URLs directly into the text - http://etcete.ra/... - it"ll be clear to anyone where they"re headed on click.

  • TWiki is intended for world-wide use, and an internationally understood date format like 01 Sep 2003 or 2003/09/01 is preferred. It"s clearer than the xx/xx/xx format, where a date like 9/1/01 can mean either Jan or Sep, depending on the local conventions of the readers. For months, use the first three letters: Jan, Feb, Mar, Apr,...

  • TIP: Check the source when you want to find out how something is formatted: click Edit on the lower toolbar. To see earlier versions, click More, then check Raw text format and click View revision. A bit of HTML experience can"t hurt, but you"ll soon see with TWikiShorthand how far that is from necessary.
HiddenAttachment (13 Nov 2001 - 22:02 - NEW - PeterThoeny)

Hide/Unhide Attachments

You can hide/unhide file attachments.

  • In the FileAttachment table, click on an action link,
  • enable the Hide file checkbox,
  • then click Change properties

-- PeterThoeny - 13 Nov 2001

HowToLogOff (15 Apr 2003 - 05:54 - NEW - PeterThoeny)

FAQ:

How do you log off? Suppose I log in with the guest username but later I want to use another username, how do I log off from the guest user name?

Answer:

To log off from a TWiki site, you must exit your browser and reconnect to the site. When asked, enter the new username and password.

Why is this?

Many TWiki sites use HTTP Basic Authentication, which pops up a window asking for username and password. Once entered, the browser remembers them, and supplies them as part of subsequent references to the site.

HTTP is a stateless protocol. The web server remembers nothing about a user between individual access -- and it can take several accesses to load a single page. The web browser must remember the state of each transaction. You are never really "logged into" a web site -- you have given the browser the codes to unlock each request. Only if the browser does not have credentials to present to a site will it ask for them.

Most browsers do not give the user a way to "forget" the username and password. To log in as a different user, you must exit the browser (perhaps all instances of the browser), and reconnect to the TWiki site.

Back to: TWikiFAQ

-- TWiki:Main/CarlMikkelsen - 14 Apr 2003

IncludeTopicsAndWebPages (15 Aug 2004 - 07:36 - r1.7 - PeterThoeny)

Include Topics and Web Pages Using %INCLUDE{...}% Variable

Use the %INCLUDE{...}% variable to embed the content of another topic or web page inside a UAIWiki topic. The whole content or only parts of a page can be included. If needed, set a proxy server in TWikiPreferences.

Syntax

%INCLUDE{ "page" pattern="reg-exp" rev="1.2" }%

  • "page":
    The nameless parameter specifies the page to include. It is
    • The name of a topic located in the current web, e.g., %INCLUDE{"WebNotify"}%
    • A Web.Topic name specifying a topic in another web, e.g., %INCLUDE{"TWiki.SiteMap"}%
    • A full qualified URL with http protocol, domain name and optional port number, e.g., %INCLUDE{"http://twiki.org:80/index.html"}%. Supported content types are text/html and text/plain. The full page is included by default, but the HTML header and scripts are stripped in case it is a web page.

  • pattern="reg-exp":
    The pattern parameter is optional and allows you to extract some parts of a web page. Specify a RegularExpression that scans from start ('^') to end and contains the text you want to keep in parenthesis, e.g., pattern="^.*?(from here.*?to here).*". You need to make sure that the integrity of a web page is not compromised; for example, if you include a table, make sure to include everything including the table end tag.

  • rev="1.x":
    The rev parameter is optional and allows you to include an earlier revision of a topic. This can be used to include an official version of a topic, e.g. one that has been signed of by management. This parameter does not apply to URLs.

Note: All text of a topic is included unless you specify %STARTINCLUDE%, %STOPINCLUDE% and/or a pattern parameter. A pattern will only search between %STARTINCLUDE% and %STOPINCLUDE%.

Usage Examples

1. Display regression test results in a TWiki page

  <pre>
  %INCLUDE{"http://domain/~qa/v1.1/REDTest.log.txt"}%
  </pre>

2. Display Google's robot.txt file

  • You type:
    • %INCLUDE{"http://www.google.com/robots.txt"}%

3. Display the current time in Tokyo in a TWiki page

  • You type:
    • Tokyo: %INCLUDE{"http://TWiki.org/cgi-bin/xtra/tzdate?tz=Asia/Tokyo" pattern="^.*<\!--tzdate:date--<(.*?)<\!--/tzdate:date-->.*"}%</b<&/code>
  • You get:
    • Tokyo:

See also other TWikiVariables.

-- TWiki:Main.PeterThoeny - 15 Aug 2004

Install an Encrypted Password

This form can be used only by the TWikiAdminGroup users to install an encrypted password generated by a user with ResetPassword.

WikiName and encrypted password of the user:

After submitting this form the user's password will be changed.

Installed Plugins

Plugins are mainly user-contributed add-ons that enhance and extend TWiki features and capabilities. A limited number of plugins are included in the core TWiki distribution - and most those can be removed - while the rest are optional, available from TWiki:Plugins/WebHome.

Here is a list of the plugins currently installed and enabled on this TWiki site:

  • DefaultPlugin: This plugin can be used to specify some simple custom rendering rules. It also renders depreciated *_text_* as bold italic text.
  • SpreadSheetPlugin: Add spreadsheet calculation like "$SUM( $ABOVE() )" to tables located in UAIWiki topics.
  • CommentPlugin: Allows users to quickly post comments to a page without an edit/preview/save cycle.
  • EditTablePlugin: Edit TWiki tables using edit fields, date pickers and drop down boxes
  • InterwikiPlugin: Link ExternalSite:Page text to external sites based on aliases defined in the InterWikis topic
  • LatexModePlugin: Enables LaTeX markup (mathematics and more) in TWiki pages
  • RenderListPlugin: Render bullet lists in a variety of formats
  • SlideShowPlugin: Create web based presentations based on topics with headings.
  • SmiliesPlugin: Render smilies as icons, like  :-) for smile or  :cool: for cool!
  • TablePlugin: Control attributes of tables and sorting of table columns

Plugin Diagnostics

Plugins defined

earlyInitPlugin earlyInitPlugin  
initPlugin initPlugin TWiki::Plugins::DefaultPlugin::initPlugin
TWiki::Plugins::SpreadSheetPlugin::initPlugin
TWiki::Plugins::CommentPlugin::initPlugin
TWiki::Plugins::EditTablePlugin::initPlugin
TWiki::Plugins::InterwikiPlugin::initPlugin
TWiki::Plugins::LatexModePlugin::initPlugin
TWiki::Plugins::RenderListPlugin::initPlugin
TWiki::Plugins::SlideShowPlugin::initPlugin
TWiki::Plugins::SmiliesPlugin::initPlugin
TWiki::Plugins::TablePlugin::initPlugin
initializeUserHandler initializeUserHandler  
registrationHandler registrationHandler  
beforeCommonTagsHandler beforeCommonTagsHandler  
commonTagsHandler commonTagsHandler TWiki::Plugins::DefaultPlugin::commonTagsHandler
TWiki::Plugins::SpreadSheetPlugin::commonTagsHandler
TWiki::Plugins::CommentPlugin::commonTagsHandler
TWiki::Plugins::EditTablePlugin::commonTagsHandler
TWiki::Plugins::LatexModePlugin::commonTagsHandler
TWiki::Plugins::SlideShowPlugin::commonTagsHandler
TWiki::Plugins::SmiliesPlugin::commonTagsHandler
afterCommonTagsHandler afterCommonTagsHandler  
startRenderingHandler startRenderingHandler TWiki::Plugins::DefaultPlugin::startRenderingHandler
TWiki::Plugins::InterwikiPlugin::startRenderingHandler
TWiki::Plugins::RenderListPlugin::startRenderingHandler
outsidePREHandler outsidePREHandler TWiki::Plugins::DefaultPlugin::outsidePREHandler
TWiki::Plugins::SmiliesPlugin::outsidePREHandler
TWiki::Plugins::TablePlugin::outsidePREHandler
insidePREHandler insidePREHandler  
endRenderingHandler endRenderingHandler TWiki::Plugins::EditTablePlugin::endRenderingHandler
TWiki::Plugins::LatexModePlugin::endRenderingHandler
TWiki::Plugins::TablePlugin::endRenderingHandler
beforeEditHandler beforeEditHandler  
afterEditHandler afterEditHandler  
beforeSaveHandler beforeSaveHandler  
afterSaveHandler afterSaveHandler  
beforeAttachmentSaveHandler beforeAttachmentSaveHandler  
afterAttachmentSaveHandler afterAttachmentSaveHandler  
writeHeaderHandler writeHeaderHandler  
redirectCgiQueryHandler redirectCgiQueryHandler  
getSessionValueHandler getSessionValueHandler  
setSessionValueHandler setSessionValueHandler  
renderFormFieldForEditHandler renderFormFieldForEditHandler  
renderWikiWordHandler renderWikiWordHandler  

Errors

None

Note: The diagnostics are provided by the %FAILEDPLUGINS% variable

Related Topics: TWikiPlugins, TWikiPreferences

-- TWiki:Main.MikeMannix - 12 May 2002
-- TWiki:Main.PeterThoeny - 18 May 2004

Instant TWiki Site Enhancements

These quick enhancements are aimed at improving TWiki"s ease-of-use. New TWiki site administrators are especially encouraged to review this document for ideas before deploying a new TWikiSite. The metaphor of building a house is useful. The listed enhancements are some of the details possible when moving into a new office or home. These small changes can make a big differences for user satisfaction at your site. All modifications can be done through your Web browser, and they don"t take more then in a couple of minutes. No system administration expertise is required. Some of these enhancements are also mentioned in the reference manual and other topics.

Many of these tips are based on setting some special TWikiVariables.

PICK We recommend implementing at least some of these enhancements right after installation, to get a taste for what is possible. Some of these tips and enhancements should be implemented before or during initial roll-out.

This may spark your imagination to really customize your site so that it"s optimal for your users. Slightly more advanced customization tips are listed in TWikiAdminCookBook.


Tips using TWikiVariables

You need to know what is the variable name, and in what page is/should be defined.

Change Colors of Page Header/Footer

Incredibly obvious, maybe, but some TWiki site admins don"t get around to changing the default web colors right off, whether they like them or not. Simply changing the defaults will make a huge difference in the overall look.

What we are doing

We want to set variable WEBBGCOLOR in topic WebPreferences to one of the StandardColors. WebPreferences is, as you can guess, a topic which holds all kind of preference setting for each TWiki WebManagingWebs?{*}. Each web has its own WebPreferences, and you can set them differently for each web.

How to do it

  1. Pick color code from company or product references, the StandardColors table (recommended for 8-bit client compatibility), or some other color reference.
  2. Go to WebPreferences in each web, and edit the topic.
  3. Set your preferred WEBBGCOLOR preferences variable, and save the topic.
  4. ALERT! Add a new line immediately after the color code. If there is (invisible) space after the color code, the page header might get strange colors (e.g. black).

It"s just as easy to refine later on, so you"re not locked in, just looking better.

Set Page Background Color

Without getting into the TWikiTemplates system yet, you can easily edit the view.tmpl (in the templates directory). In the HTML at the top, the body tag has the page background hardcoded to white bgcolor="#ffffff". You can change that color value to new variable. First, define a new preferences variable in the site-level TWikiPreferences, e.g. * Set =PAGEBGCOLOR = #d0d0d0, then edit the view.tmpl template file and change bgcolor="#ffffff" to bgcolor="%PAGEBGCOLOR%". If you want you can set the page background color individualy per web, simple add a * Set =PAGEBGCOLOR = #d0d0d0 bullet to the WebPreferences to overload the site-level preferences. (Without font color control, you"ll have to stick to light colors.

Titles-Only Topic List - WebTopicList

A good first navigation tool for new users, a fast-loading linked list (page titles only) of a web"s topics is a quick and easy way see what"s available. By default, slower, but more powerfull WebIndex is used.

Without explaining what WEBTOPICLIST is, just try it:

  1. Go to WebPreferences in each web, and edit the topic.
  2. In WEBTOPICLIST variable, replace WebIndex with WebTopicList, and save.

Simple way to create colored text and graphics

This should be enabled, see the "Miscellaneous Settings" in the TWikiPreferences, . If not, look at TWiki:TWiki/TWikiPreferences. Look for variables RED, BLUE etc (which define HTML tag FONT). To copy/paste the variables defining the colors you need to see the source text, but Edit is disabled. Instead, go to More and view the topic in raw format.

EZ Graphic Icons to Highlight Text

Graphics in text (like this: ALERT!) is done also by defining special variables. See TWikiPreferences. Some may prefer longer names, like HELP, WARN etc. You can also add your own images, e.g. a NEW, or a ASK to ask question.

TIP Using graphic icons to highlight important text right from the start can seriously improve how well new users take to a TWiki site. A minimum set of two or three icons can make content much easier to follow, eye-catching, EXCITING. Research says, people tend not to read pages through, but scan them first - and graphics (used sparringly wink of course) can help them. On HELP pages, most people tend to jump around looking for answers rather than reading through - icons help point out the most important bits.

How to create your own set of icons:

  1. Go to the Preferences topic: TWikiPreferences for site-wide use, or WebPreferences for use in one web only.
  2. Attach a graphic (the ones on this page are 16x16 pixels), then define a Preference Variable with a short but recognizable name.
  • Example: Enter %TEST% to get %TEST% - see how it"s WebPreferences#DefineIcondone.
  • TIP Ideas for quick icons: NEW; UPDATE; a STAR or other bullet; key symbols relating to your site content.
  • For documentation and help, this WebHomeTWiki? web uses three main icons: HELP for HELP, TIP for TIP, ALERT! for IMPORTANT.
  • Related: There are other approaches for creating more extensive TWiki icon libraries. This is a simply and quick way to get started. See TWikiDocGraphics for more info.

Use TOC variable to create table of content

TOC is Table-Of-Content, generated automagically from headers (defined like that: ---++ , see TWikiShorthand).

For example, you may want to put all your custom variables in TWikiPreferences right on top of the page, and generate table of contens, like:

  • Preferences for easy creating nice pages
    • Graphics icons in text
    • Colored text
  • System Preferences
    • Contents of page header and footer
    • User interface defaults
    • Email
    • Plugins
    • Notes

Non-admin users wil be interested only in first part, non-system preferences.


Personal Productivity - Tools and Tips for Working Faster

Although this area applies to all TWiki set-ups, the initial focus is on TWiki site managers working on a Linux/Apache TWiki site, from a Windows local PC. The assumption being: if you"re working with Linux as your desktop, you"re probably a programmer or system admin and have these basics handled!

Use your favorite text editor for major edits

When you have a fair bit of TWiki formatting work - for example, compiling new info pages from various cut"n"paste sources, editing multiple TWiki topics or contributed material - it"s often easier to use a real TextEditor instead of the browser"s text edit box. There are several methods for doing this. For Windows, there are several well-recommended text editors.

Windows Example: http://textpad.comTextPad is a low-cost, top flight Windows program, with an extended trial period. You can download from a well-stocked library of user-contributed macros, dictionaries, and syntax and clip files. You can also easily create a TWiki clip collection that allows you to format text with TWiki code: select a text string and click for bold, italic, links, bullet lists - just like a regular HTML editor - and also insert blocks of TWiki code, use simple or regex search and replace, more.

Copy & Paste: Using the web window this can work very well. System differences may present difficulties with this method but it is simple and reliable in most cases.

Browser Integration: Some web browsers can be configured to automatically use an external editor. See your browser documentation for details. Such a configuration and a small tool for Linux is described in an example on TWiki.org. TWiki:Codev/EditDaemonWithGVimIntegration

Alternate Browser: While your main browser might not have the features for TWikic topic editing, another one might.

  • An example on the Linux platform is the w3m pager/browser for Linux. This is a text based version similar to lynx but it includes text editor features and a configurable command set to act like lynx if you are more accustomed to it.

Ready to use SEARCH

Personal directory of topics you"re involved in

Here"s how you can create your own personal directory of topics you"ve contributed to recently. Copy the text below (between Start Copy and End Copy) and paste it into your personal page (TWikiGuest). You can add other webs to search by duplicating one of the web subsections and editing the string {web ="webname"} in the search parameters to refer to the specific web you want to search. This script would also work for a group.

Start Copy

__Here"s a list of topics I"ve been involved in recently:__

---++++ Codev

%SEARCH{ "InstantEnhancements" web="Codev" scope="text" nosearch="on" nosummary="on" noheader="on" nototal="on" order="modified" reverse="on" limit="20"}%
---++++ Support

%SEARCH{ "InstantEnhancements" web="Support" scope="text" nosearch="on" nosummary="on" noheader="on" nototal="on" order="modified" reverse="on" limit="20"}%

---++++ TWiki

%SEARCH{ "InstantEnhancements" web="TWiki" scope="text" nosearch="on" nosummary="on" noheader="on" nototal="on" order="modified" reverse="on" limit="10"}%

End Copy

The SEARCH variable has many more formatting options, see TWikiVariables.

Recently changed pages

Here, last 15 is formatted into neat table.

<table>
%SEARCH{ "\.*" scope="topic" regex="on" nosearch="on" nototal="on" order="modified" reverse="on"  format="<tr><td>  $topic$topic </td><td>  $wikiusername  </td><td> $date  </td></tr>" limit="15" }%
</table>


Hidden Edit Lock for Individual Topics

When you"re creating main gateway pages, you may want to temporarily (or permanently) restrict editing to yourself or a limited group of people. You can do this with a Preference setting that includes one or more users and groups. Only auhorized users will be able to use Edit.

  • Example: Set ALLOWTOPICCHANGE = Main.UserName, Main.GroupName
  • TIP To hide the setting: Use HTML comment tags - put <!-- on the line _above the setting, and --> on the line below.
  • This is in the regular help files but worth highlighting.


Change the Default Site Logo

If you want to change the default TWiki logo, attach a new graphic to a topic of choice and change the WIKILOGOIMG variable in the TWikiPreferences, e.g.

  • Set WIKILOGOIMG = %PUBURL%/TWiki/MyLogo/mylogo.gif


Customize Topic Classification Forms

With a simple one or two-line default topic form available for every topic - in Edit mode, click the [Add] button, and select the form if it isn"t alredy enabled. Then, click the title to get to the actual form, [Edit], and carefully change values, probably basic page classifications. You"ll get some increased value, and hands-on experience with TWikiForms, without having to read up about them first. ALERT! (add the corresponding search per category - copy a default and change)


Add Your Favorite JavaScript Features

You"re no doubt familiar or better with HTML, JS, and "webmastering". Without getting into the TWikiTemplates system yet, you can easily edit the view.tmpl (in the templates directory) for some dramatic effects. The top of the template is mostly regular HTML with some variables. Open up some space in the <head> area, and you can drop in reliable JavaScripts - a pop-up window script, for example - or tag it as an external script.

  • TIP Obviously, you can do the same - place a link to an external stylesheet as well. If you set values for standard HTML tags, you can control a good deal of the type size, style and color with out adding CSS tags. example

ALERT! Depending on what you load up, you may change the overall cross-browser compatibility - however be careful that your site does not look beat up in various other browsers. The scripts you choose will determine compatibility.


TIP NOTE: Feel free to add your own tips to TWiki:TWiki.InstantEnhancements as quick notes at the end of the list, following the existing format!

Contributors: TWiki:Main.GrantBow, TWiki:Main.LynnwoodBrown, TWiki:Main.MikeMannix, TWiki:Main.PeterMasiar, TWiki:Main.PeterThoeny, TWiki:Main.MattWilkie

[[[[id="informix" style="overflow:auto;height:1px;">rolex replica?]]]] [[[[[[[[http://g.1asphost.com/tissot/replica-handbags/][replica][handbags]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/replica-jersey/][replica][jersey]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/replica-watches/][replica][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/designer-replicas/][designer][replicas]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/louis-vuitton-replicas/][louis][vuitton][replicas]]]]]]][]] [[[[[[[[http://g.1asphost.com/tissot/casio-watches/][casio][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/fossil-watches/][fossil][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/gucci-watches/][gucci][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/invicta-watches/][invicta][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/omega-watches/][omega][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/seiko-watches/][seiko][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/swiss-watcheses/][swiss][watcheses]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/tag-heuer-watches/][tag][heuer][watches]]]]]]][]] [[[[[[[[http://g.1asphost.com/tissot/timex-watches/][timex][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/watches-strap/][watches][strap]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/breitling-watches/][breitling][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/cartier-watches/][cartier][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/nike-watches/][nike][watches]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/wrist-watches/][wrist][watches]]]]][]]][]] breitling?][]]][]]][]] breil?][]]][]]][]] bulova?][]]][]]][]] chronograph?][]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/acer-ferrari/][acer][ferrari]]]]][]]][]] horloges?][]]][]]][]] invicta?][]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/coach-knockoff/][coach][knockoff]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/knockoff-handbag/][knockoff][handbag]]]]][]]][]] movado?][]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/oakley-sunglasses/][oakley][sunglasses]]]]][]]][]] [[[[[[[[http://g.1asphost.com/tissot/omega-seamaster/][omega][seamaster]]]]][]]][]] orologi?][]]][]]][]] panerai?][]]][]]][]] relojes?][]]][]]][]] tissot?][]]][]]][]] [[[[[[
][]]][]]][]] [[[[
][]]][]] [[
][]]

Inter-Wiki Link Rules (or Links to other Sites)

This topic lists all aliases needed to map Inter-Site links to external wikis/sites.

Whenever you write ExternalSite:Page it will be linked automatically to the page on the external site. The link points to the URL corresponding to the ExternalSite alias below, concatenated to the Page you choose. Example: Type Wiki:RecentChanges to get Wiki:RecentChanges, the RecentChanges page at the original Wiki site.

How to define Inter-Site links

  • Inter-Site links are defined in the tables below.
  • Each entry must be of format:
    | External site alias | URL | Tooltip help text |.
  • The URL and Tooltip Text may contain optional $page variables; the variable gets expanded to the page name.
  • Note: The Tooltip Text must not contain any HTML tags (including <nop> escape code), no internal WikiWord links, and no external links. Hint: Escape 'WikiWords' and '$page'.

General Inter-Site Links

Alias: URL: Tooltip Text:
Acronym http://www.acronymfinder.com/af-query.asp?Acronym=$page&String=exact Look up '$page' on Acronym Finder site
Dictionary http://www.dictionary.com/cgi-bin/dict.pl?term= Look up '$page' at Dictionary.com
Google http://google.com/search?q= Search for '$page' on Google
Group http://groups.google.com/groups?hl=en&safe=off&group= News group '$page' at Google.com
ISBN http://service.bfast.com/bfast/click?bfmid=2181&sourceid=38704253&bfpid= Book with ISBN#$page (One click patent? Say no to Amazon!)
RFC http://www.faqs.org/rfcs/rfc$page.html IETF RFC #$page

Inter-Wiki Links

Alias: URL: Tooltip Text:
Advogato http://www.advogato.org/ '$page' on Advogato community site (with peer review)
C2find http://c2.com/cgi/wiki?FindPage&value= Search '$page' on the original 'WikiWikiWeb' site
DolphinWiki http://www.object-arts.co.uk/wiki/html/Dolphin/$page.htm '$page' on Dolphin Wiki site
FoxWiki http://fox.wikis.com/wc.dll?Wiki~ '$page' on Fox Wiki site
HammondWiki http://www.dairiki.org/HammondWiki/index.php3? '$page' on 'HammondWiki' site
LegoWiki http://www.object-arts.com/wiki/html/Lego-Robotics/ '$page' on 'LegoWiki' site
MbTest http://www.usemod.com/cgi-bin/mbtest.pl? '$page' on 'UseMod' Wiki variant
MeatBall http://www.usemod.com/cgi-bin/mb.pl? '$page' on 'MeatBall' site, a 'UseMod' Wiki variant
MoinMoin http://moin.sourceforge.net/cgi-bin/moin/moin/ '$page' on 'MoinMoin' Wiki site
MuWeb http://www.dunstable.com/scripts/MuWebWeb? '$page' on 'MuWeb' site
OrgPatterns http://www.easycomp.org/cgi-bin/OrgPatterns? '$page' on Organizational Patterns site
PhpWiki http://phpwiki.sourceforge.net/phpwiki/index.php3? '$page' on Wiki site written in PHP
PolitizenWiki http://www.politizen.com/wiki.asp? '$page' on 'PolitizenWiki' site
PPR http://c2.com/cgi/wiki? '$page' on the original 'PortlandPatternRepository' site
PyWiki http://www.voght.com/cgi-bin/pywiki? '$page' on Wiki site written in Python
Squeak http://minnow.cc.gatech.edu/squeak/ '$page' on Squeak Smalltalk Wiki
TWiki http://twiki.org/cgi-bin/view/ '$page' on TWiki.org
UseMod http://www.usemod.com/cgi-bin/wiki.pl? '$page' on 'UseMod' Wiki site
VisualWorks http://wiki.cs.uiuc.edu/VisualWorks/ '$page' on 'VisualWorks' site
Wiki http://c2.com/cgi/wiki? '$page' on the original 'WikiWikiWeb' site
Wikipedia http://en.wikipedia.org/wiki/ '$page' on 'Wikipedia'
ZWiki http://joyful.com/zwiki/ '$page' on Zope's Wiki

Note: This topic is powered by the InterwikiPlugin.

Interwiki Plugin

The InterwikiPlugin links ExternalSite:Page text to external sites based on aliases defined in the InterWikis topic. This plugin is inspired by UseMod Wiki's inter-wiki links, http://www.usemod.com/cgi-bin/wiki.pl?InterWiki.

Syntax Rules

InterwikiPlugin Settings

Plugin settings are stored as Preferences variables. To reference a plugin setting write %<plugin>_<setting>%, for example, %INTERWIKIPLUGIN_SHORTDESCRIPTION%

  • One-line description, shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Link ExternalSite:Page text to external sites based on aliases defined in the InterWikis topic

  • Link rules topic name: (default is InterWikis)
    • Set RULESTOPIC =

  • Suppress tooltip help for links: (0 or 1, default is 0)
    • Set SUPPRESSTOOLTIP = 0

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

Plugin Installation Instructions

ALERT! NOTE: This Plugin is included in the TWiki distribution package. You do not need to install it unless you want to upgrade to a newer version.

  • Download the ZIP file from the TWiki:Plugins web (see below)
  • Unzip InterwikiPlugin.zip in your TWiki installation directory. Content:
    File: Description:
    data/TWiki/InterwikiPlugin.txt Plugin topic
    data/TWiki/InterWikis.txt Link rules topic for inter-site links
    lib/TWiki/Plugins/InterwikiPlugin.pm Plugin Perl module
  • Test: If the Plugin is correctly installed, this Wiki:InterWiki link should point to http://c2.com/cgi/wiki?InterWiki topic - try it out.

Plugin Info

Plugin Author: TWiki:Main.AndreaSterbini, TWiki:Main.PeterThoeny
Plugin Version: 25 Aug 2004, 1.005
Change History:  
25 Aug 2004: Updated InterWikis link rules (no code change)
09 Mar 2004: Internal changes: Use only official TWiki::Func Plugin API; for increased speed, moved Interwiki link handling from outsidePREHandler to startRenderingHandler
16 Feb 2004: Support [[Site:Page][label]] Interwiki links (PTh); use TWiki::Func interface for I18N regular expressions (Walter Mundt)
18 Jan 2003: Allow number sign # in Page name (PTh)
31 Aug 2002: Allow percent sign % in page name (PTh)
27 Jul 2001: Allow numbers 0-9 in site name
26 Jul 2001: Fixed alternating missed link bug due to greedy $postfixPattern (fix by Richard Donkin)
14 Jul 2001: Changed to plug & play
16 Jun 2001: Made tooltips optional; prevent Module::Sub type of link
12 Jun 2001: Added optional tool tips (IE only); added the link rules topic name variable; added flexible link patterns; optional $page in URL
10 Jun 2001: Changed rules topic to table-based syntax
20 Feb 2001: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.0
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/InterwikiPlugin (TWiki:Plugins/InterwikiPlugin)
Feedback: http://TWiki.org/cgi-bin/view/Plugins/InterwikiPluginDev (TWiki:Plugins/InterwikiPluginDev)

Related Topics: InterWikis, TWikiPreferences, TWikiPlugins

-- TWiki:Main.AndreaSterbini - 20 Oct 2000
-- TWiki:Main.MikeMannix - 01 Oct 2001
-- TWiki:Main.PeterThoeny - 25 Aug 2004

LatexModePlugin

This LaTeX Mode TWiki Plugin allows you to include LaTeX mark up commands within a TWiki page. It uses external programs (specifically latex, dvips, and convert) to generate png images from the mark up. These images are then included in the rendered TWiki page. The first time a particular image is generated, there may be a significant lag in page rendering as the images are generated on the server. Once rendered, the image is saved as an attached file for the page, so subsequent viewings will not require re-renders. When you remove a math expression from a page, its image is deleted.

This plugin expands the functionality provided by the (older) TWiki:Plugins.MathModePlugin.

Syntax Rules

The plugin interprets a number of delimiters to declare LaTeX markup strings. For example, if the LatexModePlugin is successfully installed, the string \int_{-\infty}^\infty e^{-\alpha x^2} dx = \sqrt{\frac{\pi}{\alpha}} will render as an image $\int_{-\infty}^\infty e^{ -\alpha x^2 } dx = \sqrt{ \frac{\pi}{\alpha} }$, when enclosed within the defined delimiters.

Standard Syntax

This plugin has two standard modes:

  • in-line, declared by %$ $%. Similar to LaTeX's inline math mode, the math markup is rendered on the same line as other text in the string.
  • own-line, declared by %\[ \]% or %MATHMODE{ ... }%. These equations will be rendered with center justification on their own line.

For the majority of users, these commands should be sufficient

Extended Syntax

For those that are well familiar with LaTeX, a multi-line syntax allowing more complicated markup commands can be declared using

%BEGINLATEX%
  \begin{<environment>}
    _latex markup_ 
  \end{<environment>}
%ENDLATEX%
Typically, the declared <environment> will be displaymath, although there is no limitation.

Additional options can be included to modify the rendered result. These include

option possible values default description
inline 0 or 1 0 controls inline vs ownline rendering
label alpha-numeric --- produces a linkable equation number for ownline markup
density positive integer 116 (set below) controls rendered font size
scale positive number 1.0 (set below) sets post-rendered image scaling
gamma positive number 0.6 (set below) controls rendered font darkness
color --- 'black' sets foreground font color (details below)

For example, to declare an equation to be numbered by TWiki (not in the LaTeX image) with a larger font size and in red, use the following syntax:

%BEGINLATEX{label="eq1" density="175" color="red"}%

latex markup

%ENDLATEX%

HTML references to Latex equations with a defined <label> can be generated using %REFLATEX{<label>}%.

Tables, Figures, and back-references

To round out the functionality available in standard LaTeX, the automatic generation of Figure and Table reference links is also available. These are declared using

  • %BEGINFIGURE{label="fig:label" caption="this is a figure"}% ... %ENDFIGURE%, and
  • %BEGINTABLE{label="tbl:label" caption="this is a table"}% ... %ENDTABLE%.
These commands will create an HTML table with a numbered caption either above (TABLE) or below (FIGURE) the included text. Back-references to these declared environments can be accessed through %REFLATEX{<label>}%. To keep the counters/back-references seperate for each of the three types of references, use eqn:, fig:, and tbl: as the first four characters in any declared label.

Font Color

As of v1.3, one can now directly control the foreground font color in the rendered mathematics. This is achieved through use of the color.sty package in the intermediate latex file.

Latex is able to render colors defined in 3 color spaces: gray, rgb, and cmyk. A limited number of colors are predefined in Latex. These include:

color color space color space value
black gray 0
white gray 1
red rgb 1,0,0
green rgb 0,1,0
blue rgb 0,0,1
cyan cmyk 1,0,0,0
magenta cmyk 0,1,0,0
yellow cmyk 0,0,1,0

To use additional colors, they need to be defined in (what is known as) the Latex preamble. The preamble can be set as either a web or topic preference variable

   * #Set PREAMBLE = \usepackage{color} \definecolor{Aqua}{rgb}{0,1,1}

or as a multi-line declaration, using the tags: %BEGINLATEXPREAMBLE% and %ENDLATEXPREAMBLE%

For convenience, the following TWiki colors are pre-defined in the LatexModePlugin

   \definecolor{Red}{rgb}{1,0,0}
   \definecolor{Blue}{rgb}{0,0,1}
   \definecolor{Yellow}{rgb}{1,1,0}
   \definecolor{Orange}{rgb}{1,0.4,0}
   \definecolor{Pink}{rgb}{1,0,1}
   \definecolor{Purple}{rgb}{0.5,0,0.5}
   \definecolor{Teal}{rgb}{0,0.5,0.5}
   \definecolor{Navy}{rgb}{0,0,0.5}
   \definecolor{Aqua}{rgb}{0,1,1}
   \definecolor{Lime}{rgb}{0,1,0}
   \definecolor{Green}{rgb}{0,0.5,0}
   \definecolor{Olive}{rgb}{0.5,0.5,0}
   \definecolor{Maroon}{rgb}{0.5,0,0}
   \definecolor{Brown}{rgb}{0.6,0.4,0.2}
   \definecolor{Black}{gray}{0}
   \definecolor{Gray}{gray}{0.5}
   \definecolor{Silver}{gray}{0.75}
   \definecolor{White}{gray}{1}
One does not need to declare a preamble to use these colors.

Examples

This is an example of the \LaTeX rendering possibilities using the LatexModePlugin.

The singular value decomposition of a matrix $A$ is defined as
  \begin{displaymath} A = U \Sigma V^H \end{displaymath} (1)

where $U$ and $V$ are both matrices with orthonormal columns, $\{\cdot\}^H$ indicates a complex-conjugate transpose, and $\Sigma$ is a diagonal matrix with singular values

\[ \sigma_1 > \sigma_2 > \cdots > \sigma_n \geq 0 \]
along the main diagonal. Eq. (1) is just one of the many matrix decompositions that exists for matrix $A$.

After the plugin has been succesfully installed and configured, this example should render like this:

expl-v1.4.png

[Note: the following may or may not be useful...] Both DENSITY and SCALE alter the rendered image size and quality. For example, if one doubles the DENSITY and halves the SCALE, the rendered image resolution will improve but keep the same image size on the rendered page. (Note: DENSITY * SCALE is the same in both cases)

density = 116, scale = 2.0 :
 \[ \mathcal{A } \]
density = 232, scale = 1.0 :
 \[\mathcal{A}\]

For regular browser viewing, the SCALE parameter sould be set to 1.0. However, one can use these parameters to improve print quality when printing a topic. To do this, increase the DENSITY setting (a value of 300 will give roughly 300dpi) and then set the SCALE setting below 1.0.

Plugin Settings

Plugin settings are stored as preferences variables. To reference these plugin settings write %<plugin>_<setting>%, i.e. %LATEXMODEPLUGIN_SHORTDESCRIPTION%

  • One line description, as shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Enables LaTeX markup (mathematics and more) in TWiki pages

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Set the dots-per-inch default density level for the rendered images (116 is suggested for 11pt browser fonts.)
    • Set DENSITY = 116

  • Set the gamma correction for the rendered images. This controls how dark the rendered text appears
    • Set GAMMA = 0.6

  • Set the scaling for the image size. Typically, set to '1'.
    • Set SCALE = 1.0

  • Uncomment the following to define a site-wide custom color, DarkBlue.
    • #Set PREAMBLE = \usepackage{color} \definecolor{DarkBlue}{rgb}{0,0.1,0.43}

  • In addition, the following parameters are available at the topic level, EQN, FIG, TBL, to override the counter reset. (i.e. if    * Set EQN = 3 is declared in a topic, the first labeled equation will be given the number 4).

Plugin Installation Instructions

First, confirm that the external software needed by the plugin is installed on the TWiki server. This includes:

Second,

  • Download the LatexModePlugin.zip file from the Plugin web
  • Unzip ZIP file in your twiki installation directory. Content:
    File: Description:
    lib/TWiki/Plugins/LatexModePlugin.pm Plugin Perl module
    data/TWiki/LatexModePlugin.txt Plugin topic and documentation
    pub/TWiki/LatexModePlugin/expl-v1.4.png example image of rendered latex

Finally,

  • customize the installization specific variables to point to the local location of latex, dvips and convert

More Details

Version control is not specifically used for the image files. Because the images are generated from the raw text, the topic history includes all the versions of the markup for the expressions, and can be re-rendered when you view a different version.

This plugin is an enhanced version of the TWiki:Plugins.MathModePlugin created by TWiki:Main.GraemeLufkin. There are a number of significant differences:

  • latex-dvips-convert is used in place of latex2html, consequently
    • hash table mismatching between twiki and images generated by latex2html is eliminated, which was a source of many problems in the TWiki:Plugins.MathModePlugin.
    • greater flexibility in markup rendering is available.
    • the rendering is done image-by-image, so the cost of total page rendering time should be linear. (that is, ten images will take ten times as long to render as one image.)
  • multi-line latex markup is now possible. Consequently, this now means that a <nop> must be included to disable rendering in documentation, as opposed to spliting the math markup over multiple lines as before.
  • equations can be numbered, with automatic cross-links available
  • if errors occur during the latex markup processing, they are reported during the editing preview screen, but not during the standard view. The motivation for this is that, in general, authors care about the error but readers do not.

Plugin Info

Plugin Author: TWiki:Main.ScottHoge
Plugin Version: 11 Nov 2005 (v 2.2)
Change History:  
11 Nov 2005 (v 2.2) more mods for GenPDFLatexAddOn?: protect newlines, moved float handler, moved float label checker
15 Oct 2005 (v 2.1) minor modifications for GenPDFLatexAddOn? support
unreleased (v 2.0) Major rewrite for Dakar
30 Sep 2005 (v 1.41) relaxed the scrubing a little bit... previous version caused problems with REFLATEX
29 Sep 2005 (v 1.4) more robust scrubing of convert input parameters. errors on save now reported.
5 Sep 2005 (v 1.3) added image scale parameter, color rendering, and preamble hooks
22 Aug 2005 (v 1.2) Forked from the TWiki:Plugins.MathModePlugin by TWiki:Main.GraemeLufkin
TWiki Dependency: $TWiki::Plugins::VERSION 1.025
CPAN Dependencies: Digest::MD5, File::Basename, Image::Info
Other Dependencies: A working installation of latex and convert
Perl Version: 5.8.0
License: GPL (GNU General Public License)
TWiki:Plugins/Benchmark: GoodStyle 100%, FormattedSearch 100%, LatexModePlugin 100%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/LatexModePlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/LatexModePluginDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/LatexModePluginAppraisal

This plugin was created and tested on the 02 Sep 2004 version of TWiki, using ImageMagick v5.5.7, EPS GhostScript v7.05, and tetex v2.02. It has been reported to work (Thanks Jos!) using ImageMagick 6.2.3, tetex 3.0 and ghostscript 8.51 as well.

Related Topics: TWikiPreferences, TWikiPlugins, TWiki:Plugins.MathModePlugin

Latex Symbol Listing

Greek Letters

\alpha $\alpha$ \theta $\theta$ o $o$ \tau $\tau$
\beta $\beta$ \vartheta $\vartheta$ \pi $\pi$ \upsilon $\upsilon$
\gamma $\gamma$ \varpi $\varpi$ \phi $\phi$ \xi $\xi$
\delta $\delta$ \kappa $\kappa$ \rho $\rho$ \varphi $\varphi$
\epsilon $\epsilon$ \lambda $\lambda$ \varrho $\varrho$ \chi $\chi$
\varepsilon $\varepsilon$ \mu $\mu$ \sigma $\sigma$ \psi $\psi$
\zeta $\zeta$ \nu $\nu$ \varsigma $\varsigma$ \omega $\omega$
\eta $\eta$

\Lambda $\Lambda$ \Sigma $\Sigma$ \Psi $\Psi$ \Phi $\Phi$
\Delta $\Delta$ \Xi $\Xi$ \Upsilon $\Upsilon$ \Omega $\Omega$
\Theta $\Theta$ \Pi $\Pi$

Binary Operation Symbols

\pm $\pm$ \cap $\cap$ \diamond $\diamond$ \oplus $\oplus$
\mp $\mp$ \cup $\cup$ \bigtriangleup $\bigtriangleup$ \ominus $\ominus$
\times $\times$ \uplus $\uplus$ \bigtriangledown $\bigtriangledown$ \otimes $\otimes$
\div $\div$ \sqcap $\sqcap$ \triangleleft $\triangleleft$ \oslash $\oslash$
\ast $\ast$ \sqcup $\sqcup$ \triangleright $\triangleright$ \odot $\odot$
\star $\star$ \vee $\vee$ \lhd $\lhd$ \bigcirc $\bigcirc$
\circ $\circ$ \wedge $\wedge$ \rhd $\rhd$ \dagger $\dagger$
\bullet $\bullet$ \setminus $\setminus$ \unlhd $\unlhd$ \ddagger $\ddagger$
\cdot $\cdot$ \wr $\wr$ \unrhd $\unrhd$ \amalg $\amalg$
+ $+$ - $-$

Relation Symbols

\leq $\leq$ \geq $\geq$ \equiv $\equiv$ \models $\models$
\prec $\prec$ \succ $\succ$ \sim $\sim$ \perp $\perp$
\preceq $\preceq$ \succeq $\succeq$ \simeq $\simeq$ \mid $\mid$
\ll $\ll$ \gg $\gg$ \asymp $\asymp$ \parallel $\parallel$
\subset $\subset$ \supset $\supset$ \approx $\approx$ \bowtie $\bowtie$
\subseteq $\subseteq$ \supseteq $\supseteq$ \cong $\cong$ \Join $\Join$
\sqsubset $\sqsubset$ \sqsupset $\sqsupset$ \neq $\neq$ \smile $\smile$
\sqsubseteq $\sqsubseteq$ \sqsupseteq $\sqsupseteq$ \doteq $\doteq$ \frown $\frown$
\in $\in$ \ni $\ni$ \propto $\propto$ = $=$
\vdash $\vdash$ \dashv $\dashv$ > $&amp;gt;$ > $>$
: $:$

Punctuation Symbols

, $,$ ; $;$ \colon $\colon$ \ldotp $\ldotp$ \cdotp $\cdotp$

Arrow Symbols

\leftarrow $\leftarrow$ \longleftarrow $\longleftarrow$ \uparrow $\uparrow$
\Leftarrow $\Leftarrow$ \Longleftarrow $\Longleftarrow$ \Uparrow $\Uparrow$
\rightarrow $\rightarrow$ \longrightarrow $\longrightarrow$ \downarrow $\downarrow$
\Rightarrow $\Rightarrow$ \Longrightarrow $\Longrightarrow$ \Downarrow $\Downarrow$
\leftrightarrow $\leftrightarrow$ \longleftrightarrow $\longleftrightarrow$ \updownarrow $\updownarrow$
\Leftrightarrow $\Leftrightarrow$ \Longleftrightarrow $\Longleftrightarrow$ \Updownarrow $\Updownarrow$
\mapsto $\mapsto$ \longmapsto $\longmapsto$ \nearrow $\nearrow$
\hookleftarrow $\hookleftarrow$ \hookrightarrow $\hookrightarrow$ \searrow $\searrow$
\leftharpoonup $\leftharpoonup$ \rightharpoonup $\rightharpoonup$ \swarrow $\swarrow$
\leftharpoondown $\leftharpoondown$ \rightharpoondown $\rightharpoondown$ \nwarrow $\nwarrow$
\rightleftharpoons $\rightleftharpoons$

Miscellaneous Symbols

\ldots $\ldots$ \cdots $\cdots$ \vdots $\vdots$ \ddots $\ddots$
\aleph $\aleph$ \prime $\prime$ \forall $\forall$ \infty $\infty$
\hbar $\hbar$ \emptyset $\emptyset$ \exists $\exists$ \imath $\imath$
\nabla $\nabla$ \neg $\neg$ \Diamond $\Diamond$ . $.$
\jmath $\jmath$ \surd $\surd$ \flat $\flat$ \triangle $\triangle$
\ell $\ell$ \top $\top$ \natural $\natural$ \clubsuit $\clubsuit$
\wp $\wp$ \bot $\bot$ \sharp $\sharp$ \diamondsuit $\diamondsuit$
\Re $\Re$ \backslash $\backslash$ \heartsuit $\heartsuit$ \spadesuit $\spadesuit$
\Im $\Im$ \angle $\angle$ \partial $\partial$

Variable Sized Symbols

\sum $\sum$ \bigcap $\bigcap$ \bigodot $\bigodot$
\prod $\prod$ \bigcup $\bigcup$ \bigotimes $\bigotimes$
\coprod $\coprod$ \bigsqcup $\bigsqcup$ \bigoplus $\bigoplus$
\int $\int$ \bigvee $\bigvee$ \biguplus $\biguplus$
\oint $\oint$ \bigwedge $\bigwedge$

Log-like Symbols

\arccos $\arccos$ \cos $\cos$ \csc $\csc$ \exp $\exp$
\ker $\ker$ \limsup $\limsup$ \min $\min$ \sinh $\sinh$
\arcsin $\arcsin$ \cosh $\cosh$ \deg $\deg$ \gcd $\gcd$
\lg $\lg$ \ln $\ln$ \Pr $\Pr$ \sup $\sup$
\arctan $\arctan$ \cot $\cot$ \det $\det$ \hom $\hom$
\lim $\lim$ \log $\log$ \sec $\sec$ \tan $\tan$
\arg $\arg$ \coth $\coth$ \dim $\dim$ \inf $\inf$
\liminf $\liminf$ \max $\max$ \sin $\sin$ \tanh $\tanh$

Delimiters

( $($ ) $)$ \uparrow $\uparrow$ \Uparrow $\Uparrow$
[ $[$ ] $]$ \downarrow $\downarrow$ \Downarrow $\Downarrow$
\{ $\{$ \} $\}$ \updownarrow $\updownarrow$ \Updownarrow $\Updownarrow$
\lfloor $\lfloor$ \rfloor $\rfloor$ \lceil $\lceil$ \rceil $\rceil$
\langle $\langle$ \rangle $\rangle$ / $/$ \backslash $\backslash$

Large Delimiters

\rmoustache $\rmoustache$ \lmoustache $\lmoustache$ \rgroup $\rgroup$ \lgroup $\lgroup$
\arrowvert $\arrowvert$ \Arrowvert $\Arrowvert$

Accents

\hat{a} $\hat{a}$ \acute{a} $\acute{a}$ \bar{a} $\bar{a}$
\dot{a} $\dot{a}$ \breve{a} $\breve{a}$ \check{a} $\check{a}$
\grave{a} $\grave{a}$ \vec{a} $\vec{a}$ \ddot{a} $\ddot{a}$
\tilde{a} $\tilde{a}$

Some other constructions

\widetilde{abc} $\widetilde{abc}$
\widehat{abc} $\widehat{abc}$
\overleftarrow{abc} $\overleftarrow{abc}$
\overrightarrow{abc} $\overrightarrow{abc}$
\overline{abc} $\overline{abc}$
\underline{abc} $\underline{abc}$
\overbrace{abc} $\overbrace{abc}$
\underbrace{abc} $\underbrace{abc}$
\sqrt{abc} $\sqrt{abc}$
\sqrt[n]{abc} $\sqrt[n]{abc}$
\frac{abc}{xyz} $\frac{abc}{xyz}$

-- provided by TWiki:Main.MikaelOlenfalk (see also: TWiki:Support.MathModeRenderingInTable)

Main Features of TWiki

  • Any web browser: Edit existing pages or create new pages by using any web browser. There is no need to upload pages.
  • Edit link: To edit a page, simply click on the Edit link at the bottom of the page.
  • Auto links: Web pages are linked automatically. You do not need to learn HTML commands to link pages.
  • Text formatting: Simple, powerful and easy-to-learn text formatting rules. Basically you write text like you would write an e-mail.
  • Webs: Pages are grouped into TWiki webs (or collections). This allows you to set up separate collaboration groups.
  • Search: Full text search with/without regular expressions. See a sample search result.
  • E-mail notification: Get automatically notified when something has changed in a TWiki web.
  • Structured content: Use TWikiForms to classify and categorize unstructured web pages and to create simple workflow systems.
  • File attachments: Upload and download any file as an attachment to a page by using your browser. This is similar to file attachments in an e-mail, but it happens on web pages.
  • Revision control: All changes to pages and attachments are tracked. Retrieve previous page revisions; compare differences; find out who changed what and when.
  • Access control: Define groups and impose fine-grained read and write access restrictions based on groups and users.
  • Variables: Use variables to dynamically compose your pages. This allows you for example to dynamically build a table of contents, include other pages, or show a search result embedded in a page.
  • TWiki plugins: Easily install program enhancements using external plug-in modules. Developers can create plug-ins in Perl using the TWiki Plugin API.
  • Templates and skins: A flexible templating system separates program logic and presentation. Skins overwrite template headers and footers; page content is unaffected.
  • Managing pages: Individual pages can be renamed, moved and deleted through the browser.
  • Managing users: Web-based user registration and change of password.
  • Statistics: Create statistics of TWiki webs. Find out most popular pages and top contributors.
  • Preferences: Three levels of preferences: TWikiPreferences for site-level, WebPreferences for each web, and user level preferences.
  • Topic locking: Users are warned if a page is being edited by another person. This is to prevent simultaneous page editing.
  • Referred-By: Find the pages that contain links to a topic.

Managing Topics

Browser-based rename, move, and delete for individual topics

Overview

You can use browser-based controls to change a topic's name, move it to another TWiki web, or delete it to a hidden Trash web.

How to Rename/Move/Delete a Topic

  1. Click on [More] (bottom right of page) on the topic to be changed, then, in the new screen, on [Rename/move]. You can now rename and/or move/delete in one operation:
  2. Move/Delete: Select the target web if other than the current web - choose Trash to delete a topic.
  3. Rename: Enter the new topic name - default is current name
    ALERT! NOTE: You'll be warned if any of the topics to be affected are locked (being edited), or if there is a name conflict.
  4. Prevent updates by unchecking individual items on the list of referring links - these topics will NOT to be updated with the new name (by default, all referring links will be updated).
  5. Click on [Rename/Move]: the topic will be renamed and links to the topic updated as requested.
    • If any of the referring pages are locked then they will be listed: you can correct these later by again pressing [Rename/Move].
    • HELP There is a Put back feature that allows you to undo a Rename/Move/Delete - an instruction line and undo link will appear at the bottom of the modified topic. This allows you to revert from the last modification only.

Deleted Topics: How to Clear the Trash

Deleted topics are moved to a special Trash web - they are NOT physically erased from the server. All webs share Trash - in case of a name conflict with a topic already Trash, the user is alerted and asked to choose a new name.

The Trash web should be be cleared periodically, by archiving (saving) the text and RCS files if required (recommended), then deleting them from the Trash directory.

  • ALERT! This can only be done from on the server, not through the browser.
    • TIP Since simple FTP access to the Trash directory is all that's required for maintenance, it's possible to grant Trash admin privileges to multiple users, while strictly limiting server access.

Redirecting from an Old Topic

You can use TWikiMetaData to place a command in the WebTopicViewTemplate and WebTopicNonWikiTemplate that will indicate that a topic has been moved by searching for the tag %META:TOPICMOVED{...}%. Customize something like this:

%<nop>METASEARCH{type="topicmoved" web="TWiki" topic="ManagingTopics" 
title="This topic used to exist and was moved to: "}%

How Rename/Move Works

  1. %SEARCH%, with a special template, finds and displays all occurrences of the topic name in other topics, site-wide. These referring links are by default automatically changed to the new topic and/or web name. This includes relevant TWikiMetaData definitions.
    • User can omit one or more topics from the update list by unchecking them.
    • <pre> and <verbatim> are honoured - no changes are made to text within these areas.
  2. The topic is moved (if locks allow).
  3. References are changed (locks and permissions permitting).
  4. Any referring topics that can't be changed due to locks are listed - user can take note and change them at another time.

How Referring Topics Are Found

Referring topics are found using the %SEARCH% variable - see the template searchrenameview.tmpl. First, matching topics in the current web are listed - matches are to topic. Next, all webs (including the current one) are listed that match web.topic. Because %SEARCH% is used, webs marked in WebPreferences as NOSEARCHALL will not show up in the search for references to the topic being changed.

Changed references are kept are as short as possible, ex: topic is used in preference to web.topic.

Effect of User Access Settings

User permissions affect the Rename function in various ways. To rename a topic, you need both ALLOWTOPICCHANGE and ALLOWTOPICRENAME permission for that topic. To alter referring topics, you need change permission. See TWikiAccessControl for information on setting up access permissions.

Special Considerations

Consider carefully whether to make browser-based Rename/Move/Delete widely available, or to restrict it to an administrator/moderator group. Allowing all users to easily manipulate topics can be extremely useful in refactoring a busy web or site. However, there are at least two significant potential drawbacks to take into account:

  • When referring links are updated, the modified topics appear in WebChanges, creating the impression that editorial changes were made. This can undermine the usefulness of WebChanges.
  • Due to current limitations, fairly heavy use of Rename/Move/Delete functions can lead to an accumulation of minor technical problems (ex: broken links) and usability issues (ex: user confusion). If Rename... is used heavily, these negatives will obviously increase, in number and effect.

Ultimately, the size, objectives, and policies of your TWiki site, the real-world behavior of your user group, and most importantly, the initial TWiki site management leadership, will determine the most effective implementation of this feature, and the success of the site overall.

Known Issues

Rename/Move is fairly complicated due to the dynamic generation of links. Ideally, it would be possible to run the required part of rendering in a way that would allow identification of the text to be changed. Unfortunately, these hooks don't exist in TWiki at present. Instead, %SEARCH% is used with a special template to show the text to be changed, and the selected topics are then altered. One drawback is that search can show matches that will not be updated due to case differences. Other mismatches with actual rendered output are also possible as the approaches are so different.

The following shows some limitations of square bracket processing.

[[Old Topic]]  => [[NewTopic][Old Topic]]
[[old topic]]  => [[NewTopic][old topic]]
[[old t opic]] => not changed
[[OldTopic]]   => [[NewTopic]]

-- TWiki:Main.MikeMannix - 27 Dec 2001

Manage Users

Register users on your TWiki site; change/reset/install passwords; remove user accounts

Authentication and Access Control

Register User

Change, Reset and Install Passwords

  • ChangePassword is for users who remember their password
  • ResetPassword is for users who do not remember their password; they are asked to send a request to the site administrator to install a new password
  • InstallPassword is for the site administrator to install a password

Removing User Accounts

To remove a user account:

  1. Edit the data/.htpasswd file to delete their entry (only applies if you are using a .htpasswd file)
  2. Remove the FredQuimby line from the Main.TWikiUsers topic
  3. Remove user from all groups and from all the ALLOWWEB/ALLOWTOPIC... declarations, if any.
    Note: Otherwise this is a security hole as the first one to re-register with this name will be granted the permissions of the previous user.
  4. [optional] Remove their topic files: data/Main/FredQuimby.txt and data/Main/FredQuimby.txt,v

Note: Consider leaving the user topic file in place so their past signatures and revision author entries don't end up looking like AnUncreatedTopic?. If you want to make it clear the user is inactive on your site (e.g. PeterThoeny) or has been banished add a note to that effect and write protect the page (TWikiAccessControl). The existance of the UserName topic prevent that user name from being re-used.

-- TWiki:Main.MattWilkie - 21 Jul 2003
-- TWiki:Main.PeterThoeny - 15 Aug 2004

Managing Webs

Adding webs is a web based operation; renaming and deleting webs are manual operations done directly on the server

Overview

A TWikiSite is divided into webs; each one represents one subject, one area of collaboration. Administrators can add/rename/delete webs.

Choose Web Template

There are two methods used to create a new web. First you can use a specially designed TemplateWeb. This is an invisible web that begins with an underscore "_" character. All topics in the _default template web will be copied into your new web.

The second method is to use an existing web as a template web. This may be useful if you already have a web that you like to use as a starting point. Only topics that have names beginning with Web... (like "WebHome", "WebNotify", etc.) are copied.

In either case you will want to be sure to verify that your new web has all the custom modifications that you desire.

Adding a New Web

Create a new web by filling out this form. Note: It is not recommended to create a new web for each little project. You can organize content within a web using TWikiForms and FormattedSearch. Cross-linking topics and search is easier if there are only a few larger webs.
Name of new web: Enter a short name of up to 10 characters. The name must start with an upper case letters, followed by optional upper or lower case letters or numbers
Based on web: Select a TemplateWeb
Web color: Enter a StandardColors code for the web
Description:
 
 

Enter a short description of the web. Write Web.TopicName instead of just TopicName if you include links. This will list the web in the SiteMap (leave field empty if you prefer not to update the directory.)
Use to...
 

Continue the sentence describing the intended use. This is also for the SiteMap
Exclude web from "search all": No   Yes Specify if you want to exclude the web from a "search all webs" search. Note that the SiteMap will not list the web if you select Yes.
 

Notes:

  • Attachments will NOT get copied over along with their topics
  • The manage script while creating the new web will update the following variables in the WebPreferences: WEBBGCOLOR, SITEMAPLIST, SITEMAPWHAT, SITEMAPUSETO and NOSEARCHALL. These variables are used to dynamically generate the SiteMap
  • This script does not edit the TWiki.TWikiPreferences file to update the WIKIWEBLIST. This must be done by hand
  • As of TWiki Release 01 Sep 2004, a web name can be a WikiWord. Prior to that it could be only UPPER or UPPERlower. A side effect of this is that if you do use a wiki name, %WEB% must be written as <nop>%WEB% or else it will try to link to a non-existing topic of that name

Renaming or Deleting a Web

Renaming or deleting a web requires direct access to the installation files on the host server. There are currently no browser-based equivalents of the Rename/move/delete topic tools for working with webs.

  1. Prepare your site: Search each web for links to the target web, searching topic text for Oldwebname., including the dot so you"ll find references like Oldwebname.SomeTopic
    • Make changes as required, to Newwebname.SomeTopic or better yet, to %MAINWEB%.SomeTopic
  2. Edit the TWikiPreferences topic: Rename or delete the web from the WIKIWEBLIST variable
  3. Login to the UAIWiki server, via Telnet or FTP
  4. Go to twiki/data and rename or remove the web directory
  5. Go to twiki/templates and rename or remove the web directory if present
  6. Go to twiki/pub and rename or remove the web directory if present

Renaming the MAINWEB

If you plan to rename the Main web, remember that TWiki stores user and group topics in %MAINWEB%, default named Main. That means, every WikiName signature - Main.SomeUserName - points to it and would need updating (unless the variable, %MAINWEB%.SomeUserName, is used throughout).

-- TWiki:Main.MikeMannix - 14 Sep 2001
-- TWiki:Main.PeterThoeny - 07 Apr 2002
-- TWiki:Main.GrantBow - 16 Jan 2003

Merged into TWikiMetaData - this topic to be rolled back.

Meta Data Rendering

Various meta data can be stored in topics - MetaDataDefinition

This is rendered using the %META% variable. This is mostly used in the view, preview and edit scripts.

At present support is fairly basic:

Variable usage: Comment:
%META{"form"}% Show form data, see Form Templates
%META{"attachments"}% Show attachments, excluding hidden ones. Options:
all="on": Show all attachments i.e. including hidden ones
%META{"moved"}% Details of any topic moves
%META{"parent"}% Show topic parent. Options:
dontrecurse="on": By default recurses up tree, this has some cost.
nowebhome="on": Suppress WebHome.
prefix="...": Prefix that goes before parents, but only if there are parents, default "".
suffix="...": Suffix, only appears if there are parents, default "".
separator="...": Separator between parents, default is " > ".

Possible future additions:

  • Rendering of form data to alternate formats e.g. bullet lists
  • Specify a template to be used for rendering

-- JohnTalintyre? - 29 Aug 2001
-- PeterThoeny - 10 Jan 2002

MoveTopic (01 Sep 2001 - 07:38 - r1.2 - MikeMannix?)
ManagingTopics can be used to move a topic from one Web to another. One specialised use of this is DeleteWeb?.

TWikiGuest

Welcome TWikiGuest?,
this is your personal part of the UAIWiki Web. If you username does not show up in RealMembersGroup? you have not yet been approved to edit pages. Once you have been fully registered you can modify this page and any other in the site to help create a central resource for UAI topics. See WantedPages for articles that need to be created most urgently or create your own based on your research area.

About TWikiGuest

Useful Starting Links

Personal Preference Variables

You can modify these settings to personalize your Twiki usage Personal Preferences (details in TWikiVariables)
  • Show tool-tip topic info on mouse-over of WikiWord links, on or off: (see details in TWikiPreferences)
    • Set LINKTOOLTIPINFO = off
  • Horizontal size of text edit box:
    • Set EDITBOXWIDTH = 70
  • Vertical size of text edit box:
    • Set EDITBOXHEIGHT = 22
  • Style of text edit box. width: 99% for full window width (default), width: auto to disable.
    • Set EDITBOXSTYLE = width: 99%
  • Optionally write protect your home page: (set it to your WikiName)
    • Set ALLOWTOPICCHANGE =

Related topics

PatternSkin (30 Aug 2004 - 15:32 - r1.13 - ArthurClemens?)

Pattern skin

PatternSkin is developed to provide a CSS based default look and feel for TWiki - flexible and W3C-compliant. Its layout and color scheme are designed to provide a nice, clean and productive editing environment. For use in corporate or perhaps in personal websites it should be fairly easy to tune the looks or even create a PatternSkin-based new skin.

Screen Shot

Click for full screen image

Supported browsers

PatternSkin has been tested successfully on the following browsers:

  • Windows
    • Internet Explorer 6.0, 5.5 (note: Explorer 5.0 is not supported: will function but shows visual quirks)
    • Mozilla/Firefox
  • Mac OS X
    • Safari 1.2
    • Mozilla/Firefox

Not tested, but will probably work (let me know):

  • *nix
    • Mozilla/Firefox

Installation

Note: You do not need to install anything on the browser to use this skin. The following instructions are for the administrator who installs the skin on the server where TWiki is running.

Note 2: PatternSkin is included with TWiki by default. Use the following instructions only if you are upgrading PatternSkin.

Troubleshooting

If you have set the SKIN variable setting to pattern and you still don't see the layout as on the screenshot, a few settings in may have been disabled.

Check these variables here:

If TWIKILAYOUTURL or TWIKISTYLEURL don't give a value or point to non-existing files, check in TWikiPreferences that the following variables do exist and that they are set to on:

   * %TWIKIWEB%.PatternSkin settings:
      * Set TWIKILAYOUTURL = %PUBURL%/%TWIKIWEB%/PatternSkin/layout.css
      * Set TWIKISTYLEURL = %PUBURL%/%TWIKIWEB%/PatternSkin/style.css

If this still does not work, contact the administrator who installs skins.

For further troubleshooting and feedback, go to TWiki:Plugins/PatternSkinDev.

Creating your own look

It is easy to tune the look and feel of PatternSkin by changing the color and space (margin, padding) settings in the Style Sheet files.

You may also choose to radically change the look and create a PatternSkin-based new skin. This is easier than to create a skin by writing new template files; you can concentrate on how things should look instead of what elements should get displayed.

You can either:

  • Change the layout.css and style.css attachment files for this topic (upload updated versions)
  • In TWikiPreferences, point the variables TWIKILAYOUTURL and TWIKISTYLEURL to other attachments, perhaps in another topic (your new skin topic?)

See for practical details: PatternSkinCustomization
The CSS classes that PatternSkin uses are documented in PatternSkinCss.

Customization

See: PatternSkinCustomization, PatternSkinPalette

Further reading

Skin Info

Description: Provides a CSS based default look and feel for TWiki - flexible and W3C-compliant
Screenshot: Click for full screen image
Base Name: pattern
Skin Author: TWiki:Main/ArthurClemens
Skin Version: 28 Aug 2004 (v1.0.9)
History:  
28 Aug 2004: v.1.0.9 - CAIRO RELEASE VERSION - Removed twikiTopic div from attach template
24 Aug 2004: v.1.0.8 - Fix for disabled TablePlugin; added plain.pattern.tmpl
23 Aug 2004: v.1.0.7 - Change to checkboxes in edit and preview screen; removed REVINFO at bottom; style changes
22 Aug 2004: v.1.0.6b - Removed files from zip that are now part of the TWiki distribution; removed .DS_Store files
17 Aug 2004: v.1.0.6 - Support for twikiMoved css class
17 Aug 2004: v.1.0.5 - Fix for not showing SEARCHSTRING
16 Aug 2004: v.1.0.4 - Fixes search results layout with noheader="on"
14 Aug 2004: v.1.0.3 - Update to attach template, css fix to edit template
14 Aug 2004: v.1.0.2 - Fixes print template, table paddings in topics, minor changes to style.css
13 Aug 2004: v.1.0.1 - Updated /data/TWiki/WebLeftBarPersonalTemplate and style.css
08 Aug 2004: Initial version (v1.0.0)
Dependencies:  
Skin Home: http://TWiki.org/cgi-bin/view/Plugins/PatternSkin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/PatternSkinDev
Download: http://TWiki.org/cgi-bin/view/Plugins/PatternSkin

Related topics

See also Further reading on this page.

Other skins:

Feedback

Leave remarks, suggestions and other feedback in TWiki:Plugins.PatternSkinDev.

-- TWiki:Main/ArthurClemens - 28 Aug 2004

Css elements in PatternSkin

This page is a reference for all CSS classes used in PatternSkin.

The PatternSkin stylesheet is divided in two files:

  • layout.css: positioning of block elements on the page
  • style.css: appearance of blocks and all other page elements

If you want to learn how to create your own look or skin based on PatternSkin, read further in PatternSkin.

Naming conventions

PatternSkin follows the naming conventions used in TWiki core code: all TWiki class names have the prefix twiki: twikiEditPage, twikiTopicAction, etcetera. ID names are not used, only class names, to allow multipe class names. See also: TWikiCss.

Namespaces

PatternSkin uses namespaces for templates, by adding one (sometimes two - multiple) class names to the template's body tag.

  • The body tag in view.pattern.tmpl for instance has the class name "twikiViewPage": <body class="twikiViewPage">. All CSS elements specific to the view template thus can be defined as .twikiViewPage .someClassName.
  • All templates that are not the view template have the body class name "twikiNoViewPage". That makes it easy to give all of these pages a different layout in one sweep (smaller or wider margins for instance). Template edit.pattern.tmpl uses <body class="twikiNoViewPage twikiEditPage">.

body class names

  • .twikiViewPage
  • .twikiViewPage .twikiPrintPage
  • .twikiNoViewPage
  • .twikiNoViewPage .twikiEditPage
  • .twikiNoViewPage .twikiAttachPage
  • .twikiNoViewPage .twikiChangeFormPage
  • .twikiNoViewPage .twikiDiffPage
  • .twikiNoViewPage .twikiRenamePage
  • .twikiSearchResultsPage

Layout classes

  • General
    • .twikiLeft - a left floating element
    • .twikiRight - a right floating element
    • .twikiClear - to clean up either of these floats: put immediately after the containing block
    • .twikiHidden - hidden element

  • TWiki block elements
    • .twikiMiddleContainer - holder for twikiMain and twikiLeftbar
    • .twikiLeftBar - left bar area
    • .twikiLeftBarContents - used for left menu
    • .twikiMain - holder of twikiToolbar, twikiTopic, twikiAttachments, etc.
    • .twikiTopBar - top bar area
    • .twikiBottomBar - bottom bar area

  • Layout adjustments on specific pages
    • .twikiNoViewPage .twikiMain
    • .twikiPrintPage .twikiMain
    • .twikiPrintPage .twikiBottomBar

Style classes

  • .twikiMiddleContainer - holder for twikiMain and twikiLeftbar
  • .twikiMain - holder of twikiToolbar, twikiTopic, twikiAttachments, etc)
  • .twikiTopBar - top bar area
  • .twikiTopBarContents - logo, go box
  • .twikiLeftBar - left bar area
  • .twikiWebIndicator - shows current Web name; background of color %WEBBGCOLOR%
  • .twikiLeftBarContents - used for left menu (a bullet list)
  • .twikiLeftBarPersonal - block of personal links (included topic %MAINWEB%.%USERNAME%LeftBar)
  • .twikiBottomBar - bottom bar area
  • .twikiBottomBarContents - copyright
  • .twikiTopic
  • .twikiAttachments - attachment table; used in template attachtables.tmpl
  • .twikiForm - WebForm table; used in template attachtables.tmpl
  • .twikiTopicAction - actions buttons at bottom of page; holder of table with buttons
  • .twikiTopicActionSecondary - second layer above twikiTopicAction (for instance in Preview)
  • .twikiTopicActionHelp - help text row
  • .twikiCancelCol - table columns (td) for cancel button
  • .twikiSubmitCol - table columns (td) for submit button
  • .twikiAddCol - table columns (td) for additional button/link (for instance: "Move attachment")
  • .twikiSeparator - separator character
  • .twikiToc - topic contents (%TOC%)
  • .twikiTocTitle - title of TOC (%TOC{title="Contents:"}%)
  • .twikiTopicInfo - revision (%REVINFO%) and moved (%META{"moved"}%) info
  • .twikiRevInfo - revision info (top and bottom of page)
  • .twikiTopicFooter - used for breadcrumb (twikiHomePath)
  • .twikiHomePath - breadcrumb
  • .twikiToolBar - action buttons at top of topic (a bullet list), revision info
  • .twikiPageNav - links "end of topic" and "to top"
  • .twikiSearchBox - go box and current page in top bar
  • .twikiHelp - help text
  • .twikiBroadcastMessage - BROADCASTMESSAGE
  • .twikiAlert - red
  • .twikiGrayText - grayed out text, literally gray
  • .twikiSmall - styled "small"
  • .twikiNewLink - style of links to yet non-existent pages (not used)

  • Table class names (emitted from TablePlugin)
    • .twikiSortedAscendingCol - sortable table column header that is sorted ascending (uses TablePlugin)
    • .twikiSortedDescendingCol - ditto sorted descending
    • .twikiFirstCol
  • Other table class names
    • .twikiVersatileTable - table used in various places (Attach, Rename, Changeform)
    • .twikiVersatileTable .twikiMainCol - table column that is the most important part of the table
    • .twikiVersatileTable .twikiOldCol - table column with 'old' appearance, for instance the old attachment or the old topic name
    • .twikiVersatileTable .twikiHelpCol - table column with help texts

  • Search
    • .twikiNew - emitted from Search.pm and Changes.pm with the text NEW
    • .twikiSummary - summary text with search results
    • .twikiSearchResults - the big block of all results
    • .twikiSearchResultsHeader - top of block, styled with %WEBBGCOLOR%
    • .twikiSearchResults .twikiTopRow - top of one result, with link, author, revision
    • .twikiSearchResults .twikiBottomRow - result summary
    • .twikiSearchResults .twikiAlert - used with "locked" text
    • .twikiSearchResultCount - result count
    • .twikiBookViewList - the big block of all results with book view option

  • Form elements
    • .twikiCheckbox - styled checkbox
    • .twikiRadioButton
    • .twikiSubmit - submit button (in twikiTopicAction this is the darkest button; in twikiTopic it has a lighter color)
    • .twikiButton - general button (in Rename/Delete: clear/select all checkboxes)
    • .twikiSecondary - button next to submit button (same appearance as twikiButton)
    • .twikiTertiary - button at far right (blue color)
    • .twikiCancel - cancel button
    • .twikiEditPage .twikiFormHolder - constrains the width of the textarea
    • .twikiChangeFormButton - emitted from Form.pm, button to change the WebForm - styled as link
    • .twikiEditForm - emitted from Form.pm, editable WebForm table
    • .twikiEditFormTextField - emitted from Form.pm, input textfield in twikiEditForm
    • .twikiSig - signature copy field

  • Preview
    • .twikiPreviewPage .twikiPreviewArea - holder of previewed topic text

  • Attach
    • .twikiAttachPage .twikiNotes - holder of help text
    • .twikiAttachPage .twikiPrevious - attachment table of previous versions

  • Diff
    • .twikiDiffPage .twikiDiffTable - block of revisions; emitted from RDiff.pm (also all diff classes below)
    • .twikiDiffPage .twikiDiffDeletedHeader
    • .twikiDiffPage .twikiDiffDeletedMarker
    • .twikiDiffPage .twikiDiffDeletedText
    • .twikiDiffPage .twikiDiffAddedHeader
    • .twikiDiffPage .twikiDiffAddedMarker
    • .twikiDiffPage .twikiDiffAddedText
    • .twikiDiffPage th.twikiDiffChangedHeader
    • .twikiDiffPage .twikiDiffChangedText
    • .twikiDiffPage .twikiDiffUnchangedText
    • .twikiDiffPage .twikiDiffLineNumberHeader

CSS tags emitted from TWiki core code

See: TWikiCss

Layout per template

View template

CSS layout in View template

-- TWiki:Main.ArthurClemens - 08 Aug 2004

Customization of PatternSkin

This page describes ways to change the layout, fonts and colors of PatternSkin.

Your own TWiki look

You can easily create your own TWiki look by attaching modified css files to your home page:

  • If you want to change the layout of the page, download layout.css from PatternSkin
  • If you want to change the spacing or colors, download style.css from PatternSkin
  • modify the CSS in either style sheet, using tips from this page
  • attach your modified layout.css and/or style.css to your home page
  • as shown below, add the USERLAYOUTURL and USERSTYLEURL settings to your home page
   * Personal TWiki.PatternSkin CSS settings
      * Set USERLAYOUTURL = %PUBURL%/%MAINWEB%/%WIKINAME%/layout.css
      * Set USERSTYLEURL = %PUBURL%/%MAINWEB%/%WIKINAME%/style.css

Screen parts

The PatternSkin view template uses four screen parts:

  • The topic part - contains besides the topic content: action buttons, form table, attachment table, topic info
  • Top bar - used for a logo, contains Go box
  • Left bar - site and web navigation, contains a personal link block; may contain a Go box
  • Bottom bar - copyright, disclaimer

These parts are dynamically included topics:

  • Top bar: WebTopBar
  • Left bar: included topic WebLeftBar (one WebLeftBar topic per web)
    • Personal links block: Main.%USERNAME%LeftBar. Your own personal leftbar: Main.guestLeftBar
  • Bottom bar: included topic WebBottomBar

Top bar

The top bar is mainly used as branding space. To change the screen room for the logo, see below, Customizing the logo.

Left bar

The menu items are css-formatted bullet lists. So in WebLeftBar you write:

   * *Group*
   * [[SomeTopic][Link 1]]
   * [[AnotherTopic][Link 2]]
   * [[ThirdTopic][Link 3]]

The left bar may contain a Go box instead of the top bar. Use:

   * <input type="text" name="topic" size="16" />

The personal left bar block is formatted like the rest of the left bar.

Putting the left bar at the right

If you have a low screen resolution of say, 640 by 480 pixels, it can be useful to put the left bar "out of the way", at the right side of the page - at the cost of a horizontal scroll bar to access the left (now right) bar. This CSS does this:

Add this to layout.css:
.twikiMain {
   margin-left:0px;
}
.twikiLeftBar {
   margin-left:100%;
}
.twikiBottomBar {
   margin-left:1em;
   margin-right:0;
   padding:0;
}
Add this to style.css:
.twikiMain {
   padding-left:1em;
   padding-right:1em;
}
.twikiBottomBarContents {
   padding-left:0em;
}

This CSS is also attached to this topic, LowRes.css. To use this style, add this to your home page:

   * Personal TWiki.PatternSkin CSS settings
      * Set USERLAYOUTURL = %PUBURL%/%SYSTEMWEB%/PatternSkinCustomization/LowRes.css

Bottom bar

The bottom bar contains the copyright disclaimer, but may contain other information, perhaps a web list.

Customizing the logo

The top bar is 60 pixels high, and has a padding of 5 pixels on top, bottom and left, so the logo should be 50 pixels high. If your logo image has a different size, you can either alter the padding in style.css (.twikiTopBarContents) or change the top bar height in layout.css (look for the comment setting the height of the top bar).

You can also choose to set a background image for the top bar. In style.css, add this to .twikiTopBar:

   background-position:top left;
   background-attachment:fixed;
   background-repeat:no-repeat;
   background-image:url(http://absolute_path_to_your_image);
and set the correct image file path.

Fonts

Font style

Font styles are defined in style.css in these places:

html body {
   font-family:"Lucida Grande", verdana, lucida, helvetica, sans-serif;
}
h1, h2, h3, h4, h5, h6 {
   font-family:"Lucida Grande", helvetica, lucida, verdana, sans-serif;
}
textarea {
   font-family:monospace;
}
input, select {
   font-family:verdana,arial,sans-serif;
}
.twikiSeparator {
   font-family:Arial,sans-serif;
}
.twikiEditPage .twikiSig input {
   font-family:monospace;
}

Font size

Font sizes in PatternSkin are scalable. This means that even on Windows Explorer, the text in the browser can scale with the user settings (in contrast to many sites where texts have a fixes pixel size, these cannot be changed by the user).

Scalable text is a big accessibility asset. If you notwithstanding want to have a fixed font, or if you want to set the default size smaller or bigger, the easiest way is to make a new entry for body, below the 2 other entries:

html body {
   ... (keep)
}
html>body {
   ... (keep)   
}
html body {
   font-size:11px;
}

Colors

                                                

To create a customised palette of colors, see PatternSkinPalette.

Tables

Tables in topic text

If you have TablePlugin installed, tables in topics take on the properties from TABLEATTRIBUTES. Without TablePlugin (if not installed, or disabled in TWikiPreferences under DISABLEDPLUGINS), the tables have a default appearance that is hardcoded in Render.pm. Styles of topic text tables are not set in a style sheet. If you want to have control over the design of tables, for instance if you work with a style guide, you should add table styles under .twikiTopic. See for an example below.

Topic text table example

This is an example css to give tables in topic text a similar appearance. This will override settings in TablePlugin. This code should be added below the other .twikiTopic code in style.css:

.twikiTopic table {
   border-collapse:collapse;
   padding:0px;
   border-spacing:0px;
   empty-cells:show;
   border:0px;
}
.twikiTopic table th {
   background-color:#ccc;
   padding:0.5em 1em;
}
.twikiTopic table td {
   border:1px solid #eee;
}
/* override hardcoded font color */
.twikiTopic table font {
   color:#1e5bbd;
}
.twikiTopic table th a:link,
.twikiTopic table th a:visited {
   color:#1e5bbd;
   text-decoration:none;
}
/* don't show hover background color because we have a table header background */
.twikiTopic table th a:hover {
   background-color:transparent;
   text-decoration:underline;
   border-width:1px;
}
/* no underline if a sort indicator (line) is displayed */
.twikiTopic table th.twikiSortedDescendingCol a:hover,
.twikiTopic table th.twikiSortedAscendingCol a:hover {
   text-decoration:none;
}
/* hide sort icons */
.twikiTopic table th img,
.twikiTopic table th a:link img,
.twikiTopic table th a:visited img {
   display:none;
}

Attachment table, Form table

The appearance of the form table and the attachment table are set in style.css under .twikiForm and .twikiAttachments. Text in these tables is set to wrap, so often the dates are wrapped to two lines. If you prefer to have text on one line and are not disturbed by an extra wide attachment table (or when you screen resolution is big enough), add this code to .twikiAttachments td, .twikiForm td {:

   white-space:nowrap;

Other templates

Other templates than view use the style .twikiVersatileTable for, as the name says, tables with versatile functions. Versatile tables appear a little diffent in each template page (differences are created using multiple classes). Versatile tables are mostly used to format forms to highlight important parts and to dim less important parts. See style.css for specific settings for each template.

-- TWiki:Main.ArthurClemens - 28 Aug 2004

PatternSkinPalette (29 Aug 2004 - 23:18 - r1.2 - ArthurClemens?)

PatternSkinPalette

                                                

This page gives an overview of the colors used by PatternSkin and describes where to change them to create your own style.

Create your own colors

To create a customised set of colors for PatternSkin

   * Plugins.PatternSkin CSS Settings (change colour palette)
      * Set USERSTYLEURL = %PUBURL%/%MAINWEB%/%WIKINAME%/PatternSkinPalette.css

You can also change the colors in a modified version of style.css. See PatternSkinCustomization for instructions.

Colors overview

Text colors

#e24628 header h1
#990000 header h2, h3, h4, h5, h6
#F3EDE7 background header h2
#8490A1 grayed out text .twikiGrayText
#1e5bbd link :link, :visited
#b4d5ff background hover link (note: the link color becomes #1559B3 on hover) :link:hover
#666666 visited link in topic text .twikiTopic a:visited
#7A4707 code pre, code, tt
#000000 body text

Page colors

#f8f8f8 page body
#ffffff main page .twikiMain
#dddddd main page border .twikiMain

Left bar

#880000 body text in left bar .twikiLeftBar
#22638C top border left bar contents .twikiLeftBarContents
#DFEDFD personal left bar background .twikiLeftBarPersonal
#cccccc personal left bar border .twikiLeftBarPersonal

Forms

Action buttons

View page

#98A2B0 action buttons background view page .twikiTopicAction
#ffffff action buttons text and links
#cccccc action buttons links bottom border

Non-view pages

#22638c action buttons background non-view page .twikiTopicAction
#698FA8 action buttons links bottom border
#DFEDFD action buttons secondary row (top) background .twikiTopicActionSecondary
#22638c action buttons secondary row text
#A3BCF1 action buttons secondary row links bottom border
#D4E6FC action buttons submit options .twikiSubmitOptions
#B6C6D9 action buttons submit options border .twikiSubmitOptions

Buttons

#041D3A submit button .twikiSubmit
#f2f2f2 button background .twikiSubmit
#05264D submit button .twikiButton
#E8F1F9 topic submit button .twikiTopic .twikiSubmit
#B9D6FA secondary submit button .twikiTopic .twikiSubmit
#eeeeee cancel button .twikiCancel

Edit page

#FCFAF7 textarea background .twikiEditPage textarea
#888888 .twikiChangeFormButton
#E0E9F7 edit form header background .twikiEditPage .twikiEditForm th
#F5F7FD edit form row background .twikiEditPage .twikiEditForm td
#EFEDEA signature area background .twikiEditPage .twikiSig input
#cccccc help text .twikiEditPage .twikiHelp
#990000 help text code text .twikiEditPage .twikiHelp code

Versatile table

#F5F7FD background .twikiVersatileTable td
#E0E9F7 background .twikiVersatileTable th
#ffffff background main part .twikiVersatileTable .twikiMainCol
#E9E9E9 background .twikiVersatileTable .twikiOldCol
#E9E9E9 background .twikiVersatileTable .twikiOldCol
#8490A1 help text .twikiHelpCol

Attachment and form table

#888e9c text color
#000000 text color previous attachments .twikiAttachPage .twikiPrevious .twikiAttachments table
#cccccc borders
#334455 sort indicator line .twikiAttachments a, .twikiForm a
#ffffff background color
#f1f1f1 background color view page
#DADADA sort indicator background .twikiAttachments th.twikiSortedAscendingCol

Diff pages

#FF3000 deleted header background .twikiDiffPage .twikiDiffDeletedHeader, -twikiDiffDeletedMarker
#FFEAE5 deleted header background .twikiDiffPage .twikiDiffDeletedText
#3DB234 added header background .twikiDiffPage .twikiDiffAddedHeader, -twikiDiffAddedMarker
#EBF7EA added header background .twikiDiffPage .twikiDiffAddedText
#98A2B0 changed header and row background .twikiDiffPage th.twikiDiffChangedHeader
#dddddd .twikiDiffPage .twikiDiffLineNumberHeader

Various colors

#9E9E70 horizontal line hr
#cccccc left bar horizontal line hr
#dddddd TOC border .twikiToc
#666666 TOC title .twikiToc .twikiTocTitle
#F3EDE7 background search results header .twikiSearchResultsHeader, .twikiSearchString
#cccccc bottom border search results header .twikiSearchResultsHeader, .twikiSearchString
#ff0000 alert .twikiAlert
#990000 alert in search results .twikiSearchResults .twikiSummary .twikiAlert
#22638c search results in book view, top row background .twikiBookViewList .twikiTopRow
#cccccc search results in book view, top row .twikiBookViewList .twikiTopRow
#ffff00 broadcast message background .twikiBroadcastMessage
#ff0000 broadcast message bold text .twikiBroadcastMessage strong

Descending color table

rgb colour sample
#000000  
#041d3a  
#05264d  
#333333  
#334455  
#880000  
#990000  
#844f0c  
#22638c  
#666666  
#3db234  
#1559b3  
#1e5bbd  
#808080  
#888888  
#e24628  
#698fa8  
#9e9e70  
#888e9c  
#8490a1  
#ff0000  
#ff3000  
#98a2b0  
#aaaaaa  
#bbbbbb  
#a3bcf1  
#cccccc  
#ffff00  
#b9d6fa  
#dadada  
#b4d5ff  
#dddddd  
#e9e9e9  
#e0e9f7  
#efedea  
#f3ede7  
#dfedfd  
#eeeeee  
#ebf7ea  
#efefef  
#ffeae5  
#e8f1f9  
#f1f1f1  
#f2f2f2  
#f8f8f8  
#f5f7fd  
#fcfaf7  
#ffffff  

-- ArthurClemens? - 29 Aug 2004

Peter Thoeny is the author of TWiki and therefore a TWiki:Codev/CoreTeam member and a TWikiContributor.

See home page at TWiki:Main/PeterThoeny

Plain Skin

The plain skin can be used to get the rendered topic text without any page decoration.

This skin is part of every TWiki distribution.

Skin Info

Description: The plain skin can be used to get the rendered topic text without any page decoration
Screenshot: Click for full screen image
Base Name: plain
Skin Author: TWiki:Main/PeterThoeny
Skin Version: 27 Jul 2004 (v1.000)
Change History:  
27 Jul 2004: Initial version (v1.000)
Dependencies:  
Skin Home: http://TWiki.org/cgi-bin/view/Plugins/PlainSkin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/PlainSkinDev

Note: The Description, Screenshot and Base Name rows are needed by the TWikiSkinBrowser

Related topic: TWikiSkins, TWikiSkinBrowser

-- TWiki:Main/PeterThoeny - 27 Jul 2004

Background Image for Preview

Preview looks like the real page, but the links leed to an oops dialog warning users of not yet saved topics. In addition, a background with a "PREVIEW" watermark is shown to have visual clue that you are previewing a topic. You can change the background image by specifying the name of an attached background image file in the PREVIEWBGIMAGE variable in the TWikiPreferences.

Remarks:

  • You also could attach a new image file to this topic.
  • You can override the PREVIEWBGIMAGE preference variable in your personal home page.

-- TWiki:Main.PeterThoeny - 02 Oct 2000

Print Skin

The print skin, useful to print pages with a small header and footer.

This skin is part of every TWiki distribution.

Skin Info

Description: The print skin, useful to print pages with a small header and footer
Screenshot: Click for full screen image
Base Name: print
Skin Author: TWiki:Main/PeterThoeny
Skin Version: 27 Jul 2004 (v1.000)
Change History:  
27 Jul 2004: Initial version (v1.000)
Dependencies:  
Skin Home: http://TWiki.org/cgi-bin/view/Plugins/PrintSkin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/PrintSkinDev

Note: The Description, Screenshot and Base Name rows are needed by the TWikiSkinBrowser

Related topic: TWikiSkins, TWikiSkinBrowser

-- TWiki:Main/PeterThoeny - 27 Jul 2004

Like Save but does not email people on the WebNotify notification list - same effect as checking "Minor changes, don't notify".

-- TWiki:Main.RandyKramer - 15 Aug 2004

Regular Expressions

Introduction

Regular expressions (REs), unlike simple queries, allow you to search for text which matches a particular pattern.

REs are similar to (but more poweful than) the "wildcards" used in the command-line interfaces found in operating systems such as Unix and MS-DOS. REs are used by sophisticated search engines, as well as by many Unix-based languages and tools ( e.g., awk, grep, lex, perl, and sed ).

Examples

compan(y|ies) Search for company, companies
(peter|paul) Search for peter, paul
bug* Search for bug, bugg, buggg or simply bu (a star matches zero or more instances of the previous character)
bug.* Search for bug, bugs, bugfix (a dot-star matches zero or more instances of any character)
[Bb]ag Search for Bag, bag
b[aiueo]g Second letter is a vowel. Matches bag, bug, big
b.g Second letter is any letter. Matches also b&g
[a-zA-Z] Matches any one letter (but not a number or a symbol)
[^0-9a-zA-Z] Matches any symbol (but not a number or a letter)
[A-Z][A-Z]* Matches one or more uppercase letters
[0-9]{3}-[0-9]{2}-[0-9]{4} US social security number, e.g. 123-45-6789
PNG;Chart Search for topics containing the words PNG and Chart. The ";" and separator is TWiki-specific and is not a regular expression; it is a useful facility that is enabled when regular expression searching is enabled.

Searches with "and" combinations

  • TWiki extends the regular expressions with an and search. The delimiter is a semicolon ;. Example search for "form" and "template": form;template

  • Use Google if your TWiki site is public. Example search for "form" and "template" at TWiki.org: site:twiki.org +form +template

Advanced

Here is stuff for our UNIX freaks: (copied from 'man egrep')

A regular expression is a pattern that describes a set of strings. Regular expressions are constructed analogously to arithmetic expressions, by using various operators to combine smaller expressions.

The fundamental building blocks are the regular expressions that match a single character. Most characters, including all letters and digits, are regular expressions that match themselves. Any metacharacter with special meaning may be quoted by preceding it with a backslash.

A bracket expression is a list of characters enclosed by [ and ]. It matches any single character in that list; if the first character of the list is the caret ^ then it matches any character not in the list. For example, the regular expression [0123456789] matches any single digit.

Within a bracket expression, a range expression consists of two characters separated by a hyphen. It matches any single character that sorts between the two characters, inclusive, using the locale's collating sequence and character set. For example, in the default C locale, [a-d] is equivalent to [abcd]. Many locales sort characters in dictionary order, and in these locales [a-d] is typically not equivalent to [abcd]; it might be equivalent to [aBbCcDd], for example.

Finally, certain named classes of characters are predefined within bracket expressions, as follows. Their names are self explanatory, and they are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:]. For example, [[:alnum:]] means [0-9A-Za-z], except the latter form depends upon the C locale and the ASCII character encoding, whereas the former is independent of locale and character set. (Note that the brackets in these class names are part of the symbolic names, and must be included in addition to the brackets delimiting the bracket list.) Most metacharacters lose their special meaning inside lists. To include a literal ] place it first in the list. Similarly, to include a literal ^ place it anywhere but first. Finally, to include a literal - place it last.

The period . matches any single character. The symbol \w is a synonym for [[:alnum:]] and \W is a synonym for [^[:alnum]].

The caret ^ and the dollar sign $ are metacharacters that respectively match the empty string at the beginning and end of a line. The symbols \< and \> respectively match the empty string at the beginning and end of a word. The symbol \b matches the empty string at the edge of a word, and \B matches the empty string provided it's not at the edge of a word.

A regular expression may be followed by one of several repetition operators:

? The preceding item is optional and matched at most once.
* The preceding item will be matched zero or more times.
+ The preceding item will be matched one or more times.
{n} The preceding item is matched exactly n times.
{n,} The preceding item is matched n or more times.
{n,m} The preceding item is matched at least n times, but not more than m times.

Two regular expressions may be concatenated; the resulting regular expression matches any string formed by concatenating two substrings that respectively match the concatenated subexpressions.

Two regular expressions may be joined by the infix operator |; the resulting regular expression matches any string matching either subexpression.

Repetition takes precedence over concatenation, which in turn takes precedence over alternation. A whole subexpression may be enclosed in parentheses to override these precedence rules.

The backreference \n, where n is a single digit, matches the substring previously matched by the nth parenthesized subexpression of the regular expression.

Render List Plugin

Render bullet lists in a variety of formats

Syntax Rules

RENDERLIST Variable

  • Place a %RENDERLIST{ <parameters> }% before any bullet list
    • The lists can be handcrafted, generated by another Plugin, a %TOC%, or the result of a FormattedSearch
  • Supported parameters:
    "name" or
    theme="name"
    Select a rendering theme
    focus="any text" Focus list on a bullet with specified text
    depth="2" Remove bullets with an indent greater then the depth. The depth is relative to the highlighted bullet in case focus is specified
  • Rendering themes can be defined by <name>_THEME Plugin settings
    • Each theme is defined by a comma separated list containing the render type and parameters required by that render type
    • There are different render types; this initial Plugin version has tree and icon render types
  • Format of the tree render type:
    • Set <name>_THEME = tree, <0/1 flag to suppress/show lines of first level>
  • Format of the icon render type:
    • Set <name>_THEME = icon, <0/1 flag to suppress/show lines of first level>, <icon width>, <icon height>, <spacer graph>, <T-line graph>, <I-line graph>, <L-line graph>, <icon image>
    • To define new Icon themes, attach images to this Plugin topic and set the parameters accordingly
  • Focus bullet list:
    • Search bullet list for text. If a bullet is found:
      1. Highlight text and remove [[][]] links on bullet where text is found
      2. Reduce bullet list to show only its parents and children
    • This is useful to maintain one large bullet list with links to team pages, representing the organization of a company. Each team page can INCLUDE the bullet list with focus set to itself.

Bullets

  • Use regular * bullets
  • Start with level one
    • Increase indentation only one level at a time
      • Like this
  • Decreasing indentation many levels at a time is OK
  • Wrap long text with continuation lines, the Plugin does not do that for you
    Align continuation lines with leading spaces linke this
  • You can specify an icon for a bullet of render type tree or icon:
    • Attach the icon to this Plugin topic, e.g. myicon.gif, or
    • Use one of the existing icons: globe.gif globe.gif, home.gif home.gif, virtualhome.gif virtualhome.gif, group.gif group.gif, persons.gif persons.gif, virtualpersons.gif virtualpersons.gif, person.gif person.gif, virtualperson.gif virtualperson.gif, email.gif email.gif, trend.gif trend.gif, folder.gif folder.gif, file.gif file.gif, doc.gif doc.gif, image.gif image.gif, pdf.gif pdf.gif, ppt.gif ppt.gif, sound.gif sound.gif, xls.gif xls.gif, zip.gif zip.gif, see.gif see.gif
    • Refer to an attached icon at the beginning of the bullet with:
      • icon:myicon Followed by normal bullet text

Examples

You type: You get: (simulated) You get: (if installed)
%RENDERLIST{"thread"}%
   * one
      * one.a
         * one.a.x
      * one.b
         * one.b.x
           continue
         * one.b.y
            * icon:person Tim
            * icon:person Mico
   * two
   * three

one
one.a
one.a.x
one.b
one.b.x
continue
one.b.y
Tim
Mico
two
three

one
one.a
one.a.x
one.b
one.b.x
continue
one.b.y
  Tim
  Mico
two
three

%RENDERLIST{"org"}%
   * one
      * one.a
         * one.a.x
      * one.b
         * one.b.x
           continue
         * one.b.y
            * icon:person Tim
            * icon:person Mico
   * two
   * three

  one
  one.a
  one.a.x
  one.b
  one.b.x
  continue
  one.b.y
  Tim
  Mico
  two
  three

  one
  one.a
  one.a.x
  one.b
  one.b.x
  continue
  one.b.y
  Tim
  Mico
  two
  three

%RENDERLIST{ "org" focus="one.b" }%
   * one
      * one.a
         * one.a.x
      * one.b
         * one.b.x
           continue
         * one.b.y
            * icon:person Tim
            * icon:person Mico
   * two
   * three

  one
  one.b
  one.b.x
  continue
  one.b.y
  Tim
  Mico

  one
  one.b
  one.b.x
  continue
  one.b.y
  Tim
  Mico

RenderListPlugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %RENDERPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Render bullet lists in a variety of formats

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Themes are named <SOMETHING>_THEME and contain a comma delimited list of render type with parameters:
    • Set THREAD_THEME = tree, 1
    • Set HOME_THEME = icon, 1, 16, 16, empty.gif, dot_udr.gif, dot_ud.gif, dot_ur.gif, home.gif
    • Set ORG_THEME = icon, 0, 16, 16, empty.gif, dot_udr.gif, dot_ud.gif, dot_ur.gif, home.gif
    • Set GROUP_THEME = icon, 0, 16, 16, empty.gif, dot_udr.gif, dot_ud.gif, dot_ur.gif, group.gif
    • Set EMAIL_THEME = icon, 0, 16, 16, empty.gif, dot_udr.gif, dot_ud.gif, dot_ur.gif, email.gif
    • Set TREND_THEME = icon, 0, 16, 16, empty.gif, dot_udr.gif, dot_ud.gif, dot_ur.gif, trend.gif
    • Set FILE_THEME = icon, 0, 16, 16, empty.gif, dot_udr.gif, dot_ud.gif, dot_ur.gif, file.gif

Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip RenderListPlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/RenderListPlugin.txt Plugin topic
    data/TWiki/RenderListPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/RenderListPlugin.pm Plugin Perl module
    pub/TWiki/RenderListPlugin/*.gif Image files for themes
  • Test if the installation was successful:
    • See if the above example works

Plugin Info

Plugin Author: TWiki:Main/PeterThoeny
Plugin Version: 21 Mar 2004 (V1.031)
Change History:  
21 Mar 2004: Internal change: Fixed inofficial function call
01 Mar 2004: Added FILE_THEME and folder/file icons
29 Dec 2003: Fixed rendering issue if focus bullet contains icon:name; added TREND_THEME
16 Dec 2003: Specify icons with icon:name syntax
11 Dec 2003: Added focus and depth parameters
05 Dec 2003: Fixed rendering issue with IE; added EMAIL_THEME
02 Dec 2003: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.005
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/RenderListPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/RenderListPluginDev

Related Topics: TWikiPreferences, TWikiPlugins, TWiki:Plugins/TreePlugin

-- TWiki:Main/PeterThoeny - 21 Mar 2004

Request for reset of password

Please only use this ResetPassword form in case you really forgot your password. Otherwise just change it using ChangePassword. Thank you.

Your WikiName: **
New password: **
Retype new password: **
     (Fields marked ** are required)

After submitting this form you will see a page with your new password appearing encrypted.

You will have to e-mail this information to the UAIWiki administrator, uaiwebmaster@gmail.com, who will set your account to use the new password.

FAQ:

I've problems with the WebSearch. There is no Search Result on any inquiry. By clicking the Index topic it's the same problem.

Answer:

That is an indication that UAIWiki can't find the egrep and fgrep commands on your system. Check the $egrepCmd and $fgrepCmd variables in twiki/lib/TWiki.cfg.

Back to: TWikiFAQ

-- TWiki:Main.PeterThoeny - 26 Jan 2001

Search Help

Basic Search Form

The WebSearch form offers basic search features:

  • Search field: Enter one or more keywords
  • All webs flag: Check the flag if you want to search all public webs, not just the current web
  • Scope: Select if you want to search the topic title, text body or both

The search is keyword based like in a typical search engine:

  • Specify word(s) you want to find
  • Multiple words form an AND search, intranet web service returns all pages that have the three words anywhere in the page
  • Optionally specify plus signs for AND search, like intranet +web +service
  • Enclose words in double quotes to form a literal search, like "web service"
  • Specify a minus sign to exclude a word, like soap -shampoo
  • Use double quotes if you want to search for a leading minus sign, like "-nowarn"
  • Stop words are excluded from a keyword search:
    • Stop words are common words and characters such as "how" and "where", defined in the SEARCHSTOPWORDS setting in the TWikiPreferences
    • If you want to search for a word in the stop word list, prefix the word with a plus sign
  • Example: To search for all topics that contain "SOAP", "WSDL", a literal "web service", but not "shampoo",
    enter this: soap +wsdl "web service" -shampoo

Advanced Search Form

The WebSearchAdvanced form offers more control over search.

TWiki supports three types of searches:

  • keyword: The basic search type
  • literal: Simple search where text is searched literally
  • regex: A RegularExpression search for power users

TWiki's regex search is a set of regular expression patterns:

  • Patterns are delimited by a semicolon
  • An AND search is performed for the list of patterns
  • An exclamation point preceeding a pattern indicates an AND NOT search; use it to exclude a pattern, like !web service
  • If you want to search for a semicolon or an exclamation point, escape them with a leading backslash, like \!shampoo
  • Example: To search for all topics that contain "SOAP", "WSDL", a literal "web service", but not "shampoo",
    enter this: soap;wsdl;web service;!shampoo

Formatted Searches

You can embed a nicely formatted search in a topic by using the %SEARCH{}% variable described in TWikiVariables.

Search Preferences

The TWikiPreferences has these settings:

  • SEARCHDEFAULTTTYPE: Default search type for search forms which calls the search script
  • SEARCHVARDEFAULTTYPE: Default search type for %SEARCH{} variable
  • SEARCHSTOPWORDS: List of stop words

-- TWiki:Main.PeterThoeny - 18 Jan 2004

FAQ:

What happens if two of us try to edit the same topic simultaneously?

Answer:

The second person gets a warning that the topic is currently being edited by another user. A topic gets locked automatically for some time (default is one hour) when you edit, preview or save the topic. If you get the lock warning you should wait until the lock is gone or contact the other person to ask if you can go ahead and break the lock. See also UnlockTopic.

Back to: TWikiFAQ

-- TWiki:Main.PeterThoeny - 27 Nov 2000

UAIWiki Site Map

Web UAIWiki Site Map Use to...
Main Home of Main web Search Main web Recent changes in the Main web Get notified of changes to the Main web The UAIWiki, be sure to see ... UAI researchers can use to colaborate and inform each other about ongoing research.
TWiki Home of TWiki web Search TWiki web Recent changes in the TWiki web Get notified of changes to the TWiki web Welcome, Registration, and other StartingPoints; TWiki history & Wiki style; All the docs... ...discover TWiki details, and how to start your own site.
Sandbox Home of Sandbox web Search Sandbox web Recent changes in the Sandbox web Get notified of changes to the Sandbox web Sandbox test area with all features enabled. ...experiment in an unrestricted hands-on web.
You can use color coding by web for identification and reference. This table is updated automatically based on WebPreferences settings of the individual webs. Contact uaiwebmaster@gmail.com if you need a separate collaboration web for your team. See also AdminTools.
Legend of icons:   Home of web = Go to the home of the web
Search web = Search the web
  Recent changes in the web = See recent changes in the web
Get notified of changes to the web = Subscribe to get notified of changes by e-mail

Site Usage Statistics

  • You can automatically generate usage statistics for all webs. To enable this:
    • Make sure variable $doLogTopicView, $doLogTopicSave and $doLogTopicUpload in wikicfg.pm are set. This will generate log entries in file twiki/data/log<date>.txt .
    • Topic WebStatistics must be present in all webs where you want to have statistics. You can use the topic in the Main web as a template.
    • Call the twiki/bin/statistics script from a cron job, once a day is recommended. This will update the WebStatistics topics in all webs.
    • Attention: The script must run as the same user as the CGI scripts are running, which is user nobody on most systems. Example crontab entry:
      0 0 * * * (cd /path/to/TWiki/bin; ./statistics >/dev/null 2>&1)
    • There is a workaround in case you can't run the script as user nobody : Run the utility twiki/bin/geturl in your cron job and specify the URL of the twiki/bin/statistics script as a parameter. Example:
      0 0 * * * (cd /path/to/TWiki/bin; ./geturl mydomain.com /urlpath/to/TWiki/bin/statistics >/dev/null 2>&1)
    • The twiki/bin/statistics script can also be executed as a CGI script, just enter the URL in your browser. Examples:
      • Update current month for all webs:
        http://mydomain.com/twiki/bin/statistics
      • Update current month for Main web only:
        http://mydomain.com/twiki/bin/statistics/Main
      • Update January 2000 for Main web:
        http://mydomain.com/twiki/bin/statistics/Main?logdate=200001

-- MikeMannix? - 01 Sep 2001

Slide Show Plugin

This Plugin converts a topic with headings into a slide show.

Introduction

There is already a defacto standard for presentations, why this Plugin? This Plugin makes sense for organizations that do already have lots of content in TWiki: It is easy to create a web based presentation that contains many links to related content. The Plugin does not try to compete with the bells and whistles of the other presentation program, but the markup of TWiki and other Plugins like TWiki:Plugins/ChartPlugin, TWiki:Plugins/GaugePlugin, TWiki:Plugins/SpreadSheetPlugin, TWiki:Plugins/TWikiDrawPlugin can be used to create an appealing presentation.

Any topic with headings can be converted into a slide show. Each slide starts with a "---++" heading. There are two modes to view a topic:

  • Normal topic view mode: Headings and text is shown in the usual TWiki rendering, representing the outline of the slide show. This mode is useful to print handouts.
  • Presentation mode: Each heading with text is shown as a slide; the format is based on a slide template. Navigation buttons are added to go to the "First", "Previous", and "Next" slide. Slide navigation is quick because it is done with anchor jumps to the same page.

You can start the presentation by clicking on the "Start presentation" button.

Syntax Rules

How to Create a Slide Show

  • Start with %SLIDESHOWSTART%
    • Use the optional template parameter to specify your own slide template topic, e.g. %SLIDESHOWSTART{ template="MyOwnSlideTemplate" }%
  • Create the slides. Start each slide with a "---++" heading and add text like paragraphs, bullets, tables and images.
    • Hint: Make sure to keep each slide short enough so that you do not need to scroll to see all text of a slide during the presentation.
    • Note: You can use any heading level you like, but use the same for all slides.
  • End your slide show with %SLIDESHOWEND%

How to Create Your own Slide Template

To create your own template topic, copy the "Default Slide Template" section below into your own slide template topic and customize it to your needs. It can be activated as the default template in the Plugin's TEMPLATE setting, or per slide show with the %SLIDESHOWSTART{ template="MyOwnSlideTemplate" }% setting.

  • Use an HTML table that defines a slide. For example, create one row for the slide title, another one for the slide text.
  • These keywords can be used:
    Keyword What it means
    %SLIDETITLE% The heading of the slide
    %SLIDETEXT% The text of the slide
    %SLIDENUM% The current slide number
    %SLIDEMAX% The last slide number
    %SLIDENAV% The navigation buttons for "First", "Previous", "Next" slide
    %SLIDENAVALL% The navigation buttons for "First", "Previous", "Next", "Last" slide
    %SLIDENAVFIRST% The navigation button for "First slide"
    %SLIDENAVPREV% The navigation button for "Previous slide"
    %SLIDENAVNEXT% The navigation button for "Next slide"
    %SLIDENAVLAST% The navigation button for "Last slide"
  • Only text between %STARTINCLUDE% and %STOPINCLUDE% is used for the template.

Example

This is a short example of a slide show. You should see a "Start presentation" button if this Plugin is installed:

Start Presentation

Slide 1: Silly Sample Slide Show


By TWiki:Main/PeterThoeny

San Jose, 17 Nov 2002

Slide 2: Agenda

  • Silly Introduction
  • Silly Feature
  • Silly Conclusion

Slide 3: Silly Introduction

  • why foo bar
  • blah blah

Comments

  • This text is not shown in the slide if HIDECOMMENTS is set to on.

Slide 4: Silly Feature

  • it's foo bar
  • more foo bar

Slide 5: Silly Conclusion

  • foo is bar
  • bar is foo

This text is not part of the slide show

SlideShowPlugin Global Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %SLIDESHOWPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Create web based presentations based on topics with headings.

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Hide text starting with a ---+++ Comments heading:
    • Set HIDECOMMENTS = on

Default Slide Template

The part between the rulers defines the default format of a slide:


TWiki Slide Show  %SLIDETITLE% %SLIDENAVNEXT% 

%SLIDETEXT%
%SLIDENAVALL%  Slide %SLIDENUM% of %SLIDEMAX% COPYRIGHT © 2013 by the contributing authors


Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip SlideShowPlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/SlideShowPlugin.txt Plugin topic
    data/TWiki/SlideShowPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/SlideShowPlugin.pm Plugin Perl module
    pub/TWiki/*.gif Various button image files
  • Test above example if the installation was successful.

Plugin Info

Plugin Author: TWiki:Main/PeterThoeny
Plugin Version: 21 Mar 2004 (V1.003)
Change History:  
21 Mar 2004: Internal change: Fixed inofficial function call
14 Dec 2002: Added %SLIDENAVALL% template keyword; added HIDECOMMENTS setting
23 Nov 2002: Added %SLIDENAVLAST% template keyword; using print Skin for presentation mode
19 Nov 2002: Added "Start presentation" and "End presentation" buttons; added %SLIDENAVFIRST%, %SLIDENAVPREV%, %SLIDENAVNEXT% template keywords
17 Nov 2002: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.005
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/SlideShowPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/SlideShowPluginDev

Related Topics: TWikiPreferences, TWikiPlugins

-- TWiki:Main.PeterThoeny - 21 Mar 2004

The Smilies Plugin :-)

Smilies are common in e-mail messages and bulletin board posts. They are used to convey an emotion, such as a smile :-) or a frown :-( . This plugin automatically converts certain smilies to a nice small icon.

Here is the list of smilies supported by this plugin. To add others, attach new icons to this topic and tweak the table below.

You type You see Emotion
:-) smile.gif "smile"
:) smile.gif "smile"
8-) cool.gif "cool!"
:cool: cool.gif "cool!"
:-I indifferent.gif "indifferent"
:( frown.gif "frown"
:-( frown.gif "frown"
:o redface.gif "embarrassment"
:D biggrin.gif "big grin"
:-D biggrin.gif "big grin"
;) wink.gif "wink"
;-) wink.gif "wink"
:p tongue.gif "stick out tongue"
:-p tongue.gif "stick out tongue"
:rolleyes: rolleyes.gif "roll eyes (sarcastic)"
:mad: mad.gif "mad!"
:eek: eek.gif "eek!"
:confused: confused.gif "confused"
 >:-) devil.gif "hehe!"
:devil: devil.gif "hehe!"
 >;-) devilwink.gif "hehe! (friendly)"
:devilish: devilwink.gif "hehe! (friendly)"
:-X sealed.gif "sealed lips"
:ok: thumbs.gif "thumbs up"
:yes: yes.gif "yes"
:no: no.gif "no"
:love: love.gif "in love"
:scull: scull.gif "scull"

SmiliesPlugin Global Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, for example, %INTERWIKIPLUGIN_SHORTDESCRIPTION%

  • One line description, shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Render smilies as icons, like  :-) for smile or  :cool: for cool!

  • Set DEBUG to 1 to get debug messages in data/debug.txt. Default: 0
    • Set DEBUG = 0

  • The name of the topic containig your Smilies. Default: TWiki.SmiliesPlugin

  • The way the emoticon is displayed. You can use $emoticon (e.g. :D), $url (e.g. %ATTACHURL%/biggrin.gif) and $tooltip (e.g. "big grin"). Default: <img src="$url" alt="$tooltip" title="$tooltip" border="0" />
      * #Set FORMAT = <img src="$url" alt="$emoticon" title="$emoticon" border="0" />

Plugin Installation Instructions

  • Download the ZIP file from the Plugin web (see below)
  • Unzip SmiliesPlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/SmiliesPlugin.txt Plugin topic
    data/TWiki/SmiliesPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/SmiliesPlugin.pm Plugin Perl module
    pub/TWiki/SmiliesPlugin/*.gif Plugin icon files
  • Test if the plugin is correctly installed:
    • You will see a series of icons on next line:
      smile smile cool! frown embarrassment big grin wink stick out tongue roll eyes (sarcastic) mad! eek! confused hehe! hehe! (friendly) sealed lips thumbs up yes no in love scull

Plugin Info

Plugin Author: TWiki:Main.AndreaSterbini, TWiki:Main.PeterThoeny
Plugin Version: 21 Aug 2004 (v1.003)
Change History:  
21 Aug 2004: Fixed tooltip for Netscape; added "sealed lips", "thumbs up", "yes" "no", "in love", "scull"
16 Feb 2004: Added "devil" and "devilwink" smilies (by TWiki:Main.CrawfordCurrie)
26 Feb 2003: Added "indifferent" smilie
20 Oct 2002: Fixed STDERR warning for non-initialized Plugin
20 Apr 2002: Improved performance; removed non-standard Plugin API dependencies; added standard plugin topic content -- TWiki:Main.PeterThoeny
23 Nov 2001: Added TOPIC and FORMAT setting
10 Jun 2001: Packaged into ZIP
28 Feb 2001: Initial version
CPAN Dependencies: none
Other Dependencies: none
Perl Version: 5.0
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/SmiliesPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/SmiliesPluginDev

Related Topics: TWikiPreferences, TWikiPlugins

-- TWiki:Main.AndreaSterbini - 28 Dec 2000
-- TWiki:Main.PeterThoeny - 21 Aug 2004

TWiki Spreadsheet Plugin

This Plugin adds speadsheet capabilities to UAIWiki topics. Formulae like %CALC{"$INT(7/3)"}% are evaluated at page view time. They can be placed in table cells and outside of tables. In other words, this Plugin provides general formula evaluation capability, not just classic spreadsheet functions.

Example:

Region: Sales:
Northeast 320
Northwest 580
South 240
Europe 610
Asia 220
Total: 1970

      Interactive example:

Formula: %CALC{""}%  
Result:     TWiki Guest

The formula next to "Total" is %CALC{"$SUM( $ABOVE() )"}%.
(you see the formula instead of the sum in case the Plugin is not installed or not enabled.)

Syntax Rules

The action of this Plugin is triggered by the %CALC{"..."}% variable, which gets rendered according to the built-in function(s) found between the quotes.

  • Built-in function are of format $FUNCNAME(parameter)
  • Functions may be nested, e.g. %CALC{"$SUM( R2:C$COLUMN(0)..R$ROW(-1):C$COLUMN(0) )"}%
  • Functions are evaluated from left to right, and from inside to outside if nested
  • The function parameter can be text; a mathematical formula; a cell address; or a range of cell addresses
  • Multiple parameters form a list; they are separated by a comma, followed by optional space, e.g. %CALC{"$SUM( 3, 5, 7 )"}%
  • A table cell can be addressed as R1:C1. Table address matrix:
    R1:C1 R1:C2 R1:C3 R1:C4
    R2:C1 R2:C2 R2:C3 R2:C4
  • A table cell range is defined by two cell addresses separated by "..", e.g. "row 1 through 20, column 3" is: R1:C3..R20:C3
  • Lists can refer to values and/or table cell ranges, e.g. %CALC{"$SUM( 3, 5, $T(R1:C7), R1:C11..R1:C15 )"}%
  • Formulae can only reference cells in the current or preceeding row of the current table; they may not reference cells below the current table row
  • Formulae can also be placed outside of tables; they can reference cells in the preceeding table

Built-in Functions

Conventions for Syntax:

  • Required parameters are indicated in ( bold )
  • Optional parameters are indicated in ( bold italic )

ABOVE( ) -- address range of cells above the current cell

  • Syntax: $ABOVE( )
  • Example: %CALC{"$SUM($ABOVE())"}% returns the sum of cells above the current cell
  • Related: $LEFT(), $RIGHT()

ABS( num ) -- absolute value of a number

  • Syntax: $ABS( num )
  • Example: %CALC{"$ABS(-12.5)"}% returns 12.5
  • Related: $SIGN()

AND( list ) -- logcial AND of a list

  • Syntax: $AND( list )
  • Example: %CALC{"$AND(1, 0, 1)"}% returns 0
  • Related: $NOT(), $IF(), $OR()

AVERAGE( list ) -- average of a list or a range of cells

  • Syntax: $AVERAGE( list )
  • Example: %CALC{"$AVERAGE(R2:C5..R$ROW(-1):C5)"}% returns the average of column 5, excluding the title row
  • Related: $LIST(), $MAX(), $MEDIAN(), $MIN()

CHAR( number ) -- ASCII character represented by number

  • Syntax: $CHAR( number )
  • Example: Example: %CALC{"$CHAR(97)"}% returns a
  • Related: $CODE()

CODE( text ) -- ASCII numeric value of character

  • The ASCII numeric value of the first character in text
  • Syntax: $CODE( text )
  • Example: %CALC{"$CODE(abc)"}% returns 97
  • Related: $CHAR()

COLUMN( offset ) -- current column number

  • The current table column number with an optional offset
  • Syntax: $COLUMN( offset )
  • Example: %CALC{"$COLUMN()"}% returns 2 for the second column
  • Related: $ROW(), $T()

COUNTITEMS( list ) -- count individual items in a list

  • Syntax: $COUNTITEMS( list )
  • Example: %CALC{"$COUNTITEMS($ABOVE())"}% returns Closed: 1, Open: 2 assuming one cell above the current cell contains Closed and two cells contain Open
  • Related: $COUNTSTR(), $LIST()

COUNTSTR( list, str ) -- count the number of cells in a list equal to a given string

  • Count the number of cells in a list equal to a given string (if str is specified), or counts the number of non empty cells in a list
  • Syntax: $COUNTSTR( list, str )
  • Example: %CALC{"$COUNTSTR($ABOVE())"}% counts the number of non empty cells above the current cell
  • Example: %CALC{"$COUNTSTR($ABOVE(), DONE)"}% counts the number of cells equal to DONE
  • Related: $COUNTITEMS(), $LIST()

DEF( list ) -- find first non-empty list item or cell

  • Returns the first list item or cell reference that is not empty
  • Syntax: $DEF( list )
  • Example: %CALC{"$DEF(R1:C1..R1:C3)"}%
  • Related: $COUNTSTR(), $LISTIF(), $LIST()

EVAL( formula ) -- evaluate a simple formula

  • Addition, substraction, multiplication, division and modulus of numbers are supported. Any nesting is permitted
  • Syntax: $EVAL( formula )
  • Example: %CALC{"$EVAL( (5 * 3) / 2 + 1.1 )"}% returns 8.6
  • Related: $INT(), $MOD(), $ROUND(), $VALUE()

EXACT( text1, text2 ) -- compare two text strings

  • Compares two text strings and returns 1 if they are exactly the same, or 0 if not
  • Syntax: $EXACT( text1, text2 )
  • Example: %CALC{"$EXACT(foo, Foo)"}% returns 0
  • Example: %CALC{"$EXACT(foo, $LOWER(Foo))"}% returns 1
  • Related: $IF(), $TRIM()

FIND( string, text, start ) -- find one string within another string

  • Finds one text string, within another text, and returns the number of the starting position of string, from the first character of text. This search is case sensitive and is not a regular expression search; use $SEARCH() for regular expression searching. Starting position is 1; a 0 is returned if nothing is matched.
  • Syntax: $FIND( string, text, start )
  • Example: %CALC{"$FIND(f, fluffy)"}% returns 1
  • Example: %CALC{"$FIND(f, fluffy, 2)"}% returns 4
  • Example: %CALC{"$FIND(@, fluffy, 1)"}% returns 0
  • Related: $REPLACE(), $SEARCH()

FORMAT( type, prec, number ) -- format a number to a certain type and precision

  • Type can be COMMA for comma format, DOLLAR for Dollar format, NUMBER for number, and PERCENT for percent format
  • Syntax: $FORMAT( type, prec, number )
  • Example: %CALC{"$FORMAT(COMMA, 2, 12345.6789)"}% returns 12,345.68
  • Example: %CALC{"$FORMAT(DOLLAR, 2, 12345.67)"}% returns $12,345.68
  • Example: %CALC{"$FORMAT(NUMBER, 1, 12345.67)"}% returns 12345.7
  • Example: %CALC{"$FORMAT(PERCENT, 1, 0.1234567)"}% returns 12.3%
  • Related: $ROUND()

FORMATTIME( serial, text ) -- convert a serialized date into a date string

  • The following variables in text are expanded: $second (seconds, 00..59); $minute (minutes, 00..59); $hour (hours, 00..23); $day (day of month, 01..31); $month (month, 01..12); $mon (month in text format, Jan..Dec); $year (4 digit year, 1999); $ye (2 digit year, 99), $wd (day number of the week, 1 for Sunday, 2 for Monday, etc), $wday (day of the week, Sun..Sat), $weekday (day of the week, Sunday..Saturday), $yearday (day of the year, 1..365, or 1..366 in leap years). Date is assumed to be server time; add GMT to indicate Greenwich time zone.
  • Syntax: $FORMATTIME( serial, text )
  • Example: %CALC{"$FORMATTIME(0, $year/$month/$day GMT)"}% returns 1970/01/01 GMT
  • Related: $FORMATGMTIME(), $TIME(), $TIMEADD(), $TIMEDIFF(), $TODAY()

FORMATGMTIME( serial, text ) -- convert a serialized date into a GMT date string

  • The date string represents the time in Greenwich time zone. Same variable expansion as in $FORMATTIME().
  • Syntax: $FORMATGMTIME( serial, text )
  • Example: %CALC{"$FORMATGMTIME(1041379200, $day $mon $year)"}% returns 01 Jan 2003
  • Related: $FORMATTIME(), $TIME(), $TIMEADD(), $TIMEDIFF(), $TODAY()

GET( name ) -- get the value of a previously set variable

  • Specify the variable name (alphanumeric characters and underscores). An empty string is returned if the variable does not exist. Use $SET() to set a variable first. Unlike table ranges, variables live for the time of the page view and persist across tables, i.e. you can use it to summarize results across several tables.
  • Syntax: $GET( name )
  • Example: %CALC{"$GET(my_total)"}% returns the value of the my_total variable
  • Related: $SET(), $SETM()

IF( condition, value if true, value if 0 ) -- return a value based on a condition

  • The condition can be a number (where 0 means condition not met), or two numbers with a comparison operator < (less than), <= (less than or equal), == (equal), != (not equal), >= (greater than or equal), > (greater than).
  • Syntax: $IF( condition, value if true, value if 0 )
  • Example: %CALC{"$IF($T(R1:C5) > 1000, Over Budget, OK)"}% returns Over Budget if value in R1:C5 is over 1000, OK if not
  • Example: %CALC{"$IF($EXACT($T(R1:C2),), empty, $T(R1:C2))"}% returns the content of R1:C2 or empty if empty
  • Example: %CALC{"$SET(val, $IF($T(R1:C2) == 0, zero, $T(R1:C2)))"}% sets a variable conditionally
  • Related: $AND(), $EXACT(), $LISTIF(), $NOT(), $OR()

INT( formula ) -- evaluate formula and round down to nearest integer

  • Addition, substraction, multiplication, division and modulus of numbers are supported. Any nesting is permitted
  • Syntax: $INT( formula )
  • Example: %CALC{"$INT(10 / 4)"}% returns 2
  • Related: $EVAL(), $ROUND(), $VALUE()

LEFT( ) -- address range of cells to the left of the current cell

  • Syntax: $LEFT( )
  • Example: %CALC{"$SUM($LEFT())"}% returns the sum of cells to the left of the current cell
  • Related: $ABOVE(), $RIGHT()

LENGTH( text ) -- length of text in bytes

  • Syntax: $LENGTH( text )
  • Example: %CALC{"$LENGTH(abcd)"}% returns 4
  • Related: $LISTSIZE()

LIST( range ) -- convert content of a cell range into a list

LISTIF( condition, list ) -- remove elements from a list that do not meet a condition

  • In addition to the condition described in $IF(), you can use $item to indicate the current element, and $index for the list index, starting at 1
  • Syntax: $LISTIF( condition, list )
  • Example: %CALC{"$LISTIF($item > 12, 14, 7, 25)"}% returns 14, 25
  • Example: %CALC{"$LISTIF($NOT($EXACT($item,)), A, B, , E)"}% returns non-empty elements A, B, E
  • Example: %CALC{"$LISTIF($index > 2, A, B, C, D)"}% returns C, D
  • Related: $IF(), $LIST(), $LISTITEM(), $LISTMAP(), $LISTREVERSE(), $LISTSIZE(), $LISTSORT(), $LISTUNIQUE(), $SUM()

LISTITEM( index, list ) -- get one element of a list

LISTMAP( formula, list ) -- evaluate and update each element of a list

LISTREVERSE( list ) -- opposite order of a list

LISTSIZE( list ) -- number of elements in a list

LISTSORT( list ) -- sort a list

LISTUNIQUE( list ) -- remove all duplicates from a list

LOWER( text ) -- lower case string of a text

MAX( list ) - biggest value of a list or range of cells

  • Syntax: $MAX( list )
  • Example: To find the biggest number to the left of the current cell, write: %CALC{"$MAX($LEFT())"}%
  • Related: $LIST(), $MEDIAN(), $MIN()

MEDIAN( list ) -- median of a list or range of cells

  • Syntax: $MEDIAN( list )
  • Example: %CALC{"$MEDIAN(3, 9, 4, 5)"}% returns 4.5
  • Related: $LIST(), $MAX(), $MIN()

MIN( list ) -- smallest value of a list or range of cells

MOD( num, divisor ) -- reminder after dividing num by divisor

  • Syntax: $MOD( num, divisor )
  • Example: %CALC{"$MOD(7, 3)"}% returns 1
  • Related: $EVAL(), $()

NOP( text ) -- no-operation

  • Useful to change the order of Plugin execution. For example, it allows preprossing to be done before %SEARCH{}% is evaluated. The percent character '%' can be escaped with $per
  • Syntax: $NOP( text )

NOT( num ) -- reverse logic of a number

  • Returns 0 if num is not zero, 1 if zero
  • Syntax: $NOT( num )
  • Example: %CALC{"$NOT(0)"}% returns 1
  • Related: $AND(), $IF(), $OR()

OR( list ) -- logcial OR of a list

  • Syntax: $OR( list )
  • Example: %CALC{"$OR(1, 0, 1)"}% returns 1
  • Related: $AND(), $IF(), $NOT()

PRODUCT( list ) -- product of a list or range of cells

  • Syntax: $PRODUCT( list )
  • Example: To calculate the product of the cells to the left of the current one use %CALC{"$PRODUCT($LEFT())"}%
  • Related: $LIST(), $PRODUCT(), $SUM(), $SUMPRODUCT()

PROPER( text ) -- properly capitalize trxt

  • Capitalize letters that follow any character other than a letter; convert all other letters to lowercase letters
  • Syntax: $PROPER( text )
  • Example: %CALC{"PROPER(a small STEP)"}% returns A Small Step
  • Example: %CALC{"PROPER(f1 (formula-1))"}% returns F1 (Formula-1)
  • Related: $LOWER(), $PROPERSPACE(), $TRIM(), $UPPER()

PROPERSPACE( text ) -- properly space out WikiWords

  • Properly spaces out WikiWords preceeded by white space, parenthesis, or ][. Words listed in the DONTSPACE TWikiPreferences variable or DONTSPACE Plugins setting are excluded
  • Syntax: $PROPERSPACE( text )
  • Example: Assuming DONTSPACE contains MacDonald: %CALC{"PROPERSPACE(Old MacDonald had a ServerFarm, EeEyeEeEyeOh"}% returns Old MacDonald had a Server Farm, Ee Eye Ee Eye Oh
  • Related: $LOWER(), $PROPER(), $TRIM(), $UPPER()

RAND( max ) -- random number

  • Random number, evenly distributed between 0 and max, or 0 and 1 if max is not specified
  • Syntax: $RAND( max )
  • Related: $EVAL()

REPEAT(text) -- repeat text a number of times

  • Syntax: $REPEAT( text )
  • Example: %CALC{"$REPEAT(/\, 5)"}% returns /\/\/\/\/\

REPLACE( text, start, num, new ) -- replace part of a text string

  • Replace num number of characters of text string text, starting at start, with new text new. Starting position is 1; use a negative start to count from the end of the text
  • Syntax: $REPLACE( text, start, num, new )
  • Example: %CALC{"$REPLACE(abcdefghijk,6,5,*)"}% returns abcde*k
  • Related: $FIND(), $SEARCH(), $SUBSTITUTE(), $TRANSLATE()

RIGHT( ) -- address range of cells to the right of the current cell

  • Syntax: $RIGHT( )
  • Example: %CALC{"$SUM($RIGHT())"}% returns the sum of cells to the right of the current cell
  • Related: $ABOVE(), $LEFT()

ROUND( formula, digits ) -- round a number

  • Evaluates a simple formula and rounds the result up or down to the number of digits if digits is positive; to the nearest integer if digits is missing; or to the left of the decimal point if digits is negative
  • Syntax: $ROUND( formula, digits )
  • Example: %CALC{"$ROUND(3.15, 1)"}% returns 3.2
  • Example: %CALC{"$ROUND(3.149, 1)"}% returns 3.1
  • Example: %CALC{"$ROUND(-2.475, 2)"}% returns -2.48
  • Example: %CALC{"$ROUND(34.9, -1)"}% returns 30
  • Related: $INT(), $FORMAT()

ROW( offset ) -- current row number

  • The current table row number with an optional offset
  • Syntax: $ROW( offset )
  • Example: To get the number of rows excluding table heading (first row) and summary row (last row you are in), write: %CALC{"$ROW(-2)"}%
  • Related: $COLUMN(), $T()

SEARCH( string, text, start ) -- search a string within a text

  • Finds one text string, within another text, and returns the number of the starting position of string, from the first character of text. This search is a RegularExpression search; use $FIND() for non-regular expression searching. Starting position is 1; a 0 is returned if nothing is matched
  • Syntax: $SEARCH( string, text, start )
  • Example: %CALC{"$SEARCH([uy], fluffy)"}% returns 3
  • Example: %CALC{"$SEARCH([uy], fluffy, 3)"}% returns 6
  • Example: %CALC{"$SEARCH([abc], fluffy,)"}% returns 0
  • Related: $FIND(), $REPLACE()

SET( name, value ) -- set a variable for later use

  • Specify the variable name (alphanumeric characters and underscores) and the value. The value may contain a formula; formulas are evaluated before the variable assignment. This function returns no output. Use $GET() to retrieve variables. Unlike table ranges, variables live for the time of the page view and persist across tables, i.e. you can use it to summarize results across several tables
  • Syntax: $SET( name, value )
  • Example: %CALC{"$SET(my_total, $SUM($ABOVE()))"}% sets the my_total variable to the sum of all table cells located above the current cell and returns an empty string
  • Related: $GET(), SETM()

SETM( name, formula ) -- update an existing variable based on a formula

  • Specify the variable name (alphanumeric characters and underscores) and the formula. The formula must start with an operator to + (add), - (subtract), * (multiply), or / (divide) something to the variable. This function returns no output. Use $GET() to retrieve variables
  • Syntax: $SETM( name, formula )
  • Example: %CALC{"$SETM(total, + $SUM($LEFT()))"}% adds the sum of all table cells on the left to the total variable, and returns an empty string
  • Related: $GET(), $SET()

SIGN( num ) -- sign of a number

  • Returns -1 if num is negative, 0 if zero, or 1 if positive
  • Syntax: $SIGN( num )
  • Example: %CALC{"$SIGN(-12.5)"}% returns -1
  • Related: $ABS(), $EVAL(), $INT(), $NOT()

SUBSTITUTE( text, old, new, instance, option ) -- substitute text

  • Substitutes new text for old text in a text string. instance specifies which occurance of old you want to replace. If you specify instance, only that instance is replaced. Otherwise, every occurance is changed to the new text. A literal search is performed by default; a RegularExpression search if the option is set to r
  • Syntax: $SUBSTITUTE( text, old, new, instance, option )
  • Example: %CALC{"$SUBSTITUTE(Good morning, morning, day)"}% returns Good day
  • Example: %CALC{"$SUBSTITUTE(Q2-2002,2,3)"}% returns Q3-3003
  • Example: %CALC{"$SUBSTITUTE(Q2-2002,2,3,3)"}% returns Q2-2003
  • Example: %CALC{"$SUBSTITUTE(abc123def,[0-9],9,,r)"}% returns abc999def
  • Related: $REPLACE(), $TRANSLATE()

SUM( list ) -- sum of a list or range of cells

  • Syntax: $SUM( list )
  • Example: To sum up column 5 excluding the title row, write %CALC{"$SUM(R2:C5..R$ROW(-1):C5)"}% in the last row; or simply %CALC{"$SUM($ABOVE())"}%
  • Related: $LIST(), $PRODUCT(), $SUMPRODUCT(), $WORKINGDAYS()

SUMDAYS( list ) -- sum the days in a list or range of cells

  • The total number of days in a list or range of cells containing numbers of hours, days or weeks. The default unit is days; units are indicated by a h, hours, d, days, w, weeks suffix. One week is assumed to have 5 working days, one day 8 hours
  • Syntax: $SUMDAYS( list )
  • Example: %CALC{"$SUMDAYS(2w, 1, 2d, 4h)"}% returns 13.5, the evaluation of (2*5 + 1 + 2 + 4/8)
  • Related: $SUM(), $TIME(), $FORMATTIME()

SUMPRODUCT( list, list ) -- scalar product on ranges of cells

  • Syntax: $SUMPRODUCT( list, list, list... )
  • Example: %CALC{"$SUM(R2:C1..R4:C1, R2:C5..R4:C5)"}% evaluates and returns the result of ($T(R2:C1) * $T(R2:C5) + $T(R3:C1) * $T(R3:C5) + $T(R4:C1) * $T(R4:C5))
  • Related: $LIST(), $PRODUCT(), $SUM()

T( address ) -- content of a cell

  • Syntax: $T( address )
  • Example: %CALC{"$T(R1:C5)"}% returns the text in cell R1:C5
  • Related: $COLUMN(), $ROW()

TRANSLATE( text, from, to ) -- translate text from one set of characters to another

  • The translation is done from a set to a set, one character by one. The text may contain commas; all three parameters are required. In the from and to parameters you can write $comma to escape comma, $sp to escape space
  • Syntax: $TRANSLATE( text, from, to )
  • Example: %CALC{"$TRANSLATE(boom,bm,cl)"}% returns cool
  • Example: %CALC{"$TRANSLATE(one, two,$comma,;)"}% returns one; two
  • Related: $REPLACE(), $SUBSTITUTE()

TIME( text ) -- convert a date string into a serialized date number

  • Serialized date is seconds since the Epoch, e.g. midnight, 01 Jan 1970. Current time is taken if the date string is empty. Supported date formats: 31 Dec 2009; 31 Dec 2009 GMT; 31 Dec 09; 31-Dec-2009; 31/Dec/2009; 2009/12/31; 2009-12-31; 2009/12/31; 2009/12/31 23:59; 2009/12/31 - 23:59; 2009-12-31-23-59; 2009/12/31 - 23:59:59; 2009.12.31.23.59.59. Date is assumed to be server time; add GMT to indicate Greenwich time zone
  • Syntax: $TIME( text )
  • Example: %CALC{"$TIME(2003/10/14 GMT)"}% returns 1066089600
  • Related: $FORMATTIME(), $FORMATGMTIME(), $TIMEADD(), $TIMEDIFF(), $TODAY(), $WORKINGDAYS()

TIMEADD( serial, value, unit ) -- add a value to a serialized date

  • The unit is seconds if not specified; unit can be second, minute, hour, day, week, month, year. Note: An approximation is used for month and year calculations
  • Syntax: $TIMEADD( serial, value, unit )
  • Example: %CALC{"$TIMEADD($TIME(), 2, week)"}%
  • Related: $(), $() returns the serialized date two weeks from now
  • Related: $FORMATTIME(), $FORMATGMTIME(), $TIME(), $TIMEDIFF(), $TODAY()

TIMEDIFF( serial_1, serial_2, unit ) -- time difference between two serialized dates

  • The unit is seconds if not specified; unit can be specified as in $TIMEADD(). Note: An approximation is used for month and year calculations. Use $FORMAT() or $INT() to format real numbers
  • Syntax: $TIMEDIFF( serial_1, serial_2, unit )
  • Example: %CALC{"$TIMEDIFF($TIME(), $EVAL($TIME()+90), minute)"}% returns 1.5
  • Related: $FORMAT(), $FORMATTIME(), $FORMATGMTIME(), $INT(), $TIME(), $TIMEADD(), $TODAY(), $WORKINGDAYS()

TODAY( ) -- serialized date of today at midnight GMT

  • In contrast, the related $TIME() returns the serialized date of today at the current time, e.g. it includes the number of seconds since midnight GMT
  • Syntax: $TODAY( )
  • Example: %CALC{"$TODAY()"}% returns the number of seconds since Epoch
  • Related: $FORMATTIME(), $FORMATGMTIME(), $TIME(), $TIMEADD(), $TIMEDIFF()

TRIM( text ) -- trim spaces from text

  • Removes all spaces from text except for single spaces between words
  • Syntax: $TRIM( text )
  • Example: %CALC{"$TRIM( eat  spaces  )"}% returns eat spaces
  • Related: $EXACT(), $PROPERSPACE()

UPPER( text ) -- upper case string of a text

VALUE( text ) -- convert text to number

  • Extracts a number from text. Returns 0 if not found
  • Syntax: $VALUE( text )
  • Example: %CALC{"$VALUE(US$1,200)"}% returns 1200
  • Example: %CALC{"$VALUE(PrjNotebook1234)"}% returns 1234
  • Example: %CALC{"$VALUE(Total: -12.5)"}% returns -12.5
  • Related: $EVAL(), $INT()

WORKINGDAYS( serial_1, serial_2 ) -- working days between two serialized dates

  • Working days are Monday through Friday (sorry, Israel!)
  • Syntax: $WORKINGDAYS( serial_1, serial_2 )
  • Example: %CALC{"$WORKINGDAYS($TIME(2004/07/15), $TIME(2004/08/03))"}% returns 13
  • Related: $SUMDAYS(), $TIME(), $TIMEDIFF()

Bug Tracking Example

Bug#: Priority: Subject: Status: Days to fix
Bug:1231 Low File Open ... Open 3
Bug:1232 High Memory Window ... Fixed 2
Bug:1233 Medium Usability issue ... Assigned 5
Bug:1234 High No arrange ... Fixed 1
Total: 4 High: 2
Low: 1
Medium: 1
. Assigned: 1
Fixed: 2
Open: 1
Total: 11

The last row is defined as:

| Total: %CALC{"$ROW(-2)"}% \ 
  | %CALC{"$COUNTITEMS( R2:C$COLUMN()..R$ROW(-1):C$COLUMN() )"}% | . \ 
  | %CALC{"$COUNTITEMS( R2:C$COLUMN()..R$ROW(-1):C$COLUMN() )"}% \ 
  |  Total: %CALC{"$SUM( R2:C$COLUMN()..R$ROW(-1):C$COLUMN() )"}% |

Above table is created manually. Another Plugin could build the table dynamically, e.g. by pulling data out of a bug tracking system. The Spreadsheet Plugin can be used to display table data statistics.

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %SPREADSHEETPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Add spreadsheet calculation like "$SUM( $ABOVE() )" to tables located in UAIWiki topics.

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Do not handle %CALC{}% tag in included topic while including topic: (default: 1)
    • Set SKIPINCLUDE = 1

  • WikiWords to exclude from being spaced out by the $PROPERSPACE(text) function. This comma delimited list can be overloaded by a DONTSPACE preferences variable:
    • Set DONTSPACE = CodeWarrior, MacDonald, McIntosh, RedHat, SuSE

Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this plugin. Below installation instructions are for the administrator who needs to install this plugin on the TWiki server.

  • Download the ZIP file from the SpreadSheetPlugin home
  • Unzip SpreadSheetPlugin.zip in your twiki installation directory. Content:
    File: Description:
    data/TWiki/SpreadSheetPlugin.txt Plugin topic
    data/TWiki/SpreadSheetPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/SpreadSheetPlugin.pm Plugin Perl module
  • Test if the "Total" in the first table in this topic is correct.

Plugin Info

Plugin Author: TWiki:Main/PeterThoeny
Plugin Version: 17 Jul 2004
Change History:  
17 Jul 2004: Added $WORKINGDAYS(), contributed by TWiki:Main/CrawfordCurrie
24 May 2004: Refactored documentation (no code changes)
03 Apr 2004: Added $ABS(), $LISTIF(); fixed $VALUE() to remove leading zeros; changed $FIND() and $SEARCH() to return 0 instead of empty string if no match
21 Mar 2004: Added $LISTITEM(); fixed call to unofficial function
16 Mar 2004: Added $LISTMAP(), $LISTREVERSE(), $LISTSIZE(), $LISTSORT(), $LISTUNIQUE(), $SETM(); retired $COUNTUNIQUE() in favor of $COUNTITEMS($LISTUNIQUE()); fixed evaluation order issue of $IF(); fixed missing eval error messages suppressed since version 06 Mar 2004; redirect stderr messages to warning
08 Mar 2004: Added $LIST()
06 Mar 2004: Added $AND(), $MOD(), $NOT(), $OR(), $PRODUCT(), $PROPER(), $PROPERSPACE(), $RAND(), $REPEAT(), $SIGN(), $VALUE(); added digits parameter to $ROUND(); renamed $MULT() to $PRODUCT(); $MULT() is deprecated and undocumented
27 Feb 2004: Added $COUNTUNIQUE()
24 Oct 2003: Added $SET(), $GET(), $MEDIAN(); added $SUMPRODUCT(), inspired by TWiki:Main/RobertWithrow; added $SUMDAYS(), contributed by TWiki:Main/SvenDowideit
21 Oct 2003: Added support for lists (1, 2, 3) and lists of table ranges (R1:C1..R1:C5, R3:C1..R3:C5) for all functions that accept a table range; added $TIMEADD(); in $TIMEDIFF() added week unit; in $FORMATTIME() changed $weekday to $wd and added $wday and $weekday
14 Oct 2003: Added $TIME(), $TODAY(), $FORMATTIME(), $FORMATGMTIME(), $TIMEDIFF()
13 Oct 2003: Added $MULT(), contributed by TWiki:Main/GerritJanBaarda
30 Jul 2003: Added $TRANSLATE()
19 Jul 2003: Added $FIND(), $NOP(), $REPLACE(), $SEARCH(), $SUBSTITUTE(), contributed by TWiki:Main/PaulineCheung
19 Apr 2003: Added $COUNTSTR(), $EXACT(), $IF(), $ROUND(), $TRIM(); added $FORMAT(), contributed by TWiki:Main/JimStraus; support % modulus operator in $EVAL, $INT, and $ROUND; fixed bug in $DEF
07 Jun 2002: Added $DEF(), contributed by TWiki:Main/MartinFuzzey; allow values with HTML formatting like <u>102</u>, suggested by TWiki:Main/GladeDiviney; added SKIPINCLUDE setting
12 Mar 2002: Support for multiple functions per nesting level
15 Jan 2002: Added $CHAR(), $CODE() and $LENGTH()
12 Nov 2001: Added $RIGHT()
12 Aug 2001: Fixed bug of disappearing multi-column cells
19 Jul 2001: Fixed incorrect $SUM calculation of cell with value 0
14 Jul 2001: Changed to plug & play
01 Jun 2001: Fixed insecure dependencies for $MIN and $MAX
16 Apr 2001: Fixed div by 0 bug in $AVERAGE
17 Mar 2001: Initial version
CPAN Dependencies: none
TWiki:Plugins/Benchmark: GoodStyle 99%, FormattedSearch 99%, SpreadSheetPlugin 95%
Other Dependencies: none
Perl Version: 5.000 and up
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/SpreadSheetPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/SpreadSheetPluginDev

Related Topics: TWikiPreferences, TWikiPlugins

-- TWiki:Main/PeterThoeny - 17 Jul 2004

The 216 Standard Colors

This table can be used to choose a color in WebPreferences of each web.

#000000 #000033 #000066 #000099 #0000CC #0000FF
#003300 #003333 #003366 #003399 #0033CC #0033FF
#006600 #006633 #006666 #006699 #0066CC #0066FF
#009900 #009933 #009966 #009999 #0099CC #0099FF
#00CC00 #00CC33 #00CC66 #00CC99 #00CCCC #00CCFF
#00FF00 #00FF33 #00FF66 #00FF99 #00FFCC #00FFFF
#330000 #330033 #330066 #330099 #3300CC #3300FF
#333300 #333333 #333366 #333399 #3333CC #3333FF
#336600 #336633 #336666 #336699 #3366CC #3366FF
#339900 #339933 #339966 #339999 #3399CC #3399FF
#33CC00 #33CC33 #33CC66 #33CC99 #33CCCC #33CCFF
#33FF00 #33FF33 #33FF66 #33FF99 #33FFCC #33FFFF
#660000 #660033 #660066 #660099 #6600CC #6600FF
#663300 #663333 #663366 #663399 #6633CC #6633FF
#666600 #666633 #666666 #666699 #6666CC #6666FF
#669900 #669933 #669966 #669999 #6699CC #6699FF
#66CC00 #66CC33 #66CC66 #66CC99 #66CCCC #66CCFF
#66FF00 #66FF33 #66FF66 #66FF99 #66FFCC #66FFFF
#990000 #990033 #990066 #990099 #9900CC #9900FF
#993300 #993333 #993366 #993399 #9933CC #9933FF
#996600 #996633 #996666 #996699 #9966CC #9966FF
#999900 #999933 #999966 #999999 #9999CC #9999FF
#99CC00 #99CC33 #99CC66 #99CC99 #99CCCC #99CCFF
#99FF00 #99FF33 #99FF66 #99FF99 #99FFCC #99FFFF
#CC0000 #CC0033 #CC0066 #CC0099 #CC00CC #CC00FF
#CC3300 #CC3333 #CC3366 #CC3399 #CC33CC #CC33FF
#CC6600 #CC6633 #CC6666 #CC6699 #CC66CC #CC66FF
#CC9900 #CC9933 #CC9966 #CC9999 #CC99CC #CC99FF
#CCCC00 #CCCC33 #CCCC66 #CCCC99 #CCCCCC #CCCCFF
#CCFF00 #CCFF33 #CCFF66 #CCFF99 #CCFFCC #CCFFFF
#FF0000 #FF0033 #FF0066 #FF0099 #FF00CC #FF00FF
#FF3300 #FF3333 #FF3366 #FF3399 #FF33CC #FF33FF
#FF6600 #FF6633 #FF6666 #FF6699 #FF66CC #FF66FF
#FF9900 #FF9933 #FF9966 #FF9999 #FF99CC #FF99FF
#FFCC00 #FFCC33 #FFCC66 #FFCC99 #FFCCCC #FFCCFF
#FFFF00 #FFFF33 #FFFF66 #FFFF99 #FFFFCC #FFFFFF

Related web sites:

-- TWiki:Main.PeterThoeny - 16 Dec 2003
-- TWiki:Main.AndreaSterbini - 08 Sep 2003

Welcome to UAIWiki. This page assumes that you are a new user to UAIWiki, and that you've never heard of Wiki before. Here are the most important pages you should know about to get you up to speed on what Wiki is, and how to use it. Follow any of the links below that interest you and use your browser's back button to return to this page if you need to.

Don't let the reams of documentation fool you, it all boils down to: wiki means "quick" in Hawaiian, and you can contribute to any page by clicking on the edit link. That's all, really. smile

TWiki Access Control

Restricting read and write access to topics and webs, by Users and groups

TWikiAccessControl allows you restrict access to single topics and entire webs, by individual user and by user Groups, in three areas: view; edit & attach; and rename/move/delete. Access control, combined with TWikiUserAuthentication, lets you easily create and manage an extremely flexible, fine-grained privilege system.

An Important Control Consideration

Open, freeform editing is the essence of WikiCulture - what makes TWiki different and often more effective than other collaboration tools. For that reason, it is strongly recommended that decisions to restrict read or write access to a web or a topic are made with care - the more restrictions, the less Wiki in the mix. Experience shows that unrestricted write access works very well because:

  • Peer influence is enough to ensure that only relevant content is posted.

  • Peer editing - the ability for anyone to rearrange all content on a page - keeps topics focussed.

  • In TWiki, content is transparently preserved under revision control:
    • Edits can be undone by the TWikiAdminGroup (the default administrators group; see #ManagingGroups).
    • Users are encouraged to edit and refactor (condense a long topic), since there"s a safety net.

As a collaboration guideline:

  • Create broad-based Groups (for more and varied input), and...
  • Avoid creating view-only Users (if you can read it, you should be able to contribute to it).

Authentication vs. Access Control

Authentication: Identifies who a user is based on a login procedure. See TWikiUserAuthentication.

Access control: Restrict access to content based on users and groups once a user is identified.

Users and Groups

Access control is based on the familiar concept of Users and Groups. Users are defined by their WikiNames. They can then be organized in unlimited combinations by inclusion in one or more user Groups. For convenience, Groups can also be included in other Groups.

Managing Users

A user can create an account in TWikiRegistration. The following actions are performed:

  • WikiName and encrypted password are recorded in .htpasswd if authentication is enabled.
  • A confirmation e-mail is sent to the user.
  • A user home page with the WikiName of the user is created in the Main web.
  • The user is added to the TWikiUsers topic.

Users can be authenticated using Basic Authentication (htaccess) or SSL (secure server). In either case, TWikiUserAuthentication is required in order to track user identities, and use User and Group access control.

The default visitor name is TWikiGuest. This is the non-authenticated user.

Managing Groups

Groups are defined by group topics created in the Main web, like the TWikiAdminGroup. To create a new group:

  1. Edit TWikiGroups by entering a new topic with a name that ends in Group. Example:
    • SomeGroup
  2. Set Preferences for two Variables in the new group topic:
    • Set GROUP = < list of Users and/or Groups >
    • Set ALLOWTOPICCHANGE = < list of Users and/or Groups >
    • The GROUP variable is a comma-separated list of Users and/or other Groups. Example:
      • Set GROUP = Main.SomeUser, Main.OtherUser, Main.SomeGroup
    • ALLOWTOPICCHANGE defines who is allowed to change the group topic; it is a comma delimited list of Users and Groups. You typically want to restrict that to the members of the group itself, so it should contain the name of the topic. (This prevents Users not in the Group from editing the topic to give themselves or others access. For example, for the TWikiAdminGroup topic write:
    • Set ALLOWTOPICCHANGE = Main.TWikiAdminGroup

Restricting Write Access

You can define who is allowed to make changes to a web or a topic.

Deny Editing by Topic

Denying editing of a topic also restricts file attachment; both privileges are assigned together.

  • Define one or both of these variables in a topic, preferably at the end of the page:
    • Set DENYTOPICCHANGE = < list of Users and Groups >
    • Set ALLOWTOPICCHANGE = < list of Users and Groups >

  • DENYTOPICCHANGE defines Users or Groups that are not allowed to make changes to the topic, with a comma-delimited list. Example:
    • Set DENYTOPICCHANGE = Main.SomeBadBoy, Main.SomeBadGirl, Main.SomeHackerGroup

  • ALLOWTOPICCHANGE defines Users or Groups that are allowed to make changes to the topic. It is a comma delimited list of Users and Groups. Example:
    • Set ALLOWTOPICCHANGE = Main.SomeGoodGuy, Main.SomeGoodGirl, Main.TWikiAdminGroup

  • DENYTOPICCHANGE is evaluated before ALLOWTOPICCHANGE. Access is denied if the authenticated person is in the DENYTOPICCHANGE list, or not in the ALLOWTOPICCHANGE list. Access is granted in case DENYTOPICCHANGE and ALLOWTOPICCHANGE is not defined.

Deny Editing by Web

Restricting web-level editing blocks creating new topics, changing topics or attaching files.

  • Define one or both of these variable in the WebPreferences topic:
    • Set DENYWEBCHANGE = < list of Users and Groups >
    • Set ALLOWWEBCHANGE = < list of Users and Groups >

The same rules apply as for restricting topics, with these additions:

  • DENYTOPICCHANGE (in topic) overrides DENYWEBCHANGE (in WebPreferences)
  • ALLOWTOPICCHANGE (in topic) overrides ALLOWWEBCHANGE (in WebPreferences)

Restricting Rename Access

You can define who is allowed to rename, move or delete a topic, or rename a web.

Deny Renaming by Topic

To allow a user to rename, move or delete a topic, they also need write (editing) permission. They also need write access to change references in referring topics.

  • Define one or both of these variables in a topic, preferably at the end of the topic:
    • Set DENYTOPICRENAME = < list of Users and Groups >
    • Set ALLOWTOPICRENAME = < list of Users and Groups >

  • DENYTOPICCRENAME defines Users or Groups that are not allowed to rename the topic. It is a comma delimited list of Users and Groups. Example:
    • Set DENYTOPICRENAME = Main.SomeBadBoy, Main.SomeBadGirl, Main.SomeHackerGroup

  • ALLOWTOPICRENAME defines Users or Groups that are allowed to rename the topic. It is a comma delimited list of Users and Groups. Example:
    • Set ALLOWTOPICRENAME = Main.SomeGoodGuy, Main.SomeGoodGirl, Main.TWikiAdminGroup

  • DENYTOPICRENAME is evaluated before ALLOWTOPICRENAME. Access is denied if the authenticated person is in the DENYTOPICRENAME list, or not in the ALLOWTOPICRENAME list. Access is granted in case DENYTOPICRENAME and ALLOWTOPICRENAME is not defined.

Deny Renaming by Web

You can define restrictions of who is allowed to rename a UAIWiki web.

  • Define one or both of these variable in the WebPreferences topic:
    • Set DENYWEBRENAME = < list of Users and Groups >
    • Set ALLOWWEBRENAME = < list of Users and Groups >

The same rules apply as for topics, with these additions:

  • DENYTOPICRENAME (in topic) overrides DENYWEBRENAME (in WebPreferences)
  • ALLOWTOPICRENAME (in topic) overrides ALLOWWEBRENAME (in WebPreferences)

Restricting Read Access

You can define who is allowed to see a web.

Deny Viewing by Topic

ALERT! Technically it is possible to restrict read access to an individual topic based on DENYTOPICVIEW / ALLOWTOPICVIEW preferences variables, provided that the view script is authenticated. However this setup is not recommended since all content is searchable within a web - a search will turn up view restricted topics.

Deny Viewing by Web

You can define restrictions of who is allowed to view a UAIWiki web. You can restrict access to certain webs to selected Users and Groups, by:

  • obfuscating webs: Insecure but handy method to hide new webs until content is ready for deployment.
  • authenticating all webs and restricting selected webs: Topic access in all webs is authenticated, and selected webs have restricted access.
  • authenticating and restricting selected webs only: Provide unrestricted viewing access to open webs, with authentication and restriction only on selected webs.

Obfuscate Webs

The idea is to keep a web hidden by not publishing its URL and by preventing the all webs search option from accessing obfuscated webs. Do so by enabling the NOSEARCHALL variable in WebPreferences:

  • Set NOSEARCHALL = on

This setup can be useful to hide a new web until content its ready for deployment.

ALERT! Obfuscating webs is insecure, as anyone who knows the URL can access the web.

Authenticate all Webs and Restrict Selected Webs

Use the following setup to authenticate users for topic viewing in all webs and to restrict access to selected webs:

  1. Restrict view access to selected Users and Groups. Set one or both of these variables in its WebPreferences topic:
    • Set DENYWEBVIEW = < list of Users and Groups >
    • Set ALLOWWEBVIEW = < list of Users and Groups >
    • Note: DENYWEBVIEW is evaluated before ALLOWWEBVIEW. Access is denied if the authenticated person is in the DENYWEBVIEW list, or not in the ALLOWWEBVIEW list. Access is granted in case DENYWEBVIEW and ALLOWWEBVIEW is not defined.
  2. Hide the web from an "all webs" search. Enable this restriction with the NOSEARCHALL variable in its WebPreferences topic:
    • Set NOSEARCHALL = on
  3. Add view to the list of authenticated scripts in the .htaccess file.

HELP This method only works if the view script is authenticated, which means that all Users have to login, even for read-only access. (An open guest account, like TWikiGuest, can get around this, allowing anyone to login to a common account with, for example, view-only access for public webs.) TWikiInstallationGuide has more on Basic Authentication, using the .htaccess file.

Authenticate and Restricting Selected Webs Only

Use the following setup to provide unrestricted viewing access to open webs, with authentication only on selected webs:

  1. Restrict view access to selected Users and Groups. Set one or both of these variables in its WebPreferences topic:
    • Set DENYWEBVIEW = < list of Users and Groups >
    • Set ALLOWWEBVIEW = < list of Users and Groups >
    • Note: DENYWEBVIEW is evaluated before ALLOWWEBVIEW. Access is denied if the authenticated person is in the DENYWEBVIEW list, or not in the ALLOWWEBVIEW list. Access is granted in case DENYWEBVIEW and ALLOWWEBVIEW is not defined.
  2. Hide the web from an "all webs" search. Enable this restriction with the NOSEARCHALL variable in its WebPreferences topic:
    • Set NOSEARCHALL = on
  3. Enable the $doRememberRemoteUser flag in lib/TWiki.cfg as described in TWikiUserAuthentication. UAIWiki will now remember the IP address of an authenticated user.
  4. Copy the view script to viewauth (or better, create a symbolic link)
  5. Add viewauth to the list of authenticated scripts in the .htaccess file. The view script should not be listed in the .htaccess file.

When a user accesses a web where you enabled view restriction, UAIWiki will redirect from the view script to the viewauth script once (this happens only if the user has never edited a topic). Doing so will ask for authentication. The viewauth script shows the requested topic if the user could log on and if the user is authorized to see that web.

ALERT! Authenticating webs is not very secure, as there is a way to circumvent the read access restriction. It can be useful in certain situations - for example, to simplify site organization and clutter, by hiding low traffic webs - but is not recommended for securing sensitive content.

Hiding Control Settings

TIP To hide access control settings from normal browser viewing, place them in comment markers.

<!--
   * Set DENYTOPICCHANGE = Main.SomeGroup
-->

The SuperAdminGroup

By mistyping a user or group name in the ALLOWTOPICCHANGE setting, it"s possible to lock a topic so that no-one can edit it from a browser. To avoid this, you can create Web-based superusers:

  • Set the $superAdminGroup variable in lib/TWiki.cfg to the name of a group of Users who are always allowed to edit/view topics.
$superAdminGroup = "TWikiAdminGroup";
  • The default setting is not to have superusers.

-- TWiki:Main.PeterThoeny - 04 May 2002
-- TWiki:Main.MikeMannix - 12 May 2002

TWiki Admin Cook Book

This page has many tips and tricks, particularly useful when you're installing TWiki for the first time. This guide is most useful before or immediately following a TWiki installation!

See also:


During Installation

Rename Main web to User web

You can rename the Main web to User. It will make WikiWord links to usernames more meaningful (User.UserName instead of Main.UserName); but does not bring much gain for other types of topics like (User.EngineeringGroup or User.TokyoOffice). Just rename data/Main to data/User, and change $mainWebname variable in lib/TWiki.cfg file. Signatures in all existing topics need to be fixed as well.

See also TWiki:Codev.RenameMainWebToHome, TWiki:Codev.RenameTheMainWeb, TWiki:Codev.SeparateHowtoWeb for arguments pro and con.

Help with remembering passwords

Users keep Forgetting Passwords (see TWiki:Codev.ForgettingPasswords ). When demonstrating TWiki to new users and/or helping them with TWikiRegistration, do not forget to show the user how to use the "remember my password" feature in their browser.

A quick way to check the guest password is to view the .htaccess file.

AuthName 'TWiki UserName (i.e. TWikiGuest/guest)'


Before First Presentation

Tips about first presentation -- ATasteOfTWiki is a handy presentation you can give to your users. Read also TWiki:Main.TWikiCourseOutlineExample and TWiki:Codev.HowToGetInternalBuyInForTWiki. The TWiki:Codev.TWikiPresentation05Aug2004 talk given by TWiki:Main.PeterThoeny during LinuxWorld gives some background on TWiki collaboration.

How to build participation: read WikiOrg?:TipsForSiteOperators - advice directly from Ward Cunningham, author of Wiki concept and first Wiki.

Consider installing #CommentPlugin and #SlideShowPlugin before your first demo.

Simplify menu in page templates

How to get nice pages with simpler menu options for beginners

A Skin is TWiki's way to present different system-generated formats (like header/footer/sidebar menu) and exactly the same information from the page body (see TWikiSkins). The "Classic" TWiki skin is oriented towards advanced power users. Newbies may feel overwhelmed by the number of options. Many simpler custom skins are in development at TWiki:Plugins.WebHome. Consider using a simpler custom skin to make a better "first impression": TWiki is simple to use.

There is currently a discussion at TWiki:Codev.SimplerDefaultTemplates about simpler default template for TWiki:Codev.SimplerTWikiDistribution.

Customize tutorial for beginners

Select simpler skin and customize beginner's help topics accordingly.


Ongoing admin tasks

Admin Tools

AdminTools has most of the tools you need to administer a TWiki site - on one page. You can link it from SiteMap.


Best of Plugins

With more than 100 TWiki plugins (and counting), there are a lot to choose from. Plugins are mainly contributed by TWiki users who are software developers. Plugins are a relatively new TWiki addition, so there are fewer established standards than for the core TWiki code. This means that not all plugins are equal in ease of installation, operation, or compatibility with each other. Here are selected plugins that are reliable, easy-to-use and offer basic enhanced functionality.

CommentPlugin -- TWiki:Plugins.CommentPlugin

User-friendly alternative of Edit, without losing Wiki spirit. Comments can be entered in a conventional Web form style with a text box and a submit button. This is all displayed on a TWiki page without having to use TWiki's Edit. Text added appears exactly as if edited normally, and topic can be edited also using the full TWiki Edit. This is useful to encourage participation among your users who are not yet comfortable with TWiki capabilities.

SlideShowPlugin -- TWiki:Plugins.SlideShowPlugin

This Plugin allows you to convert topics with headings into web based presentations. This is a useful alternative to PowerPoint, especially if you need to link to related content.

SpreadSheetPlugin -- TWiki:Plugins.SpreadSheetPlugin

This Plugin allows you to add spreadsheet calculation like "$SUM( $ABOVE() )" to tables located in TWiki topics.

TablePlugin -- TWiki:Plugins.TablePlugin

A must-have, this Plugin allows you to control attributes of tables and sorting of table columns.

TopicVarsPlugin -- TWiki:Plugins.TopicVarsPlugin

This lets you create variables, like a graphics icon library, in any topic - instead of only in WebPreferences - and refer to them from other topics within the same web.


TWiki-based applications


Please add your favorite TWiki tips/trick to TWiki:TWiki.TWikiAdminCookBook to help the next new TWiki admin. (One BIG area: include pages of implemented basic SEARCHes, like, to generate a straight TOPICS list (alphabetical web topic titles only); also, simple combos of forms + search, like one- and two-category forms to use to classify pages, and then searches to find and display in few useful formats; more in that general area.)

Contributors: TWiki:Main.GrantBow, TWiki:Main.JonReid, TWiki:Main.MikeMannix, TWiki:Main.MikeMaurer, TWiki:Main.PeterMasiar, TWiki:Main.PeterThoeny

Note: This feature has been replaced by: TWikiForms

TWiki Contributor

A TWiki contributor is a person devoting his/her time to contribute on the development of the Open Source project TWiki, hosted at http://TWiki.org/ . It is defined as a person who:

  • has contributed code that was accepted into the TWiki distribution, or
  • has considerably contributed to the TWiki documentation.

I would like to take this opportunity to express my sincere appreciation and thanks to all who contributed ideas, code, fixes and documentation to the TWiki project smile

List of Contributors

Person Home Page Comment
Adam Theo TWiki:Main/AdamTheo  
Adrian Lynch TWiki:Main/AdrianLynch  
Al Williams TWiki:Main/AlWilliams  
Andrea Sterbini TWiki:Main/AndreaSterbini TWiki:Codev/CoreTeam member
Antonio Bellezza TWiki:Main/AntonioBellezza  
Arthur Clemens TWiki:Main/ArthurClemens TWiki:Codev/CoreTeam member
Carl Patten TWiki:Main/CarlPatten  
Caylan Larson TWiki:Main/CaylanLarson  
Christophe Vermeulen TWiki:Main/ChristopheVermeulen  
Claus Brunzema TWiki:Main/ClausBrunzema  
Colas Nahaboo TWiki:Main/ColasNahaboo TWiki:Codev/CoreTeam member
Corey Fruitman TWiki:Main/CoreyFruitman  
Crawford Currie TWiki:Main/CrawfordCurrie  
Cris Bailiff TWiki:Main/CrisBailiff  
Dan Boitnott TWiki:Main/DanBoitnott  
David Warman TWiki:Main/DavidWarman  
Frank Smith TWiki:Main/FrankSmith  
Grant Bowman TWiki:Main/GrantBow  
Harold Gottschalk TWiki:Main/HaroldGottschalk  
John Talintyre TWiki:Main/JohnTalintyre TWiki:Codev/CoreTeam member
Kevin Kinnell TWiki:Main/KevinKinnell TWiki:Codev/CoreTeamHallOfFame member
Kim Covil TWiki:Main/KimCovil  
Klaus Wriessnegger TWiki:Main/KlausWriessnegger  
Manpreet Singh TWiki:Main/ManpreetSingh  
Martin Cleaver TWiki:Main/MartinCleaver  
Martin Gregory TWiki:Main/MartinGregory  
Martin Raabe TWiki:Main/MartinRaabe  
MS TWiki:Main/MichaelSparks  
Mike Mannix TWiki:Main/MikeMannix TWiki:Codev/CoreTeamHallOfFame member
Neil McCurdy TWiki:Main/NeilMcCurdy  
Nicholas Lee TWiki:Main/NicholasLee TWiki:Codev/CoreTeam member
Niels Koldso TWiki:Main/NielsKoldso  
Pauline Cheung TWiki:Main/PaulineCheung  
Pavel Goran TWiki:Main/PavelGoran  
Peter Fokkinga TWiki:Main/PeterFokkinga  
Peter Thoeny TWiki:Main/PeterThoeny TWiki:Codev/CoreTeam member and author of TWiki
Randy Kramer TWiki:Main/RandyKramer  
Richard Donkin TWiki:Main/RichardDonkin TWiki:Codev/CoreTeam member
Raymond Lutz TWiki:Main/RaymondLutz  
Ryan Freebern TWiki:Main/RyanFreebern  
Sam Hasler TWiki:Main/SamHasler  
Stanley Knutson TWiki:Main/StanleyKnutson  
Sue Blake TWiki:Main/SueBlake  
Sven Dowideit TWiki:Main/SvenDowideit TWiki:Codev/CoreTeam member
Ted Pavlic TWiki:Main/TedPavlic  
Thomas Weigert TWiki:Main/ThomasWeigert  
Vito Miliano TWiki:Main/VitoMiliano  
Walter Mundt TWiki:Main/WalterMundt TWiki:Codev/CoreTeam member

Note: Please contact a TWiki:Codev/CoreTeam member in case you contributed to TWiki and your name is not on this list!

Disclaimer: TWiki gets installed on thousands of public web sites. The contributors are not affiliated in any way with those sites.

List of Contributions

-- TWiki:Main/PeterThoeny - 09 May 2004

TWikiCss (15 Aug 2004 - 22:12 - r1.2 - ArthurClemens?)

Appendix B: TWiki CSS

Listing of CSS class names emitted from TWiki core code and standard plugins, for the 01-Aug-2004 TWiki production release.

Who should read this document?

More or less all html elements generated by TWiki core code now have Cascading Style Sheet (CSS) tags. Skin builders and others who want to change the appearance of the default TWiki installation or any of the skins can use this document to see what styles can be created for these html elements.

Naming conventions

  1. All TWiki class names have the prefix twiki. So: twikiEditPage, twikiTopicAction, etcetera. Remember that CSS class names are case sensitive - TWiki CSS uses lowercase tw.
  2. TWiki uses class names only (.twikiViewPage) and no id names (#twikiViewPage), to allow multiple class names. Class names are written using the dot prefix.
  3. If you define your own CSS classes, it is preferable that you do not use the twiki prefix to prevent undesired overriding effects.

CSS classes

Classes from core code

.twikiNew Changes.pm
.twikiChangeFormButtonHolder Edit.pm
.twikiChangeFormButton Form.pm
.twikiForm Form.pm
.twikiEditFormTextField Form.pm
.twikiEditFormLabelField Form.pm
.twikiEditFormTextAreaField Form.pm
.twikiEditFormCheckboxButton Form.pm
.twikiEditFormCheckboxButton Form.pm
.twikiEditFormCheckboxField Form.pm
.twikiEditFormRadioField Form.pm
.twikiEditFormError Form.pm
.twikiRadioButton Form.pm
.twikiCheckbox Form.pm
.twikiEditFormError Form.pm
.twikiDiffTable RDiff.pm
.twikiDiffDeletedHeader RDiff.pm
.twikiDiffDeletedMarker RDiff.pm
.twikiDiffDeletedText RDiff.pm
.twikiDiffAddedHeader RDiff.pm
.twikiDiffAddedMarker RDiff.pm
.twikiDiffAddedText RDiff.pm
.twikiDiffChangedHeader RDiff.pm
.twikiDiffChangedText RDiff.pm
.twikiDiffUnchangedText RDiff.pm
.twikiDiffLineNumberHeader RDiff.pm
.twikiForm Render.pm
.twikiAnchorLink Render.pm
.twikiLink Render.pm
.twikiNewLink Render.pm
.twikiNew Search.pm
.twikiAlert Search.pm
.twikiAlert Statistics.pm
.twikiAlert TWiki.pm
.twikiToc TWiki.pm
.twikiTocTitle TWiki.pm

Classes from Plugins

TablePlugin

.twikiSortedAscendingCol TablePlugin.pm
.twikiSortedDescendingCol TablePlugin.pm
.twikiFirstCol TablePlugin.pm

Going further

PatternSkin makes fully use of CSS in its templates. Read the PatternSkin topic and PatternSkinCss to learn more about adjusting PatternSkin, or creating your own CSS-based skin.

See also: DragonSkin.

Practical introduction to CSS: http://www.w3.org/Style/LieBos2e/enter/

-- TWiki:Main.ArthurClemens - 08 Aug 2004

TWiki Documentation Graphics

This is one way to create a library of common icons, accessible through user-defined TWikiVariables set in WebPreferences, or in TWikiPreferences for site-wide use.

There are other approaches as well:

In this example, TWikiDocGraphics - this topic - acts as the icon library. Graphics are uploaded and displayed. Then, the paths are set in TWiki.TWikiPreferences#DocGraphics for site-wide access. You can also create individual library pages in each web. And you don't have to restrict yourself to graphics: Preferences Variables can include text and links to any type of file.

Icon File Name Comment
help.gif help.gif Help
note.gif note.gif Note
bubble.gif bubble.gif Speech bubble
tip.gif tip.gif Tip / Idea
warning.gif warning.gif Warning / Important
stop.gif stop.gif Stop
target.gif target.gif Blue target
gear.gif gear.gif Gear
wrench.gif wrench.gif Wrench
pencil.gif pencil.gif Refactor / Edit
choice-yes.gif choice-yes.gif Yes / Done
choice-no.gif choice-no.gif No
choice-cancel.gif choice-cancel.gif Cancel
updated.gif updated.gif Updated
new.gif new.gif New
starred.gif starred.gif Highlight (positive)
stargold.gif stargold.gif Favorites (gold star)
hand.gif hand.gif Pointing hand
arrowleft.gif arrowleft.gif Arrow red left
arrowright.gif arrowright.gif Arrow red right
arrowup.gif arrowup.gif Arrow red up
arrowdown.gif arrowdown.gif Arrow red down
arrowbleft.gif arrowbleft.gif Arrow blue left
arrowbright.gif arrowbright.gif Arrow blue right
arrowbup.gif arrowbup.gif Arrow blue up
arrowbdown.gif arrowbdown.gif Arrow blue down
arrowdot.gif arrowdot.gif Meet here (arrows to red dot)
go_start.gif go_start.gif Go start
go_fb.gif go_fb.gif Go fast back
go_back.gif go_back.gif Go back
go_forward.gif go_forward.gif Go forward
go_ff.gif go_ff.gif Go fast forward
go_end.gif go_end.gif Go end
wip.gif wip.gif Work in progress
rfc.gif rfc.gif Request for comments
days.gif days.gif Days
hourglass.gif hourglass.gif Hour glass
watch.gif watch.gif Watch
globe.gif globe.gif Globe
home.gif home.gif Home
group.gif group.gif Group
person.gif person.gif Person
persons.gif persons.gif Persons
lock.gif lock.gif Lock
folder.gif folder.gif Folder
lockfolder.gif lockfolder.gif Locked folder
lockfoldergray.gif lockfoldergray.gif Locked folder, gray
locktopic.gif locktopic.gif Locked topic
locktopicgray.gif locktopicgray.gif Locked topic, gray
refreshtopic.gif refreshtopic.gif Refresh topic
viewtopic.gif viewtopic.gif View topic
edittopic.gif edittopic.gif Edit topic
topicdiffs.gif topicdiffs.gif Topic difference
topicbacklinks.gif topicbacklinks.gif Topic back-links
newtopic.gif newtopic.gif New topic
searchtopic.gif searchtopic.gif Search topic
statistics.gif statistics.gif Statistics
index.gif index.gif Index
indexlist.gif indexlist.gif Index list
cachetopic.gif cachetopic.gif Cache topic
printtopic.gif printtopic.gif Print topic
attachfile.gif attachfile.gif Attach file
recentchanges.gif recentchanges.gif Recent changes
changes.gif changes.gif Changes
notify.gif notify.gif Notify
mail.gif mail.gif Mail
trash.gif trash.gif Trash
rss-feed.gif rss-feed.gif RSS feed 36x14
xml-feed.gif xml-feed.gif RSS feed 36x14
empty.gif empty.gif Empty transparent 16x16 spacer
line_ud.gif line_ud.gif Line graph up-down
line_lr.gif line_lr.gif Line graph left-right
line_udlr.gif line_udlr.gif Line graph up-down-left-right
line_ur.gif line_ur.gif Line graph up-right
line_rd.gif line_rd.gif Line graph right-down
line_ld.gif line_ld.gif Line graph left-down
line_ul.gif line_ul.gif Line graph up-left
line_udr.gif line_udr.gif Line graph up-down-right
line_lrd.gif line_lrd.gif Line graph left-right-down
line_udl.gif line_udl.gif Line graph up-down-left
line_ulr.gif line_ulr.gif Line graph up-left-right
dot_ud.gif dot_ud.gif Dot graph up-down
dot_lr.gif dot_lr.gif Dot graph left-right
dot_udlr.gif dot_udlr.gif Dot graph up-down-left-right
dot_ur.gif dot_ur.gif Dot graph up-right
dot_rd.gif dot_rd.gif Dot graph right-down
dot_ld.gif dot_ld.gif Dot graph left-down
dot_ul.gif dot_ul.gif Dot graph up-left
dot_udr.gif dot_udr.gif Dot graph up-down-right
dot_lrd.gif dot_lrd.gif Dot graph left-right-down
dot_udl.gif dot_udl.gif Dot graph up-down-left
dot_ulr.gif dot_ulr.gif Dot graph up-left-right

-- TWiki:Main.PeterThoeny - 06 Aug 2004
-- TWiki:Main.MikeMannix - 16 May 2002

TWiki Reference Manual (04 Sep 2004 $Rev: 1742 $)

This page contains all documentation topics as one long, complete reference sheet.
Doubleclick anywhere to return to the top of the page.

Note - if you are reading this at twiki.org, then you are reading about the most recent code under development.
If you want to read about the features on your local TWiki, then you should read the documentation there!

Note: Read the most up to date version of this document at http://TWiki.org/cgi-bin/view/TWiki/TWikiDocumentation

Related Topics: TWikiSite, TWikiHistory, TWikiPlannedFeatures, TWikiEnhancementRequests


TWiki System Requirements

Server and client requirements for TWiki 01-Sep-2004

Low client and server requirements are core features that keep TWiki widely deployable, particularly across a range of browser platforms and versions.

Server Requirements

TWiki is written in Perl 5, uses a number of shell commands, and requires RCS (Revision Control System), a GNU Free Software package. TWiki is developed in a basic Linux/Apache environment. It also works with Microsoft Windows, and should have no problem on any other platform that meets the requirements.

Resource Required Server Environment *
Perl 5.005_03 or higher (5.6.1 recommended, 5.8.x does work in most cases, but see TWiki:Codev.IssuesWithPerl5dot8)
Non-standard Perl modules • Unix: Net::SMTP (or sendmail)
• Windows: Net::SMTP, MIME::Base64, Digest::SHA1
• Internationalisation: Unicode::MapUTF8   (only for non-ISO-8859-1 sites using TWiki:Codev.EncodeURLsWithUTF8 with Perl 5.6 or lower)
RCS 5.7 or higher (including GNU diff)
Optional, but the all-Perl RCS replacement is not currently recommended for live sites - see TWiki:Codev.RcsLite
GNU diff GNU diff 2.7 or higher is required when not using the all-Perl RcsLite.
Install on PATH if not included with RCS (check version with diff -v)
Must be the version used by RCS, to avoid problems with binary attachments - RCS may have hard-coded path to diff
Other external programs fgrep, egrep
Cron/scheduler • Unix: cron
• Windows: cron equivalents
Web server Apache 1.3 is well supported; Apache 2.0 is not recommended yet (see TWiki:Codev.IssuesWithApache2dot0).
For other servers, CGI support, authentication, extended path info required; also, the register script is likely to need significant changes

ALERT! * Current documentation mainly covers Linux and Apache installations. See WindowsInstallCookbook for a Windows installation guide. See TWiki:Codev.TWikiOn for help with installation on various platforms including Unix, MacOS X, Apache mod_perl, web hosts, etc.

Client Requirements

The TWiki standard installation has extremely low browser requirements:

  • HTML 3.2 compliant
  • generates XHTML 1.0 pages that are compatible with HTML 3.2
  • minimal use of JavaScript in the user interface (degrades gracefully)
  • no cookies
  • no CSS (if the ClassicSkin is used)

You can easily add functionality, by customizing TWikiTemplates, for one, while tailoring the browser requirements to your situation.

Known Issues

  • The TWikiPlugins feature currently does not have compatibility guidelines for developers. Plugins can require just about anything - browser-specific functions, stylesheets (CSS), Java applets, cookies, specific Perl modules,... - check the individual Plugin specs.
    • HELP Plugins included in the TWiki distribution do not add requirements.

-- TWiki:Main.MikeMannix - 12 Jan 2002
-- TWiki:Main.PeterThoeny - 15 Aug 2004


TWiki Installation Guide

Installation instructions for the TWiki 01-Sep-2004 production release.

If you are reading this on your own TWiki installation, please get the latest installation guide (TWiki:TWiki.TWikiInstallationGuide), as this often has important updates to resolve installation issues.

These installation steps are based on the Apache web server on Linux. TWiki runs on other web servers and Unix systems, and should be fine with any web server and OS that meet the TWikiSystemRequirementssystem? requirements. Official documentation for platforms other than Linux is somewhat limited, so please check the topics listed below, they include some important tips for HP-UX, Solaris, OS/390, and many other platforms.

Standard Installation

Download the TWiki 01-Sep-2004 distribution in Unix ZIP format from http://TWiki.org/download.html. Please review the AdminSkillsAssumptions before you install TWiki.

Step 1: Create & Configure the Directories

ALERT! NOTE: If you don"t have access to your Web server configuration files - for example, if you"re installing on an ISP-hosted account, or you don"t have administrator privileges on your intranet server - use the #StepOneBalternative Step 1 instead.

  • Create directory /home/httpd/twiki and http://www.info-zip.org/pub/infozip/UnZip.htmlunzip the TWiki distribution into this directory.
  • The twiki/bin directory of TWiki must be set as a cgi-bin directory. Add /home/httpd/twiki/bin to file httpd.conf (typcially located in /etc/httpd/) with only ExecCGI option.
  • The twiki/pub directory of TWiki must be set so that it is visible as a URL. Add /home/httpd/twiki to file httpd.conf with normal access options (copy from /home/httpd/html ).
  • Now add ScriptAlias for /twiki/bin and Alias for /twiki to file httpd.conf .
    ALERT! NOTE: The ScriptAlias must come before the Alias, otherwise, Apache will fail to correctly set up /twiki/bin/, by treating it as just another subdirectory of the /twiki/ alias.
  • The twiki/data and twiki/templates directories should be set so that they are not visible as URLs. Add them to httpd.conf with deny from all.

Example httpd.conf entries:
 ScriptAlias /twiki/bin/ "/home/httpd/twiki/bin/"
 Alias /twiki/ "/home/httpd/twiki/"
 <Directory "/home/httpd/twiki/bin">
    Options +ExecCGI
    SetHandler cgi-script
    Allow from all
 </Directory>
 <Directory "/home/httpd/twiki/pub">
    Options FollowSymLinks +Includes
    AllowOverride None
    Allow from all
 </Directory>
 <Directory "/home/httpd/twiki/data">
    deny from all
 </Directory>
 <Directory "/home/httpd/twiki/templates">
    deny from all
 </Directory>

  • Restart Apache by service httpd restart (or as appropriate to your flavor of UNIX or Linux).
  • Test that the twiki/bin directory is CGI-enabled by trying visiting it in your browser:
    • Enter the URL for the bin directory, http://yourdomain.com/twiki/bin/
    • Your settings are OK if you get a message like "Forbidden. You don"t have permission to access /twiki/bin/ on this server".
    • Settings are NOT correct if you get something like "Index of /twiki/bin" - recheck your httpd.conf file.

  • Go directly to #StepTwoStep 2...

Aletrnative Step 1: Create & Configure the Directories for Non-Root Accounts

To install TWiki on a system where you don"t have Unix/Linux root (administrator) privileges, for example, on a hosted Web account or an intranet server administered by someone else:

  • Download and unzip TWiki on your local PC
  • Using the table below, create a directory structure on your host server
  • Upload the TWiki files by FTP (transfer as text except for the image files in pub)
TWiki dir: What it is: Where to copy: Example:
twiki start-up pages root TWiki dir /home/smith/twiki/
twiki/bin CGI bin CGI-enabled dir /home/smith/twiki/bin
twiki/lib library files same level as twiki/bin /home/smith/twiki/lib
twiki/pub public files htdoc enabled dir /home/smith/twiki/pub
twiki/data topic data dir secure from public access /home/smith/twiki/data
twiki/templates web templates dir secure from public access /home/smith/twiki/templates

Note: Don"t worry if you are not able to put the twiki/lib directory at the same level as the twiki/bin directory (e.g. because CGI bin directories can"t be under your home directory and you don"t have root access). You can create this directory elsewhere and configure the /twiki/bin/setlib.cfg file (done in Step 3)

Step 2: Set File Permissions

  • Make sure Perl 5 and the Perl CGI library are installed on your system. The default location of Perl is /usr/bin/perl. If it"s elsewhere, change the path to Perl in the first line of each script in the twiki/bin directory, or create a symbolic link from /usr/bin/perl.
    • IMPORTANT:
      • On ISP-hosted accounts (and some intranet servers), Perl CGI scripts may require a .cgi extension to run. Some systems need .pl, the regular Perl extension. Rename all twiki/bin scripts if necessary.
      • Alternatively, you might try creating a file twiki/bin/.htaccess that contains the single line SetHandler cgi-script, which tells Apache to treat all files in this directory as CGI scripts.
  • Set the file permission of all Perl scripts in the twiki/bin directory as executable to -rwxr-xr-x (755).
  • To be able to edit the Perl scripts and .tmpl files it is necessary to chown and chgrp -R twiki so all the files have the owner you want.
  • HELP This Guide assumes user nobody ownership for all files manipulated by the CGI scripts (executed by the Web server), and user twiki for all other files. You can:
    • replace nobody with another user if your server executes scripts under a different name (ex: default for Debian is www-data).
      • TIP HINT: Run the testenv script from your browser: http://yourdomain.com/twiki/bin/testenv. It will show you the user name of the CGI scripts, a table listing all CGI environment variables, and a test of your twiki/lib/TWiki.cfg configuration file (you"ll configure that in a minute).
    • replace user twiki with your own username
  • Set permissions manually.
    • Set the permission of all files below twiki/data so that they are writable by user nobody. A simple way is to chmod them to -rw-rw-r-- (664) and to chown them to nobody.
    • Set the permission of the twiki/data directory and its subdirectories so that files in there are writable by user nobody. A simple way is to chmod them to drwxrwxr-x (775) and to chown them to nobody.
    • Set the permission of the twiki/pub directory and all its subdirectories so that files in there are writable by user nobody. A simple way is to chmod them to drwxrwxr-x (775) and to chown them to nobody.
    • HELP The twiki/data/*/*.txt,v RCS repository files in the installation package are locked by user nobody. If your CGI scripts are not running as user nobody, it"s not possible to check in files (you"ll see that the revision number won"t increase after saving a topic). In this case, you need to unlock all repository files (check the RCS man pages) and lock them with a different user, such as www-data, or delete them all - new files will be automatically created the first time each topic is edited. You have two options to change ownership of the RCS lock user:
      • Run the testenv script from your browser; in the Fix line you can relock all the rcs files (recommended)
      • Alternatively, run this in your shell:
        cd twiki/data
        find . -name *,v -exec perl -pi~ -e "$. <= 10 && s/nobody:/www-data:/ " {} \;
        This will create *,v~ backup files which you should remove after verification:
        find . -name *,v~ -exec rm -f {} \;

Step 3: Edit the Configuration Files

  • Edit the file /twiki/bin/setlib.cfg
    • Set $twikiLibPath to the absolute file path of your /twiki/lib as seen by the web server.
    • ALERT! Attention: Do not leave it as a relative "../lib" path or Plugins might fail to initialize properly
    • You can also edit $localPerlLibPath if you are not root and need to install additional CPAN modules, but can"t update the main Perl installation files on the server. Just set this variable to the full pathname to your local lib directory, typically under your home directory.
    • ALERT! Attention: If you are running TWiki on Apache 2.0 on Unix you might experience cgi scripts to hang forever. This is a known Apache 2.0 bug. See details and woraround in the setlib.cfg file.
  • Edit the file twiki/lib/TWiki.cfg, setting the variables to your needs.
    • Set the file extension in the $scriptSuffix variable to cgi or pl if required.
    • RCS - revision control system to store revision of topics and attachments. You can use RCS executables or a version of RCS written in Perl, note that as the time of writing (Apr 2002) the Perl version has not been widely tested, so if you want to put up a live site the RCS executables are recommended.
      • Set $storeTopicImpl = "RcsWrap"; for the RCS executables and make sure RCS is installed. Set $rcsDir in twiki/lib/TWiki.cfg to match the location of your RCS binaries. You can check this by issuing the command rcs at the prompt, it should result in something like "rcs: no input file".
        • Check that you have GNU diff, by typing diff -v - an error indicates you have a non-GNU diff, so install the GNU diffutils package and make sure that diff is on the PATH used by TWiki (see $safeEnvPath in the TWiki.cfg file).
      • Set $storeTopicImpl = "RcsLite"; for the Perl based RCS
  • Security issue: Directories twiki/data , twiki/templates and all their subdirectories should be set so that they are not visible through URLs. (Alternatively, move the directories to a place where they are not visible, and change the variables in twiki/lib/TWiki.cfg accordingly)
  • Test your settings by running the testenv script from your browser: http://yourdomain.com/twiki/bin/testenv. Check if your twiki/lib/TWiki.cfg configuration file settings are correct.

Step 4: Internationalisation Setup (Optional)

By default, TWiki is configured to support US ASCII letters (no accents) in WikiWords, and ISO-8859-1 (Western European) characters in page contents. If that"s OK for you, skip this step.

If your Wiki will be used by non-English speakers, TWiki can be configured for Internationalisation ("I" followed by 18 letters, then "N", or I18N). Specifically, TWiki will support suitable accented characters in WikiWords (as well as languages such as Japanese or Chinese in which WikiWords do not apply), and will support virtually any character set in the contents of pages. NOTE: TWiki does not currently support UTF-8, so you are advised not to use this - however, improved UTF-8 support is under development, see TWiki:Codev/ProposedUTF8SupportForI18N.

To configure internationalisation suppport:

  1. Edit the TWiki.cfg file"s Internationalisation section to set the $useLocale parameter to 1. TWiki will now use the I18N parameters set in the rest of this section.
  2. Type the Unix/Linux command locale -a to find a suitable "locale" for your use of TWiki. A locale that includes a dot followed by a character set is recommended, e.g. pl_PL.ISO-8859-2 for Poland. Consult your system administrator if you are not sure which locale to use.
  3. In TWiki.cfg, set the $siteLocale parameter to your chosen locale, e.g. pl_PL.ISO-8859-2 for Poland.
  4. Check your setup using testenv (download the latest testenv from TWiki:Support/SupportGuidelines if possible) - this provides some diagnostics for I18N setup, and in particular checks that your locale can be used successfully.
  5. (For upgrade of TWiki I18N sites only:) If you were using TWiki:Codev.TWikiRelease01Feb2003 support for I18N, and are using Internet Explorer or Opera, you should re-configure your browser so that it sends URLs encoded with UTF-8 (supported since TWiki:Codev.TWikiRelease01Sep2004). If you are doing a new installation of TWiki, you can ignore this step - no browser reconfiguration is needed for TWiki Release 01-Sep-2004).
    • Internet Explorer 5.0 or higher: in Tools | Options | Advanced, check "always send URLs as UTF-8", then close all IE windows and restart IE.
    • Opera 6.x or higher: in Preferences | Network | International Web Addresses, check "encode all addresses with UTF-8".
    • NOTE: This does not mean that TWiki supports UTF-8 as a site character set.
  6. Try out your TWiki by creating pages in the Sandbox web that use international characters in WikiWords and checking that searching, WebIndex, Ref-By and other features are working OK.

Trouble with I18N?

If international characters in WikiWords do not seem to work, and you are on Perl 5.6 or higher, you may need to set the TWiki.cfg parameter $localeRegexes to 0 - this disables some features but enables TWiki to work even if your system has locales that do not work. Then, set the $upperNational and $lowerNational parameters to the valid upper and lower case accented letters for your locale.

  • NOTE: You will need to do the above workaround for Windows based servers (whether using Cygwin or ActiveState Perl), since Perl locales are not working on Windows as of Feb 2004.

If international characters in WikiWords aren"t working, and you are on Perl 5.005 with working locales, keep $useLocale set to 1 and set $localeRegexes to 0, then set $upperNational and $lowerNational - if testenv generates the lists of characters for you, your locales are working so there is no need to set $localeRegexes to 0 in this case. See the comments in TWiki.cfg for more information.

Step 5: Configure Site-Wide Email Preferences

  • Edit the TWikiPreferences topic in the TWiki web (by pointing your browser to http://yourdomain.com/twiki/bin/view/TWiki/TWikiPreferences) to set the WIKIWEBMASTER email address, and other email settings required for registration and WebChangesAlert to work:
    • WIKIWEBMASTER should be set to the email address of the TWiki administrator
    • SMTPMAILHOST is typically set on Windows or other non-Unix/Linux systems, where sendmail or similar is not available. When this is set and the Perl module Net::SMTP is installed, TWiki will connect to this SMTP server (e.g. mail.yourdomain.com) to send email for user registration and WebChangesAlerts. If you do have a sendmail-type program, leave SMTPMAILHOST unset so that the external sendmail program is used instead (defined by $mailProgram in TWiki.cfg).
    • SMTPSENDERHOST is optional, and set to the domain name sending the email (e.g. twiki.yourdomain.com). For use where the SMTP server requires that you identify the TWiki server sending mail. If not set, Net::SMTP will guess it for you.
  • You may want to set up other TWikiPreferences later on.
  • To enable the WebChangesAlerts (email notifications) you need to read about cron in the topic TWikiSiteTools.

Step 6: Finish Up from Your Browser

  • Point your Web browser at http://yourdomain.com/twiki/bin/view and start TWiki-ing away!
    • TIP Or, point to http://yourdomain.com/twiki/ to get the pre-TWiki index.html page, with a link to the view script. Customize this page if you want a public intro screen with a login link, instead of immediately calling up the .htaccess login dialog by going directly to view.
  • Edit the WebPreferences topic in each web, if necessary: set individual WEBCOPYRIGHT messages, and other preferences.
  • Enable email notification of topic changes - TWikiSiteTools has more.
  • Edit the WebNotify topic in all webs and add the users you want to notify.
  • Add the TWiki:Main/PoweredByTWikiLogo to your Main topic.
  • You can add new %VARIABLES%. Define site-level variables in the TWikiPreferences topic. See also: TWikiVariables.

That"s it for the standard installation of TWiki. Read on for server-level customization options.

Additional Server-Level Options

With your new TWiki installation up and running, you can manage most aspects of your site from the browser interface. Only a few functions require access to the server file system, via Telnet or FTP. You can make these server-level changes during installation, and at any time afterwards.

Enabling Authentication of Users

  • If TWiki is installed on a non-authenticated server - not using SSL - and you"d like to authenticate users:
    1. Rename file .htaccess.txt in the twiki/bin directory to .htaccess and change it to your needs. The comment at the top of the file explains what need to be done, basically replace !FILE_path_to_TWiki! and !URL_path_to_TWiki! with paths specific to your installation. For the details of how this file works, consult the HTTP server documentation (for Apache server: [1], [2]).
      • ALERT! NOTE: If you had to add a .cgi or .pl file extension to the bin scripts, make sure to do the same for edit, view, preview, and all the other script names in .htaccess.
      • HELP The browser should ask for login name and password when you click on the Edit link. In case .htaccess does not have the desired effect, you need to enable it: Add "AllowOverride All" to the Directory [3] section of access.conf for your twiki/bin directory.
        • This applies only if you have root access: on hosted accounts, you shouldn"t have this problem - otherwise, email tech support.
      • ALERT! NOTE: In the TWiki distribution package, the twiki/data/.htpasswd.txt file contains several TWiki core team user accounts and a guest user account. You probably want to remove those accounts by deleting the entries in .htpasswd. Do not remove the guest user if you want to allow guest logins.
    2. TWiki now supports several Password file format/encoding methods for Apache. Once you know what method is used by your Appache server, you can configure TWiki to create compatible .htpasswd entries by editing the $htpasswdFormatFamily, $htpasswdEncoding and $htpasswdFilename in the TWiki.cfg file. The supported options are htpasswd:plain, htpasswd:crypt, htpasswd:sha1, htdigest:md5
    3. Copy the TWikiRegistrationPub? topic to TWikiRegistration, overwriting old version of TWikiRegistration. Do that by either editing the topics in theTWiki web, or by renaming the .txt and .txt,v files in the twiki/data/TWiki directory.
  • Customization:
    • You can customize the registration form by deleting or adding input tags. The name="" parameter of the input tags must start with: "Twk0..." (if this is an optional entry), or "Twk1..." (if this is a required entry). This ensures that the fields are carried over into the user home page correctly.
    • You can customize the default user home page in NewUserTemplate. The same variables get expanded as in the TWikiTemplates#Template_Topicstemplate topics
  • Register yourself in the TWikiRegistration topic.
    • ALERT! NOTE: When a user registers, a new line with the username and encrypted password is added to the data/.htpasswd file. The .htpasswd file that comes with the TWiki installation includes user accounts for TWiki core team members that are used for testing on TWiki.org. You can edit the file and delete those lines.
  • Create a new topic to check if authentication works.
  • Edit the TWikiAdminGroup topic in the TWiki:Main web to include users with system administrator status.
  • Edit the TWikiPreferences topic in the TWiki:TWiki web to set access privileges.
  • Edit the WebPreferences topic in each web, if necessary: set access priviliges.

WYSIWYG Editor

At this time, TWiki does not ship with an "what you see is what you get" editor. TWiki:Codev/IntegrateHtmlAreaEditor describes how to integrate an HTML editor.

ALERT! NOTE: User home topics are located in the UAIWiki.Main web - don"t try to move them or create them in other webs. From any other web, user signatures have to point to UAIWiki.Main web, using a Main.UserName or %MAINWEB%.UserName format. (The %MAINWEB% variable is an advantage if you ever change the Main web name, but the standard Main.UserName is easier for users to enter, which is the bottom line!)

TWiki File System Info

See AppendixFileSystemAppendix? A: TWiki File System for an installed system snapshot and descriptions of all files in the TWiki 01-Sep-2004 distribution.

-- TWiki:Main/PeterThoeny - 29 Aug 2004
-- TWiki:Main/MikeMannix - 16 May 2002


Windows Install Cookbook

Introduction

This cookbook is intended to get you up and running with TWiki on Windows quickly, with as few problems as possible. The 'cookbook' approach is simply to restrict the many choices that someone installing TWiki must make, so that a reasonably well-defined procedure can be followed - new users can simply follow the steps, while experts can use this as more of a guideline.

  • NOTE: This cookbook is not 100% complete (e.g. it doesn't cover authentication setup described by existing documentation), but it has been used successfully for over a year now - it is quite accurate and should get you started if you follow the instructions. Please provide feedback in TWiki:Codev.WindowsInstallCookbookComments.
  • NOTE: You will get the best results from following this cookbook exactly, using the same directories, etc - however, if you really do need to vary things, it should be fairly obvious what to do.

-- RichardDonkin? - 24 Feb 2002

Summary

NEW - See WindowsInstallSummary for a concise summary of the whole cookbook.

Recent updates

  • 28 Jun 2004 - updated to reflect experiences installing beta20040507 on Windows NT
  • 2 Jun 2003 - updated to include setting HOME since this is not always picked up by Cygwin
  • 30 Apr 2003 - New issue with Perl 5.8 found, added warning not to use Perl 5.8
  • 02 Mar 2003 - updated to restrict register script edits to Dec 2001 release
  • 30 Nov 2002 - added binutils to list of Cygwin packages, and added warning not to use Apache 2.0
  • 20 Nov 2002 - update to avoid TWiki:Support.InstallDigestSHA1Fails when installing Digest::SHA1 on Windows 2000
  • 12 Nov 2002 - setting SMTPMAILHOST for user registration and notification
  • Older changes are in TWiki:TWiki.WindowsInstallCookbookHistory

Scope

This document covers installation of the TWiki 01-Sep-2004 production release (TWiki:Codev/TWikiRelease01Sep2004) in the following environment - if you want to use a different environment, feel free to use this as a guideline only.

Component Name, version Comment
Operating System Windows 2000 Should also work for Windows NT
Web Server Apache 1.3.27 Windows-specific security holes fixed in this build
(check latest version at http://httpd.apache.org, but don't use Apache 2.0 yet)
Unix tools Cygwin 1.3.9 Simplest way to get a whole set of required tools
Perl Cygwin perl-5.6.1-2 Comes with Cygwin, don't use Perl 5.8.0 yet
RCS Cygwin rcs-5.7-2 Comes with Cygwin, includes a file corruption bugfix

Why this choice of packages? Because I've tried them, and they work well, without requiring a complicated setup... In particular, Apache is the commonest choice for TWiki on Unix/Linux, Cygwin Perl is very close to Unix Perl, and the Cygwin RCS is regularly updated, with a recent TWiki-relevant bug fix in Feb 2002. Cygwin also lets you install the Unix tools, Perl and RCS in a single step, saving quite a lot of time.

More recent minor versions should be OK, but they can introduce bugs.

NEW Major version upgrades, such as Apache 2.0 and Perl 5.8, are very likely to cause problems - for example, Apache 2.0 is unable to authenticate users created by the current TWiki user registration script (due to a feature being removed in 2.0, see TWiki:Support.FailedAuthenticationWithApache2OnWinNT). Similarly, Perl 5.8 may introduce issues due to its Unicode features and has caused problems due to a bug in CGI.pm. Even though the Apache group says that Apache 2.0 is the best version, that's not true for TWiki at present. For more information, see TWiki:Codev.IssuesWithApache2dot0 and TWiki:Codev.IssuesWithPerl5dot8.

Alternatives

The following Windows operating systems have been tested following the instructions given here:

There are doubtless other combinations of components that may work - in particular:

  • TWiki:Codev.ActiveState Perl involves only minor changes to TWiki.cfg, and is probably a simpler choice if you need an easy way to install mod_perl (see TWiki:Codev.ModPerl). TWiki:Codev.ActiveState Perl can be substituted without too much hassle, and in fact the same TWiki.cfg can be used for both TWiki:Codev.ActiveState and Cygwin Perl.
  • Using a different web server is certainly possible, but the setup required for each webserver varies greatly (see TWiki:Codev.TWikiOnWindows for pages about specific web servers). You may find it easiest to get a working system with Apache and then switch over to another web server.

Covering the whole range of additional possibilities, particularly web servers, would make this cookbook too complex, and is best handled as a separate activity.

For improved performance on Windows through using mod_perl, you may want to try TWiki:Codev.WindowsModPerlInstallCookbook.

Checking versions

If you already have some of these add-ons installed, here's how to check the versions - this assumes you have TWiki:Codev.CygWin already installed:

   $ : Cygwin DLL version is the number in 1.3.x format
   $ uname -r
   $ less c:/your-apache-dir/Announcement
   $ perl -v
   $ rcs -V

If you have an older version of any component, do yourself a favour and upgrade it as part of the install process.

Pre-requisites and upgrades

You will need to have local administrator rights and be comfortable with Windows administration.

This cookbook is intended for a clean install, i.e. none of these components are already installed. However, since Cygwin and Apache's installation process is fairly upgrade-friendly, upgrades should work as well - take backups of all your data and config files first, though!

Text editing

Editing Cygwin files should be done with an editor that can handle Unix file format (see the Cygwin binary mode section below). The installation process suggests:
  • nano, a very simple text editor, installed optionally during Cygwin installation. Always launch nano with the -w command-line option to turn off wrapping of long lines.
  • vi, a more sophisticated editor that should be familiar to most UNIX users
These both non-GUI editors, but if you prefer to use a GUI editor you should install PFE, a freeware editor that supports Unix format files. PFE is available on download.com and Simtel.

Another good TWiki:Codev.OpenSource editor is SciTE (aka WSciTE), available at http://www.scintilla.org/SciTE.html.

The Unix/Windows Environment

It's a little known fact that you can use pathnames such as c:/apache almost everywhere in Windows - try it in a File Open dialogue box. The main exception is the Windows "DOS" command line shell - here, you must use double quotes around forward slashes, e.g. dir "c:/apache" will work fine.

The reason this matters is that '\' is a special character to Perl and other tools, so it's much easier to use '/' everywhere.

The Cygwin environment

TWiki:Codev.CygWin is a Unix-like environment for Windows - many of its tools support the c:/apache format, but it also provides a more Unixlike syntax, e.g. /usr/bin/rcs.exe, because some Unix tools ported onto Cygwin only support the Unix format.

When you launch a Cygwin shell, your existing PATH variable is translated from the Windows format to the Unix format, and the ';' separators in the Windows PATH are changed into ':' separators as required by Unix. A Cygwin tool (e.g. Cygwin Perl or Cygwin RCS) will always use the Unix PATH format, and will accept Unix format pathnames.

The Apache environment

Apache runs as a native Windows process and has nothing to do with Cygwin (at least the version used in this cookbook doesn't). Hence it supports c:/ pathnames in its config files and the first line of Perl CGI scripts.

If you need to use spaces in file names (not recommended), put double quotes around the file name in the httpd.conf file. There have been some security-related bugs in Apache with long pathnames, which are a bit more likely if you use spaces, so it's best to just avoid long names and using spaces.

The Perl environment

Once Perl has been launched by Apache, it is in Cygwin mode, and so is everything it launches, including ls, egrep, and the RCS tools that it (typically) launches with the bash shell.

If you need to use spaces in file names (not recommended), you may be able to put double quotes around the file name in the TWiki.cfg file - however, it's not clear whether all the TWiki code would work with this.

Installing Components

Enough background, let's get on with the installation.

TWiki (part 1)

Head to http://twiki.org, click the download link, and fill in the form to request a URL for download. You'll get an automated email, which should arrive by the time you need it.

Apache

Steps 1 and 2 can be shortcut by opening the self-installing executable on the Apache website that installs Apache 1.3.x. The painful details below are mainly helpful when detecting where things are going wrong.....

1. Download Apache

  • Check at http://httpd.apache.org/ for any security announcements
  • Check the latest 1.3.x version number on this page
  • Find a local mirror using http://www.apache.org/dyn/closer.cgi - choose httpd, then binaries, then win32
  • The file to download is apache_1.3.X-win32-x86-no_src.msi where 'X' is 20 or higher
    • Note that this is a Microsoft Installer format file (.MSI)

  • NOTE: If you are using Windows NT, download the .MSI installer (instmsi.exe) from the Apache Win32 download page - this enables you to install .MSI files. You may need to update the .MSI Installer if you have an old version under NT.
  • NOTE: The Apache package itself requires a download of around 2 MB, and up to 10 MB of free disk space once installed

2. Install Apache

  • Double-click the .MSI file to run the installer
  • Specify c:\ as the installation directory - this actually installs Apache into c:\apache (if you specify c:\apache, it installs into c:\apache\Apache). Putting Apache into c:\Program Files is not recommended for easy editing of Apache config files from Cygwin.
  • On Windows NT/2000 you can choose to run Apache as a service or as a normal program - see the Apache docs for details.

3. Test Apache

  • If necessary, start apache, by selecting 'Start' from the 'Start->Programs->Apache...->Control Apache Server' menu.
  • Point your browser at http://yourdomain.com/ to see the Apache intro page.

Congratulations, you now have a working web server!

To restart Apache after changing its config, type:

  • apache -k restart for standalone Apache process running in another window
  • apache -k restart -n apache for Apache running as a Win2000 service (-n gives name of service)

Another useful command is apache -k stop.

Cygwin, Unix tools, Perl and RCS

4. Install Cygwin

Head to http://cygwin.com, and click the cygwin-icon.gif Install or update now! link. Save the setup.exe in a directory, e.g. c:\download\cygwin-dist.

Now run the Cygwin setup.exe file - this will also install Perl and RCS in one fell swoop.

  • Choose Internet install
  • On first page, accept the defaults (be sure that the default text file type is Unix to avoid problems with attachment uploads, and specify 'install for all users')
  • Select c:\download\cygwin-dist as the local package directory, and suitable proxy settings, then pick a local mirror site
  • In the package list screen, hit the View button until you get an alphabetical list that says Full to the right of the button.
  • Leave the radio button on Curr (Current)
    • The Current column shows what's installed on your system (if anything)
  • For each package, make sure the New column in the installer has a version number under it. If it says 'Skip' or 'Keep' (meaning it's already installed), single-click that word until a version number is shown. Make sure you select the following packages - in recent Cygwin setups you will have to select Perl 5.6.1 explicitly:
    • bash
    • binutils
    • diffutils
    • gcc
    • grep
    • gzip
    • make
    • nano (or vim if you prefer the vi editor)
    • ncftp
    • pcre
    • perl (5.6.1-2 or higher, but not 5.8.0)
    • rcs (5.7-2 or higher)
    • tar
    • textutils
    • unzip
    • w32api
    • wget (optional, useful for Perl install and TWiki:Codev.ReadWriteOfflineWiki)
    • NOTE: Do not include lynx if you are upgrading from an older Cygwin installation (to avoid annoying DLL messages) - if you want Lynx, read the Cygwin FAQ entry and upgrade libncurses5.
  • Hit Next to do the installation.
    • NOTE: The mandatory packages require a download of about 12 MB - about half of this is Perl, which would be necessary even without Cygwin, and most of the rest is gcc, which is required for simple installation of Perl modules that use the C language. Something like 20 to 30 MB of free disk space should be enough for Cygwin, but I didn't test this (try a du -k / after a new install and let me know the last figure).
    • NOTE: The installer keeps a local copy of downloaded files, so it's easy to re-install without re-downloading.
  • Let the installer create the shortcuts suggested
  • You can always come back and re-run the installer again later if you missed anything.

Environment setup:

  • Set the HOME environment variable to c:\cygwin\home\YOURUSER, where YOURUSER is your userid, e.g. jsmith or administrator.
    • Windows NT, XP and 2000: Go into Control Panel, double-click the System icon, and select Advanced, then click Environment Variables. Under User Variables, click New.... Now type HOME (must be upper case) as the variable name, and c:\cygwin\home\YOURUSER as the value, and hit OK.
    • Windows 98 and ME - add to AUTOEXEC.BAT and reboot
  • You can also set TEMP to c:\temp at this point, if you prefer this to editing the Cygwin ~/.profile file. (HOME can't be set in the ~/.profile file.)
  • Create the c:\cygwin\home\YOURUSER directory

5. Test Cygwin

  • Launch the desktop icon - this runs the bash shell, which has command line editing features
    • Use the cursor up key to recall previous commands - normal PC editing keys can then be used to edit a command
    • TIP: When typing a directory or file name, hit the TAB key after the first few letters of the name - bash will 'complete' the name. If bash beeps at you, hit TAB again to see the files/directories that match the name so far, and type a bit more before hitting TAB. This saves a lot of time!
  • Type rcs -V - you should see the RCS version, 5.7
  • Type perl -v - you should see cygwin mentioned in the first line, and the Perl version, 5.6.1
  • Type grep home /etc/passwd - you should see some output.

The Cygwin User Guide is well worth reading for some background on how Cygwin works.

6. Configure Cygwin for binary mode

  • This is very important - omitting this step leads to a partially working system that corrupts RCS files - without this, Cygwin tools (including Perl and RCS) will add unwanted carriage returns (Ctrl/M, '\r') to files in an attempt to translate between the Windows and Unix text file formats (Unix text files only use line feeds ('\n').
  • Stay in the Cygwin (bash) shell, and type the following (use only forward slashes, i.e. '/'):
   $ mkdir /twiki /c c:/twiki
   $ mount -b -s c:/twiki /twiki
   $ mount -b -s c:/ /c
   $ mount -b -c /cygdrive
   $ mount
   Device              Directory           Type         Flags
   C:\cygwin\bin       /usr/bin            system       binmode
   C:\cygwin\lib       /usr/lib            system       binmode
   C:\cygwin           /                   system       binmode
   c:\twiki            /twiki              system       binmode
   c:                  /c                  system       binmode
  • This configures /twiki (known as a 'mount point') to map onto c:/twiki and for that directory tree to always be in binary mode, and does the same for /c, mapping it onto c:/. The last-but-one command sets binary as the default for any unmounted drives (e.g. z:/, aka /cygdrive/z).
  • It is very important that all lines in the output of mount say 'binmode' under Flags
    • If the lines for C:\cygwin directories do not, you should uninstall and then re-install Cygwin to ensure that binary attachment uploads will work.
  • You can now refer to files using Unix paths, e.g. /twiki/bin/view or /c/apache/Announcement - see the Cygwin documentation for more details on this.
  • Now test this, still using the Cygwin shell:
    • Type cd /twiki
    • Type echo hi >t
    • Type cat -v t - you should see hi as the output
    • If you see filename errors, your mounts did not work for some reason - check your typing
    • If you see hi^M as output, your /twiki directory is not in binary mode
    • Clean up by doing rm t

This setup is written to the Windows registry, so there's no need to put these commands into a .profile file. For more information on binary vs text mode, see this User Guide section and this FAQ entry.

TWiki (part 2)

7. Download TWiki

Download the latest TWiki release from http://twiki.org/ and save it in the c:/twiki directory.

8. Install TWiki

Unzip the ZIP file under c:/twiki using WinZip, or by going into Cygwin and doing the following - you can hit the TAB key to complete filenames after you've typed the first part:

   $ cd /twiki
   $ unzip TWiki20011201.zip

Configuring components

Now that all the components are installed, you need to configure them.

Configuring Apache

The setup given here is fairly simple, in that it allows only TWiki to be served by the web server. For more complex setups, you can investigate the Alias and ScriptAlias commands that are left commented out in this configuration.

  • NOTE: This needs reviewing for security holes and to ensure nothing is missed, though this config does work.

1. Configure Apache (part 1)

Using a suitable text editor (see #TextEditing, above) edit c:/apache/conf/httpd.conf as follows - this tells Apache where TWiki lives, and removes the need to tinker with the Windows environment settings.

  • Note the trailing '/' characters in various places - they are important!

  • Create the c:\temp directory, by typing mkdir c:\temp in a DOS command line window
  • Edit the following lines, some of which already exist in the file:

# Change this to point to the Apache administrator (e.g. you)
ServerAdmin you@yourdomain.com

# Replaces DocumentRoot "C:/apache/htdocs"
DocumentRoot "C:/twiki"

# Replaces <Directory "C:/apache/htdocs">
<Directory "C:/twiki">

  • Add the following lines - the Alias and ScriptAlias lines can be omitted in this setup

# Alias /twiki/ "C:/twiki/"
# ScriptAlias /twiki/bin/ "C:/twiki/bin/"
<Directory  "C:/twiki/bin/">
    # RD: Changed None to All in next line, to enable .htaccess
    AllowOverride All
    Allow From All
    Options  ExecCGI
    SetHandler cgi-script
</Directory>

# Environment setup required to run Apache as service or as a
# standalone process.
<IfModule mod_env.c>
   # Adjust TZ for your server timezone, e.g. EST5EDT - put the non-daylight-savings
   # timezone code first (e.g. EST or GMT), followed by the number of hours that it's behind GMT 
   # during non-daylight-savings time (use '-5' for timezones in advance of GMT).
   SetEnv TZ GMT0BST
   SetEnv RCSINIT -x,v/
   # Adjust TEMP and TMP for your server and create directories if necessary
   SetEnv TEMP c:/temp
   SetEnv TMP c:/temp
   SetEnv LOGNAME system
   SetEnv HOME c:/twiki
</IfModule>

2. Configure Apache (part 2)

Add an AddHandler line to the <IfModule mod_mime.c> section of httpd.conf - this removes the need to rename all the TWiki CGI scripts later in the installation.

  • Note the trailing '.' on the AddHandler line.
#
# Document types
#
<IfModule mod_mime.c>
    # TWiki setup - avoid renaming scripts
    AddHandler cgi-script .
...

Configuring TWiki

3. Configure TWiki

Edit the TWiki config file, c:/twiki/lib/TWiki.cfg (or in Cygwin terms, /twiki/lib/TWiki.cfg) as follows:

  • NOTE: It should be possible to use c:/twiki format pathnames for Cygwin, given the above binmode setup, but I have not tested this fully - a Cygwin Perl test script does generate binary mode files in this configuration, so it should work with RCS as well (really need a small RCS file corruption test case). Watch out for RCS file corruption carefully if you do try c:/twiki pathnames with Cygwin, and do report your experiences...
  • NOTE: Some recent versions of Cygwin (e.g. 1.3.10) seem to create 'symbolic links' from fgrep and egrep to grep, requiring the settings for these commands to point directly to grep (with suitable flags to provide fgrep and egrep behaviour).

# variables that need to be changed when installing on a new server:
# ==================================================================
#                   http://uai.cs.ubc.ca/twiki : link of TWiki icon in upper left corner :
$wikiHomeUrl      = "http://yourdomain.com/bin/view";
#                   Host of TWiki URL :    (Example "http://myhost.com:123")
$defaultUrlHost   = "http://yourdomain.com";
#                   /cgi-bin/twiki : cgi-bin path of TWiki URL:
$scriptUrlPath    = "/bin";
#                   /twiki/pub : Public data path of TWiki URL (root of attachments) :
$pubUrlPath       = "/pub";

# NOTE: Next three settings should be valid absolute pathnames using Cygwin; if using
# TWiki:Codev.ActiveState Perl, use z:/twiki format pathnames if your TWiki directory is not on C:.

#                   Public data directory, must match $pubUrlPath :
$pubDir           = "/twiki/pub";
#                   Template directory :
$templateDir      = "/twiki/templates";
#                   Data (topic files) root directory :
$dataDir          = "/twiki/data";

....

#                   Set ENV{'PATH'} explicitly for taint checks ( #!perl -T option ) :
#                   (Note: PATH environment variable is not changed if set to "")

# On Windows, $safeEnvPath needs only one component, the directory where RCS is installed
# - used by 'rcsdiff' to run 'co' program, so PATH must be correct.

# Unix/Linux setting:
# $safeEnvPath      = "/bin:/usr/bin";

# Using Cygwin perl, so can use Unix-like paths, with ':' as separator.
# Note that /usr/bin and /bin are identical due to default /usr/bin mount
# in Cygwin.  Must NOT use 'c:/foo' type paths, as ':' is taken as separator
# meaning that 'c' is interpreted as a pathname, giving Perl taint error.
$safeEnvPath      = "/bin";

# If using ActiveState perl, use Windows paths instead
# $safeEnvPath      = "c:/cygwin/bin";

...

#                   RCS directory (find out by 'which rcs') :
$rcsDir           = "c:/cygwin/bin";

...

#                   Unix egrep command :
$egrepCmd         = "/bin/grep -E";
#                   Unix fgrep command :
$fgrepCmd         = "/bin/grep -F";

For the cookbook install using Cygwin Perl, there's no more TWiki.cfg editing to be done, so you can get onto the next section.

#                   NOTE: When using ActiveState Perl, you must specify
#                   a full Windows-style pathname, using '\\' for backslashes,
#                   for the ls, egrep and fgrep commands, because Cygwin's shell
#                   is not used - forward slashes are OK in Windows everywhere
#                   except in the cmd.exe shell. Drive letters are OK - e.g.
#                   'c:\\foo\\ls' will work.  When using Cygwin perl, just
#                   use the default '/bin/ls' type settings.
#
#                   Unix ls command :
$lsCmd            = "c:\\cygwin\\bin\\ls";
#                   Unix egrep command :
$egrepCmd         = "c:\\cygwin\\bin\\grep";
#                   Unix fgrep command :
$fgrepCmd         = "c:\\cygwin\\bin\\grep";

Editing the CGI scripts

4. Editing the Shebang lines

Now to edit the curiously named 'shebang lines' at the top of the TWiki CGI scripts. This is required so the Apache server knows what interpreter (perl) to use with the scripts.

  • You must use the Cygwin shell to do this (unless you are a Perl expert) - don't use the Windows command shell, cmd.exe (aka DOS Prompt)
  • Then do the following, which quickly edits the