Skip to topic | Skip to bottom
Tutorial
Tutorial.TWikiDocumentationr1.1 - 06 Nov 2006 - 20:02 - Main.guesttopic end

Start of topic | Skip to actions

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


Note: Included topic TWikiSystemRequirements? does not exist yet


Note: Included topic TWikiInstallationGuide? does not exist yet


Note: Included topic WindowsInstallCookbook? does not exist yet


Note: Included topic TWikiUpgradeGuide? does not exist yet


Note: Included topic TWikiUserAuthentication? does not exist yet


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 TWiki 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 TWiki 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?. TWiki 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, TWiki 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 Text Formatting

Working in TWiki is as easy as typing in text - exactly like email. You don't need to know HTML, though you can use it if you prefer. Links to topics are created automatically when you enter WikiWords. And TWiki shorthand gives you all the power of HTML with a simple coding system that takes no time to learn. It's all laid out below - refer back to this page in a pop-up window from the Edit screen.

TWiki Editing Shorthand

Formatting Command: Example: You write: You get:
Paragraphs:
Blank lines will create new paragraphs.
1st paragraph

2nd paragraph
1st paragraph

2nd paragraph

Headings:
At least three dashes at the beginning of a line, followed by plus signs and the heading text. One plus creates a level 1 heading (most important), two pluses a level 2 heading; the maximum is level 6. Note: A Table of Content can be created automatically with the %TOC% variable, see TWikiVariables. Any heading text after !! is excluded from the TOC; for example, write ---+!! text if you do not want to list a header in the TOC.
---++ Sushi

---+++ Maguro

Sushi

Maguro

Bold Text:
Words get bold by enclosing them in * asterisks.
*Bold*
Bold
Italic Text:
Words get italic by enclosing them in _ underscores.
_Italic_
Italic
Bold Italic:
Words get _bold italic by enclosing them in _ double-underscores.
__Bold italic__
Bold italic
Fixed Font:
Words get shown in fixed font by enclosing them in = equal signs.
=Fixed font=
Fixed font

Bold Fixed Font:
Words get shown in bold fixed font by enclosing them in double equal signs.
==Bold fixed==
Bold fixed
Note: Make sure there is no space between the text and the bold, italic, or other indicators (* _ __ = ==).
_This works_,
_this not _
This works,
_this not _
Verbatim Mode:
Surround code excerpts and other formatted text with <verbatim> and </verbatim> tags.
Note: Use <pre> and </pre> tags instead if you want that HTML code is interpreted.
Note: Each tag must be on a line by itself.
<verbatim>
class CatAnimal {
  void purr() {
    <code here>
  }
}
</verbatim>
class CatAnimal {
  void purr() {
    <code here>
  }
}
Separator:
At least three dashes at the beginning of a line.
-------

List Item:
Three spaces, an asterisk, and another space.
   * bullet item
  • bullet item
Nested List Item:
Six, nine, ... spaces, an asterisk, and another space.
   * level 1
      * level 2
  • level 1
    • level 2
Ordered List:
Three spaces, a number, a dot, and another space. Several types are available besides a number:
Type Generated Style Sample Sequence
1. Arabic numerals 1, 2, 3, 4...
A. Uppercase letters A, B, C, D...
a. Lowercase letters a, b, c, d...
I. Uppercase Roman Numerals I, II, III, IV...
i. Lowercase Roman Numerals i, ii, iii, iv...

   1. Sushi
   1. Dim Sum

   A. Sushi
   A. Dim Sum

   i. Sushi
   i. Dim Sum
  1. Sushi
  2. Dim Sum

  1. Sushi
  2. Dim Sum

  1. Sushi
  2. Dim Sum
Definition List:
Three spaces, a dollar sign, the term, a colon, a space, followed by the definition.
   $ Sushi: Japan
   $ Dim Sum: S.F.
Sushi
Japan
Dim Sum
S.F.
Table:
Any number of lines of text. Each line is one row of the table consisting of one or more cells. Each cell starts and ends with a vertical bar '|'. Any spaces at the beginning of a line are ignored.
Notes:
| *bold* | cells are displayed as table headers.
|   center-spaced   | cells are displayed center aligned.
|     right-spaced | cells are displayed right aligned.
| 2 colspan || cells are displayed as multi-span columns (i.e., a cell with no text spans a column).
|^| cells with a caret indicate follow-up rows of multi-span rows (this functionality is provided by TablePlugin?).
• If a row contains a large amount of text, and you want it to be more readable while editing the table, split the row into multiple text lines by ending each line with a backslash character '\'.
• Table cells wrap automatically as determined by the browser.
| *L* | *C* | *R* |
| A2 |  2  |  2 |
| A3 |  3  |  3 |
| multi span |||
| A4-6 | four | four |
|^| five | five |



|^| six | six |
L C R
A2 2 2
A3 3 3
multi span
A4-6 four four
five five
six six
WikiWord Links:
CapitalizedWordsStuckTogether (or WikiWords) will produce a link automatically.
Note: In case you want to link to a topic in a different TWiki web write Otherweb.TopicName. (The link label is the the name of the web in case the is WebHome, else it is the topic name)
WebNotify

Main.TWikiUsers
WebNotify

TWikiUsers

