About TurboVNC
Reports Developer Info
Related Projects |
FAQThis page will attempt to summarize some of the more commonly asked questions. The answers are on the corresponding pages (see link). If you have a question which isn't answered here, you can leave your question on the Questions page or search for documentation using the search facility. More documentation can be found on the documentation index page. IntroductionWhat is PmWiki? PmWiki is a wiki-based system for collaborative creation and maintenance of websites. See PmWiki. What can I do with it? PmWiki pages look and act like normal web pages, except they have an "Edit" link that makes it easy to modify existing pages and add new pages into the website, using basic editing rules. You do not need to know or use any HTML or CSS. Page editing can be left open to the public or restricted to small groups of authors. Feel free to experiment with the Text Formatting Rules in the "Wiki sandbox". The website you're currently viewing is built and maintained with PmWiki. What are the requirements? See the PmWiki requirements page. Where can I find documentation? See the documentation index page. How can I download PmWiki? See the download page. How do I install PmWiki? Instructions for installation are on the installation page. How do I get help with PmWiki? See Mailing lists and How to get assistance. How do you pronounce "Michaud"? "Michaud" is french pronounced "mee show", the trailing D is silent. Basic PmWiki editing rulesI'm new to PmWiki, where can I find some basic help for getting started? The Basic Editing page is a good start. From there, you can just follow the navigational links at the top or the bottom of the page (they are called Wiki Trails) to the next pages, or to the Documentation Index page, which provides an outline style index of essential documentation pages, organized from basic to advanced. How do I include special characters such as Copyright (©) and Trademark (® or ™) on my wiki pages? See special characters on how to insert special characters that don't appear on your keyboard. How can I preserve line-breaks from the source text? PmWiki normally treats consecutive lines of text as being a paragraph, and merges and wraps lines together on output. This is consistent with most other wiki packages. An author can use the Can I just enter HTML directly? By default (and by design), PmWiki does not support the use of HTML elements in the editable markup for wiki pages. There are a number of reasons for this described in the PmWiki Philosophy and Audiences. Enabling HTML markup within wiki pages in a collaborative environment may exclude some potential authors from being able to edit pages, and pose a number of display and security issues. However, a site administrator can use the Cookbook:Enable HTML recipe to enable the use of HTML markup directly in pages. Where can I find more documentation? See the documentation index and the markup master index pages. Creating New Pages
How do I create a new page? Typing Why do some new pages have a title with spaces like "Creating New Pages" and others end up with a WikiWord-like title like "CreatingNewPages"? The default page title is simply the name of page, which is normally stored as "CreatingNewPages." However, you can override a page's title by using the LinksHow do I create a link that will open as a new window? Use the
How do I create a link that will open a new window, and configure that new window? This requires javascript. See Cookbook:PopupWindow. How do I place a mailing address in a page? Use the
The markup See also Cookbook:DeObMail for information on protecting email addresses from spammers. How can I enable links to other protocols, such as nntp:, ssh:, xmpp:, etc? How do I make a WikiWord link to an external page instead of a WikiPage? Use link markup. There are two formats: [[https://example.com/ | WikiWord]] [[WikiWord -> https://example.com/]] How do I find all of the pages that link to another page (i.e., backlinks)? In the wiki search form, use Use the (:pagelist link=SomePage list=all:) -- show all links to SomePage (:pagelist link={$FullName} list=all:) -- show all links to the current page Note that (with a few exceptions) includes, conditionals, pagelists, searchresults, wikitrails, and redirects are not evaluated for Wikilinks, and so any links they put on the page will not be found as backlinks. All other directives and markup, for example links brought to the page by (:pmform:), will be found. What link schemes does PmWiki support? How do I open external links in a new window or mark them with an icon? How can I use an image as a link? Use [[Page| Attach:image.jpg ]] or [[ https://site | https://site/image.jpg ]] See Images#links Why my browser does not follow local file:// links? For security reasons, most browsers will only enable file:// links if the page containing the link is itself on the local drive. In other words, most browsers do not allow links to file:// from pages that were fetched using https:// such as in a PmWiki site. See also Cookbook:DirList for a workaround. How links to the first existed page ? for example (:if exists Group1.Page:) [[Group1.Page|Page]] (:elseif exists Group2.Page:) [[Group2.Page|Page]] (:ifend:) How do I make Reference links also show up on the bottom of the page like Wikipedia? Or, how do I list all links on a page? See Cookbook:Footnotes. ImagesWhy are some external images correctly embedded, and others aren't? If the current page is on a secure URL with the "https://" protocol, some browsers will refuse to load pictures from insecure URLs (the other way around is allowed). Also, some webmasters configure their servers to disallow hotlinking. Is it possible to link an image on PmWiki without using a fully qualified URL? Yes. For images that are attachments, the general format is Can I attach a client image file on PmWiki? Yes, see Uploads . How can I include a page from another group that contains an attached image? Include the page in the normal way, ie Why, if I put an image with rframe or rfloat and immediatly after that I open a new page section with ! the section title row is below the image instead of on the left side? Because the CSS for headings such as ! contains an element clear:both which forces this behaviour. Redefine the CSS locally if you want to stop this happening, but I think the bottom border (that underlines the heading) would need further re-definition. I just use bolding for the title, and 4 dashes below Unlike the lframe and rframe directives, cframe does not fully honour the width setting. While the frame itself resizes to match the request, the enclosed image does not, and retains its original width. Effect is the same in IE and Fx. I've added an example beneath the standard example above. Is it possible to disallow all images? I already disabled uploads but I also want to disallow external images from being shown on my wiki pages. Yes, add to DisableMarkup('img'); $ImgExtPattern = "$^"; How can I make it so that when I place an image in a page, the block of text it is in is a If you just want it to happen for a single image (instead of all), then
try putting [==] https://www.pmwiki.org/pub/pmwiki/pmwiki-32.gif
Having Is there any way to use relative paths for images? See Cookbook:RelativeLinks and Is there a way to attach a BMP and have it display rather than link? Add to How do I add an image type to You can append the extensions to the Is there a way to have a table to the left or right of an image? Yes, see TableAndImage. UploadsWhen I upload a file, how do I make the link look like "file.doc" instead of "Attach:file.doc Δ"? Use parentheses, as in Why can't I upload files of size more than 50kB to my newly installed PmWiki? Out of the box PmWiki limits the size of files to be uploaded to 50kB. Add
to your config.php to increase limit to 1MB (for example). See UploadsAdmin for how to further customize limits. Note that both PHP and webservers also place their own limits on the size of uploaded files.
Why does my upload exit unexpectedly with "Incomplete file received"? You may be running out of space in a 'scratch' area, used either by PmWiki or by PHP. On *nix, check that you have sufficient free space in /tmp and /var/tmp. How do I make it so that the upload link still allows one to make another upload (if someone wants to replace the old version of a file with a newer version, for example). Currently you only get the upload link when there is no file in the upload directory. Use the Attach page action, and click on the delta symbol (Δ) shown against each of files listed. If you can't see the attach action either uploads are not enabled, you are not authorized to upload, or the attach action has been commented out or is missing. See also available actions. How do I hide the " See Cookbook:AttachLinks, note that this does not currently work for How can I link a file that have a 4-letter file extension such like 'abc.pptx'? How can I prevent others from using the url's of my images on their site See Cookbook:Prevent Hotlinking How can I display a file that lacks a correct extension? (e.g. you are using Cookbook:LinkIcons) A file can be displayed by addition of a "false" extension to the URL. For example, if the url is TablesHow do I create a basic table? Tables are created via use of the double pipe character:
How do I create cell headers? Header cells can be created by placing ! as the first character of a cell. Note that these are table headers, not headings, so it doesn't extend to !!, !!!, etc.
How do I obtain a table with thin lines and more distance to the content? "Thin lines" is tricky and browser dependent, but the following works for Firefox and IE (Nov. 2009):
How do I create an advanced table? See table directives My tables are by default centered. When I try to use '||align=left' they don't align left as expected. Use ||style="margin-left:0px;" instead. How can I specify the width of columns? You can define the widths via custom styles, see Cookbook:FormattingTables and And add in pub/css/local.css :
table.column td.col1 { width: 120px; } table.column td.col3 { width: 40px; } How can I display a double pipe "||" in cell text using basic table markup? Escape it with How do I apply styles to the elements of the table, like an ID to the table row, or a class/style to the TD? See $WikiStyleApply. Alternately, use table directives, which allow specifying styling either directly (style="...") or by a class="..." attribute for CSS. Is there a simple way to change the table defaults? I prefer a border and I'm tired of adding it to every table. You can set Table directivesCan I define table headers using the table directive markup? Yes, use Is it possible to do nested tables? Yes, if you nest simple tables inside advanced tables. See also Cookbook:AdvancedTableDirectives. Is it possible to add background images to tables and table cells? Yes, see Cookbook:BackgroundImages. Is it possible to apply styles to the elements of the table, like an ID to the table row, or a class/style to the TD? Yes, see $WikiStyleApply. Is it possible to automatically generate columns or rows in tables, i.e. without having to do a lot of counting? Yes, this is possible with the Cookbook:CreateColumns recipe - it allows you to specify a certain number of columns, and/or to specify a certain number of items per column. Plus, someone has provided some similar markup on the TableDirectives-Talk page. Is it possible to use table captions in table directives similar to simple tables? Tried Yes, this is possible with the Cookbook:AdvancedTableDirectives recipe - There you will find a AccessKeysHow can I change the keyboard shortcuts for editing and saving a page? PageDirectives Can I get Use Is there any way to prevent the "redirected from" message from showing at the top of the target page when I use From version 2.2.1 on, set in Is there any method for redirecting to the equivalent page in a different group, i.e. from BadGroup/thispage => GoodGroup/thispage using similar markup to (:redirect Goodgroup.{Name}:)?
(:redirect Goodgroup.{$Name}:) works if you want to put it in one page.
If you want it to work for the entire group, put (:redirect Goodgroup.{*$Name}:) into Badgroup.GroupHeader - however, that only works with pages that really exist in Goodgroup ; if you visit a page in Badgroup without a corresponding page of the same name in Goodgroup , instead of being redirected to a nonexistant page, you get the redirect Directive at the top of the page.
With (:if exists Goodgroup.{*$Name}:)(:redirect Goodgroup.{*$Name}:)(:ifend:) in Badgroup.GroupHeader you get redirected to Goodgroup.Name if it exists, otherwise you get Badgroup.Name without the bit of code displayed.
How can a wiki enable linebreaks by default, i.e. without having the directive Add to IncludeOtherPagesWhat's the maximum number of includes that can exist in a page? My site seems to stop including after 48 includes. ( $MaxIncludes )
By default, PmWiki places a limit of 50 include directives for any given page, to prevent runaway infinite loops and other situations that might eat up server resources. (Two of these are GroupHeader and GroupFooter.) The limit can be modified by the wiki administrator via the Is there any way to include from a group of pages without specifying by exact name, e.g. between Anchor X and Y from all pages named IFClass-* ? This can be achieved using page lists. There appears to be a viewing issue when the included page contains the (:title:) directive. In a default installation, the last title in the page overrides previous ones so you can place your (:title :) directive at the bottom of the page, after any includes. See also How to test to see if the page is part of another page?
Is there any way to include (chapters of) pages which are protected (authuser.php)? You can achieve this the other way around: have the public sections in a public page (passwdread=@nopass or @_site_read) and include those into both the protected page, and the public page. Note that it is strongly recommended to NOT hide sensitive content inside a conditional in an unprotected page. InterMapAre InterMap names case sensitive? Yes, thus How can I achieve a localmap.txt mapping with the effect of Use the following: Pics: /somepathto/pics/
How can I define an InterMap in PHP? Use the following: $LinkFunctions['PmWikiHome:'] = 'LinkIMap'; $IMap['PmWikiHome:'] = 'https://pmwiki.org/wiki/$1'; How can I define an InterMap link that lets me refer to files at the server "root"? From the page Create an InterMap link like so:
Root / Then your relative link can be:
Root:commoninfo/infoaboutu.php Or, you can use the predefined "Path:" prefix, as in Page specific variablesIs there a variable like $LastModified, but which shows me the creation time? No, but you can create one in config.php. For instance:
If you like the same format that you define in config.php with $TimeFmt use
$FmtPV['$Created'] = "[[PmWiki/Functions#PSFT|PSFT]](\$GLOBALS['TimeFmt'], \$page['ctime'])";
How can I test if a variable is set and/or not empty? Use Categories: PmWiki Developer WikiGroupFAQHow can I get rid of the 'Main' group in urls for pages pointing to Main? How can I limit the creation of new groups? See Cookbook:Limit Wiki Groups. Why doesn't [[St. Giles and St. James]] work as a link? (It doesn't display anything.) Because it contains periods, and destroys PmWiki's file structure, which saves pages as Group.PageName. Adding those periods disrupts this format. Links may only contain words. If you need a link precisely as shown, the page must be named eg StGilesAndStJames then you can use the How can I delete a wiki group? Normally you can't, as this requires an admin with server-side access to delete the file that makes up the group's How can I delete a wiki group's Normally you can't, as this requires an admin with server-side access to delete a file. But there is an optional method of making it possible to delete Can I delete a wiki group inside Yes, if you delete all files named How can I list all pages in a WikiGroup? In a wiki page use GroupHeaders and GroupFootersHow do I set the same header or footer for all pages/groups? The header and footer for each page are controlled by the variables ### If you use Site.SiteHeader and Group.GroupHeader $GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader' . ' basepage={*$FullName}:)(:nl:)' . $GroupHeaderFmt; ### If you use Site.SiteHeader instead of Group.GroupHeader $GroupHeaderFmt = '(:include {$SiteGroup}.SiteHeader' . ' basepage={*$FullName}:)(:nl:)'; ### If you use Site.SiteFooter and Group.GroupFooter $GroupFooterFmt .= '(:nl:)(:include {$SiteGroup}.SiteFooter' . ' basepage={*$FullName}:)'; ### If you use Site.SiteFooter instead of Group.GroupFooter $GroupFooterFmt = '(:nl:)(:include {$SiteGroup}.SiteFooter' . ' basepage={*$FullName}:)'; Note that single quotes must be used in the lines above. See also the Cookbook:AllGroupHeader recipe. Instead of using an additional page, you could set any wiki text in $GroupHeaderFmt .= "Global message here.";
WikiTrails
What's the difference between a PageList and a WikiTrail? The pagelist directive dynamically generates a list of pages. There are many ways to generate the list, including using a WikiTrail as the source. PageHistoryIs there a way to remove page history from page files? 1. Administrators can clean page histories using the Cookbook:ExpireDiff recipe. 2. Administrators with FTP file access can download individual pages from the 3. Edit the page. Select all the contents of the edit text area and cut them to the clipboard. Enter How can I restrict viewing the page history In the $HandleAuth['diff'] = 'edit' ;
In case of this restriction is set up on a farm, and you want to allow it on a particular wiki, set in your $HandleAuth['diff'] = 'read' ;
PasswordsHow can I password protect all the pages and groups on my site? Do I really have to set passwords page by page, or group by group? Administrators can set passwords for the entire site by editing the
For more information about the password options that are available only to administrators, see PasswordsAdmin. I get http error 500 "Internal Server Error" when I try to log in. What's wrong? This can happen if the encrypted passwords are not created on the web server that hosts the PmWiki. Solution: Create the passwords on the system with the oldest PHP version and use them on all other systems. How can I create private groups for users, so that each user can edit pages in their group, but no one else (other than the admin) can? Modify the edit attribute for each group to id:username, e.g. set the edit attribute in JaneDoe.GroupAttributes to id:JaneDoe. There is a more automatic solution, but it's probably not a good idea for most wikis. Administrators can use the AuthUser recipe and add the following few lines to their local/config.php file to set this up: $group = FmtPageName('$Group', $pagename); $DefaultPasswords['edit'] = 'id:'.$group; include_once("$FarmD/scripts/authuser.php"); This automatically gives edit rights to a group to every user who has the same user name as the group name. Unfortunately it also gives edit rights to such a user who is visiting a same-named group not just for pages in that group, but for any page on the wiki that relies on the site's default edit password. This can create security holes. How come when I switch to another wiki within a farm, I keep my same authorization? PmWiki uses PHP sessions to keep track of authentication/authorization information, and by default PHP sets things up such that all interactions with the same server are considered part of the same session. session_name('XYZSESSID');
You can pick any alphanumeric name for XYZSESSID; for example, for the cs559-1 wiki you might choose session_name('CS559SESSID');
This will keep the two wikis' session cookies independent of each other. Is it possible to test the password level for display and/or if condition? Example: * (:if WriterPassword:) (display Edit link) (:ifend:) You can use Can I use You can, but usually that's not secure. The recommended strategy is to put secrets in a separate page and restrict all read-related¹ access permissions to those users who are allowed to read the secrets. To display the secrets in another page, you can include (parts of) the secrets page: Users with read access to the secrets will readily see them, whereas other users see nothing or (at your choosing) some other text, e.g. a login link. ¹ Currently (version 2.2.99), these are: read (would allow include), edit (would show the source), attr (would allow to obtain read/edit), diff (would allow viewing any change), source (allows raw source display)
The reason why Conditional Markup isn't suitable for access control is that it only applies for rendering wikitext as a web page, and that's just one of many ways to access a page's text.
In order to rely on Conditional Markup for protection of secrets, you'd have to restrict all access methods that can circumvent it.
To do so, you'd need to keep track of all methods available.
In a default installation of PmWiki, some of the easy methods include: Editing a page, viewing its edit history, its source, or including fragments of it into the edit preview of another page. (Preview: To avoid traces in DeletingPagesHow is a Wiki Group deleted? An admin can remove the group pages from Fully deleting a group via the wiki isn't possible, since a delete counts as an "update" which causes the Recent Changes? page to be re-created.
It is possible to modify the site's configuration to allow deletion of the group's How is a Category deleted? To delete a category, delete all the PmWiki InstallationShould I rename pmwiki.php to index.php? Renaming pmwiki.php is not recommended. Instead, create an index.php file that contains this single line <?php include_once('pmwiki.php');
How do I make pmwiki.php the default page for a website? Create an index.php file that runs PmWiki from a subdirectory (pmwiki/ for example) and place it in the site's web document root (the main directory for the website). <?php chdir('pmwiki'); include_once('pmwiki.php');
Note: You will also need to explicitly set the How do I enable "Clean URLs" that are shorter and look like paths to my wiki pages? Why does pmwiki.org appear to have a directory structure rather than "?n=pagename" in URLs? See Cookbook:CleanUrls. How can I run PmWiki on a standalone (offline, portable) machine ? UpgradesHow can I determine what version of PmWiki I'm running now? See version - Determining and displaying the current version of PmWiki (pmwiki-2.3.29). How can I test a new version of PmWiki on my wiki without changing the prior version used by visitors? The easy way to do this is to install the new version in a separate
directory, and for the new version set (in $WikiLibDirs = array(&$WikiDir, new PageStore('/path/to/existing/wiki.d/{$FullName}'), new PageStore('wikilib.d/{$FullName}')); This lets you test the new version using existing page content without impacting the existing site or risking modification of the pages. (Of course, any recipes or local customizations have to be installed in the new version as well.) Then, once you're comfortable that the new version seems to work as well as the old, it's safe to upgrade the old version (and one knows of any configuration or page changes that need to be made). Uploads AdministrationHow do I disable uploading of a certain type of file? Here's an example of what to add to your local/config.php file to disable uploading of .zip files, or of files with no extension: $UploadExtSize['zip'] = 0; # Disallow uploading .zip files $UploadExtSize[''] = 0; # Disallow files with no extension How do I attach uploads to individual pages or the entire site, instead of organizing them by wiki group? Use the $UploadPrefixFmt = '/$FullName'; # per-page, in Group.Name directories $UploadPrefixFmt = '/$Group/$Name'; # per-page, in Group directories with Name subdirectories $UploadPrefixFmt = ''; # site-wide For Units are in bytes. $UploadDirQuota = 100*1024; # limit uploads to 100KiB $UploadDirQuota = 1000*1024; # limit uploads to 1000KiB $UploadDirQuota = 1024*1024; # limit uploads to 1MiB $UploadDirQuota = 25*1024*1024; # limit uploads to 25MiB $UploadDirQuota = 2*1024*1024*1024; # limit uploads to 2GiB Is there a way to allow file names with Unicode or additional characters? Yes, see Where is the list of attachments stored? It is generated on the fly by the Downloading binary files such as pictures or ZIP archives with Some recipe or local configuration may output something before the file. This may happen if you have PHP files with a closing "?>" marker at the end, and some text or white space after it. It is recommended to remove these closing markers from your local and cookbook files. SecurityHow do I report a possible security vulnerability of PmWiki? Pm wrote about this in a post to pmwiki-users from September 2006. In a nutshell he differentiates two cases:
See his post mentioned above for details and rationals. What about the botnet security advisory at https://isc.sans.edu/diary/Reports+of+Bots+exploiting+pmwiki+and+tikiwiki/1672? Sites that are running with PHP's register_globals setting set to "On" and versions of PmWiki prior to 2.1.21 may be vulnerable to a botnet exploit that is taking advantage of a bug in PHP. The vulnerability can be closed by turning register_globals off, upgrading to PmWiki 2.1.21 or later, or upgrading to PHP versions 4.4.3 or 5.1.4. Wiki Vandalism and Spam
How do I stop pages being deleted, eg password protect a page from deletion? Use Cookbook:DeleteAction and password protect the page deletion action by adding or to require the edit or admin password respectively.
How do I stop pages being replaced with an empty (all spaces) page? Add how do I stop pages being completely replaced by an inane comment such as excellent site, great information, where the content cannot be blocked? Try using the newer automatic blocklists that pull information and IP addresses about known wiki defacers. (OR) Try using Cookbook:Captchas or Cookbook:Captcha (note these are different). (OR) Set an edit password, but make it publicly available on the Site.AuthForm template. How do I password protect the creation of new groups? See Cookbook:Limit Wiki Groups How do I password protect the creation of new pages? See Cookbook:Limit new pages in Wiki Groups How do I take a whitelist approach where users from known or trusted IP addresses can edit, and others require a password? Put these lines to ## Allow passwordless editing from own turf, pass for others. if ($action=='edit' && !preg_match("/^90\\.68\\./", $_SERVER['REMOTE_ADDR']) ) { $DefaultPasswords['edit'] = pmcrypt('foobar'); } Replace For a single IP, you may use if($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { # your IP address here $_POST['authpw'] = 'xxx'; # the admin password } Please note the security issues: this means that you have your admin passwords in clear in See also Cookbook:AuthDNS & Cookbook:PersistentLogin How do I password protect page actions? See Passwords for setting in
or
How do I moderate all postings? Enable PmWiki.Drafts
How do I make a read only wiki? In How do I restrict access to uploaded attachments? See
How do I hide the IP addresses in the "diff" pages? If the user fills an author name, the IP address is not displayed. To require an author name, set in The IP address can also be seen in a tooltip title when the mouse cursor is over the author name. To disable the tooltip, set in $DiffStartFmt = "<div class='diffbox'><div class='difftime'><a name='diff\$DiffGMT' href='#diff\$DiffGMT'>\$DiffTime</a> \$[by] <span class='diffauthor'>\$DiffAuthor</span> - \$DiffChangeSum</div>"; How do I stop some Apache installations executing a file which has ".php", ".pl" or ".cgi" anywhere in the filename Use How do I stop random people from viewing the ?action=source (wiki markup) of my pages? I have See How do I set a global password to resist spambots, and informed humans of the password? CustomMarkupHow can I embed JavaScript into a page's output? There are several ways to do this. The Cookbook:JavaScript recipe describes a simple means for embedding static JavaScript into web pages using custom markup. For editing JavaScript directly in wiki pages (which can pose various security risks), see the JavaScript-Editable recipe. For JavaScript that is to appear in headers or footers of pages, the skin template can be modified directly, or |