| Resource | Required Server Environment * |
|---|---|
| Perl | 5.6.1 or higher (5.8.4 or higher is recommended) |
| RCS | 5.7 or higher (including GNU diff) Optional, Foswiki includes a pure perl implementation of RCS that can be used instead (although it's slower) |
GNU diff |
GNU diff 2.7 or higher is required when not using the all-Perl RcsLite. Install on PATH if not included with RCS (check version with diff -v) Must be the version used by RCS, to avoid problems with binary attachments - RCS may have hard-coded path to diff |
GNU patch |
For upgrades only: GNU patch is required when patching the code using patches in diff format submitted by the community. |
GNU fgrep, egrep |
Modify command line parameters in configure if you use non-GNU grep programs |
| Cron/scheduler | • Unix: cron • Windows: cron equivalents |
| Web server | Apache is well supported; see Foswiki:Support.InstallingOnSpecificPlatforms for alternative options. |
lib/DEPENDENCIES.
Most of them will probably already be available in your installation. You can check version numbers with the configure script, or if you're still trying to get to that point, check from the command line like this:
perl -e 'use FileHandle; print $FileHandle::VERSION."\n"'
System.InstallationGuide (the InstallationGuide topic in the System web).
For information on upgrades, please also refer to Foswiki:System.UpgradeGuide. A static HTML version of this document, UpgradeGuide.html, is included in the root of your Foswiki distribution.
UpgradeGuide.html, is included in the root of your Foswiki distribution.
Verify that your server meets the Foswiki system requirements, including having the minimum required Perl version and all required Perl modules installed. If you need to install any Perl libraries from CPAN for use by Foswiki, see Foswiki:Support.HowToInstallCpanModules for more information.
If you need help, feel free to ask a question in the Foswiki:Support web or on Foswiki:Community.InternetRelayChat (irc.freenode.net, channel #foswiki).
/path/to/foswiki. foswiki directory tree.
Note: for more information on the appropriate permissions to ensure security for your Foswiki data, see Foswiki:Support.SecuringYourSite.
The default file and directory access permissions as set by the distribution define a reasonable security level that will work for many types of installations, including shared hosting. Nonetheless, you should verify that the web server user has read access to all files and directories beneath the foswiki directory, and execute access for all directories. Also verify that the data and pub directories and all the subdirectories and files beneath them allow write access for the web server user. chmod -R 770 foswiki. Providing execute access to all files is potentially dangerous. This is a common mistake made by Foswiki installers. See Foswiki:Support.SettingFileAccessRightsLinuxUnix for a sample set of Unix commands to set the file and directory permissions.
foswiki directory tree to the web server user, using the command chown -R user:group /path/to/foswiki. The web server username varies in different installations; here are some sample commands for various Linux distributions: chown -R apache:apache /path/to/foswiki
chown -R www-data:www-data /path/to/foswiki
chown -R wwwrun:www /path/to/foswiki
/usr/bin/perl. If it's somewhere else, change the path to Perl in the first line of each script (you may have to give yourself write permission first) in the bin and tools directories. You can use the tools/rewriteshebang.pl script to do this; for example:cd /path/to/foswiki/bin /path/to/perl ../tools/rewriteshebang.pl # At the prompt, enter the full path to the perl executable, including # the full filename of the executable. You will be prompted twice for # this information in order to confirm it. cd /path/to/foswiki/tools /path/to/perl rewriteshebang.plSome web servers require a special extension on perl script files (e.g.
.cgi or .pl). This is not normally required with the Apache web server, though some hosted web servers are configured to require it. If the documentation for your web server indicates that a special extension is necessary, rename all the executable scripts in bin; that is, rename bin/view to bin/view.pl, and so on. When configuring Foswiki (see the section "Configure Foswiki"), set the ScriptSuffix option to the special extension.
Create the file LocalLib.cfg located at bin/LocalLib.cfg bin directory, copy the template file LocalLib.cfg.txt to LocalLib.cfg. Make sure the ownership and access rights of the copy are the same as LocalLib.cfg.txt.
bin/LocalLib.cfg so that $foswikiLibPath is set to the absolute file path of your lib directory. For example: /path/to/foswiki/lib.
$CPANBASE to point to your personal CPAN install. Don't forget that the web server user has to be able to read those files as well.
foswiki.conf). Performance is much better with a config file, and one file gives the best overview and ensures that you get a safe installation . However to use a config file you need root or sudo access to stop and start Apache. The Foswiki apache config file is included from the main Apache config file http.conf. Most distributions have a directory from which any file that ends with .conf gets included when you restart Apache (Example RedHat/Fedora/Centos: /etc/httpd/conf.d ). If you use a virtual host setup in Apache you should include the foswiki.conf file from inside the desired virtual host config in your Apache configuration.
.htaccess files on each page access. Normally this is the only way to control Apache in a shared host environment where you have no root or sudo privileges.
foswiki_httpd_conf.txt can be found in the root of the foswiki installation.
bin and pub. The Foswiki:Support.ApacheConfigGenerator tool will generate the appropriate settings; the foswiki_httpd_conf.txt file also has examples of configuring Apache appropriately.
ScriptAlias directive for the bin subdirectory, or an Alias directive with SetHandler cgi-script and Options ExecCGI directives for the bin subdirectory, so that the bin scripts will be executed by Apache.
bin directory, there are sample .htaccess files for various subdirectories in your installation. Each file has help text explaining how to modify it for your configuration. For more information, see Foswiki:Support.SupplementalDocuments.| location and name of sample .htaccess file | copy sample file to the following location |
|---|---|
foswiki/root-htaccess.txt | foswiki/.htaccess |
foswiki/bin/.htaccess.txt | foswiki/bin/.htaccess |
foswiki/pub-htaccess.txt | foswiki/pub/.htaccess |
foswiki/subdir-htaccess.txt | .htaccess in all other subdirectories below foswiki |bin and pub. The sample .htaccess files show how to configure Apache appropriately.
foswiki/bin/.htaccess files contains the line SetHandler cgi-script so that all scripts in the bin directory will be executed by Apache.
pub directory. For example, most Linux distributions have a default Apache installation with PHP and server side include (SSI) enabled. This would allow PHP scripts uploaded as attachments to be executed, which is a security risk, so it should be disabled in the Apache configuration with php_admin_flag engine off.
Different script execution mechanisms are disabled in different ways; see your web server configuration and documentation for more details.
Protect the configure script: You should never leave the configure script open to the public. Limit access to the bin/configure script to either localhost, an IP address or a specific user using basic Apache authentication. The Foswiki:Support.ApacheConfigGenerator lets you setup who has access to the configure script. Also see the foswiki-httpd-conf.txt or bin/.htaccess.txt file for an example of the setting required to protect the configure script.
To limit access to a particular user, set up a .htpasswd file that contains the user name and password that Apache will use to authenticate the user: foswiki/data directory.
htpasswd -c .htpasswd <username>, where <username> is the name of the user you will use to access the configure script. Choose the username with care: the username cannot be an existing login name for your Foswiki installation, nor can it be used later on to register in Foswiki. Enter a password when prompted.
configure web page will be protected using the user and password held in the data/.htpasswd file. The Apache config file or .htaccess file will have a Require user <username> directive to restrict access to the configure script. Ensure the user specified in the directive matches the <username> you used when creating the .htpasswd file.
Note: In addition to any web server security protection that you have set up, when saving any configuration settings for the first time on the configure web page, you will be prompted to set a configuration password. This password must be entered on all subsequent configuration changes, and is also used to log in via the internal admin link (see the section "Define the administrator user(s)"). Even after a configure password has been set, access to the configure page should still be restricted by the web server, in order to avoid revealing internal information to potential attackers.
For more information, refer to Foswiki:Support.ProtectingYourConfiguration.
configure script from your browser: enter http://yourdomain/foswiki/bin/configure into your browser address bar. configure web page for the first time, you can only edit the section General Path Settings. Make any required changes, and save the settings, whether or not you needed to make any changes. You will be prompted to set a password for the configure page: this password must be entered for all subsequent configuration changes, and is also used to log in via the internal admin link (see the section "Define the administrator user(s)"). Note the configuration password is separate from any web server security you have set up for the configure web page (see "Protect the configure script").
{PermittedRedirectHostUrls}
{WebMasterEmail} and {SMTP}{MAILHOST} settings must be defined so Foswiki can send registration emails. Many ISPs have introduced authentication when sending emails to fight spam so you may also have to set {SMTP}{Username} and {SMTP}{Password}. If you do not want to enable sending registration emails or want to enable it later you can uncheck {EnableEmail}. If your server is behind a firewall with a proxy, and you wish to install extensions via configure, you may have to set {PROXY}{HOST} and {PROXY}{PORT}.
configure page, you can configure Foswiki manually.
mod_auth_ldap or mod_auth_mysql. However, as your browser is caching your login, you must restart the browser to log out.
System.InstallationGuide into the "Jump" text box. By doing this instead of using the INSTALL.html file from the distribution, you will be able to use the embedded hyperlinks to jump directly to the referenced pages.
Main.WikiUsers topic.
To setup Template Login, perform the following steps:
Security Settings pane of the configure page: Foswiki::LoginManager::TemplateLogin for {LoginManager}.
Foswiki::Users::HtPasswdUser for {PasswordManager}.
Foswiki::Users::TopicUserMapping for {UserMappingManager}.
System.UserRegistration topic in your Foswiki installation. Note if you are viewing this page via the INSTALL.html file, then you can access the user registration page by entering System.UserRegistration into the "Jump" text box at the top right of any Foswiki page in your installation.foswiki/data/.htpassswd file, with the username and encrypted password. If the user and password information was not added, you probably got a path wrong, or the directory permissions on foswiki/data or foswiki/data/.htpasswd may not be set to allow the web server user to modify the file.
Edit link at the top or bottom of a topic. If you have been authenticated, then you will see the edit page; otherwise, you will see an error message.
Security Settings pane of the configure page: Foswiki::LoginManager::ApacheLogin for {LoginManager}.
Foswiki::Users::HtPasswdUser for {PasswordManager}.
Foswiki::Users::TopicUserMapping for {UserMappingManager}.
foswiki/bin/.htaccess file to set the following Apache directives on the bin scripts:
<FilesMatch "(attach|edit|manage|rename|save|upload|mail|logon|rest|.*auth).*">
require valid-user
</FilesMatch>foswiki_httpd_conf.txt and bin/.htaccess.txt files to see how the appropriate Apache directives are specified.
System.UserRegistration topic in your Foswiki installation. Note if you are viewing this page via the INSTALL.html file, then you can access the user registration page by entering System.UserRegistration into the "Jump" text box at the top right of any Foswiki page in your installation.foswiki/data/.htpassswd file, with the username and encrypted password. If the user and password information was not added, you probably got a path wrong, or the directory permissions on foswiki/data or foswiki/data/.htpasswd may not be set to allow the web server user to modify the file.
Edit link at the top or bottom of a topic. If you have been authenticated, then you will see the edit page; otherwise, you will see an error message.
AdminGroup, defined in the Main.AdminGroup topic in your Foswiki installation.
To make it easier to follow the instructions in this section, you can view this installation guide using your Foswiki site by entering System.InstallationGuide into the "Jump" text box. By doing this instead of using the INSTALL.html file from the distribution, you will be able to use the embedded hyperlinks to jump directly to the referenced pages.
To add an initial administrator to the AdminGroup, perform the following steps:
Main.AdminGroup topic and select the "internal admin login" link. Login using the password you set on the configure page.
Main.AdminGroup topic. Follow the instructions on the page carefully and add your WikiName to the group.
Main.AdminGroup page, select the "Logout link" and logout from being the internal admin. Select the "Edit" link for the Main.AdminGroup page. If you successfully added yourself as an admin user, you should see the edit page.
AdminGroup is no longer empty, then any member of the group can add subsequent members — you do not have to use the internal admin login.
To more easily debug access control issues, you may want to have a regular Foswiki user account for daily use, and a special one that belongs to the AdminGroup that you use only for administering your Foswiki site. See Foswiki:System.AccessControl for more information on access controls and user groups.
http://yourdomain.com/foswiki/bin/view and start using your Foswiki site.
In order to keep your user, group, and site configuration information separate from the actual content of your site, it is recommended that you create a new web in which your site's pages will reside. See Foswiki:System.ManagingWebs for more information on Wiki webs and how to create one.
System.Skins refers to the Skins topic in your System web. To go directly to a topic, enter the full topic name, such as System.Skins, into the "Jump" text box at the top right of any Foswiki page.
To make it easier to follow the instructions in this section, you can view this installation guide using your Foswiki site by entering System.InstallationGuide into the "Jump" text box. By doing this instead of using the INSTALL.html file from the distribution, you will be able to use the embedded hyperlinks to jump directly to the referenced pages.
All of the Foswiki documentation can also be found online in the Foswiki documentation section (the "System" web) of the Foswiki web site.
Note the configure page mentioned in this section is accessed by visiting http://yourdomain/foswiki/bin/configure your web browser.
Main.SitePreferences. If a given preference is not set in Main.SitePreferences, then a default value is picked up from System.DefaultPreferences, if present, or, for extensions, from the extension topics.
To simplify your upgrades, do not modify System.DefaultPreferences. Instead, copy any settings you want to change from System.DefaultPreferences to Main.SitePreferences.
To see the available preferences that can be set, look through System.DefaultPreferences.
If, for some reason, you wish to pick up default preferences from a different topic, you can set the location in the Miscellaneous settings pane of the configure page, in the {SitePrefsTopicName} setting (visible when Expert mode is enabled). It is recommended that you leave this setting to its default value, DefaultPreferences.
configure page.
tools/mailnotify script, as described in the System.MailerContrib topic.
tools/tick_foswiki.pl script, and set a negative value on the configure page for {Sessions}{ExpireAfter}. For more details, read System.CommandAndCGIScripts#tick_foswiki_pl.
Localisation section of the configure page. For more information, see Foswiki:Support.InternationalizationSupplement.
Main.NewUserTemplate? topic; if it is not present, then System.NewUserTemplate (and its associated System.UserForm) is used as a default. If you want to customize the user topic for your users, copy System.NewUserTemplate to Main.NewUserTemplate?, and System.UserForm to Main.UserForm, and make your changes to Main.NewUserTemplate? and Main.UserForm. (See Foswiki:System.ManagingTopics#CopyTopic for instructions on copying a topic.)
You can edit these topics to suit your needs, such as the following: ALLOWTOPICCHANGE preference setting to Main.NewUserTemplate? so only the user can edit their own user topic. In particular, on a public Foswiki site, restricting edit access will avoid vandalism and spam.
Main.UserForm.
Main.UserRegistration? to match (copy over the contents from System.UserRegistration to Main.UserRegistration when creating it).
System.WebTopBarExample to System.WebTopBar?, and make your desired changes to System.WebTopBar.
To customize the bottom bar, copy System.WebBottomBarExample to System.WebBottomBar?, and make your desired changes to System.WebBottomBar.
The side bar can be customized on a per web basis. To customize the side bar, copy the WebLeftBarExample topic in the given web to WebLeftBar, and make your desired changes to WebLeftBar. If you would like to move the side bar to the right of the page, see System.PatternSkin for more details.
WEBCOPYRIGHT preference. Its default is the following: Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
If your Foswiki site is used in an environment without public access you should replace this with your normal copyright notice. You should also consider adding a security classification (e.g., For Internal Use Only) so people do not have to add this manually to every new topic.
If your Foswiki site is publicly accessible, you need to decide which copyright and license you wish to apply to all contributions. For open source applications, licenses such as the GNU Free Documentation License, FreeBSD Documentation License, and one of the various Creative Commons licenses are possible licenses to consider. Remember that once people have started contributing, you cannot retroactively change the license (unless it has a provision for this).
To change the copyright statement, perform the following steps:
WEBCOPYRIGHT preference setting from System.DefaultPreferences to Main.SitePreferences. Change the value to your desired text. This value will be your new default across all webs.
WEBCOPYRIGHT preference in the WebPreferences topic for the given web. For example, you could add a confidential classification to a web that has restricted access.
WEBCOPYRIGHT preference setting in System.WebPreferences covers the documentation that comes with Foswiki, and should not be changed.
configure page, you can select the Find More Extensions button to download and install additional plugins from the foswiki.org website. If you are behind a firewall or your server has no access to the Internet, you can also install plugins manually. Installation instructions for each plugin are located in its corresponding topic on http://foswiki.org/. Additional documentation on Foswiki plugins can be found at Foswiki:Support.PluginsSupplement.
Plugins are activated in the Plugins section of the configure page. In addition, some plugins are also configured in this section.
TWikiCompatibilityPlugin. This plugin enables most TWiki extensions to work with Foswiki, without modifications. It also maps requests for legacy TWiki web topics to their Foswiki equivalents, as defined in Foswiki:Development.TopicNameMappingTable. The TWIKIWEB and MAINWEB TWiki variables are also mapped to the new Foswiki macros SYSTEMWEB and USERSWEB.
If you are not upgrading an existing TWiki installation and do not plan to install plugins from the TWiki web site, it is recommended that you disable the TWikiCompatibilityPlugin in the Plugins Section on the configure page.
If a plugin exists both in a TWiki version and a Foswiki version, it is strongly recommended that you use the Foswiki version, as this is coded to work optimally with Foswiki. As part of the Foswiki project, the Foswiki community is evaluating all of the extensions that are available for TWiki, and porting them over to the Foswiki name space. Many of them are being enhanced through the removal of bugs and security vulnerabilities, resulting in better, more functional extensions for Foswiki.
configure script and make sure you have resolved all errors and are satisfied that you understand any warnings.
Failing that, consult the topics at Foswiki:Support.SupplementalDocuments and Foswiki:Support.AskedQuestions.
If you need help, ask a question in the Foswiki:Support web or on Foswiki:Community.InternetRelayChat (irc.freenode.net, channel #foswiki).
| Resource | Required Server Environment |
|---|---|
| Perl | 5.8.4 or higher is recommended. Foswiki will run in perl 5.6.1 but only with Wysiwyg editor disabled. Wysiwyg requires Unicode support which is provided by perl 5.8.1 onwards. |
| RCS | 5.7 or higher (including GNU diff) Optional. Foswiki includes a pure perl implementation of RCS (RcsLite) that can be used instead, at the cost of performance |
| GNU diff | GNU diff 2.7 or higher is required when not using the all-Perl RcsLite. Install within the PATH if not included with RCS (check version with diff -v) Must be the version used by RCS, to avoid problems with binary attachments - RCS may have hard-coded path to diff |
| Other external programs | fgrep, egrep |
| Cron/scheduler | • Unix: cron • Windows: cron equivalents |
| Web server | Apache is well supported; for information on other servers, see Foswiki:Support.InstallingOnSpecificPlatforms. |
| Module | Preferred version |
|---|---|
| Algorithm::Diff (included with Foswiki) | |
| CGI | Versions 2.89 and 3.37 must be avoided. Most version from 3.15 and onwards should work. |
| CGI::Carp | >=1.26 |
| CGI::Session | >=4.30 (included with Foswiki) Versions 4.20 and before have Foswikibug:1306 |
| Config | >=0 |
| Cwd | >=3.05 |
| Data::Dumper | >=2.121 |
| Error (included) | |
| File::Copy | >=2.06 |
| File::Find | >=1.05 |
| File::Spec | >=3.05 |
| FileHandle | >=2.01 |
| IO::File | >=1.10 |
| Text::Diff (included with Foswiki) | |
| Time::Local | >=1.11 |
perl -le 'use ModuleName; print "ModuleName"->VERSION'
| Module | Preferred version | Description |
|---|---|---|
| Archive::Tar | May be required by the Extensions Installer in configure if command line tar or unzip is not available | |
| CGI::Cookie | >=1.24 | Used for session support |
| Digest::base | ||
| Digest::SHA1 | ||
| Jcode | Used for I18N support with perl 5.6 | |
| Locale::Maketext::Lexicon | >=0 | Used for I18N support |
| Net::SMTP | >=2.29 | Used for sending mail |
| Unicode::Map | Used for I18N support with perl 5.6 | |
| Unicode::Map8 | Used for I18N support with perl 5.6 | |
| Unicode::MapUTF8 | Used for I18N support with perl 5.6 | |
| Unicode::String | Used for I18N support with perl 5.6 | |
| URI | Used for configure |
configure script, or if you're still trying to get to that point, check from the command line (replace "ModuleName" with the name of the module):
perl -e 'use ModuleName; print $ModuleName::VERSION."\n"'
pub directory.)
lib directory at the same level as the bin directory. You can create this directory elsewhere and configure the bin/setlib.cfg file.| Foswiki dir: | What it is: | Where to copy: | Example: |
|---|---|---|---|
foswiki | start-up pages | root Foswiki dir | /home/smith/public_html/foswiki/ |
foswiki/bin | CGI bin | CGI-enabled dir | /home/smith/public_html/foswiki/bin |
foswiki/lib | library files | same level as bin | /home/smith/public_html/foswiki/lib |
foswiki/locale | language files | dir secure from public access | /home/smith/public_html/foswiki/locale |
foswiki/pub | public files | htdoc enabled dir | /home/smith/public_html/foswiki/pub |
foswiki/data | topic data | dir secure from public access | /home/smith/public_html/foswiki/data |
foswiki/templates | web templates | dir secure from public access | /home/smith/public_html/foswiki/templates |
foswiki/tools | Foswiki utlilities | dir secure from public access | /home/smith/public_html/foswiki/tools |
foswiki/working | Temporary and internal files | dir secure from public access | /home/smith/public_html/foswiki/working |configure page) configure page. However, if you are unable to get the configure page to display (for example, if a dependency is missing), or for some reason you do not wish to use the configure page, then you can configure Foswiki manually
Perform the following steps to manually configure Foswiki: lib/Foswiki.spec to lib/LocalSite.cfg
$Foswiki::cfg{DefaultUrlHost}
$Foswiki::cfg{ScriptUrlPath}
$Foswiki::cfg{PubUrlPath}
$Foswiki::cfg{PubDir}
$Foswiki::cfg{TemplateDir}
$Foswiki::cfg{DataDir}
$Foswiki::cfg{LocalesDir}
$Foswiki::cfg{OS}
$Foswiki::cfg{LoginManager}
$Foswiki::cfg{WebMasterEmail}
$Foswiki::cfg{SMTP}{MAILHOST}
$Foswiki::cfg{SMTP}{SENDERHOST}TWikiCompatibilityPlugin), thereby enabling a smooth transition from TWiki to Foswiki.
Main web in the new installation, including all user topics.
<oldwiki> refers to the directory in which the old installation is located
<newwiki> refers to the directory in which the new installation is located; it is assumed to be immediately below the root directory of your web server
<old_users_web> refers to the web in which the user topics are located in the old installation. The default value is the Main web. The web is specified in the Store settings pane of the configure page, in the {UsersWebName} setting (visible when Expert mode is enabled).
<old_system_web> refers to the web used for documentation and default preferences in the old installation. In Foswiki, the default value is the System web; in TWiki, the default value is the TWiki web. The web is specified in the Store settings pane of the configure page, in the {SystemWebName} setting (visible when Expert mode is enabled).
configure page mentioned in this document is accessible via your web browser at http://yourdomain/<newwiki>/bin/configure .
configure page. <oldwiki>/lib/LocalSite.cfg file to <newwiki>/lib/LocalSite.cfg in order to preserve your existing configuration settings. Alternatively, you can reconfigure the new installation from scratch (you can use your old LocalSite.cfg file as a reference).
LocalSite.cfg file (though you can use it as a reference). Run configure and set the configuration values in the new installation to match those of the old installation.
configure page, including any new settings added in the new version. Save the configuration after you have completed your changes.
<newwiki>/lib/LocalSite.cfg file and run configure.
System.UpgradeGuide into the "Jump" text box on the top right of any topic. By doing this instead of using the UpgradeGuide.html file from the distribution, you will be able to use the embedded hyperlinks to jump directly to the referenced pages.
configure page to install and configure extensions from the Foswiki:Extensions repository. You can also install extensions manually; see the instructions on the extension's web page from where you obtained the extension (for Foswiki extensions, on foswiki.org).
TWikiCompatibilityPlugin is installed to provide backwards compatible support for TWiki plugins. However if the TWiki plugin calls private APIs or invokes helper scripts, it may still not work correctly. Check for an upgraded Foswiki version of the extension in the Foswiki:Extensions repository and install it instead.
Main.SitePreferences topic in your new Foswiki site, prefixing each setting with the name of the plugin in uppercase followed by an underscore. For example, to copy over the DEFAULT_TYPE setting from the CommentPlugin topic in the old site to the new site, copy the value to a COMMENTPLUGIN_DEFAULT_TYPE setting in the Main.SitePreferences topic in the new site.
Commonly-customized plugin settings include the following: CommentPlugin - DEFAULT_TYPE
EditTablePlugin - CHANGEROWS, QUIETSAVE, EDITBUTTON
InterwikiPlugin - RULESTOPIC
InterWikis - If you added your own rules, make sure you copy over the rules to the new installation.
SlideShowPlugin - If you changed the embedded 'Default Slide Template', then copy your customed template to the topic in the new installation. You should prefer creating your own slide show template in a separate topic, so you will not have to take special steps over upgrades to preserve your modifications to the default slide template.
SmiliesPlugin - If you added your own smileys, make sure you copy over your customizations to the topic in the new installatin.
TablePlugin - TABLEATTRIBUTES
configure.
find data -name '*,v' -exec rcs -u -M '{}' \;
find pub -name '*,v' -exec rcs -u -M '{}' \;
WebChanges topics depend on the file timestamp. If you touch the .txt files make sure to preserve the timestamp, or change them in the same chronological order as the old file timestamps.
Main web <oldwiki>/data/<old_users_web>/ to <newwiki>/data/Main/, and copy all files from <oldwiki>/pub/<old_users_web>/ to <newwiki>/pub/Main/ . Do not overwrite any topics already present in the <newwiki>/data/Main/ directory. <old_users_web>.NewUserTemplate in the old installation, this step will copy over your template for user topics to the new installation.
Security setup pane of the configure page, in the {SuperAdminGroup} setting (visible when Expert mode is enabled). You can do either of the following: configure page, or if you did customize {LocalSitePreferences} but kept your site preferences within the <old_users_web> web, then this step will also copy over your site preferences to the new installation.
<old_users_web>.WikiUsers topic in the old installation to the Main.WikiUsers topic in the new installation. If the new installation does not yet have an initial Main.WikiUsers topic, then copy <oldwiki>/data/<old_users_web>/WikiUsers.txt to <newwiki>/data/Main/WikiUsers.txt.
Main.WikiUsers topic: Main.WikiUsers, using the corresponding entries in Foswiki:System.UsersTemplate as an example.
data/.htpasswd for authentication, copy this file from the old installation to the new one.
<old_system_web>.UserRegistration, then either copy over <oldwiki>/data/<old_system_web>/UserRegistration.txt and <oldwiki>/data/<old_system_web>/UserRegistration.txt,v to the <newwiki>/data/System/ directory, or modify System.UserRegistration in the new installation to contain your customizations.
<old_users_web>.TWikiUsers topic in the old installation to the Main.WikiUsers topic in the new installation. If the new installation does not yet have an initial Main.WikiUsers topic, then copy <oldwiki>/data/<old_users_web>/TWikiUsers.txt to <newwiki>/data/Main/WikiUsers.txt, and manually add the required default users (see the next steps).
Main.WikiUsers topic: Main.WikiUsers, using the corresponding entries in Foswiki:System.UsersTemplate as an example.
data/.htpasswd for authentication, copy this file from the old installation to the new one.
tools/upgrade_emails.pl script to move the user emails out of the user topics and into the password file.
<old_system_web>.TWikiRegistration, then modify System.UserRegistration in the new installation to contain your customizations.
<oldwiki>/data/Sandbox/ to <newwiki>/data/Sandbox and from <oldwiki>/pub/Sandbox/ to <newwiki>/pub/Sandbox . Some pages you may wish to preserve are the WebHome topic and the WebLeftBar topic (if you had created it in the old wiki installation). The Sandbox web often contains work-in-progress topics that users will want to keep.
Make sure the data and pub directories, as well as the files within them, are readable and writeable by the web server user.
Execute your test plans for authentication and authorization. Test that users that you have transferred from the old installation can login with any problems, and that access controls work appropriately: check that users are able to view and edit pages for which they have access, and are denied permission to view or edit pages for which they do not have access. Also check that pages restricted to the admin group are not accessible by non-admin users, and that administrators continue to have access.
Miscellaneous settings pane of the configure page, in the {LocalSitePreferences} setting (visible when Expert mode is enabled) — the default location is Main.SitePreferences. Copy any customized preferences from the site preferences topic in your old installation to the site preferences topic in the new installation. (Note you may have already copied over your customized preferences when you transfered the contents of the <old_users_web> web.)
If, in your old installation, you customized the default preferences in <old_system_web>.DefaultPreferences, then transfer your customizations from this topic to the site preferences topic instead (i.e. the topic specified in your {LocalSitePreferences} setting), so that your customizations will not get overwritten on the next upgrade.
If you are upgrading from TWiki, note that the default location of the default preferences in TWiki is <old_system_web>.TWikiPreferences, and the default location of the site preferences is Main.TWikiPreferences. Transfer any customized preferences from these topics to the site preferences topic in your new installation.
<oldwiki>/<old_system_web>/ directory as a reference.
http://yourdomain/wiki/. You can use one of the following approaches to make the new installation accessible using the same URL prefix: <newwiki>/ directory to wiki/ (renaming the directory of your old installation if necessary).
wiki/ that points to <newwiki>/ (renaming the directory of your old installation if necessary).
/wiki/ are served from your <newwiki>/ directory.
System.DefaultPreferences for a description of the FAVICON preference. To set it for your site, add the FAVICON preference to your site preferences topic, Main.SitePreferences (or the topic you configured in your {LocalSitePreferences} setting in the Miscellaneous settings pane on the configure page). To set it for a web, add the FAVICON preference to the WebPreferences topic for that web.
System.CommentPluginTemplate for examples of how comment template definitions should look like in TWiki 4.1.x.
Example: a CommentPlugin template that adds a row to a table. With versions of TWiki prior to 4.1, the following syntax can be used:
%TMPL:DEF{OUTPUT:tabletest}%%POS:BEFORE%
|%URLPARAM{"comment"}%| -- %WIKIUSERNAME% - %DATE% |
%TMPL:END%
Starting in TWiki 4.1 and continuing with Foswiki 1.0, the newline before the start of the table row must be removed:
%TMPL:DEF{OUTPUT:tabletest}%%POS:BEFORE%|%URLPARAM{"comment"}%| -- %WIKIUSERNAME% - %DATE% |
%TMPL:END%
{PassthroughDir} and {Sessions}{Dir} were set by default to /tmp. These config settings have been eliminated: Foswiki creates a tmp directory and other temporary directories under the directory defined by the configure setting {WorkingDir}.
NewUserTemplate and UserForm in the Main web, if they exist. If the topic does not exist in the Main web, then the default version from System is used. Thus on upgrades, any customizations you made to NewUserTemplate or UserForm in the Main web will be preserved.
In previous TWiki versions, only System.NewUserTemplate and System.UserForm are used; you cannot override them by creating your own version in the Main web.
Main.WikiUsers topic contains all the registered users. It is not included in the Foswiki distribution, so that your list of users will not be overwritten on upgrades. When the first user is registered in Foswiki, the Main.WikiUsers topic is created on demand.
working directory {WorkingDir} in the General path settings pane on the configure page defines the location of a working directory for various subdirectories for use by Foswiki. The default value for this setting is the working subdirectory within the installation root directory for the Foswiki installation.
The subdirectories within the working directory include the following:
registration_approvals — previously located in the data/ directory
tmp — avoids security issues with using the /tmp directory
work_areas — previously located in the pub/ directory.
working/tmp/ subdirectory.
configure page. The internal admin username can be configured in the {AdminUserLogin} setting in the Security setup pane on the configure page.
In order to add an initial user to the default {SuperAdminGroup}, Main.AdminGroup, you must login as the internal admin user using the link on the Main.AdminGroup page.
<form name="new" action="%SCRIPTURLPATH{save}%/Sandbox/" method="post">
...
</form>
The template webs _default and _empty are frequent targets for spammers because these webs are normally not monitored very carefully by the community around a Foswiki installation. These webs are now write protected so on an administrator can edit topics in these webs. When an administrator creates a new web it is important to remember to remove the access restriction from the WebPreferences in the new web.
.htpasswd files on the server. These files can be unique to Wiki-SL, or can be shared with other applications (such as an Apache webserver). A variety of password encodings are supported for flexibility when re-using existing files. See the descriptive comments in the Security Settings section of the configure interface for more details.
You can easily plug in alternate password management modules to support interfaces to other third-party authentication databases.
The password manager is selected using the {PasswordManager} setting in configure.
configure.
configure.
none) Foswiki::LoginManager::TemplateLogin) Foswiki::LoginManager::TemplateLogin login manager (on the Security Settings pane).
{TemplateLogin}{PreventBrowserRememberingPassword} that you can set to prevent Browsers from remembering username and passwords if you are concerned about public terminal usage.
.htpasswd files, check that a new line with the username and encrypted password is added to the .htpasswd file. If not, you probably got a path wrong, or the permissions may not allow the webserver user to write to that file.
pub area, unless they are only accessed through the viewfile script. If your pub directory is set up in the webserver to allow open access you may want to add .htaccess files in there to restrict access.
name="" parameter of the input tags must start with: "Twk0..." (if this is an optional entry), or "Twk1..." (if this is a required entry). This ensures that the fields are carried over into the user home page correctly. Do not modify the version of UserRegistration shipped with Wiki-SL, as your changes will be overwritten next time you upgrade.
Foswiki::LoginManager::ApacheLogin) REMOTE_USER environment variable, which is set when you enable authentication in the webserver.
The advantage of this scheme is that if you have an existing website authentication scheme using Apache modules such as mod_auth_ldap or mod_auth_mysql you can just plug in directly to them.
The disadvantage is that because the user identity is cached in the browser, you can log in, but you can't log out again unless you restart the browser.
Wiki-SL maps the REMOTE_USER that was used to log in to the webserver to a WikiName using the table in Main.WikiUsers. This table is updated whenever a user registers, so users can choose not to register (in which case their webserver login name is used for their signature) or register (in which case that login name is mapped to their WikiName).
The same private .htpasswd file used in Wiki-SL Template Login can be used to authenticate Apache users, using the Apache Basic Authentication support.
Warning: Do not use the Apache htpasswd program with .htpasswd files generated by Wiki-SL! htpasswd wipes out email addresses that Wiki-SL plants in the info fields of this file.
mod_auth Foswiki::LoginManager::ApacheLogin login manager.
.htpasswd entries.
.htaccess file in the bin directory.bin/.htaccess.txt that you can copy and change. The comments in the file explain what need to be done..htaccess does not have the desired effect, you may need to "AllowOverride All" for the directory in httpd.conf (if you have root access; otherwise, e-mail web server support) pub area, unless they are only accessed through the viewfile script. If your pub directory is set up to allow open access you may want to add .htaccess files in there as well to restrict access
name="" parameter of the input tags must start with: "Twk0..." (if this is an optional entry), or "Twk1..." (if this is a required entry). This ensures that the fields are carried over into the user home page correctly. Do not modify the version of UserRegistration shipped with Wiki-SL, as your changes will be overwritten next time you upgrade. .htpasswd file. If not, you may have got a path wrong, or the permissions may not allow the webserver user to write to that file.
bin/logon script enables this. If you are using Apache Login, the bin/logon script must be setup in the bin/.htaccess file to be a script which requires a valid user. Once authenticated, it will redirect the user to the view URL for the page from which the logon script was linked.
%SESSION_VARIABLE{ "varName" }%
%SESSION_VARIABLE{ "varName" set="varValue" }%
%SESSION_VARIABLE{ "varName" clear="" }%
Note that you cannot override access controls preferences this way.
REMOTE_USER environment variable, and used internally. Login Usernames are maintained by your system administrator.
JohnSmith, is recorded when you register using UserRegistration; doing so also generates a personal home page in the Main web.
NOTE: To correctly enter a WikiName - your own or someone else's - be sure to include the Main web name in front of the Wiki username, followed by a period, and no spaces, for exampleMain.WikiUsernameor%USERSWEB%.WikiUsername. This pointsWikiUsernameto the Main web, where user home pages are located, no matter which web it's entered in. Without the web prefix, the name appears as a NewTopic everywhere but in the Main web.
Foswiki/ChangePassword )
Foswiki/ResetPassword )
Foswiki/ChangeEmailAddress )
.htaccess
Main web. To create a new group, visit Main.WikiGroups and enter the name of the new group ending in Group into the "new group" form field. This will create a new group topic with two important settings: Set GROUP = < list of users and/or groups >
Set ALLOWTOPICCHANGE = < list of users and/or groups >
Set GROUP = Main.SomeUser, Main.OtherUser, Main.SomeGroup
Set ALLOWTOPICCHANGE = Main.KasabianGroup
AdminGroup. The system administrator may have chosen a different name for this group if your local Foswiki uses an alternate group mapping manager but for simplicity we will use the default name AdminGroup in the rest of this topic.
You can create new administrators simply by adding them to the Main.AdminGroup topic. For example, Set GROUP = Main.ElizabethWindsor, Main.TonyBlair
Set DENYWEBVIEW = < comma-delimited list of users and groups >
Set ALLOWWEBVIEW = < comma-delimited list of users and groups >
Set DENYWEBCHANGE = < comma-delimited list of users and groups >
Set ALLOWWEBCHANGE = < comma-delimited list of users and groups >
Set DENYWEBRENAME = < comma-delimited list of users and groups >
Set ALLOWWEBRENAME = < comma-delimited list of users and groups >
ALLOWWEBVIEW set, this will also apply to the subweb. Also note that you will need to ensure that the parent web's FINALPREFERENCES does not include the access control settings listed above. Otherwise you will not be able override the parent web's access control settings in sub-webs.
Creation and renaming of sub-webs is controlled by the WEBCHANGE setting on the parent web (or ROOTCHANGE for root webs). Renaming is additionally restricted by the setting of WEBRENAME in the web itself.
Set DENYTOPICVIEW = < comma-delimited list of users and groups >
Set ALLOWTOPICVIEW = < comma-delimited list of users and groups >
Set DENYTOPICCHANGE = < comma-delimited list of users and groups >
Set ALLOWTOPICCHANGE = < comma-delimited list of users and groups >
Set DENYTOPICRENAME = < comma-delimited list of users and groups >
Set ALLOWTOPICRENAME = < comma-delimited list of users and groups >
Set ALLOWTOPICVIEW = Set DENYTOPICVIEW = mod_rewrite module, and configure your webserver to redirect accesses to attachments to the Foswiki viewfile script. For example,
ScriptAlias /foswiki/bin/ /filesystem/path/to/bin/
Alias /foswiki/pub/ /filesystem/path/to/pub/
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/+foswiki/+pub/+System/+.+
RewriteRule ^/+foswiki/+pub/+([^/]+)((/+([^/]+))+)/+(.+) /foswiki/bin/viewfile/$1/$2?filename=$5 [L,PT]
That way all the controls that apply to the topic also apply to attachments to the topic. Other types of webserver have similar support.
viewfile script.
Set DENYROOTCHANGE = < comma-delimited list of users and groups >
Set ALLOWROOTCHANGE = < comma-delimited list of users and groups >
ROOTCHANGE access to rename an existing top-level web. You just need WEBCHANGE in the web itself.
all webs search option from accessing obfuscated webs. Do so by enabling the NOSEARCHALL setting in WebPreferences: Set NOSEARCHALL = on
bin and pub directories to all but valid users. In the Apache .htaccess file or the appropriate .conf file, replace the <FilesMatch "(attach|edit|... section with this:
<FilesMatch ".*">
require valid-user
</FilesMatch>
If needed, you can further restrict access to selected webs with ALLOWWEBVIEW and other access control settings.
WebPreferences in all webs. Set DENYWEBVIEW = WikiGuest
Set ALLOWWEBVIEW = < list of users and groups >
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 if DENYWEBVIEW and ALLOWWEBVIEW are not defined.
require valid-user on your view script in .htaccess or the appropriate Apache .conf file. This looks like: FilesMatch "(attach|edit|manage|rename|save|view|upload|mail|logon|.*auth).*" (normally view is not in that list).
Set DENYWEBVIEW = < list of users and groups >
Set ALLOWWEBVIEW = < list of users and groups >
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 if DENYWEBVIEW and ALLOWWEBVIEW are not defined.
Edit topic preference settings under More topic actions menu. Preferences set in this manner are not visible in the topic text, but take effect nevertheless. Access control settings added as topic preference settings are stored in the topic meta data and they override settings defined in the topic text.
Alternatively, place them in HTML comment markers, but this exposes the access setting during ordinary editing.
Back to top<!--
* Set DENYTOPICCHANGE = Main.SomeGroup
-->
| Formatting Command: | You write: | You get: | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Paragraphs: Blank lines will create new paragraphs. |
1st paragraph 2nd paragraph | 1st paragraph 2nd paragraph | |||||||||||||||||||||||||
|
Headings: Three or more dashes at the beginning of a line, followed by plus signs and the heading text. One plus creates a top level heading, two pluses a second level heading, etc. The maximum heading depth is 6. You can create a table of contents with the %TOC% macro. If you want to exclude a heading from the TOC, put !! after the ---+.
|
---++ Sushi ---+++ Maguro ---+++!! Not in TOC |
SushiMaguroNot in TOC |
|||||||||||||||||||||||||
|
Bold Text: Words get shown in bold by enclosing them in * asterisks.
|
*Bold* | Bold | |||||||||||||||||||||||||
|
Italic Text: Words get shown in italic by enclosing them in _ underscores.
|
_Italic_ | Italic | |||||||||||||||||||||||||
|
Bold Italic: Words get shown in 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
|
|||||||||||||||||||||||||
* _ __ = ==) indicator
with normal punctuation, such as commas and full stops.
|
_This works_, _this does not _ |
This works, _this does not _ |
|||||||||||||||||||||||||
|
Verbatim Text: Surround code excerpts and other formatted text with <verbatim> and </verbatim> tags.verbatim tags disable HTML code. Use <pre> and </pre> tags instead if you want the HTML code within the tags to be interpreted. |
<verbatim>
class CatAnimal {
void purr() {
<code here>
}
}
</verbatim>
|
class CatAnimal {
void purr() {
<code here>
}
}
|
|||||||||||||||||||||||||
|
Separator (Horizontal Rule): Three or more three dashes at the beginning of a line.. |
------- |
|
|||||||||||||||||||||||||
|
Bulleted List: Multiple of three spaces, an asterisk, and another space. |
* level 1
* level 2
* back on 1
* A bullet
broken over
three lines
* last bullet
|
|
|||||||||||||||||||||||||
|
Numbered List: Multiple of three spaces, a type character, a dot, and another space. Several types are available besides a number:
|
1. Sushi 1. Dim Sum 1. Fondue A. Sushi A. Dim Sum A. Fondue i. Sushi i. Dim Sum i. Fondue |
|
|||||||||||||||||||||||||
|
Definition List: Three spaces, a dollar sign, the term, a colon, a space, followed by the definition. |
$ Sushi: Japan $ Dim Sum: S.F. |
|
|||||||||||||||||||||||||
|
Table: Each row of the table is a line containing of one or more cells. Each cell starts and ends with a vertical bar '|'. Any spaces at the beginning of a line are ignored.
|^| multiple-span row functionality and additional rendering features
|
| *L* | *C* | *R* | | A2 | B2 | C2 | | A3 | B3 | C3 | | multi span ||| | A5-7 | 5 | 5 | |^| six | six | |^| seven | seven | | split\ | over\ | 3 lines | | A9 | B9 | C9 | |
|
|||||||||||||||||||||||||
|
WikiWord Links: CapitalizedWordsStuckTogether (or WikiWords) will produce a link automatically if preceded by whitespace or parenthesis. Otherweb.TopicName. To link to a topic in a subweb write Otherweb.Subweb.TopicName.'.' are used to separate webs and subwebs from topic names and therefore cannot be used in topic names.
It's generally a good idea to use the macros %SYSTEMWEB% and %USERSWEB% instead of System and Main.
|
WebStatistics Sandbox.WebNotify Sandbox.WebHome Sandbox.Subweb.TopicName | WebStatistics Sandbox.WebNotify Sandbox.WebHome TopicName | |||||||||||||||||||||||||
|
Anchors: You can define a reference inside a 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 of no more than 32 characters. 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 | |||||||||||||||||||||||||
|
Forced Links: You can create a forced internal link by enclosing words in double square brackets. 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, [[wiki syntax]] links to topic WikiSyntax. You can also refer to a different web and use anchors.
|
[[wiki syntax]] [[Sandbox.My unspaced topic]] escaped: ![[wiki syntax]] | wiki syntax Main.Wiki groups escaped: [[wiki syntax]] | |||||||||||||||||||||||||
|
Specific Links: You can create a link where you specify the link text and the URL separately using nested square brackets [[reference][text]]. Internal link references (e.g. WikiSyntax) and URLs (e.g. http://foswiki.org/) are both supported.
The rules described under Forced Links apply for internal link references.
|
[[WikiSyntax][wiki syntax]] [[http://gnu.org][GNU]] | wiki syntax GNU | |||||||||||||||||||||||||
|
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. |
<noautolink> RedHat & SuSE </noautolink> | RedHat & SuSE | |||||||||||||||||||||||||
|
Mailto Links: E-mail addresses are linked automatically. To create e-mail links that have more descriptive link text, specify subject lines or message bodies, or omit the e-mail address, you can write [[mailto:user@domain][descriptive text]].
|
a@b.com [[mailto:a@b.com]\ [Mail]] [[mailto:?subject=\ Hi][Hi]] | a@b.com Mail Hi | |||||||||||||||||||||||||
|
Literal content: Foswiki generates HTML code from TML shorthand. Experts surround anything that must be output literally in the HTML code, without the application of shorthand rules, with <literal>..</literal> tags. |
<literal> | Not | A | Table | </literal> |
| Not | A | Table | | |||||||||||||||||||||||||
|
Protected content: Experts protect text from mangling by WYSIWYG editors using <sticky>..</sticky> tags. Sticky tags don't have any effect on normal
topic display; they are only relevant when content has to be
protected from a WYSIWYG editor (usually because it isn't well-formed HTML, or because it
is HTML that WYSIWYG would normally filter out or modify). Protected
content appears as plain text in the WYSIWYG editor.
|
<sticky>
<div> This div is required </div> </sticky>
|
This div is required
|
|||||||||||||||||||||||||
<strike>deleted text</strike> to get <literal>..</literal> tags around blocks of HTML to avoid accidental interpretation of shorthand within the HTML.
<body> and </body> tags.
<p /> paragraph tags on empty lines, which causes problems if done between HTML tags that do not allow paragraph tags, like for example between table tags.
<...> - of a HTML tag are on the same line, or the tag will be broken.
LinkProtocolPattern, which by default is set to (file|ftp|gopher|https|http|irc|mailto|news|nntp|telnet), are linked automatically. You might change this setting to add more protocols (such as smb). Thus, all lines containing: file://...
ftp://...
gopher://...
https://...
http://...
irc://...
mailto:...@...
news://...
nntp://...
telnet://... are linked automatically.
name@domain.com are linked automatically.
[[Square bracket rules]] let you easily create non-WikiWord links. [[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.
%TOPIC% is expanded to MacrosQuickStart, the title of this topic.
Some macros can take arguments in curly braces - for example, %INCLUDE{"OtherTopic" ARG="arg"}%.
Many macro definitions are built-in, and others (preference settings) are predefined for your convenience. You can also define your own
preference settings at the entire site, individual web, or individual topic level. For more information, see Macros
Macros are fully expanded before any of the text formatting rules are applied.
Documentation Graphics: There are many graphics available to use in your topics. Use %ICON{"help"}%, %ICON{"tip"}%, and %ICON{"warning"}% to get: !%SOMEMACRO% to get: %SOMEMACRO%.
%PLUGINDESCRIPTIONS%:
[[URL or TopicName][Link Text][Options]]
as icons <filename> is not displayed. How can I show it as it is? '<' and '>' characters have a special meaning in HTML, they define HTML tags. You need to escape them, so write '<' instead of '<', and '>' instead of '>'. 'prog <filename>' to get 'prog <filename>'.
'&' character sometimes not displayed? '&' character has a special meaning in HTML, it starts a so called character entity, i.e. '©' is the © copyright character. You need to escape '&' to see it as it is, so write '&' instead of '&'. 'This & that' to get 'This & that'.
%MACRONAME% or %MACRONAME{ parameter="value" }% - that expand into content whenever a topic is rendered for viewing. There are two types of macros: %CALC{}% macro)
%T% to get %TOPIC% to get Macros (a predefined macro?)
%CALC{ "$UPPER(Text)" }% to get TEXT (a macro? defined by a Plugin)
!%TOPIC% to get %TOPIC%
%ALLVARIABLES% to get a full listing of all macros defined for a particular topic
%MYVAR%, %MyVar%, %My2ndVar%, and %My_Var% are all valid macro names. Macros are case sensitive. %MyVAR% and %MYVAR% are not the same macro.
By convention all settings, predefined macros and macros used by plugins are always UPPER-CASE.
Preview will show the wrong thing, and you must Save the topic to see it correctly.
The syntax for setting macros is the same anywhere: [multiple of 3 spaces] * [space] Set [space] MACRONAME [space] = [space] value
Examples:Spaces between the = sign and the value will be ignored. You can split a value over several lines by indenting following lines with spaces - as long as you don't try to use * as the first character on the following line.
Set MACRONAME = value
Set MACRONAME = value
Example:
* Set MACRONAME = value starts here
and continues here
Whatever you include in your Macro will be expanded on display, exactly as if it had been entered directly.
Example: Create a custom logo macroYou can also set preference settings in a topic by clicking the link
- To place a logo anywhere in a web by typing
%MYLOGO%, define the preference settings on the web's WebPreferences topic, 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, e.g.LogoTopic. Sample preference setting in WebPreferences:
Set MYLOGO = %PUBURL%/%WEB%/LogoTopic/mylogo.gif
Edit topic preference settings under More topic actions. Preferences set in this manner are not visible in the topic text, but take effect nevertheless.
Local in place of Set in the macro definition. For example, if the user sets the following in their home topic:
* Set EDITBOXHEIGHT = 10 * Local EDITBOXHEIGHT = 20Then when they are editing any other topic, they will get a 10 high edit box. However when they are editing their home topic, they will get a 20 high edit box.
Local can be used wherever a preference needs to take a different value depending on where the current operation is being performed.
Use this powerful feature with great care! %ALLVARIABLES% can be used to get a listing of the values of all macros in their evaluation order, so you can see macro scope if you get confused.
%SEARCH%, are powerful and general tools.
%BASETOPIC%, %INCLUDE%, and the mighty %SEARCH%.
%ACTIVATEDPLUGINS%
%ADDTOHEAD{...}% in a topic or template. This variable accepts the following parameters: _DEFAULT optional, id of the head block. Used to generate a comment in the output HTML.
text optional, text to use for the head block. Mutually exclusive with topic.
topic optional, full Foswiki path name of a topic that contains the full text to use for the head block. Mutually exclusive with text. Example: topic="System.MyTopic".
requires optional, comma-separated list of id's of other head blocks this one depends on.
%ADDTOHEAD% expands in-place to the empty string, unless there is an error in which case the variable expands to an error string.
Use %RENDERHEAD% to generate the sorted head tags.
%ALLVARIABLES%
AQUA is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%AQUA% aqua text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%ATTACHURL%
http://wiki.softwarelivre.org/pub/System/VarATTACHURL
%ATTACHURL%/image.gif
%ATTACHURLPATH%
/pub/System/VarATTACHURLPATH
%AUTHREALM%
%TOPIC% if there is no INCLUDE
%BASETOPIC%
%WEB% in case there is no include.
%BASEWEB%
BLACK is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%BLACK% black text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
BLUE is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%BLUE% blue text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
BROWN is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%BROWN% brown text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%CALC{"formula"}% macro is handled by the SpreadSheetPlugin. There are around 90 formulae, such as $ABS(), $EXACT(), $EXISTS(), $GET()/$SET(), $IF(), $LOG(), $LOWER(), $PERCENTILE(), $TIME(), $VALUE().
%CALC{"formula"}%
%CALC{"$SUM($ABOVE())"}% returns the sum of all cells above the current cell
%CALC{"$EXISTS(Web.SomeTopic)"}% returns 1 if the topic exists
%CALC{"$UPPER(Collaboration)"}% returns COLLABORATION
%COMMENT% without parameters shows a simple text box.
| Name | Description | Default |
|---|---|---|
type | This is the name of the template to use for this comment. Comment templates are defined in a Foswiki template - see Customisation, below. If this attribute is not defined, the type is whatever is defined by COMMENTPLUGIN_DEFAULT_TYPE, either in this topic or in your WebPreferences. | below |
default | Default text to put into the textarea of the prompt. | |
target | Name of the topic to add the comment to | the current topic |
location | Regular expression specifying the comment location in the target topic. Read carefully the CommentPlugin documentation! | |
mode | For compatibility with older versions only, synonymous with type | |
nonotify | Set to "on" to disable change notification for target topics | off |
noform | Set to "on" to disable the automatic form that encloses your comment block - remember to insert <form> tags yourself! See CommentPluginExamples#noform for an example. | off |
nopost | Set to "on" to disable insertion of the posted text into the topic. | off |
remove | Set to "on" to remove the comment prompt after the first time it is clicked. | off |
button | Button label text | Add comment |
%DATE%
21 Nov 2009
%GMTIME%
%DISPLAYTIME% OR %DISPLAYTIME{"format"}%
%DISPLAYTIME% The time is shown as hh:mm (24 hour clock) 21 Nov 2009 - 10:54
%DISPLAYTIME{"$hou:$min"}% expands to 10:54
text, then hide the form. If EDITACTION is defined as form hide the normal text area and only edit the form.
;action=text or ;action=form to the URL for the edit script. If you have defined an EDITACTION preference setting you can still edit the topic content or the form by removing the ;action=form or ;action=text from the edit URL in the browser and reload.
%EDITTABLE{}% macro is handled by the EditTablePlugin
%EDITTABLE{ attributes }%
| Attribute | Comment | Default |
|---|---|---|
header | Specify the header format of a new table like "|*Food*|*Drink*|". Useful to start a table with only a button | (no header) |
format | The format of one column when editing the table. A cell can be a text input field, or any of these edit field types: • Text input field (1 line): | text, <size>, <initial value> | • Textarea input field: | textarea, <rows>x<columns>, <initial value> | • Drop down box: | select, <size>, <option 1>, <option 2>, etc* | * only one item can be selected • Radio buttons: | radio, <size*>, <option 1>, <option 2>, etc | * size indicates the number of buttons per line in edit mode • Checkboxes: | checkbox, <size*>, <option 1>, <option 2>, etc | * size indicates the number of checkboxes per line in edit mode • Fixed label: | label, 0, <label text> | • Row number: | row, <offset> | • Date: | date, <size>, <initial value>, <DHTML date format> | (see Date Field Type) | "text, 16" for all cells |
changerows | Rows can be added and removed if "on" Rows can be added but not removed if "add" Rows cannot be added or removed if "off" | CHANGEROWS plugin setting |
quietsave | Quiet Save button is shown if "on", hidden if "off" | QUIETSAVE plugin setting |
include | Other topic defining the EDITTABLE parameters. The first %EDITTABLE% in the topic is used. This is useful if you have many topics with the same table format and you want to update the format in one place. | (none) |
helptopic | Topic name containing help text shown below the table when editing a table. The %STARTINCLUDE% and %STOPINCLUDE% macros can be used in the topic to specify what is shown. | (no help text) |
headerislabel | Table header cells are read-only (labels) if "on"; header cells can be edited if "off" or "0" | "on" |
editbutton | Set edit button text, e.g. "Edit this table"; set button image with alt text, e.g. "Edit table, %PUBURL%/%SYSTEMWEB%/DocumentGraphics/edittopic.gif"; hide edit button at the end of the table with "hide" (Note: Button is automatically hidden if an edit button is present in a cell) | EDITBUTTON plugin setting |
buttonrow | Set to top to put the edit buttons above the table. | bottom |
javascriptinterface | Use javascript to directly move and delete row without page refresh. Enable with "on", disable with "off". | JAVASCRIPTINTERFACE plugin setting |
%EDITTABLE{ format="| text, 20 | select, 1, one, two, three |" changerows="on" }% | *Name* | *Type* | | Foo | two |
"\n") and linefeed ("\r")
"<", ">", "&", single quote (') and double quote (")
"%", "[", "]", "@", "_", "*", "=" and "|"
%ENCODE{"string"}%
| Parameter: | Description: | Default: |
|---|---|---|
"string" | String to encode | required (can be empty) |
type="entity" type="safe" type="html" type="quotes" type="url" | Control how special characters are encoded entity: Encode special characters into HTML entities, like a double quote into ". Does not encode \n or \r. safe: Encode characters '"<>% into HTML entities. html: As type="entity" except it also encodes \n and \r quotes: Escape double quotes with backslashes (\"), does not change other characters url: Encode special characters for URL parameter use, like a double quote into %22 (this is the default) | type="url" |
%ENCODE{"spaced name"}% expands to spaced%20name
<input type="text" name="address" value="%ENCODE{ "any text" type="entity" }%" />
%SEARCH{ "%ENCODE{ "string with "quotes"" type="quotes" }%" noheader="on" }%
type="entity". This can however prevent an application from fully working. You can then use type="safe" which encodes only the characters '"<>% into HTML entities (same as encode="safe"). When ENCODE is passing a string inside another macro always use double quotes ("") type="quote". For maximum security against cross-site scripting you are adviced to install the Foswiki:Extensions.SafeWikiPlugin.
ENDCOLOR is a shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%RED% red text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%ENDSECTION{"name"}%
%ENDSECTION{type="include"}%
| Parameter: | Description: |
|---|---|
"name" | Name of the section. |
type="..." | Type of the section being terminated; supported types "section", "include", "expandvariables", "templateonly". |
STARTSECTION is named, the corresponding ENDSECTION must also be named with the same name. If the STARTSECTION specifies a type, then the corresponding ENDSECTION must also specify the same type. If the section is unnamed, ENDSECTION will match with the nearest unnamed %STARTSECTION% of the same type above it.
{AccessibleENV} in the Security Settings/Miscellaneous section of configure can be displayed. Any other variable will just be shown as an empty string, irrespective of its real value.
%ENV{MOD_PERL}% displays as: not set
not set.
%FAILEDPLUGINS%
%FORMFIELD{"fieldname"}%
| Parameter: | Description: | Default: |
|---|---|---|
"fieldname" | The name of a Data 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, and $name expands to the field name, $title to the field title, $form to the name of the form the field is in. The standard format tokens are also expanded. | "$value" |
default="..." | Text shown if the field is defined in the topic, but the field value is empty. For example, a text field for which all the content has been deleted. | "" |
alttext="..." | Text shown if the field is not defined in the topic (even if it is specified in the form definition). For example, this is used when a field exists in the form definition, but the referring topic hasn't been edited since it was added. | "" |
%FORMFIELD{"ProjectName" topic="Projects.SushiProject" default="(no project name given)" alttext="ProjectName field not found in form"}%
%GMTIME% OR %GMTIME{"format"}%
%GMTIME% uses the default date format defined by the {DefaultDateFormat} setting in configure | Token: | 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 |
$dow | day of the week (Sun = 0) | 2 |
$week | number of week in year (ISO 8601) | 34 |
$month | short name of month | 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 | 2009-11-21T10:54:29Z |
$rcs | RCS format timestamp | 2009/11/21 10:54:29 |
$http | E-mail & http format timestamp | Sat, 21 Nov 2009 10:54:29 GMT |
$epoch | Number of seconds since 00:00 on 1st January, 1970 | 1258800869 |
%GMTIME{"$day $month, $year - $hour:$min:$sec"}% expands to 21 Nov, 2009 - 10:54:29
GRAY is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%GRAY% gray text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
GREEN is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%GREEN% green text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%GROUPS%
%HOMETOPIC%
WebHome, renders as WebHome
%HTTP%
%HTTP{"Header-name"}%
%HTTP% | |
%HTTP{"Accept-language"}% | en-us,en;q=0.5 |
%HTTP{"User-Agent"}% | CCBot/1.0 (+http://www.commoncrawl.org/bot.html) |
%HTTP_HOST%
wiki.softwarelivre.org
%HTTP% but operates on the HTTPS environment variables present when the SSL protocol is in effect. Can be used to determine whether SSL is turned on.
%HTTPS%
%HTTPS{"Header-name"}%
%ICON{"name"}%
%ICON{"flag-gray"}% returns %ICON{"pdf"}% returns %ICON{"smile.pdf"}% returns %ICON{"/dont/you/dare/smile.pdf"}% returns %ICON{"http://trunk.foswiki.org/pub/System/DocumentGraphics/xsl.gif"}% returns arrowbright, bubble, choice-yes, hand
bmp, doc, gif, hlp, html, mp3, pdf, ppt, txt, xls, xml, zip
%ICON{"name"}% generates the full HTML img tag. Specify image name or full filename (see ICON for details on filenames.)
%ICONURL{"name"}%
%ICONURL{"arrowbright"}% returns http://wiki.softwarelivre.org/pub/System/DocumentGraphics/arrowbright.gif
%ICONURL{"novel.pdf"}% returns http://wiki.softwarelivre.org/pub/System/DocumentGraphics/pdf.gif
%ICONURL{"/queen/boheme.mp3"}% returns http://wiki.softwarelivre.org/pub/System/DocumentGraphics/mp3.gif
%ICONURLPATH{"name"}%
%ICONURLPATH{"locktopic"}% returns /pub/System/DocumentGraphics/locktopic.gif
%ICONURLPATH{"eggysmell.xml"}% returns /pub/System/DocumentGraphics/xml.gif
%ICONURLPATH{"/doc/xhtml.xsl"}% returns /pub/System/DocumentGraphics/xsl.gif
%IF{"CONDITION" then="THEN" else="ELSE"}% shows "THEN" if "CONDITION" evaluates to TRUE, otherwise "ELSE" will be shown
%IF{"defined FUNFACTOR" then="FUNFACTOR is defined" else="FUNFACTOR is not defined"}% renders as FUNFACTOR is not defined
%IMAGEGALLERY{"topic"}% macro is handled by the ImageGalleryPlugin.
%IMAGEGALLERY{"topic" options...}%
%INCLUDE{"page" ...}%
| 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{"System.SiteMap"}% | |
"http://..." | A full qualified URL, i.e. %INCLUDE{"http://foswiki.org:80/index.html"}%. Supported content types are text/html and text/plain. | |
"doc:Foswiki::..." level="3" | Generates the embedded documentation in the given perl module. The optional =level parameter lets you define the base level for headings in the included text. | |
pattern="..." | Include a subset of a topic or a web page. Specify a RegularExpression that scans from start ('^') to end and contains the text you want to keep in parenthesis, e.g., pattern="^.*?(from here.*?to here).*". IncludeTopicsAndWebPages has more. | none |
rev="2" | Include a previous topic revision; N/A for URLs | top revision |
raw="on" | When a page is included, normally Wiki-SL will process it, doing the following: 1) Alter relative links to point back to originating host, 2) Remove some basic HTML tags (html, head, body, script) and finally 3) Remove newlines from HTML tags spanning multiple lines. If you prefer to include exactly what is in the source of the originating page set this to on. raw="on" is short for disableremoveheaders="on", disableremovescript="on", disableremovebody="on", disablecompresstags="on" and disablerewriteurls="on". | disabled |
literal="on" | While using the raw option will indeed include the raw content, the included content will still be processed and rendered like regular topic content. To disable parsing of the included content, set the literal option to "on". | disabled |
disableremoveheaders="on" | Bypass stripping headers from included HTML (everything until first </head> tag) | disabled |
disableremovescript="on" | Bypass stripping all <script> tags from included HTML | disabled |
disableremovebody="on" | Bypass stripping the </body> tag and everything around over and below it | disabled |
disablecompresstags="on" | Bypass replacing newlines in HTML tags with spaces. This compression step rewrites unmatched <'s into < entities unless bypassed | disabled |
disablerewriteurls="on" | Bypass rewriting relative URLs into absolute ones | disabled |
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) | %INCLUDEWARNING% preferences setting |
section="name" | Includes only the specified named section, as defined in the included topic by the STARTSECTION and ENDSECTION macros. Nothing is shown if the named section does not exists. section="" is equivalent to not specifying a section | |
PARONE="val 1" | Any other parameter will be defined as a macro within the scope of the included topic. The example parameters on the left will result in %PARONE% and %PARTWO% being defined within the included topic. |
disableremovescript parameter)
%TOPIC% in case there is no include
%INCLUDINGTOPIC%
%WEB% if there is no INCLUDE.
%INCLUDINGWEB%
LANGUAGE preference is set, it's used as user's language instead of any language detected from the browser.
LANGUAGE at a non per-user way, so each user can choose his/her preferred language.
PO files). These are the languages in which the user interface is available.
%LANGUAGES{...}%
| Parameter: | Description: | Default: |
|---|---|---|
format | format for each item. See below for format tokens available in the format string. | " * $langname" |
separator | separator between items. | "\n" (newline) |
marker="selected" | Text for $marker if the item matches selection | "selected" |
selection="%LANGUAGE%" | Current language to be selected in list | (none) |
format tokens: | Token | Meaning |
|---|---|
$langname | language's name, as informed by the translators |
$langtag | language's tag. Ex: en, pt-br, etc. |
<select>%LANGUAGES{format="<option $marker value='$langtag'>$langname</option>" selection="%LANGUAGE%"}%</select> creates an option list of the available languages with the current language selected
LIME is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%LIME% lime text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%LOCALSITEPREFS%
Main.SitePreferences, renders as Main.SitePreferences
%LOGIN%
%LOGOUT%
%MAKETEXT{"string" args="..."}%
| Parameter | Description | Default |
|---|---|---|
"text" or string="text" | The text to be displayed. | none |
args="param1, param2" | a comma-separated list of arguments to be interpolated in the string, replacing the [_N] placeholders in it. | none |
%MAKETEXT{string="Notes:"}% %MAKETEXT{"If you have any questions, please contact [_1]." args="%WIKIWEBMASTER%"}% %MAKETEXT{"Did you want to [[[_1]][reset [_2]'s password]]?" args="%SYSTEMWEB%.ResetPassword,%WIKIUSERNAME%"}% string to the current user's language only if it has such string in its translation table for that language.
&) followed by one letter (one of a...z, A...Z) (say, X) in the translatable string will be translated to <span class='foswikiAccessKey'>X</span>. This is used to implement access keys. If you want to write an actual amperstand that stays just before a letter, write two consecutive amperstands (&&): they will be transformed in just one.
_) are reserved. You cannot use translatable phrases starting with an underscore.
%MACROS% inside the translatable strings (since they will get expanded before the %MAKETEXT{...}% itself is handled).
MAROON is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%MAROON% maroon text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
formfield item is the most likely to be useful to casual users.
%META{ "item" ...}%
| Item | Options | Description |
|---|---|---|
"formfield" | name="...": name of the field. The field value can be shortened as described in System.FormattedSearch for $formfield newline="...": by default, each newline character will be rewritten to <br /> to allow metadata that contains newlines to be used in tables, etc. $n indicates a newline character. bar="...": by default, each vertical bar is rewritten to an HTML entity so as to not be mistaken for a table separator. | Show a single form field |
"form" | none | Generates the table showing the form fields. See Form Definition |
"attachments" | all="on" to show hidden attachments. title="..." to show a title - only if attachments are displayed. template="..." to use a custom template for the rendering of attachments; default attachtables is used. | Generates the list of attachments |
"moved" | none | Details of any topic moves |
"parent" | dontrecurse="on": By default recurses up tree, this has some cost. Equivalent to depth=1 depth="...": Return only the specified ancestor. nowebhome="on": Suppress WebHome. prefix="...": Prefix that goes before parents, but only if there are parents, default "". format="...": Format string used to display each parent topic where $web expands to the web name, and $topic expands to the topic name; default: "[[$web.$topic][$topic]]" suffix="...": Suffix, only appears if there are parents; default "". separator="...": Separator between parents; default " > ". | Generates the parent link |
%METASEARCH{...}%
| 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 "field" if searching for topics that have a particular form field value (use the name and value parameters to specify which field to search) | 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, for topicmoved and parent searches | All topics in a web |
name | form field to search, for field type searches. May be a regular expression (see SEARCH). | |
value | form field value, for field type searches. May be a regular expression (see SEARCH). | |
title="Title" | Text that is prefixed to any search results | empty |
format="..." | Custom format results. Supports same format strings as SEARCH. See FormattedSearch for usage & examples | Results in table |
default="none" | Default text shown if no search hit | Empty |
%METASEARCH{type="topicmoved" web="%WEB%" topic="%TOPIC%" title="This topic used to exist and was moved to: "}%
%METASEARCH{type="parent" web="%WEB%" topic="%TOPIC%" title="Children: "}%
%METASEARCH{type="field" name="Country" value="China"}%
NAVY is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%NAVY% navy text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%NOP% %NOP{...}% deprecated %STARTSECTION{type="templateonly"}% .. %ENDSECTION{type="templateonly"}% instead (see TemplateTopics for more details).
%NOTIFYTOPIC%
WebNotify, renders as WebNotify
%NRIMAGES{"topic"}% macro is handled by the ImageGalleryPlugin.
%NRIMAGES{"topic"}%
OLIVE is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%OLIVE% olive text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
ORANGE is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%ORANGE% orange text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
PINK is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%PINK% pink text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%PLUGINDESCRIPTIONS%
[[URL or TopicName][Link Text][Options]]
as icons %PLUGINVERSION{"name"}% to get the version of a specific plugin
%PLUGINVERSION{"InterwikiPlugin"}% expands to $Rev: 5022 (2009-09-20) $
%PLUGINVERSION% to get the version of the API
2.0
%PUBURL%
http://wiki.softwarelivre.org/pub
%PUBURL%/%WEB%/OtherTopic/image.gif
%PUBURLPATH%
/pub
PURPLE is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%PURPLE% purple text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%QUERYPARAMS{...}%
| Parameter: | Description: | Default: |
|---|---|---|
format="..." | Format string for each entry | $name=$value |
separator="..." | Separator string | separator="$n" (newline) |
encoding="entity" encoding="safe" encoding="html" encoding="quotes" encoding="url" | Control how special characters are encoded. If this parameter is not given, "safe" encoding is performed which HTML entity encodes the characters '"<>%. entity: Encode special characters into HTML entities, like a double quote into ". Does not encode \n or \r. safe: Encode characters '"<>% into HTML entities. (this is the default) html: As type="entity" except it also encodes \n and \r quotes: Escape double quotes with backslashes (\"), does not change other characters url: Encode special characters for URL parameter use, like a double quote into %22 | type="safe" |
| Sequence: | Expands To: |
|---|---|
$name |
Name of the parameter |
$value |
String value of the parameter. Multi-valued parameters will have a "row" for each value. |
$n or $n() |
New line. Use $n() if followed by alphanumeric character, e.g. write Foo$n()Bar instead of Foo$nBar |
$nop or $nop() |
Is a "no operation". This token gets removed; useful for nested search |
$quot |
Double quote (") (\" also works) |
$percnt |
Percent sign (%) |
$dollar |
Dollar sign ($) |
$lt |
Less than sign (<) |
$gt |
Greater than sign (>) |
$amp |
Ampersand (&) |
%QUERYPARAMS{format="<input type='hidden' name='$name' value='$value' encoding="entity" />"}%
'"<>% into HTML entities (same as encoding="safe") which is relatively safe. The safest is to use encoding="entity". When passing QUERYPARAMS inside another macro always use double quotes ("") combined with using QUERYPARAMS with encoding="quote". For maximum security against cross-site scripting you are adviced to install the Foswiki:Extensions.SafeWikiPlugin.
%QUERYPARAMS%.
%QUERYSTRING%
RED is one of the shortcut macros predefined in DefaultPreferences. See the section shortcut macros in that topic for a complete list of colors.
%RED% red text %ENDCOLOR%
%<color>% text must end with %ENDCOLOR%. If you want to switch from one color to another one you first need to end the active color with %ENDCOLOR%, e.g. write %RED% some text %ENDCOLOR% %GREEN% more text %ENDCOLOR%.
%REMOTE_ADDR%
38.107.191.105
%REMOTE_PORT%
%REMOTE_USER%
%RENDERLIST% macro is handled by the RenderListPlugin
%RENDERLIST%
%RENDERLIST{ "org" focus="Sales.WestCoastTeam" }%
%RENDERLIST{ "org" }% * [[Eng.WebHome][Engineering]] * [[Eng.TechPubs][Tech Pubs]] * [[Sales.WestCoastTeam][Sales]] * [[Sales.EastCoastTeam][East Coast]] * [[Sales.WestCoastTeam][West Coast]]
%REVINFO% OR %REVINFO{"format"}%
%REVINFO% is equivalent to %REVINFO{format="r1.$rev - $date - $wikiusername"}% r1 - 09 Jan 2009 - 12:00:00 - Main.ProjectContributor
| Parameter: | Description: | Default: |
|---|---|---|
"format" | Format of revision information, see supported formatting tokens below | "r1.$rev - $date - $wikiusername" |
web="..." | Name of web | Current web |
topic="..." | Topic name | Current topic |
rev="1.5" | Specific revision number | Latest revision |
| Token: | Unit: | Example |
|---|---|---|
$web | Name of web | Current web |
$topic | Topic name | Current topic |
$rev | Revision number. Prefix r1. to get the usual r1.5 format | 5 |
$username | Login username of revision | jsmith |
$wikiname | WikiName of revision | JohnSmith |
$wikiusername | WikiName with Main web prefix | Main.JohnSmith |
$date | Revision date. Actual date format defined as {DefaultDateFormat} in configure | 21 Sep 2006 |
$time | Revision time | 23:24:25 |
$iso | Revision date in ISO date format | 2006-09-22T06:24:25Z |
$min, $sec, etc. | Same date format qualifiers as GMTIME{"format"} |
%REVINFO{"$date - $wikiusername" rev="1.1"}% returns revision info of first revision
viewauth.cgi)
%SCRIPTNAME%
view
.pl or .cgi
%SCRIPTSUFFIX%
%SCRIPTURL% OR %SCRIPTURL{"script"}%
%SCRIPTURL% returns the base URL of scripts - expands to http://wiki.softwarelivre.org/bin
http://wiki.softwarelivre.org/bin/script
%SCRIPTURL{"viewauth"}%/%WEB%/%TOPIC% which expands to http://wiki.softwarelivre.org/bin/viewauth/System/Macros
%SCRIPTURLPATH{"script"}% instead, as it works with URL rewriting much better
edit script should always be used in conjunction with ?t=%GMTIME{"$epoch"}% to ensure pages about to be edited are not cached in the browser
%SCRIPTURL{"script"}%, but doesn't include the protocol and host part of the URL
%SCRIPTURL% OR %SCRIPTURLPATH{"script"}%
/bin/script
edit script should always be used in conjunction with ?t=%GMTIME{"$epoch"}% to ensure pages about to be edited are not cached in the browser
%SEARCH{"text" ...}%
| Parameter: | Description: | Default: |
|---|---|---|
"text" | Search term. Is a keyword search, literal search, regular expression search, or query, depending on the type parameter. SearchHelp has more | required |
search="text" | (Alternative to above) | N/A |
web="Name" web="Main, Know" web="all" | Comma-separated list of webs to search. You can specifically exclude webs from an all search using a minus sign - for example, web="all,-Secretweb". The special word all means all webs that do not have the NOSEARCHALL preference set to on in their WebPreferences. Note that AccessControls are respected when searching webs; it is much better to use them than NOSEARCHALL. | 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. Note this is a list of topic names and must not include web names. | 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. Note this is a list of topic names and must not include web names. | None |
scope="topic" scope="text" scope="all" | Search topic name (title); the text (body) of topic; or all (title and body) | "text" |
type="keyword" type="word" type="literal" type="regex" type="query" | Control how the search is performed when scope="text" or scope="all" keyword: use Google-like controls as in soap "web service" -shampoo; searches word parts: using the example, topics with "soapsuds" will be found as well, but topics with "shampoos" will be excluded word: identical to keyword but searches whole words |