[pmwiki-users] automatic link creation
Eemeli Aro
eemeli at gmail.com
Tue Aug 25 16:57:41 CDT 2009
2009/8/26 adam overton <a at plus1plus1plus.org>:
> i would like to have pmwiki convert certain commonly appearing names
> (or terms, or orgs) into a links to the respective person's external
> website.
I'm not aware of any recipe that'll do this, but it is something I've
been thinking of recently of implementing. From my point of view,
however, it's more of a matter of figuring out the best way of
generating and maintaining the list of valid names to link up.
Here's what I am using to make course names at our university link to
their pages:
Markup('[[kurssi]]', '>[[',
'/(`?)([A-Z][a-zA-Z]{0,2}(?:-\d{1,3}\.\d{3,4}|\.kand))/e',
"Keep(MakeCourseLink(\$pagename, PSS('$2'), '$1'), 'L')");
function MakeCourseLink( $pagename, $course, $ignore ) {
if ($ignore) return $course;
switch($course) {
case 'AS-0.1101':
$tgt = 'http://goblin.tkk.fi/c/';
break;
case 'AS-84.3145':
$tgt = 'http://automation.tkk.fi/AS-84-3145';
break;
default:
$tgt = 'https://noppa.tkk.fi/noppa/kurssi/'
.strtolower($course).'/etusivu';
}
return MakeLink($pagename, $tgt, $course);
}
Each course has a code that'll match the regular expression on the
second line, and for most courses the pages are on a common CMS for
them. the backtick ` at the start is to provide a way of escaping the
pattern.
So for your more general case, you'll need a way to build the regular
expression for finding the names to link, and a way of mapping each
name to a link target.
eemeli
More information about the pmwiki-users
mailing list