# LinkVariables

admins (advanced)
$EnableLinkPageRelative When enabled, causes PmWiki to use relative urls for page links instead of absolute urls.  $EnableLinkPageRelative = 1;

$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}. $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}')

$LinkPageExistsFmt The (HTML) string to output for links to already existing wiki pages. Defaults to  <a class='wikilink' href='\$LinkUrl'>\$LinkText</a>  $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>  :$LinkPageCreateSpaceFmt:Same as $LinkPageCreateFmt, but used when the link text has a space in it. $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>

$LinkCategoryFmt The (HTML) string to output for links to wiki category pages. Defaults to  <a class='categorylink' href='\$LinkUrl'>\$LinkText</a>  $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. $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: $IMapLinkFmt['obfuscate-mailto:']

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.
$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.
$InterMapFiles An array consisting a list of files and pages containing InterMap entries to be loaded. $MakePageNameFunction
Name of a custom function to replace MakePageName(), which converts strings into valid page names.
$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 local/PmWiki.php. $MakePageNameSplitPattern
See Cookbook:DotsInLinks.
$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  :$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);$WikiWordCount[$title]=0;  $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

$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.org: PmWiki:LinkVariables, and a talk page: PmWiki:LinkVariables-Talk.