Link Variables

admins (advanced)

%apply=item id=EnableLinkPageRelative?%$EnableLinkPageRelative
When enabled, causes PmWiki to use relative urls for page links instead of absolute urls.
        $EnableLinkPageRelative = 1;
%apply=item id=EnableLinkPlusTitlespaced?%$EnableLinkPlusTitlespaced
When enabled, a link written like [[Name|+]] will display the "Spaced Title". Default is to display the "Title" of the page. See the page PageVariables for {$Title} and {$Titlespaced}.
%apply=item id=PagePathFmt?%$PagePathFmt
This array lists the order in which PmWiki looks for the page that you most likely are attempting to link to. The default is listed below. Look at Cookbook:PagePaths for some ideas.
        array('{$Group}.$1', '$1.$1', '$1.{$DefaultName}')
%apply=item id=LinkPageExistsFmt?%$LinkPageExistsFmt
The (HTML) string to output for links to already existing wiki pages. Defaults to
        <a class='wikilink' href='\$LinkUrl'>\$LinkText</a>
%apply=item id=LinkPageCreateFmt?%$LinkPageCreateFmt
The (HTML) string to output for links to non-existent wiki pages. The default is to add a '?' after the link text with a link to the page edit/create form. Defaults to
        <a class='createlinktext' href='\$PageUrl?action=edit'>\$LinkText</a>
        <a class='createlink' href='\$PageUrl?action=edit'>?</a>
%apply=item id=LinkPageCreateSpaceFmt?%$LinkPageCreateSpaceFmt
Same as $LinkPageCreateFmt, but used when the link text has a space in it.
%apply=item id=LinkPageSelfFmt?%$LinkPageSelfFmt
The (HTML) string to output for self-referencing links (i.e. links to the page itself). Defaults to
        <a class='selflink' href='\$LinkUrl'>\$LinkText</a>
%apply=item id=LinkCategoryFmt?%$LinkCategoryFmt
The (HTML) string to output for links to wiki category pages. Defaults to
        <a class='categorylink' href='\$LinkUrl'>\$LinkText</a>
%apply=item id=UrlLinkFmt?%$UrlLinkFmt
The (HTML) string to output for URL-links that begin with 'http:', 'ftp:', etc. Defaults to
        <a class='urllink' href='\$LinkUrl' title='\$LinkAlt' rel='nofollow'>\$LinkText</a>
All InterMap links default to $UrlLinkFmt, unless there is a specific $IMapLinkFmt entry.
%apply=item id=IMapLinkFmt?%$IMapLinkFmt
an array of link formats for various link "schemes". Not set as default.
Examples of custom formats to allow different styling via classes:
Links to http: standard url links:
         $IMapLinkFmt['http:'] = "<a class='httplink urllink' href='\$LinkUrl'>\$LinkText</a>";  
Links to https: secure pages:
         $IMapLinkFmt['https:'] = "<a class='httpslink urllink' href='\$LinkUrl'>\$LinkText</a>";   
Links to PmWiki: InterMap shortcut:
         $IMapLinkFmt['PmWiki:'] = "<a class='pmwikilink urllink' href='\$LinkUrl'>\$LinkText</a>";
Note that if you have enabled ObfuscateLinkIMap? (core function based on DeObMail?), the snippet can be customized in:
The default (for ObfuscateLinkIMap?) is:
         $IMapLinkFmt['obfuscate-mailto:'] = "<span class='_pmXmail' title=\"\$LinkAlt\"><span class='_t'>\$LinkText</span><span class='_m'>\$LinkUrl</span></span>"; 
The ObfuscateLinkIMap? logic expects the snippet to have some recognisable properties -- classes, elements, otherwise it may not work. Start with the default snippet, make small modifications, and test if it works.
%apply=item id=AddLinkCSS?%$AddLinkCSS
An array of additional custom link CSS classes, that are added to the link format $UrlLinkFmt, $IMapLinkFmt or $LinkPageExistsFmt. Currently can have 2 elements:
$AddLinkCSS['othergroup'] = "crossgroup"; # add "crossgroup" class to wikilinks to other wikigroups
$AddLinkCSS['samedomain'] = "currentsite"; # add "currentsite" class to URL or Path links to resources on the same domain.
%apply=item id=InterMapFiles?%$InterMapFiles
An array consisting a list of files and pages containing InterMap entries to be loaded.
%apply=item id=MakePageNameFunction?%$MakePageNameFunction
Name of a custom function to replace MakePageName(), which converts strings into valid page names.
%apply=item id=MakePageNamePatterns?%$MakePageNamePatterns
$MakePageNamePatterns is an array of regular expression replacements that is used to map the page link in a free link such as [[free link]] into a page name. Currently the default sequence is:
    "/'/" => '',                    # strip single-quotes
    "/[^$PageNameChars]+/" => ' ',  # convert to spaces characters not allowed in pagenames
    '/((^|[^-\\w])\\w)/' => 'cb_toupper',  # capitalize 1st letter of words
    '/ /' => ''                     # remove spaces
Note that if you change $MakePageNamePatterns, the documentation links may break. This can be fixed by re-setting $MakePageNamePatterns to the default in PmWiki?.php.
%apply=item id=MakePageNameSplitPattern?%$MakePageNameSplitPattern
See Cookbook:DotsInLinks.
%apply=item id=WikiWordCountMax?%$WikiWordCountMax
The maximum number of times to convert each WikiWord encountered on a page. Defaults to 1,000,000. Common settings for this variable are zero (disable WikiWord links) and one (convert only the first occurrence of each WikiWord).
        $WikiWordCountMax = 0;     # disable WikiWord links
        $WikiWordCountMax = 1;     # convert only first WikiWord
%apply=item id=WikiWordCount?%$WikiWordCount
An array that allows the number of WikiWord conversions to be set on a per-WikiWord basis. The default is to use $WikiWordCountMax unless a value is set in this array. By default PmWiki sets $WikiWordCount['PmWiki']=1 to limit the number of conversions of "PmWiki".
        $WikiWordCount['PhD']=0;     # Don't convert "PhD"
        $WikiWordCount['WikiWord']=5;  # Convert WikiWord 5 times
        # the following lines keep a page from linking to itself
        $title = FmtPageName('$Title_',$pagename);
%apply=item id=EnableRedirectQuiet?%$EnableRedirectQuiet
Enable the quiet=1 parameter for the redirect directive. On publicly edited wikis it is advisable not to enable quiet redirects.
        $EnableRedirectQuiet = 0;     # disable quiet redirects (default)
        $EnableRedirectQuiet = 1;     # enable quiet redirects
%apply=item id=QualifyPatterns?%$QualifyPatterns
An array of regular expression replacements applied when text from one page is included in another, used by the function Qualify(). The two default patterns rewrite links like [[Page]] into [[Group/Page]], and page (text) variables like {$Title} into {Group.Page$Title} so that they work the same way in the source page and in the including page.

Categories: PmWiki Developer

This page may have a more recent version on PmWiki:LinkVariables, and a talk page: PmWiki:LinkVariables-Talk.