Forced Links:
You can create a forced internal link by enclosing words in double square brackets.
Note: Text within the brackets may contain optional spaces; the topic name is formed by capitalizing the initial letter and by removing the spaces; for example, [[text formatting FAQ]] links to topic TextFormattingFAQ. You can also refer to a different web and use anchors.
Note: To "escape" double square brackets that would otherwise be a correct link, prefix the leading left square brackets with an exclamation point, that is, begin with ![[....
[[wiki syntax]]

[[Main.TWiki users]]

escaped:
![[wiki syntax]]
wiki syntax

Main.TWiki users

escaped: [[wiki syntax]]

Specific Links:
Create a link where you can specify the link text and the link reference separately, using nested square brackets like [[reference][text]]. Internal link references (e.g. WikiSyntax) and external link references (e.g. http://TWiki.org/) are supported.
Note: The same Forced Links rules apply for internal link references.
Note: For external link references, you can simply use a space instead of ][ to separate the link URL from the descriptive text.
Note: Anchor names can be added as well, like [[WebHome#MyAnchor][go home]] and [[http://gnu.org/#Action][GNU Action]].
[[WikiSyntax][syntax]]

[[http://gnu.org][GNU]]

[[http://xml.org XML]]
syntax

GNU

XML

Anchors:
You can define a link reference inside a TWiki topic (called an anchor name) and link to that. To define an anchor write #AnchorName at the beginning of a line. The anchor name must be a WikiWord. To link to an anchor name use the [[MyTopic#MyAnchor]] syntax. You can omit the topic name if you want to link within the same topic.
[[WikiWord#NotThere]]

[[#MyAnchor][Jump]]

#MyAnchor To here
WikiWord#NotThere

Jump

To here

Prevent a Link:
Prevent a WikiWord from being linked by prepending it with an exclamation point.
!SunOS
SunOS
Disable Links:
You can disable automatic linking of WikiWords by surrounding text with <noautolink> and </noautolink> tags.
Note: Each tag must be on a line by itself.
Note: This also works for TWiki tables, but only if you add a blank line between the end of the table and the closing </noautolink> tag (known issue of the TablePlugin?).
 <noautolink>
 RedHat &
 SuSE
 </noautolink>
RedHat & SuSE
Mailto: Links:
To create 'mailto:' links that have more descriptive link text, specify subject lines or message bodies, or omit the email address, you can write [[mailto:user@domain descriptive text]].
[[mailto:a@z.com Mail]]

[[mailto:?subject=Hi Hi]]
Mail

Hi

Using HTML

You can use just about any HTML tag without a problem - however, there are a few usability and technical considerations to keep in mind.

HTML and TWiki Usability

  • TIP TIP: On collaboration pages, it's preferable NOT to use HTML, and to use TWiki shorthand instead - this keeps the text uncluttered and easy to edit.
  • ALERT! NOTE: TWiki is designed to work with a wide range of browsers and computer platforms, holding to HTML 4.0 and XHTML 1.0 compatibility in the standard installation - adding raw HTML, particularly browser-specific tags (or any other mark-up that doesn't degrade well) will reduce compatibility.
  • Recommondations when using HTML:
    • Use XHTML 1.0 Transitional syntax
    • Do not span a tag over more then one line
    • Remove all empty lines. TWiki inserts <p /> paragraph tags on empty lines, which causes problems if done between tags that do not allow paragraph tags, like for example between table tags.

TWiki HTML Rendering

  • TWiki converts shorthand notation to XHTML 1.0 for display. To copy a fully marked-up page, simply view source in your browser and save the contents.
    • TIP If you need to save HTML frequently, you may want to check out TWiki:Plugins/GenHTMLAddon - it will "generate a directory containing rendered versions of a set of TWiki pages together with any attached files."
  • ALERT! NOTE: The opening and closing angle brackets - <...> - of an HTML tag must be on the same line, or the tag will be broken.
    • This feature allows you to enter an unclosed angle bracket - as a greater than or less than symbol - and have it automatically rendered as if you had entered its HTML character, &lt;, ex: a < b
    • TIP If you're pasting in preformatted HTML text and notice problems, check the file in a text processor with no text wrap. Also, save without hard line breaks on text wrap, in your HTML editing program.

TWiki and JavaScript

You can use JavaScript for your TWiki applications. Since TWiki rendering might interfere with JavaScript code you need to escape it with HTML comments and <pre> tags:

<script type="text/javascript">
<!-- Hide JavaScript and <pre> escape TWiki rendering
... put your JavaScript code here...
// Stop hiding and stop </pre> escaping TWiki rendering -->
</script>

Hyperlinks

Being able to create links without any formatting required is a core TWiki feature, made possible with WikiWords. New TWiki linking rules are a simple extension of the syntax that provide a new set of flexible options.

Internal Links

  • GoodStyle is a WikiWord that links to the GoodStyle topic located in the current TWiki web.

  • NotExistingYet? is a topic waiting to be written. Create the topic by clicking on the ?. (Try clicking, but then, Cancel - creating the topic would wreck this example!)

External Links

  • http://..., https://..., ftp://..., gopher://..., news://..., file://..., telnet://... and mailto:...@... are linked automatically.

  • Email addresses like name@domain.com are linked automatically.

  • [[Square bracket rules]] let you easily create non-WikiWord links.
    • You can also write [[http://yahoo.com Yahoo home page]] as an easier way of doing external links with descriptive text for the link, such as Yahoo home page.

TWiki Variables

Variables are names that are enclosed in percent signs % that are expanded on the fly.

  • %TOC% : Automatically generates a table of contents based on headings in a topic - see the top of this page for an example.

  • %WEB% : The current web, is Tutorial.

  • %TOPIC% : The current topic name, is TextFormattingRules.

  • %ATTACHURL% : The attachment URL of the current topic. Example usage: If you attach a file to a topic you can refer to it as %ATTACHURL%/image.gif to show the URL of the file or the image in your text.

  • %INCLUDE{"SomeTopic"}% : Server side include, includes another topic. The current TWiki web is the default web. Example: %INCLUDE{"TWiki.SiteMap"}%

  • %SEARCH{"sushi"}% : Inline search showing the search result embedded in a topic. FormattedSearch gives you control over formatting, used to create web-based applications.

  • TWikiPreferences? defines site-wide variables. Among others:
    • Line break: Write %BR% to start a new line.
    • Colored text: Write: %RED% Red %ENDCOLOR% and %BLUE% blue %ENDCOLOR% colors to get: Red and blue colors.
    • Documentation Graphics: Write: %H% Help, %T% Tip, %X% Alert to get: HELP Help, TIP Tip, ALERT! Alert. For more info see TWikiDocGraphics.

  • To "escape" a variable, prefix it with an exclamation point. Write: !%SOMEVARIABLE% to get: %SOMEVARIABLE%.

TWikiPlugin Formatting Extensions

Plugins provide additional text formatting capabilities and can extend the functionality of TWiki into many other areas. For example, the optional SpreadSheetPlugin lets you create a spreadsheet with the same basic notation used in TWiki tables.

Available Plugins are located in the Plugins web on TWiki.org. Currently enabled plugins on this TWiki installation, as listed by %PLUGINDESCRIPTIONS%:

  • 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 TWiki topics.
  • BibliographyPlugin: cite bibliography in one topic and get a references list automatically created.
  • 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
  • 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
  • TopicVarsPlugin: Set variables in arbitrary topics and refer to them from other topics within the same web
  • TreePlugin: Dynamic generation of TWiki topic trees

Check on current Plugin status and settings for this site in TWikiPreferences?.

Common Editing Errors

TWiki formatting rules are fairly simple to use and quick to type. However, there are some things to watch out for, taken from the TextFormattingFAQ:

  • Q: Text enclosed in angle brackets like <filename> is not displayed. How can I show it as it is?
    • A: The '<' and '>' characters have a special meaning in HTML, they define HTML tags. You need to escape them, so write '&lt;' instead of '<', and '&gt;' instead of '>'.
      Example: Type 'prog &lt;filename&gt;' to get 'prog <filename>'.

  • Q: Why is the '&' character sometimes not displayed?
    • A: The '&' character has a special meaning in HTML, it starts a so called character entity, i.e. '&copy;' is the © copyright character. You need to escape '&' to see it as it is, so write '&amp;' instead of '&'.
      Example: Type 'This &amp; that' to get 'This & that'.

-- TWiki:Main.MikeMannix - 02 Dec 2001
-- TWiki:Main.PeterThoeny - 01 Aug 2004


TWiki Variables

Special text strings expand on the fly to display user data or system info

TWikiVariables are text strings - %VARIABLE% - that expand into content whenever a page is rendered for viewing. VARIABLES are replaced by data, either user-entered or automatically generated by TWiki (like the date, or the current username). There are predefined variables, and Preference variables that you can configure. You can also define custom variables, with new names and values.

Notes:

  • To leave a variable unexpanded, precede it with an exclamation point, e.g. type !%TOPIC% to get %TOPIC%.
  • Variables are expanded relative to the topic they are used in, not the topic they are defined in.

Predefined Variables

Most predefined variables return values that were either set in the lib/twiki.cfg file, when TWiki was installed, or taken from server info (like current username, or date and time). Many of the variables let you format the appearance of the display results.

  • TIP Take the time to thoroughly read through ALL preference variables. If you actively configure your site, review variables periodically. They cover a wide range of functions, and it can be easy to miss the one perfect variable for something you have in mind. For example, see %INCLUDINGTOPIC%, %INCLUDE%, and the mighty %SEARCH%.

This version of TWiki - 04 Sep 2004 $Rev: 1742 $ - expands the following variables (enclosed in % percent signs):

ATTACHURL -- full URL for attachments in the current topic

ATTACHURLPATH -- path of the attachment URL of the current topic

BASETOPIC -- base topic where an INCLUDE started

  • The name of the topic where a single or nested INCLUDE started - same as %TOPIC% if there is no INCLUDE
  • Syntax: %BASETOPIC%
  • Related: BASEWEB, INCLUDINGTOPIC, INCLUDE, TOPIC

BASEWEB -- base web where an INCLUDE started

  • The web name where the includes started, e.g. the web of the first topic of nested includes. Same as %WEB% in case there is no include.
  • Syntax: %BASEWEB%
  • Related: BASETOPIC, INCLUDINGWEB, INCLUDE, WEB

DISPLAYTIME -- display time

DISPLAYTIME{"format"} -- formatted display time

  • Formatted time - either GMT or Local server time, depending on setting in TWiki.cfg. Same format qualifiers as %GMTIME%
  • Syntax: %DISPLAYTIME{"format"}%
  • Example: %DISPLAYTIME{"$hou:$min"}% expands to 08:11
  • Related: DISPLAYTIME, GMTIME, SERVERTIME

ENCODE{"string"} -- encodes a string

  • Syntax: %ENCODE{"string"}%
  • Supported parameters:
    Parameter: Description: Default:
    "string" String to encode required (can be empty)
    type="entity" Encode special characters into HTML entities, like a double quote into &#034; URL encoding
    type="url" Encode special characters for URL parameter use, like a double quote into %22 (this is the default)
  • Example: %ENCODE{"spaced name"}% expands to spaced%20name
  • Related: URLPARAM

FORMFIELD{"format"} -- renders a field in the form attached to some topic

  • Syntax: %FORMFIELD{"fieldname"}%
  • Supported parameters:
    Parameter: Description: Default:
    "fieldname" The name of a TWiki form field required
    topic="..." Topic where form data is located. May be of the form Web.TopicName Current topic
    format="..." Format string. $value expands to the field value "$value"
    default="..." Text shown when no value is defined for the field ""
    alttext="..." Text shown when field is not found in the form ""
  • Example: %FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(not set)" alttext="ProjectName field found"}%
  • Related: SEARCH

GMTIME -- GM time

GMTIME{"format"} -- formatted GM time

  • Syntax: %GMTIME{"format"}%
  • Supported variables:
    Variable: Unit: Example
    $seconds seconds 59
    $minutes minutes 59
    $hours hours 23
    $day day of month 31
    $wday day of the Week (Sun, Mon, Tue, Wed, Thu, Fri, Sat) Thu
    $month month in ISO format Dec
    $mo 2 digit month 12
    $year 4 digit year 1999
    $ye 2 digit year 99
    $tz either "GMT" (if set to gmtime), or "Local" (if set to servertime) GMT
    $iso ISO format timestamp 2024-03-28T08:11Z
    $rcs RCS format timestamp 2024/03/28 08:11:40
    $http E-mail & http format timestamp Thu, 28 Mar 2024 08:11:40 GMT
  • Variables can be shortened to 3 characters
  • Example: %GMTIME{"$day $month, $year - $hour:$min:$sec"}% expands to 28 Mar, 2024 - 08:11:40
  • Related: DISPLAYTIME, GMTIME, SERVERTIME

HOMETOPIC -- home topic in each web

HTTP_HOST -- environment variable

ICON{"type"} -- small icon of common attachment types

  • Small 16x16 pixel icon of common attachment types. Specify file type only, file name, or full path name
  • Syntax: %ICON{"type"}%
  • Samples: bmp, doc, gif, hlp, html, mp3, pdf, ppt, txt, xls, xml, zip
  • Example: %ICON{"pdf"}% expands to
  • Related: TWikiPreferences?, FileAttachments, TWikiDocGraphics

INCLUDE{"page"} -- include other topics or web pages

  • Syntax: %INCLUDE{"page" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "SomeTopic" The name of a topic located in the current web, i.e. %INCLUDE{"WebNotify"}%  
    "Web.Topic" A topic in another web, i.e. %INCLUDE{"TWiki.SiteMap"}%  
    "http://..." A full qualified URL, i.e. %INCLUDE{"http://twiki.org/"}%
    Note if the URL resolves to an attachment file on the server this will automatically translate to a server-side include.
     
    pattern="..." A RegularExpression pattern to include a subset of a topic or page none
    rev="1.2" Include a previous topic revision; N/A for URLs top revision
    warn="off" Warn if topic include fails: Fail silently (if off); output default warning (if set to on); else, output specific text (use $topic for topic name) %INCLUDE- WARNING% preferences? setting
  • Related: BASETOPIC, BASEWEB, INCLUDINGTOPIC, INCLUDINGWEB, IncludeTopicsAndWebPages, STARTINCLUDE, STOPINCLUDE,

INCLUDINGTOPIC -- name of topic that includes current topic

  • The name of the topic that includes the current topic - same as %TOPIC% in case there is no include
  • Syntax: %INCLUDINGTOPIC%
  • Related: BASETOPIC, INCLUDINGWEB, INCLUDE, TOPIC

INCLUDINGWEB -- web that includes current topic

  • The web name of the topic that includes the current topic - same as %WEB% if there is no INCLUDE.
  • Syntax: %INCLUDINGWEB%
  • Related: BASEWEB, INCLUDINGTOPIC, INCLUDE, WEB

MAINWEB -- name of Main web

METASEARCH -- special search of meta data

  • Syntax: %METASEARCH{...}%
  • Supported parameters:
    Parameter: Description: Default:
    type="topicmoved" What sort of search is required?
    "topicmoved" if search for a topic that may have been moved
    "parent" if searching for topics that have a specific parent i.e. its children
    required
    web="%WEB%" Wiki web to search: A web, a list of webs separated by whitespace, or all webs. current web
    topic="%TOPIC%" The topic the search relates to current topic
    title="Title" Text that is prefixed to any search results empty
    default="none" Default text shown if no search hit empty
  • Example: %METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%
  • Example: You may want to use this in WebTopicViewTemplate? and WebTopicNonWikiTemplate?:
    %METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%
  • Related: SEARCH

NOTIFYTOPIC -- name of the notify topic

PLUGINVERSION -- the version of the TWiki Plugin API

  • This is the $TWiki::Plugins::VERSION number, also indicating the version of the TWikiFuncModule?
  • Syntax: %PLUGINVERSION{}%
  • Expands to: 1.025
  • Related: PLUGINVERSION{"name"}, WIKIVERSION

PLUGINVERSION{"name"} -- the version of an installed Plugin

  • Syntax: %PLUGINVERSION{"name"}%
  • Example: %PLUGINVERSION{"DefaultPlugin"}% expands to 1.021
  • Related: PLUGINVERSION, WIKIVERSION

PUBURL -- the base URL of attachments

  • Syntax: %PUBURL%
  • Expands to: http://www.genealowiki.com/pub
  • Example: You can refer to a file attached to another topic with %PUBURL%/%WEB%/OtherTopic/image.gif
  • Related: ATTACHURL, PUBURLPATH, SCRIPTURL, FileAttachments

PUBURLPATH -- the base URL path of attachments

REMOTE_ADDR -- environment variable

REMOTE_PORT -- environment variable

REMOTE_USER -- environment variable

REVINFO -- revision information of current topic

  • Syntax: %REVINFO%
  • Expands to: r1.1 - 06 Nov 2006 - 20:03 - Main.guest
  • Related: REVINFO{"format"}

REVINFO{"format"} -- formatted revision information of topic

  • Syntax: %REVINFO{"format"}%
  • Supported parameters:
    Parameter: Description: Default:
    "format" Format of revision information, see supported variables below "r1.$rev - $date - $wikiusername"
    web="..." Name of web Current web
    topic="..." Topic name Current topic
    rev="1.5" Specific revison number Latest revision
  • Supported variables in format:
    Variable: Unit: Example
    $web Name of web Current web
    $topic Topic name Current topic
    $rev Revison number. Prefix r1. to get the usual r1.5 format 5
    $date Revision date 11 Jul 2004
    $username Login username of revision jsmith
    $wikiname WikiName of revision JohnSmith
    $wikiusername WikiName with Main web prefix Main.JohnSmith
  • Example: %REVINFO{"$date - $wikiusername" rev="1.1"}% returns revision info of first revision
  • Related: REVINFO

SCRIPTURL -- script URL of TWiki

  • Syntax: %SCRIPTURL%
  • Expands to: http://www.genealowiki.com/bin
  • Example: To get the authenticated version of current topic write %SCRIPTURL%/viewauth%SCRIPTSUFFIX%/%WEB%/%TOPIC% which expands to http://www.genealowiki.com/bin/viewauth.cgi/Tutorial/TWikiVariablesNtoZ
  • Related: PUBURL, SCRIPTSUFFIX, SCRIPTURLPATH

SCRIPTURLPATH -- script URL path of TWiki

SCRIPTSUFFIX -- script suffix

  • Some TWiki installations require a file extension for CGI scripts like .pl or .cgi
  • Syntax: %SCRIPTSUFFIX%
  • Expands to: .cgi
  • Related: SCRIPTURL

SEARCH{"text"} -- search content

  • Inline search, shows a search result embedded in a topic
  • Syntax: %SEARCH{"text" ...}%
  • Supported parameters: [1]
    Parameter: Description: Default:
    "text" Search term. Is a keyword search, literal search or regular expression search, depending on the type parameter. SearchHelp has more required
    search="text" (Alternative to above) N/A
    web="Name"
    web="Main, Know"
    web="all"
    Wiki web to search: A web, a list of webs separated by comma, or all webs. [2] Current web
    topic="WebPreferences"
    topic="*Bug"
    Limit search to topics: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. All topics in a web
    excludetopic="Web*"
    excludetopic="WebHome, WebChanges"
    Exclude topics from search: A topic, a topic with asterisk wildcards, or a list of topics separated by comma. None
    type="keyword"
    type="literal"
    type="regex"
    Do a keyword search like soap "web service" -shampoo; a literal search like web service; or RegularExpression search like soap;web service;!shampoo %SEARCHVAR- DEFAULTTYPE% preferences? setting (literal)
    scope="topic"
    scope="text"
    scope="all"
    Search topic name (title); the text (body) of topic; or all (both) "text"
    order="topic"
    order="created"
    order="modified"
    order="editby"
    order=
     "formfield(name)"
    Sort the results of search by the topic names, topic creation time, last modified time, last editor, or named field of TWikiForms. The sorting is done web by web; in case you want to sort across webs, create a formatted table and sort it with TablePlugin?'s initsort Sort by topic name
    limit="all"
    limit="16"
    Limit the number of results returned. This is done after sorting if order is specified All results
    reverse="on" Reverse the direction of the search Ascending search
    casesensitive="on" Case sensitive search Ignore case
    nosummary="on" Show topic title only Show topic summary
    bookview="on" BookView? search, e.g. show complete topic text Show topic summary
    nosearch="on" Suppress search string Show search string
    noheader="on" Suppress search header
    Topics: Changed: By:
    Show search header
    nototal="on" Do not show number of topics found Show number
    header="..."
    format="..."
    Custom format results: see FormattedSearch for usage, variables & examples Results in table
    expandvariables="on" Expand variables before applying a FormattedSearch on a search hit. Useful to show the expanded text, e.g. to show the result of a SpreadSheetPlugin? %CALC{}% instead of the formula Raw text
    multiple="on" Multiple hits per topic. Each hit can be formatted. The last token is used in case of a regular expression ";" and search Only one hit per topic
    separator=", " Line separator between hits Newline "$n"
  • Example: %SEARCH{"wiki" web="Main" scope="topic"}%
  • Example with format: %SEARCH{"FAQ" scope="topic" nosearch="on" nototal="on" header="| *Topic: * | *Summary: * |" format="| $topic | $summary |"% (displays results in a table with header - details)
  • HELP If the TWiki:Plugins.TablePlugin is installed, you may set a %TABLE{}% variable just before the %SEARCH{}% to alter the output of a search. Example: %TABLE{ tablewidth="90%" }%
  • Related: METASEARCH, TOPICLIST, WEBLIST, FormattedSearch

  • [1] Note: The search form uses identical names for input fields.
  • [2] Note: A web can be excluded from a web="all" search if you define a NOSEARCHALL=on variable in its WebPreferences

SERVERTIME -- server time

SERVERTIME{"format"} -- formatted server time

  • Same format qualifiers as %GMTIME%
  • Syntax: %SERVERTIME{"format"}%
  • Example: %SERVERTIME{"$hou:$min"}% expands to 04:11
  • Related: DISPLAYTIME, GMTIME, SERVERTIME

SPACEDTOPIC -- topic name, spaced and encoded

  • The current topic name with added spaces, for regular expression search of Ref-By
  • Syntax: %SPACEDTOPIC%
  • Expands to: TWiki%20*Variables%20*Nto%20*Z
  • Related: TOPIC

STARTINCLUDE -- start position of topic text if included

  • If present in included topic, start to include text from this location up to the end, or up to the location of the %STOPINCLUDE% variable. A normal view of the topic shows everyting exept the %STARTINCLUDE% variable itself.
  • Syntax: %STARTINCLUDE%
  • Related: INCLUDE, STOPINCLUDE

STATISTICSTOPIC -- name of statistics topic

STOPINCLUDE -- end position of topic text if included

  • If present in included topic, stop to include text at this location and ignore the remaining text. A normal view of the topic shows everyting exept the %STOPINCLUDE% variable itself.
  • Syntax: %STOPINCLUDE%
  • Related: INCLUDE, STARTINCLUDE

TOC -- table of contents of current topic

TOC{"Topic"} -- table of contents

  • Syntax: %TOC{"SomeTopic" ...}%
  • Table of Contents. Shows a TOC that is generated automatically based on headings of a topic. Headings in WikiSyntax ("---++ text") and HTML ("<h2>text</h2>") are taken into account. Any heading text after "!!" is excluded from the TOC; for example, write "---+!! text" if you do not want to list a header in the TOC
  • Supported parameters:
    Parameter: Description: Default:
    "TopicName" topic name Current topic
    web="Name" Name of web Current web
    depth="2" Limit depth of headings shown in TOC 6
    title="Some text" Title to appear at top of TOC none
  • Example: %TOC{depth="2"}%
  • Example: %TOC{"TWikiDocumentation" web="TWiki" title="Contents:"}%
  • Example: see TWiki:Sandbox.TestTopicInclude
  • Related: TOC

TOPIC -- name of current topic

TOPICLIST{"format"} -- topic index of a web

  • The "format" defines the format of one topic item. It may include variables: The $name variable gets expanded to the topic name; the $web variable gets expanded to the name of the web.
  • Syntax: %TOPICLIST{"format" ...}%
  • Supported parameters:
    Parameter: Description: Default:
    "format" Format of one line, may include $name and $web variables "$name"
    format="format" (Alternative to above) "$name"
    separator=", " line separator "\n" (new line)
    web="Name" Name of web Current web
  • Example: %TOPICLIST{"   * $web.$name"}% creates a bullet list of all topics
  • Example: %TOPICLIST{separator=", "}% creates a comma separated list of all topics
  • Example: %TOPICLIST{" <option>$name</option>"}% creates an option list (for drop down menus)
  • Related: SEARCH, WEBLIST

TWIKIWEB -- name of TWiki documentation web

  • The web containing all documentation and site-wide preference settings for TWiki
  • Syntax: %TWIKIWEB%
  • Expands to: TWiki
  • Related: MAINWEB

URLPARAM{"name"} -- get value of a URL parameter

  • Returns the value of a URL parameter. Note that there is a risk that this variable could be misused for cross-scripting
  • Syntax: %URLPARAM{"name"}%
  • Supported parameters:
    Parameter: Description: Default:
    "name" The name of a URL parameter required
    default="..." Default value in case parameter is empty or missing empty string
    newline="<br />" Convert newlines in textarea to other delimiters no conversion
    encode="entity" Encode special characters into HTML entities, like a double quote into &#034;. This is needed if text is put into an HTML form field no encoding
    encode="url" Encode special characters for URL parameter use, like a double quote into %22 no encoding
    multiple="on"
    multiple="[[$item]]"
    If set, gets all selected elements of a <select multiple="multiple"> tag. A format can be specified, with $item indicating the element, e.g. multiple="Option: $item" first element
    separator=", " Separator between multiple selections. Only relevant if multiple is specified "\n" (new line)
  • Example: %URLPARAM{"skin"}% returns print for a .../view/Tutorial/TWikiVariablesNtoZ?skin=print URL. Test this:
  • Related: SEARCH, FormattedSearch

USERNAME -- your login username

  • TWiki makes names available in three formats: USERNAME like jsmith, WIKINAME like JohnSmith and WIKIUSERNAME like Main.JohnSmith. A user is a TWikiGuest in case the topic is not authenticated
  • Syntax: %USERNAME%
  • Expands to: guest
  • Related: REMOTE_USER, WIKINAME, WIKIUSERNAME, TWikiUserAuthentication?

VAR{"NAME" web="Web"} -- get a preference value from another web

  • Syntax: %VAR{"NAME" web="Web"}%
  • Example: To get %WEBBGCOLOR% of the Main web write %VAR{"WEBBGCOLOR" web="Main"}%, which expands to #FFEFA6
  • Related: WEBPREFSTOPIC

WEB -- name of current web

WEBLIST{"format"} -- index of all webs

  • List of all webs. Hidden webs are excluded, e.g. webs with a NOSEARCHALL=on preference variable. The "format" defines the format of one web item. The $name variable gets expanded to the name of the web, $qname gets expanded to double quoted name, $marker to marker where web matches selection.
  • Syntax: %WEBLIST{"format" ...}%
  • Supported parameters:
    Parameter: Description: Default: down
    "format" Format of one line, may include $name variable "$name"
    format="format" (Alternative to above) "$name"
    separator=", " line separator "\n" (new line)
    webs="public" comma sep list of Web, public expands to all non-hidden "public"
    marker="selected" Text for $marker where item matches selection, otherwise equals "" "selected"
    selection="%WEB%" Current value to be selected in list section="%WEB%"
  • Example: %WEBLIST{"   * [[$name.WebHome]]"}% creates a bullet list of all webs.
  • Example: %WEBLIST{"<option $marker value=$qname>$name</option>" webs="Trash,public" selection="Tutorial" separator=" "}% Dropdown of all public Webs + Trash Web, current Web highlighted.
  • Related: TOPICLIST, SEARCH

WEBPREFSTOPIC -- name of web preferences topic

WIKIHOMEURL -- site home URL

  • The base URL of TWiki, is the link of the Home icon in the upper left corner, defined in TWiki.cfg
  • Syntax: %WIKIHOMEURL%
  • Expands to: http://your.domain.com/twiki
  • Related: WIKITOOLNAME

WIKINAME -- your Wiki username

WIKIPREFSTOPIC -- name of site-wide preferences topic

  • Syntax: %WIKIPREFSTOPIC%
  • Expands to: TWikiPreferences, renders as TWikiPreferences?
  • Related: HOMETOPIC, WEBPREFSTOPIC

WIKITOOLNAME -- name of your TWiki site

WIKIUSERNAME -- your Wiki username with web prefix

  • Your %WIKINAME% with Main web prefix, useful to point to your TWiki home page
  • Syntax: %WIKIUSERNAME%
  • Expands to: Main.guest, renders as Main.guest
  • Related: REMOTE_USER, USERNAME, WIKINAME

WIKIUSERSTOPIC -- name of topic listing all registers users

  • Syntax: %WIKIUSERSTOPIC%
  • Expands to: TWikiUsers, with Main prefix renders as TWikiUsers
  • Related: WIKIUSERNAME

WIKIVERSION -- the version of the installed TWiki engine

Note: Above text is included from TWikiVariablesAtoM and TWikiVariablesNtoZ

Preferences Variables

Additional variables are defined in the preferences topics:

Variable: Level: What: Expands to:
%ALLOWTOPICCHANGE% (any topic) List of users and groups who are allowed to change the current topic. (More in TWikiAccessControl)  
%ALLOWTOPICRENAME% (any topic) List of users and groups who are allowed to rename the current topic. (More in TWikiAccessControl) TWikiAdminGroup  
%ALLOWWEBCHANGE% WL List of users and groups who are allowed to change topics in the TWiki web. (More in TWikiAccessControl)  
%ALLOWWEBRENAME% WL List of users and groups who are allowed to rename topics in the TWiki web. (More in TWikiAccessControl)  
%ATTACHLINKBOX% SL , UL Default state of the link check box in the attach file page. Check box is initially checked if value is set to CHECKED , unchecked if empty. If checked, a link is created to the attached file at the end of the topic. Value is:  
%DENYTOPICCHANGE% (any topic) List of users and groups who are not allowed to change the current topic. (More in TWikiAccessControl) %DENYTOPICCHANGE%  
%DENYTOPICRENAME% (any topic) List of users and groups who are not allowed to rename the current topic. (More in TWikiAccessControl) %DENYTOPICRENAME%  
%DENYWEBCHANGE% WL List of users and groups who are not allowed to change topics in the TWiki web. (More in TWikiAccessControl)  
%DENYWEBRENAME% WL List of users and groups who are not allowed to rename topics in the TWiki web. (More in TWikiAccessControl)  
%DONTNOTIFYCHECKBOX% SL , UL Default state of the "Minor Changes, Don't Notify" (DontNotify?) check box in preview. Check box is initially checked if Set DONTNOTIFYCHECKBOX = checked="checked", or unchecked if empty. Value is:  
%EDITBOXHEIGHT% SL , UL Vertical size of edit box, is 15 15  
%EDITBOXWIDTH% SL , UL Horizontal size of edit box, is 70 70  
%EDITBOXSTYLE% SL , UL Style of text edit box. Set to width: 99% for full window width (default; overwrites the EDITBOXWIDTH setting), or width: auto to disable. Value is: width: 99% width: 99%  
%FINALPREFERENCES% SL , WL List of preferences that are not allowed to be overridden by next level preferences ATTACHFILESIZELIMIT, PREVIEWBGIMAGE, WIKITOOLNAME, WIKIWEBMASTER, SMTPMAILHOST, SMTPSENDERHOST, ALLOWWEBMANAGE, READTOPICPREFS, TOPICOVERRIDESUSER, NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME  
%HTTP_EQUIV_ON_EDIT% SL , UL http-equiv meta tags for edit script.  
%HTTP_EQUIV_ON_PREVIEW% SL , UL http-equiv meta tags for preview script.  
%HTTP_EQUIV_ON_VIEW% SL http-equiv meta tags for view, rdiff, attach, search* scripts.  
%NEWTOPICBGCOLOR% SL , UL Background color of non existing topic. ( UL needs authentication for topic views ) #FFFFCE  
%NEWTOPICFONTCOLOR% SL , UL Font color of non existing topic. ( UL needs authentication for topic views ) #0000FF  
%NOSEARCHALL% WL Exclude web from a web="all" search (set variable to on for hidden webs)  
%RELEASEEDITLOCKCHECKBOX% SL , UL Default state of the "Release edit lock" (UnlockTopic?) check box in preview. Checkbox is initially checked if Set RELEASEEDITLOCKCHECKBOX = checked="checked", or unchecked if empty. If checked, make sure to click on Edit to do more changes; do not go back in your browser to the edit page, or you risk that someone else will edit the topic at the same time! Value is:  
%WEBBGCOLOR% WL Background color of web #B9DAFF  
%WEBCOPYRIGHT% SL , WL Copyright notice (bottom right corner of topics) Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback  
%WEBTOPICLIST% WL Common links of web (second line of topics) Changes | Index | Search | Go  
%WIKIWEBLIST% SL List of TWiki webs (in upper right corner of topics) Main | TWiki | Sandbox?  
%WIKIWEBMASTER% SL Webmaster email address (sender of email notifications) , is webmaster@genealowiki.com webmaster@genealowikiNOSPAM.com  

Note: There are some more useful variables defined in the TWikiPreferences? like %BR% for line break, colors like %RED% for colored text and small icons like %H% for a HELP Help icon.

Setting Preferences

  • The syntax for Preferences Variables is the same anywhere in TWiki (on its own TWiki bullet line, including nested bullets):
    [multiple of 3 spaces] * [space] Set [space] VARIABLENAME [space] = [value]
    Examples:
  • Set VARIABLENAME = value
    • Set VARIABLENAME = value

Creating Custom Variables

  • You can add your own Preference Variables for us across an entire site or a single web, using the standard Preferences syntax. Whatever you include in your Variable will be expanded on display, exactly as if it had been entered directly. You can place formatted text, page links, image paths.

Example: Create a custom logo variable the Tutorial web
  • To place a logo anywhere in a web by typing %MYLOGO%, define the Variable on the web's WebPreferences page, and upload a logo file, ex: mylogo.gif. You can upload by attaching the file to WebPreferences, or, to avoid clutter, to any other topic in the same web, ex: LogoTopic:
    • Set MYLOGO = %PUBURL%/TWiki/LogoTopic/mylogo.gif

-- TWiki:Main.PeterThoeny - 14 Aug 2004
-- TWiki:Main.MikeMannix - 12 May 2002


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 need-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 File 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

  • 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 access 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 topic 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.


TWiki Forms

Form-based input in topics, with name/value pairs stored as Meta Data variables; choose one of multiple forms per web & topic

Overview

By adding form-based input to freeform content, you can structure topics with unlimited, easily searchable categories. When forms are enabled for a web and selected in a topic, a single form appears in edit mode, and the contents are rendered as a table when viewed on the display page. You can define unlimited forms per web. For each topic, you can select a template if more than one is defined, or remove forms entirely. Form input values are stored as TWikiMetaData?; all data is saved.

Form Templates replace TWikiCategoryTables from the 01-Dec-2000 version of TWiki. - see #FormsVsCategoryTables

Defining a Form Template

A Form Template is simply a page containing your form, defined as a table where each row is one form field.

Form Template Elements

  • form template - a set of fields defining a form (replaces category table definition)
    • A web can use one or more form templates
  • form - a topic containing additional meta data (besides the freeform TEXTAREA) that categorizes the content (replaces category table)
    • Within a form-enabled web, individual topics can have a form or no form
  • form field - a named item in a form (replaces category item name)
  • field type - selects the INPUT type:
    Input type Type field Size field Value field
    One or more checkboxes checkbox number of checkboxes per line comma list of checkbox labels
    One or more checkboxes, plus Set and Clear buttons checkbox+buttons (same) (same)
    Read-only label text label 1 (unused)
    One or more radio buttons radio number of radio buttons per line comma list of checkbox labels
    Drop-down menu or scrollable box select 1 for drop down, 2 and up for scrollable box comma list of options
    A one-line text field text text box width in number of characters (unused)
    A text box; size is 40x10 (columns x rows) textarea columns x rows, e.g. 40x6 (unused)
  • field value - one or more values from a fixed set (select, checkbox, radio type) or free-form (text). (replaces category item value)

Defining a Form in One Topic

  1. Create a new topic with your form name: YourForm, ExpenseReport, InfoCategory, RecordReview, whatever you need.
  2. Create a TWiki table, with each column head representing one element of an entry field: Name, Type, Size, Values, and Tooltip message (see sample below).
  3. For each field, fill in a new line; for the type of field, select from the list.
  4. Save the topic (you can later choose to enable/disable individual forms).

Example: WebForm
| *Name* | *Type* | *Size* | *Values* | *Tooltip message* |
| TopicClassification | select | 1 | NoDisclosure, PublicSupported, PublicFAQ | blah blah... |
| OperatingSystem | checkbox | 3 | OsHPUX, OsLinux, OsSolaris, OsWin | blah blah... |
| OsVersion | text | 16 | | blah blah... |

Name Type Size Values Tooltip message
TopicClassification select 1 NoDisclosure, PublicSupported, PublicFAQ blah blah...
OperatingSystem checkbox 3 OsHPUX, OsLinux, OsSolaris, OsWin blah blah...
OsVersion text 16   blah blah...

Defining a Form with Multiple Topics

Forms can also be defined by using form templates that retrieve field values from one or more separate topics:

  • A FormTemplate topic defines the Form, ex: YourFormTemplate.
  • For each field that has a value list - select, radio, checkbox - can use separate topic to define the available values.

Example: WebFormTemplate

  • WebFormTemplate main definition:
     
    Name Type Size Values Tooltip message
    TopicClassification select 1   blah blah...
    OperatingSystem checkbox 3   blah blah...
    OsVersion text 16   blah blah...

    ALERT! Leave the Values field blank.

  • TopicClassification field value definition:
     
    Name Type Tooltip message
    NoDisclosure option blah blah...
    PublicSupported option blah blah...
    PublicFAQ option blah blah...

  • Implementation Notes: This format allows you to define field items with or without WikiNames, depending on your needs.
    • Topics can be protected in the usual manner, using TWikiAccessControl, to limit who can change the form template and/or individual value lists.
    • [[...]] links can be used to force a link (at present, the [[...][...]] format is not supported).
    • The Tooltip message column is used as a tooltip for the field name (only if field name is a WikiName) - you only see the tooltip In edit.
    • The first item in the list is the default item. Alternative initial values can be set in a topic template, like WebTopicEditTemplate, with field=value, or, for checkboxes, field=1.
    • The topic definition is not read when a topic is viewed.

Enabling Forms by Web

Forms are enabled on a per web basis. The WEBFORMS variable in WebPreferences is optional and defines a list of possible form templates. Example:

  • Set WEBFORMS = BugForm, FeatureForm, BookLoanForm

  • With WEBFORMS enabled, an extra button is added to the edit view. If the topic doesn't have a Form, an Add Form button appears at the end of the topic. If a Form is present, a Change button appears in the top row of the Form. The buttons open a screen that enables selection of a form specified in WEBFORMS, or the No form option.

Including Forms in New Topics

  • A default Form Template (new topics get this default form) can be provided by creating the WebTopicEditTemplate topic in a web and adding a form to it. Initial Form values can be set there.

  • Additionally a new topic can be given a Form using the formtemplate parameter in the URL. Initial values can then be provided in the URLs or as form values:
    • other than checkboxes: name, ex: ?BugPriority=1
    • checkbox: namevalue=1, ex: ?ColorRed=1.
      Boxes with a tick must be specified.

Setting Up Multiple Form Options

  • The optional WEBFORMS variable defines alternative forms that can be selected by pressing Change in edit mode.

  • A topic template can use any form.

  • New topics with a form are created by simple HTML forms asking for a topic name. For example, you can have a SubmitExpenseReport topic where you can create new expense reports, a SubmitVacationRequest topic, and so on. These can specify the required template topic with its associated form.

Form Data Storage

The form topic name, fields and values are stored as TWikiMetaData? - the order of the field/value pairs is the same as in the template.

Using Form Data

TWikiForms accept user-input data, stored as TWikiMetaData?. Meta data also contains program-generated info about changes, attachments, etc. To find, format and display form and other meta data, see TWikiMetaData?, SEARCH and METASEARCH variables in TWikiVariables, and TWiki Formatted Search for various options.

Main Changes from Category Tables

The Form Template system is a more powerful, flexible replacement for the original TWikiCategoryTable. Data from existing category tables can be imported directly.

Form Templates Category Tables
defined in topics defined in templates
many forms per web one table per web
saved as Meta Data saved as HTML
Change & Add Form buttons UseCategory radio button

Importing Category Table Data

On upgrading from the previous TWiki, a Form Template topic has to be built for each web that used a Category Table, recreating the fields and values from the old twikicatitems.tmpl. The replacement Form Template must be set as the first item in the WebPreferences variable WEBFORMS. If missing, pages will display, but attempting to edit results in an error message.

The new Form Template system should work with old Category Table data with no special conversion. Data is assigned to Meta variables the first time an imported topic is edited and saved in the new system.

TIP NOTE: If things aren't working correctly, there may be useful entries in data/warning.txt.

Using Forms For Settings

Example process to change your WebPreferences to use forms instead of {3 spaces}* Set statements:

  1. create WebPrefencesForm topic
  2. fill it with a table like this:
    | *Name*|*Type*|*Size*|*Value*|*Tooltip message*|*Attributes*|
    | WEBTOPICLIST |textarea| |     | List of topics of the %WEB% web |S|
    | SITEMAPLIST  |select  |3| on, | list this web in the Site Map  |S|
    | SITEMAPWHAT  |textarea| |     | short web summary             |S|
    | WEBBGCOLOR   |text    |8|     | Web specific background color |S|
    etc...
  3. Edit WebPreferences and:
    • Add or Change the form to WebPrefencesForm
    • add WebPrefencesForm to the Set WEBFORMS line
    • Save
  4. Edit WebPreferences, jump straight down to the form ignoring all the textarea stuff, and set as you like
  5. if everything works as you like it, you can delete the Set statements (the form overrides set if they are both used).

Notes:

If it isn't working, double check that the S attribute has been specified (S for Setting). If you change the form, the changes will not take affect until you edit and save the preferences' topics again.

Using the TWiki:Plugins.EditTablePlugin on WebPreferencesForm makes adding new prefedrences a breeze.

A possibly unwanted side effect for using forms for the SKINS setting in their personal user topic: because the User Preferences are final you can't have different skins for different webs as the user's setting always wins. A workaround is to simply omit SKIN in the form.

Another example, this one using EditTablePlugin, source:

%EDITTABLE{ header="|*Name*|*Type*|*Size*|*Values*|*Tooltip message*|*Attributes*|" format="|text,20|text,20|text,20|text,20|text,20|text,1|" }%

Result (after some editing):

Name Type Size Values tooltip message Attributes
ALLOWTOPICCHANGE textarea     Users or groups allowed to change or rename this TWikiForms topic: (I.e. TWikiAdminGroup) S
ALLOWWEBCHANGE textarea     Users or groups who are allowed to change topics in the Tutorial web: (See TWikiAccessControl) S
ALLOWWEBRENAME textarea   TWikiAdminGroup Users or groups who are allowed to rename topics in the Tutorial web: (See TWikiAccessControl) S
ALLOWWEBVIEW textarea     Users or groups who are allowed to view topics in the Tutorial web: (See TWikiAccessControl) S
DENYWEBCHANGE textarea     Users or groups who are not allowed to change topics in the Tutorial web: (See TWikiAccessControl) S
DENYWEBRENAME textarea     Users or groups who are not allowed to rename topics in the Tutorial web: (See TWikiAccessControl) S
DENYWEBVIEW textarea     Users or groups who are not allowed to view topics in the Tutorial web: (See TWikiAccessControl) S
FINALPREFERENCES textarea   "NOSEARCHALL, ATTACHFILESIZELIMIT, WIKIWEBMASTER, WEBCOPYRIGHT, WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME" Web preferences that are not allowed to be overridden by user preferences S
NOSEARCHALL text   ",on" "Exclude web from a web=""all"" search: (Set to on for hidden webs)" S
SITEMAPLIST select   "on, ," List this web in the SiteMap S
SITEMAPUSETO textarea   ...to do something. ...to do something. S
SITEMAPWHAT textarea   Describe what this web does. Describe what this web does.  
SKIN select   "twiki, free, gnu, koala, pattern, plain, tiger" list of installed skins S
WEBBGCOLOR select   lightpink, pink, crimson, lavenderblush, palevioletred, hotpink, deeppink, mediumvioletred, orchid, thistle, plum, violet, fuchsia, fuchsia, darkmagenta, purple, mediumorchid, darkviolet, darkorchid, indigo, blueviolet, mediumpurple, mediumslateblue, slateblue, darkslateblue, ghostwhite, lavender, blue, mediumblue, darkblue, navy, midnightblue, royalblue, cornflowerblue, lightsteelblue, lightslategray, slategray, dodgerblue, aliceblue, steelblue, lightskyblue, skyblue, deepskyblue, lightblue, powderblue, cadetblue, darkturquoise, azure, lightcyan, paleturquoise, aqua, aqua, darkcyan, teal, darkslategray, mediumturquoise, lightseagreen, turquoise, aquamarine, mediumaquamarine, mediumspringgreen, mintcream, springgreen, mediumseagreen, seagreen, honeydew, darkseagreen, palegreen, lightgreen, limegreen, lime, forestgreen, green, darkgreen, lawngreen, chartreuse, greenyellow, darkolivegreen, yellowgreen, olivedrab, ivory, beige, lightyellow, lightgoldenrodyellow, yellow, olive, darkkhaki, palegoldenrod, lemonchiffon, khaki, gold, cornsilk, goldenrod, darkgoldenrod, floralwhite, oldlace, wheat, orange, moccasin, papayawhip, blanchedalmond, navajowhite, antiquewhite, tan, burlywood, darkorange, bisque, linen, peru, peachpuff, sandybrown, chocolate, saddlebrown, seashell, sienna, lightsalmon, coral, orangered, darksalmon, tomato, salmon, mistyrose, lightcoral, snow, rosybrown, indianred, red, brown, firebrick, darkred, maroon, white, whitesmoke, gainsboro, lightgrey, silver, darkgray, gray, dimgray, black Web specific background color: (Pick a lighter one of the StandardColors) S
WEBFORMS textarea     TWikiForms: How to enable form(s) S
WEBTOPICLIST textarea   WebHome, Changes, Topics, Index, Search, Go the main entry point topics for this web S

-- TWiki:Main.JohnTalintyre - 16 Aug 2001
-- TWiki:Main.MikeMannix - 05 Jan 2002
-- TWiki:Main.PeterThoeny - 25 Apr 2004
-- TWiki:Main.MattWilkie - 27 Jul 2004


Note: Included topic TWikiTemplates? does not exist yet


Note: Included topic TWikiSkins? does not exist yet


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. 28 Mar 2024 - 08:11
$isodate Time stamp of last topic update, e.g. 2024-03-28T08:11Z
$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:

  • TWiki has a GPL (GNU General Public License). What is GPL? 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:

WebStatistics Main.guest 17 Aug 2016 - 23:00
WebHome DerekHosewood? 05 Nov 2009 - 15:20
WikiNotation Main.guest 06 Nov 2006 - 20:04
WelcomeGuest JasonBenedict 03 Nov 2005 - 04:45
WebRss PeterThoeny 16 Aug 2004 - 03:27
WikiReferences PeterThoeny 16 Aug 2004 - 02:22
WikiWikiClones PeterThoeny 15 Aug 2004 - 22:47

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%/%WEB%/%TOPIC%">
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


Note: Included topic TWikiMetaData? does not exist yet


Note: Included topic TWikiPlugins? does not exist yet


Note: Included topic TWikiFuncModule? does not exist yet


TWiki Site Tools

Utilities for searching, navigation, and monitoring site activity

TWikiSiteTools include utilities for navigating, searching and keeping up with site activity. Preferences can be configured by web or site-wide. You are currently in the TWiki web. In particular, TWiki provides two highly configurable, automated site monitoring tools, WebNotify, to email alerts when topics are edited, and WebStats, to generate detailed activity reports.

WebNotify Recent Changes Alert

Each TWiki web has an automatic email alert service that sends a list of recent changes on a preset schedule, like once a day. Users can subscribe and unsubscribe using WebNotify in each web. The Perl script mailnotify is called by a background process at regular intervals. The script sends an automated email to subscribed users if topics were changed in a web since the script was last run.

Format: TWiki handles entries in bullet list (<space><space><space>*) format containing the WikiName of a user; a WikiName with e-mail address; or a TWikiGroup. Examples:

  • Main.FredBloggs
  • Main.FredBloggs - secondary@home.com
  • Main.EngineeringGroup

The first entry is the default form, the notification gets sent to the e-mail address specified in the user's home page. The second entry lists an alternative e-mail address. The third entry specifies a group, the notification gets sent to each member of the group.

You can also use %MAINWEB% instead of Main, but this is not necessary even if you have renamed the main web by configuring $mainWebname in TWiki.cfg.

Configuring Outgoing Mail

TWiki will use the Net::SMTP module if it is installed on your system. Set this with the SMTPMAILHOST variable in TWikiPreferences?.

The notify e-mail uses the default changes.tmpl template, or a skin if activated in the TWikiPreferences?.

mailnotify also relies on two hidden files in each TWiki/data/[web] directory: .changes and .mailnotify. Make sure both are writable by your web server process. .changes contains a list of changes; go ahead and make this empty. .mailnotify contains a timestamp of the last time notification was done.

You can use an external mail program, like sendmail, if the Net::SMTP module is not installed. Set the program path in $mailProgram in TWiki.cfg.

  • HELP Net::SMTP can be easily disabled (ex: if there is an installation error) by setting SMTPMAILHOST in TWikiPreferences? to an empty value.

  • TIP You can set a separate SMTPSENDERHOST variable to define the mail sender host (some SMTP installations require this).

Setting the Automatic Email Schedule

For Unix platforms: Edit the cron table so that mailnotify is called in an interval of your choice. Please consult man crontab of how to modify the table that schedules program execution at certain intervals. Example:

% crontab -e
0 2 * * * (cd /path/to/twiki/bin; ./mailnotify -q)
The above line will run mailnotify nightly at 02:00. The -q switch suppresses all normal output.

For ISP installations: Many ISPs don't allow hosted accounts direct cron access, as it's often used for things that can heavily load the server. Workaround scripts are available.

On Windows NT/2000: You can use a scheduled task if you have administrative privileges. Note: AT on an NT machine is pretty limited. Microsoft lists several third-party replacements. TWiki:Codev/CronTabWin is a free scheduler for Windows.

WebStatistics Site Usage Log

You can generate a listing manually, or on an automated schedule, of visits to individual pages, on a per web basis. Compiled as a running total on a monthly basis. Includes totals for Topic Views, Topic Saves, Attachment Uploads, Most Popular Topics with number of views, and Top Contributors showing total of saves and attachment uploads. Previous months are saved.

Configuring for Automatic Operation

  • You can automatically generate usage statistics for all webs. To enable this:
    • Make sure variable $doLogTopicView, $doLogTopicSave and $doLogTopicUpload in TWiki.cfg are set. This will generate log file entries (see below).
    • The WebStatistics topic 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 many 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)

Generating Statistics Manually by URL

  • 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

Log File Details

TWiki generates monthly log files which are used by the statistics

  • The log directory is defined by the $logDir variable in TWiki.cfg
  • The file name is log<year><month>.txt
  • Example path name: twiki/data/log202403.txt
  • Each access gets logged as:
    | <time> | <wikiusername> | <action> | <web>.<topic> | <extra info> | <IP address> |
  • Example log entry:
    | 28 Mar 2024 - 04:11 | Main.TWikiGuest | view | TWiki.WebRss |  | 66.124.232.02 |
  • Actions are logged if enabled in TWiki.cfg by the $doLogTopic<action> flags
  • Logged actions:
    Script Action name Extra info
    attach attach when viewing attach screen of previous uploaded attachment: filename
    changes changes  
    edit edit when editing non-existing topic: (not exist)
    register register E-mail address
    save save when replacing existing revision: repRev 1.3
    when user checks the minor changes box: dontNotify
    search search search string
    rdiff rdiff 1.4 1.3
    rename rename when moving topic: moved to Newweb.NewTopic
    rename move when moving attachment: Attachment filename moved to Newweb.NewTopic
    upload upload filename
    view view when viewing non-existing topic: (not exist)
    when viewing previous topic revision: r1.3

WebSearch

WebSearch is an extremely fast and flexible search facility, part of the core TWiki feature set. Options include:

  • topic title or full-text search
  • regular expressions
  • search within web or site-wide
  • index-style A-Z alphabetical listing sorted topic title
  • many more

See also: TWikiVariables for including hard-coded searches in text.

WebChanges

To check for the most recently edited topics while on-site, use the WebChanges link, usually located on the upper toolbar. It lists the most recently modified topics, newest first, along with the first couple of lines of the page content.

This is simply a preset SEARCH. The number of topics listed by the limit parameter.:

%SEARCH{".*" web="Tutorial" regex="on" nosearch="on" order="modified" 
reverse="on" limit="50"}%

WebIndex

WebIndex lists all web topics in alphabetical order, with the first couple of lines of text. This is simply a preset SEARCH:

%SEARCH{"\.*" scope="topic" regex="on" nosearch="on"}%

-- TWiki:Main.MikeMannix - 01 Dec 2001
-- TWiki:Main.PeterThoeny - 28 Aug 2004


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="%WEB%" topic="%TOPIC%" 
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


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 TWiki 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


Manage Users

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

Authentication and Access Control

  • TWikiUserAuthentication? describes options of user authentication
  • TWikiAccessControl describes how to define groups and how to restrict access to content

Register User

  • TWikiRegistration? is for users to fill out a form
  • NewUserTemplate? can be changed to customize user home pages

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


Note: Included topic AppendixFileSystem? does not exist yet


Note: Included topic TWikiCss? does not exist yet


Note: Included topic AppendixEncodeURLsWithUTF8? does not exist yet


Appendix D: TWiki Development Timeline

01-Sep-2004 Release (Cairo)

Major New Features

  • Automatic upgrade script, and easier first-time installation
  • Attractive new skins, using a standard set of CSS classes, and a skin browser to help you choose
  • New easier-to-use save options
  • Many improvements to SEARCH
  • Improved support for internationalisation
  • Better topic management screens
  • More pre-installed Plugins: CommentPlugin, EditTablePlugin, RenderListPlugin, SlideShowPlugin, SmiliesPlugin, SpreadSheetPlugin, TablePlugin
  • Improved Plugins API and more Plugin callbacks
  • Better support for different authentication methods
  • Many user interface and usability improvements
  • And many, many more enhancements

Details of New Features and Enhancements of 01-Sep-2004 Release Developer, Sponsor
Install: Ship with an automatic upgrade script to facilitate TWiki upgrades. Details TWiki:Main.MartinGregory TWiki:Main.SvenDowideit
Install: New testenv function to change the locks in the TWiki database to the web server user id (automates installation step). Details TWiki:Main.MattWilkie TWiki:Main.SvenDowideit
Install: The shipped .htaccess.txt now needs to be edited before it is valid, to help reduce chances of error. Details TWiki:Main.CrawfordCurrie TWiki:Main.SvenDowideit
Install: Configurable password file handling for different types of encryption. Details TWiki:Main.PavelGoran TWiki:Main.SvenDowideit
Install: Remove office locations from registration. Details TWiki:Main.PeterThoeny
Install: Changes to support shorter URLs with Apache Rewrite rules. Details TWiki:Main.AntonioBellezza TWiki:Main.WalterMundt
Install: Remove the Know web from the distribution. Details TWiki:Main.PeterThoeny
Internationalization: Support use of UTF-8 URLs for I18N characters in TWiki page and attachment names. Details TWiki:Main.RichardDonkin
Authentication: Authenticate users when creating new topic in view restricted web. Details TWiki:Main.JonathanGraehl TWiki:Main.SvenDowideit
Preferences: TWiki Preferences need to be secured properly. Details TWiki:Main.PeterThoeny
Preferences: Use TWiki Forms to set user preferences. Details TWiki:Main.JohnTalintyre
Skins: New pre-installed skins PatternSkin and DragonSkin. Details TWiki:Main.ArthurClemens TWiki:Main.PeterThoeny
Skins: New skin browser to choose from installed skins. Details TWiki:Main.PeterThoeny
Skins: Documented set of CSS classes that are used in standard skins. Details TWiki:Main.ArthurClemens TWiki:Main.SvenDowideit
Skins: Added CSS class names to Diff output. Details TWiki:Main.SvenDowideit
Skins: Templates can now be read from user topics, as well as from files in the templates diretcory. Details TWiki:Main.CrawfordCurrie TWiki:Main.WalterMundt
Skins: Ensure that the default template gets overridden by a template passed in. Details TWiki:Main.MartinCleaver TWiki:Main.WalterMundt
Skin: Convey an important broadcast message to all users, e.g. scheduled server downtime. Details TWiki:Main.PeterThoeny
Skin: Balanced pastel colors for TWiki webs. Details TWiki:Main.ArthurClemens
Rendering: Use exclamation point prefix to escape TWiki markup rendering. Details TWiki:Main.ArthurClemens
Rendering: Ordered lists with uppercase & lowercase letters, uppercase & lowercase Roman numerals. Details TWiki:Main.DanBoitnott TWiki:Main.PeterThoeny
Rendering: Allow custom styles for the "?" of uncreated topics. Details TWiki:Main.SvenDowideit
Rendering: Render IRC and NNTP as a URL. Details TWiki:Main.PeterThoeny
Rendering: Make acronym linking more strict by requiring a trailing boundary, e.g. excluding TLAfoobar. Details TWiki:Main.CrawfordCurrie TWiki:Main.SvenDowideit
Rendering: TWiki Form with Label type. Details TWiki:Main.PeterThoeny
Rendering: Web names can now be WikiWords. Details TWiki:Main.PeterThoeny
Rendering: New syntax for definition list with dollar sign and colon. Details TWiki:Main.AdamTheo TWiki:Main.PeterThoeny
Rendering: Table with multi-span rows, functionality provided by Table Plugin. Details TWiki:Main.WalterMundt
Variables: New title parameter for TOC variable. Details TWiki:Main.PeterThoeny TWiki:Main.ArthurClemens
Variables: New REVINFO variable in templates supports flexible display of revision information. Details TWiki:Main.PeterThoeny TWiki:Main.SvenDowideit
Variables: Set times to be displayed as gmtime or servertime. Details TWiki:Main.SueBlake TWiki:Main.SvenDowideit
Variables: Properly encode parameters for form fields with ENCODE variable. Details TWiki:Main.PeterThoeny
Variables: Expand USERNAME and WIKINAME in Template Topics. Details TWiki:Main.PeterThoeny
Variables: Expand same variables in new user template as in template topics. Details TWiki:Main.PeterThoeny
Variables: Optionally warn when included topic does not exist; with the option to create the included topic. Details TWiki:Main.PeterThoeny
Variables: In topic text show file-types of attached files as icons. Details TWiki:Main.PeterThoeny
Variables: New variable FORMFIELD returns the value of a field in the form attached to a topic.. Details TWiki:Main.DavidSachitano TWiki:Main.SvenDowideit
Variables: Meta data rendering for form fields with META{"formfield"}. Details TWiki:Main.PeterThoeny
Variables: New PLUGINVERSION variable. Details TWiki:Main.PeterThoeny
Variables: URLPARAM now has a default="..." argument, for when no value has been given. Details TWiki:Main.PeterThoeny
Variables: URLPARAM variable with newline parameter. Details TWiki:Main.PeterThoeny
Variables: URLPARAM variable with new multiple=on parameter. Details TWiki:Main.PaulineCheung TWiki:Main.PeterThoeny
Search: New switch for search to perform an AND NOT search. Details TWiki:Main.PeterThoeny
Search: Keyword search to search with implicit AND. Details TWiki:Main.PeterThoeny
Search: Multiple searches in same topic with new multiple="on" paramter. Details TWiki:Main.PeterThoeny
Search: Remove limitation on number of topics to search in a web. Details TWiki:Main.PeterThoeny
Search: Exclude topics from search with an excludetopic parameter. Details TWiki:Main.PeterThoeny
Search: Expand Variables on Formatted Search with expandvariables Flag. Details TWiki:Main.PeterThoeny
Search: Formatted Search with Web Form variable to retrieve the name of the form attached to a topic. Details TWiki:Main.FrankSmith TWiki:Main.PeterThoeny
Search: Formatted Search with Conditional Output. Details TWiki:Main.PeterThoeny
Search: Formatted Search with $parent token to get the parent topic. Details TWiki:Main.PeterThoeny
Search: New separator parameter to SEARCH supports better SEARCH embedding. Details TWiki:Main.PeterThoeny
Search: Improved search performance when sorting result by topic name. Details TWiki:Main.PeterThoeny
Search: New scope=all search parameter to search in topic name and topic text at the same time. Details TWiki:Main.PeterThoeny
Search: New topic parameter for AND search on topic text and topic name. Details TWiki:Main.PeterThoeny
Search modules uses Perl-style keyword parameters (code cleanup). Details TWiki:Main.PeterThoeny
Search: New $wikiname variable in format parameter of formatted search. Details TWiki:Main.ArthurClemens
Search: Sort search by topic creation date. Details TWiki:Main.PeterThoeny
Search: Topic creation date and user in Formatted Search. Details TWiki:Main.CoreyFruitman TWiki:Main.SvenDowideit
Search: Increase levels of nested search from 2 to 16. Details TWiki:Main.PeterThoeny
Plugins: New pre-installed Plugins CommentPlugin, EditTablePlugin, RenderListPlugin, SlideShowPlugin, SmiliesPlugin, SpreadSheetPlugin, TablePlugin. Details TWiki:Main.PeterThoeny
Plugins: New callback afterSaveHandler, called after a topic is saved. Details TWiki:Main.WalterMundt
Plugins: New callbacks beforeAttachmentSaveHandler and afterAttachmentSaveHandler, used to intervene on attachment save event. Details TWiki:Main.MartinCleaver TWiki:Main.WalterMundt
Plugins: New callbacks beforeCommonTagsHandler and afterCommonTagsHandler. Details TWiki:Main.PeterThoeny
Plugins: New callback renderFormFieldForEditHandler to render form field for edit. Details TWiki:Main.JohnTalintyre
Plugins: New callback renderWikiWordHandler to custom render links. Details TWiki:Main.MartinCleaver TWiki:Main.WalterMundt
Plugins: New function TWiki::Func::formatTime to format time into a string. Details TWiki:Main.SvenDowideit
Plugins: New function TWiki::Func::getRegularExpression to get predefined regular expressions. Details TWiki:Main.RichardDonkin
Plugins: New functions TWiki::Func::getPluginPreferences* to get Plugin preferences. Details TWiki:Main.WalterMundt
Plugins: New function TWiki::Func::extractParameters to extract all parameters from a variable string. Details TWiki:Main.PeterThoeny
Plugins: New function TWiki::Func::checkDependencies to check for module dependency. Details TWiki:Main.CrawfordCurrie TWiki:Main.SvenDowideit
Plugins: A recommendation for where a Plugin can store its data. Details TWiki:Main.PeterThoeny
UI: Show tool-tip topic info on WikiWord links. Details TWiki:Main.PeterThoeny
UI: Save topic and continue edit feature. Details TWiki:Main.ColasNahaboo
UI: Change topic with direct save (without edit/preview/save cycle) and checkpoint save. Details TWiki:Main.MattWilkie TWiki:Main.SvenDowideit
UI: In attachment table, change 'action' to 'manage'. Details TWiki:Main.PeterThoeny TWiki:Main.ArthurClemens
UI: Smaller usability enhancements on the file attachment table. Details TWiki:Main.PeterThoeny TWiki:Main.ArthurClemens
UI: Removes anchor links from header content and places them before the text to fix 'header becomes link'. Details TWiki:Main.ArthurClemens
UI: Improved functionality of the More screen. Details TWiki:Main.PeterThoeny TWiki:Main.ArthurClemens
UI: Quick reference chart of most used markup is now listed on the edit screen. Details TWiki:Main.ArthurClemens
UI: Flag for edit script to avoid overwrite of existing topic text and form data. Details TWiki:Main.NielsKoldso TWiki:Main.PeterThoeny
UI: Disable Escape key in IE textarea to prevent it cancelling work. Details TWiki:Main.CrawfordCurrie TWiki:Main.PeterThoeny
UI: Improved warning message on unsaved topic. Details TWiki:Main.MartinGregory TWiki:Main.SvenDowideit
UI: Reverse order of words in page title for better multi-window/tab navigation. Details TWiki:Main.ArthurClemens
UI: Provides a framework to create and modify a topic without going through edit->preview->save sequence. Details TWiki:Main.AndreUlrich TWiki:Main.SvenDowideit
UI: Set the topic parent to none in More screen, e.g. remove the current topic parent. Details TWiki:Main.PeterThoeny
UI: Use templates to define how file attachments are displayed. Was previously hard-coded. Details TWiki:Main.CrawfordCurrie TWiki:Main.SvenDowideit
UI: Topic diff shows unified diff with unchanged context. Details TWiki:Main.SvenDowideit
UI: Diff feature shows TWiki form changes in nice tables. Details TWiki:Main.SvenDowideit
Code refactoring: The log entry for a save now has a dontNotify flag in the extra field if the user checked the minor changes flag. Details TWiki:Main.PeterThoeny
Code refactoring: Server-side include of attachments accelerates INCLUDE. Details TWiki:Main.CrawfordCurrie TWiki:Main.PeterThoeny
Code refactoring: Move functionality out of bin scripts and into included modules. Details TWiki:Main.CrawfordCurrie TWiki:Main.SvenDowideit
Code refactoring: Move bin script functionality into TWiki::UI modules. Details TWiki:Main.CrawfordCurrie TWiki:Main.PeterThoeny
Code refactoring: Optimize preferences handling for better performance. Details TWiki:Main.PavelGoran TWiki:Main.WalterMundt
Code refactoring: Refactor variable expansion for edit and register. Details TWiki:Main.CrawfordCurrie TWiki:Main.PeterThoeny
Code refactoring: Move savemulti script into TWiki::UI::Save. Details TWiki:Main.MattWilkie TWiki:Main.SvenDowideit
Code refactoring: Topic search is done natively in Perl, it does not depend anymore on system calls with pipes. Details TWiki:Main.PeterThoeny
Code refactoring: Fix logical error in upload script which prevented MIME filename from being used. Details TWiki:Main.WalterMundt

Bug Fixes of 01-Sep-2004 Release Developer, Sponsor
Fix: Consistently create headings with empty anchor tags. Details TWiki:Main.PeterThoeny
Fix: TOC does not work for headings containing & without spaces surrounding it. Details TWiki:Main.PeterThoeny
Fix: Backslash line break breaks TWiki form definitions. Details TWiki:Main.CrawfordCurrie TWiki:Main.PeterThoeny
Fix: Rename fixes unrelated topic references. Details TWiki:Main.RichardDonkin
Fix: Bug with infinite recursion in search. Details TWiki:Main.PeterThoeny
Fix: Can't send mail with full 'From' address. Details TWiki:Main.PeterThoeny
Fix: All scripts change to $bin before execute (for mod_perl2). Details TWiki:Main.PeterThoeny
Fix: Several RSS readers do not show all entries seen in the WebChanges list; repeated updates to the same topics get lost. Details TWiki:Main.ArthurClemens
Fix: TWiki::Access::checkAccessPermission function improperly handles Main and TWiki webs. Details TWiki:Main.SvenDowideit
Fix: Topic save returns error CI Date precedes date in revision. Details TWiki:Main.PeterThoeny
Fix: Double quotes got replaced by " in TWiki forms. Details TWiki: MS TWiki:Main.PeterThoeny
Fix: Duplicated Wiki name in .htpasswd entry for sha1 encoding. Details TWiki:Main.PeterThoeny
Fix: When viewing a previous version of a topic, the view script substitutes only one occurrence of the variable EDITTOPIC. Details TWiki:Main.PeterThoeny
Fix: Form default values are not working for text fields. Details TWiki:Main.ThomasWeigert TWiki:Main.SvenDowideit
Fix: Formatted searches using a $pattern which unbalanced parenthesis crash TWiki. Details TWiki:Main.PeterThoeny
Fix: Formatted Search uses title but should use name for formfield parameter. Details TWiki:Main.PeterThoeny
Fix: GMTIME variable returns unwanted GMT text. Details TWiki:Main.SvenDowideit
Fix: Include from other Web links ACRONYMS. Details TWiki:Main.PeterThoeny
Fix: Including an HTML file is very slow. Details TWiki:Main.JohnTalintyre
Fix: includeUrl() mess up absolute URLs. Details TWiki:Main.SvenDowideit
Fix: Filter out fixed font rendering in TOC to avoid unrendered = equal signs in TOC. Details TWiki:Main.PeterThoeny
Fix: The initializeUserHandler is broken for session Plugins. Details TWiki:Main.JohnTalintyre
Fix: SEARCH fails with very large webs. Details TWiki:Main.PeterThoeny
Fix: Security alert: User could gain view access rights of another user. Details TWiki:Main.KimCovil TWiki:Main.PeterThoeny
Fix: 'print to closed file handle' error of log files are not writable. Details TWiki:Main.MartinGregory TWiki:Main.SvenDowideit
Fix: Meta data handler can't process CR-LF line endings. Details TWiki:Main.PeterThoeny
Fix: METAFIELD meta data is not shown in view raw=on mode. Details TWiki:Main.PeterThoeny
Fix: Minor XHTML non-compliance in templates and code. Details TWiki:Main.PeterThoeny
Fix: Getting pages from virtual hosts fails. Details TWiki:Main.JohnTalintyre
Fix: Create new web fails if RCS files do not exist. Details TWiki:Main.ClausBrunzema TWiki:Main.SvenDowideit
Fix: Metacharacters can be passed through to the shell in File Attach. Details TWiki:Main.PeterThoeny
Fix: Ability to delete non-WikiWord topics without confirmation. Details TWiki:Main.PeterThoeny
Fix: + symbol in password reset fails. Details TWiki:Main.PeterThoeny
Fix: Pathinfo cleanup for hosted sites. Details TWiki:Main.MikeSalisbury TWiki:Main.SvenDowideit
Fix: Software error in SEARCH if regular expression pattern has unmached parenthesis. Details TWiki:Main.PeterThoeny
Fix: Pipe chars in the comment field of the attachment table are not escaped. Details TWiki:Main.PeterThoeny
Fix: Link escaping in preview fails for not quoted hrefs. Details TWiki:Main.TedPavlic TWiki:Main.PeterThoeny
Fix: Preview expands variables twice. Details TWiki:Main.PeterThoeny
Fix: Using a proxy with TWiki fails; no proxy-HTTP request, minimal request not HTTP 1.0, requests marked 1.1 are at best 1.0. Details TWiki:Main.MichaelSparks TWiki:Main.JohnTalintyre
Fix: Runaway view processes with TWiki::Sore::RcsLite. Details TWiki:Main.SvenDowideit
Fix: Regex Error in WebTopicList with topics that have meta characters in the name. Details TWiki:Main.PeterThoeny
Fix: Rename script misses some ref-by topics. Details TWiki:Main.JohnTalintyre
Fix: Links to self within the page being renamed are not changed. Details TWiki:Main.SvenDowideit
Fix: Rename topic does 'Main.Main.UserName' for attachments. Details TWiki:Main.PeterThoeny
Fix: Revision date is set to Jan 1970 when using RCS Lite. Details TWiki:Main.SvenDowideit
Fix: The new dynamically-created SiteMap is very nice, but somewhat slow. Details TWiki:Main.PeterThoeny
Fix: The makeAnchorName function did not produce the same results if called iteratively, resulting in problems trying to link to headers.. Details TWiki:Main.WalterMundt
Fix: Statistics page does not provide links to non-wikiword topics. Details TWiki:Main.PeterThoeny
Fix: Make TOC link URI references relative. Details TWiki:Main.MartinGregory TWiki:Main.PeterThoeny
Fix: TWiki hangs when used on Apache 2.0. Details TWiki:Main.SvenDowideit
Fix: TOC incorrectly strips out links in headers. Details TWiki:Main.PeterThoeny
Fix: The HTML tags that are generated by TOC do not close properly. Details TWiki:Main.PeterThoeny
Fix: TOC on INCLUDEd topic ignores STOPINCLUDE. Details TWiki:Main.WillNorris TWiki:Main.PeterThoeny
Fix: Quotes in tooltip message can break a TWiki form. Details TWiki:Main.PeterThoeny
Fix: Better error message if the file attachment directory is not writable. Details TWiki:Main.CrawfordCurrie TWiki:Main.SvenDowideit
Fix: Image size of PNG files. Details TWiki:Main.ArthurClemens
Fix: The testenv script distinguishes between real user ID and effective user ID. Details TWiki:Main.RichardDonkin
Fix: Variables in square bracket links dont work in form fields. Details TWiki:Main.SvenDowideit
Fix: Variable with Parameters in Form Fields Disappear. Details TWiki:Main.PeterThoeny
Fix: Verbatim tag should escape HTML entities. Details TWiki:Main.PeterThoeny
Fix: Field names of TWiki Forms can be WikiWords, this is used to link to a help topic. Details TWiki:Main.PeterThoeny
Fix: Clean up the WebRssBase INCLUDES to use VARIABLES set in TWikiPreferences. Details TWiki:Main.SvenDowideit
Fix: Resolving variables in included topics. Details TWiki:Main.OliverKrueger TWiki:Main.SvenDowideit

01-Feb-2003 Release (Beijing)

01-Dec-2001 Release (Athens)

01-Sep-2001 Release

01-Dec-2000 Release

01-May-2000 Release

  • 21 Apr 2000 - TWiki:Main.PeterThoeny
    • New TWikiVariables %HTTP_HOST% , %REMOTE_ADDR% , %REMOTE_PORT% and %REMOTE_USER% .
  • 21 Apr 2000 - TWiki:Main.JohnAltstadt, TWiki:Main.PeterThoeny
    • TWikiRegistration? is done separately for Intranet use (depends on remote_user) or Internet use (depends on .htpasswd file).
  • 20 Mar 2000 - TWiki:Main.PeterThoeny
    • Uploading a file (topic file attachment) will optionally create a link to the uploaded file at the end of the topic. The preference variable %ATTACHLINKBOX% controls the default state of the link check box in the attach file page.
  • 11 Mar 2000 - TWiki:Main.PeterThoeny
    • Better security with taint checking ( Perl -T option )
  • 25 Feb 2000 - TWiki:Main.PeterThoeny
    • New preference variables %EDITBOXWIDTH% and %EDITBOXHEIGHT% to specify the edit box size.
  • 25 Feb 2000 - TWiki:Main.PeterThoeny
    • Edit preferences topics to set TWiki variables. There are three level of preferences Site-level (TWikiPreferences?), web-level (WebPreferences in each web) and user-level preferences (for each of the TWikiUsers). With this, discontinue use of server side include of wikiwebs.inc , wikiwebtable.inc , weblist.inc , webcopyright.inc and webcolors.inc files.
  • 11 Feb 2000 - TWiki:Main.PeterThoeny
    • New variable %SCRIPTSUFFIX% / $scriptSuffix containing an optional file extension of the TWiki Perl script. Templates have been changed to use this variable. This allows you to rename the Perl script files to have a file extension like for example ".cgi".
  • 11 Feb 2000 - TWiki:Main.PeterThoeny
    • New variable %SCRIPTURLPATH% / $scriptUrlPath containing the script URL without the domain name. Templates have been changed to use this variable instead of %SCRIPTURL% . This is for performance reasons.
  • 07 Feb 2000 - TWiki:Main.PeterThoeny
    • Changed the syntax for server side include variable from %INCLUDE:"filename.ext"% to %INCLUDE{"filename.ext"}% . (Previous syntax still supported. Change was done because of inline search syntax)
  • 07 Feb 2000 - TWiki:Main.PeterThoeny
    • Inline search. New variable %SEARCH{"str" ...}% to show a search result embedded in a topic text. TWikiVariables has more on the syntax. Inline search combined with the category table feature can be used for example to create a simple bug tracking system.
  • 04 Feb 2000 - TWiki:Main.PeterThoeny
    • Access statistics. Each web has a WebStatistics topic that shows monthy statistics with number of topic views and changes, most popular topics, and top contributors. (It needs to be enabled, TWikiDocumentation has more.)
  • 29 Jan 2000 - TWiki:Main.PeterThoeny
    • Fixed bug where TWiki would not initialize correctly under certain circumstances, i.e. when running it under mod_perl. Sub initialize in wiki.pm did not handle $thePathInfo correctly.
  • 24 Jan 2000 - TWiki:Main.PeterThoeny
  • 10 Jan 2000 - TWiki:Main.PeterThoeny
    • No more escaping for '%' percent characters. (Number of consecutive '%' entered and displayed is identical.)
  • 03 Oct 1999 - TWiki:Main.PeterThoeny
    • Limit the number of revisions shown at the bottom of the topic. Example
      Topic TWikiHistory . { ..... Diffs r1.10 > r1.9 > r1.8 > r1.7 >... }
      Additional revisions can be selected by pressing the >... link.

01-Sep-1999 Release

  • 31 Aug 1999 - TWiki:Main.PeterThoeny
    • Fixed Y2K bug. (Date in year 2000 had wrong format.)
  • 08 Aug 1999 - TWiki:Main.PeterThoeny
    • New text formatting rule for creating tables. Text gets rendered as a table if enclosed in " " vertical bars. Example line as it is written and how it shows up
  • 03 Aug 1999 - TWiki:Main.PeterThoeny
    • Online registration of new user using web form in TWikiRegistration?. Authentication of users.
  • 22 Jul 1999 - TWiki:Main.PeterThoeny
    • Flags $doLogTopic* in wikicfg.pm to selectively log topic view, edit, save, rdiff, attach, search and changes to monthly log file.
  • 21 Jul 1999 - TWiki:Main.PeterThoeny
    • Flag $doRemovePortNumber in wikicfg.pm to optionally remove the port number from the TWiki URL. Example www.some.domain:1234/twiki gets www.some.domain/twiki .
  • 15 Jul 1999 - TWiki:Main.PeterThoeny
    • Search path for include files in %INCLUDE:"file.inc"% variable. Search first in the current web, then in parent data directory. Useful to overload default include text in the data directory by web-specific text, like for example webcopyright.inc text.
  • 07 Jul 1999 - TWiki:Main.ChristopheVermeulen
    • Link a plural topic to a singular topic in case the plural topic does not exist. Example TestVersion / TestVersions , TestPolicy / TestPolicies , TestAddress / TestAddresses , TestBox / TestBoxes .

01-Jul-1999 Release

  • 23 Jun 1999 - TWiki:Main.PeterThoeny
    • New TextFormattingRules to write bold italic text by enclosing words with double underline characters.
  • 23 Jun 1999 - TWiki:Main.PeterThoeny
    • Separate wiki.pm into configuration (wikicfg.pm) and TWiki core (wiki.pm) . This is to ease the upgrade of TWiki installations, it also allows customized extensions to TWiki without affecting the TWiki core.
  • 21 May 1999 - TWiki:Main.DavidWarman
    • Externalize copyright text at the bottom of every page into a web-specific webcopyright.inc file. This is to easily customize the copyright text.
  • 20 May 1999 - TWiki:Main.PeterThoeny
    • Added meta tag so that robots index only /view/ of topics, not /edit/, /attach/ e.t.c. Tag <META NAME="ROBOTS" CONTENT="NOINDEX">
  • 20 May 1999 - TWiki:Main.PeterThoeny
    • New variables %WIKIHOMEURL% (link when pressing the icon on the upper left corner) and %WIKITOOLNAME% (the name of the wiki tool TWiki ).
  • 15 Apr 1999 - TWiki:Main.PeterThoeny
    • Topic locking Warn user if a topic has been edited by an other person within one hour. This is to prevent contention, e.g. simultaneous topic updates.
  • 26 Mar 1999 - TWiki:Main.PeterThoeny
    • File attachments Upload and download any file as a topic attachment by using the browser. FileAttachment has more.
  • 26 Mar 1999 - TWiki:Main.PeterThoeny
    • New variables %PUBURL% (Public directory URL) and %ATTACHURL% (URL of topic file attachment).
  • 09 Feb 1999 - TWiki:Main.PeterThoeny
    • New text formatting rule for creating fixed font text . Words get showns in fixed font by enclosing them in "=" equal signs. Example Writing =fixed font= will show up as fixed font .
  • 09 Feb 1999 - TWiki:Main.PeterThoeny
    • No new topic revision is created if the same person saves a topic again within one hour.
  • 03 Feb 1999 - TWiki:Main.PeterThoeny
    • Possible to view complete revision history of a topic on one page. Access at the linked date in the Changes page, or the Diffs link at the bottom of each topic, e.g.
      Topic TWikiHistory . { Edit Ref-By Diffs r1.3 > r1.2 > r1.1 }
      Revision r1.3 1998/11/10 01:34 by PeterThoeny
  • 04 Jan 1999 - TWiki:Main.PeterThoeny
    • Fixed bug when viewing differences between topic revisions that include HTML table tags like <table>, <tr>, <td>.

1998 Releases

  • 08 Dec 1998 - TWiki:Main.PeterThoeny
    • Signature is shown below the text area when editing a topic. Use this to easily copy & paste your signature into the text.
  • 07 Dec 1998 - TWiki:Main.PeterThoeny
    • Possible to add a category table to a TWiki topic. This permits storing and searching for more structured information. Editing a topic shows a HTML form with the usual text area and a table with selectors, checkboxes, radio buttons and text fields. TWikiDocumentation has more on setup. The TWiki.Know web uses this category table to set classification, platform and OS version.
  • 18 Nov 1998 - TWiki:Main.PeterThoeny
    • Internal log of topic save actions to the file data/logYYYYMM.txt, where YYYYMM the year and month in numeric format is. Intended for auditing only, not accessible from the web.
  • 10 Nov 1998 - TWiki:Main.PeterThoeny
    • The email notification and the Changes topic have now a topic date that is linked. Clicking on the link will show the difference between the two most recent topic revisions.
  • 10 Nov 1998 - TWiki:Main.PeterThoeny
    • View differences between topic revisions. Each topic has a list of revisions (e.g. r1.3) and differences thereof (e.g. >) at the bottom
      Topic TWikiHistory . { Edit Ref-By r1.3 > r1.2 > r1.1 }
      Revision r1.3 1998/11/10 01:34 by TWiki:Main.PeterThoeny
  • 26 Oct 1998 - TWiki:Main.PeterThoeny
    • Added preview of topic changes before saving the topic. This was necessary to prevent unneeded revisions.
  • 26 Oct 1998 - TWiki:Main.PeterThoeny
    • Added revision control using RCS. Each topic has now a list of revisions at the bottom and a revision info, e.g.
      Topic TWikiHistory . { Edit Ref-By r1.3 r1.2 r1.1 }
      Revision r1.3 1998/10/26 01:34:00 by TWiki:Main.PeterThoeny
  • 14 Oct 1998 - TWiki:Main.PeterThoeny
    • Refered-By Find out which topics have a link to the current topic. Each topic has a Ref-By link for that. Note Only references from the current web are shown, not references from other webs.
  • 13 Oct 1998 - TWiki:Main.PeterThoeny
  • 24 Sep 1998 - TWiki:Main.PeterThoeny
    • Corrected templates for automatic email notification so that MS Outlook can display attachment as an HTML file.
  • 13 Aug 1998 - TWiki:Main.PeterThoeny
    • WikiNotation allows also numbers after the AaA sequence, e.g. AaA1 is a valid WikiTopic name, but not Aa1.
  • 07 Aug 1998 - TWiki:Main.PeterThoeny
    • Automatic email notification when something has changed in a TWiki web. Each web has a topic WebNotify where one can subscribe and unsubscribe.
  • 06 Aug 1998 - TWiki:Main.PeterThoeny
    • Added server side include of files. Syntax is %INCLUDE:"filename.ext"%
  • 05 Aug 1998 - TWiki:Main.PeterThoeny
    • Signature and date is inserted automatically when creating a new topic.
  • 04 Aug 1998 - TWiki:Main.PeterThoeny
    • Separate templates for text of non existing topic and default text of new topic. (template file templates/Web/notedited.tmpl)
  • 04 Aug 1998 - TWiki:Main.PeterThoeny
    • Warn user if new topic name is not a valid Wiki name. (template file templates/Web/notwiki.tmpl)
  • 31 Jul 1998 - TWiki:Main.PeterThoeny
    • Support for quoted text with a '>' at the beginning of the line.
  • 28 Jul 1998 - TWiki:Main.PeterThoeny
    • Added TWiki variables, enclosed in % signs %TOPIC% (Topic name), %WEB% (web name), %SCRIPTURL% (script URL), %DATE% (current date), %WIKIWEBMASTER% (Wiki webmaster address), %WIKIVERSION% (Wiki version), %USERNAME% (user name), %WIKIUSERNAME% (Wiki user name).
  • 28 Jul 1998 - TWiki:Main.PeterThoeny
    • Topic WebChanges shows Wiki username instead of Intranet username, e.g. PeterThoeny instead of thoeny in case the Wiki username exists. Implementation Automatic lookup of Wiki username in topic TWikiUsers.
  • 28 Jul 1998 - TWiki:Main.PeterThoeny
    • Topic index. (Technically speaking a simple '.*' search on topic names.)
  • 28 Jul 1998 - TWiki:Main.PeterThoeny
    • Topic WebSearch allows full text search and and topic search with/without regular expressions.
  • 27 Jul 1998 - TWiki:Main.PeterThoeny
    • Added automatic links to topics in other TWiki webs by specifying <web name>.<topic name>, e.g. Know.WebSeach .
  • 23 Jul 1998 - TWiki:Main.PeterThoeny
    • Installed initial version, based on the JOS Wiki. See WikiWikiClones for details.

Dev Flow

The typical TWiki development flow...


to top

You are here: Tutorial > TWikiDocumentation

to top

Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback