* Run page through any relevant filters when generating a page preview.
* Noticed a bug in the wikitext markup plugin -- it made CamelCase links the default throughout the wiki, not only on wikitext pages. Decided to call this a feature, and split the camelcase support out into a separate plugin that is independant of wikitext.master
parent
061afedb26
commit
d9c118dbf1
|
@ -417,7 +417,7 @@ sub cgi_editpage ($$) { #{{{
|
||||||
$form->field(name => "comments",
|
$form->field(name => "comments",
|
||||||
value => $comments, force => 1);
|
value => $comments, force => 1);
|
||||||
$form->tmpl_param("page_preview",
|
$form->tmpl_param("page_preview",
|
||||||
htmlize($type, linkify($page, $page, $content)));
|
htmlize($type, linkify($page, $page, filter($page, $content))));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$form->tmpl_param("page_preview", "");
|
$form->tmpl_param("page_preview", "");
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
# CamelCase links
|
||||||
|
package IkiWiki::Plugin::camelcase;
|
||||||
|
|
||||||
|
use warnings;
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
sub import { #{{{
|
||||||
|
IkiWiki::hook(type => "filter", id => "camelcase", call => \&filter);
|
||||||
|
} # }}}
|
||||||
|
|
||||||
|
sub filter (@) { #{{{
|
||||||
|
my %params=@_;
|
||||||
|
|
||||||
|
# Make CamelCase links work by promoting them to fullfledged
|
||||||
|
# WikiLinks. This regexp is based on the one in Text::WikiFormat.
|
||||||
|
$params{content}=~s#(?<![["/>=])\b((?:[A-Z][a-z0-9]\w*){2,})#[[$1]]#g;
|
||||||
|
|
||||||
|
return $params{content};
|
||||||
|
} #}}}
|
||||||
|
|
||||||
|
1
|
|
@ -7,20 +7,9 @@ use strict;
|
||||||
use Text::WikiFormat;
|
use Text::WikiFormat;
|
||||||
|
|
||||||
sub import { #{{{
|
sub import { #{{{
|
||||||
IkiWiki::hook(type => "filter", id => "wiki", call => \&filter);
|
|
||||||
IkiWiki::hook(type => "htmlize", id => "wiki", call => \&htmlize);
|
IkiWiki::hook(type => "htmlize", id => "wiki", call => \&htmlize);
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
||||||
sub filter (@) { #{{{
|
|
||||||
my %params=@_;
|
|
||||||
|
|
||||||
# Make CamelCase links work by promoting them to fullfledged
|
|
||||||
# WikiLinks. This regexp is based on the one in Text::WikiFormat.
|
|
||||||
$params{content}=~s#(?<![["/>=])\b((?:[A-Z][a-z0-9]\w*){2,})#[[$1]]#g;
|
|
||||||
|
|
||||||
return $params{content};
|
|
||||||
} #}}}
|
|
||||||
|
|
||||||
sub htmlize ($) { #{{{
|
sub htmlize ($) { #{{{
|
||||||
my $content = shift;
|
my $content = shift;
|
||||||
|
|
||||||
|
|
|
@ -250,6 +250,22 @@ sub findlinks ($$) { #{{{
|
||||||
}
|
}
|
||||||
} #}}}
|
} #}}}
|
||||||
|
|
||||||
|
sub filter ($$) {
|
||||||
|
my $page=shift;
|
||||||
|
my $content=shift;
|
||||||
|
|
||||||
|
if (exists $hooks{filter}) {
|
||||||
|
foreach my $id (keys %{$hooks{filter}}) {
|
||||||
|
$content=$hooks{filter}{$id}{call}->(
|
||||||
|
page => $page,
|
||||||
|
content => $content
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
sub render ($) { #{{{
|
sub render ($) { #{{{
|
||||||
my $file=shift;
|
my $file=shift;
|
||||||
|
|
||||||
|
@ -260,14 +276,7 @@ sub render ($) { #{{{
|
||||||
my $page=pagename($file);
|
my $page=pagename($file);
|
||||||
delete $depends{$page};
|
delete $depends{$page};
|
||||||
|
|
||||||
if (exists $hooks{filter}) {
|
$content=filter($page, $content);
|
||||||
foreach my $id (keys %{$hooks{filter}}) {
|
|
||||||
$content=$hooks{filter}{$id}{call}->(
|
|
||||||
page => $page,
|
|
||||||
content => $content
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$links{$page}=[findlinks($page, $content)];
|
$links{$page}=[findlinks($page, $content)];
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
ikiwiki (1.10) UNRELEASED; urgency=low
|
||||||
|
|
||||||
|
* Run page through any relevant filters when generating a page preview.
|
||||||
|
* Noticed a bug in the wikitext markup plugin -- it made CamelCase links the
|
||||||
|
default throughout the wiki, not only on wikitext pages. Decided to call
|
||||||
|
this a feature, and split the camelcase support out into a separate plugin
|
||||||
|
that is independant of wikitext.
|
||||||
|
|
||||||
|
-- Joey Hess <joeyh@debian.org> Wed, 26 Jul 2006 17:44:25 -0400
|
||||||
|
|
||||||
ikiwiki (1.9) unstable; urgency=low
|
ikiwiki (1.9) unstable; urgency=low
|
||||||
|
|
||||||
* Improve display of parentlinks and page title of toplevel index page.
|
* Improve display of parentlinks and page title of toplevel index page.
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
This plugin makes words in CamelCase be treated as [[WikiLinks]]. That is
|
||||||
|
to say, any two or more words capitalised and mashed together are assumed
|
||||||
|
to be the name of some other page on the wiki, and so become a link.
|
||||||
|
|
||||||
|
This plugin is included in ikiwiki, but is not enabled by default.
|
||||||
|
|
||||||
|
If this plugin is enabled, here is a link: SandBox
|
|
@ -4,12 +4,13 @@ installed, enable the plugin, then files with the extention `.wiki` will be
|
||||||
processed as wiki text.
|
processed as wiki text.
|
||||||
|
|
||||||
Wiki formatting is very simple. An item wrapped in three single quotes is
|
Wiki formatting is very simple. An item wrapped in three single quotes is
|
||||||
strong. An item wrapped in two single quotes is emphasized. Any word with
|
strong. An item wrapped in two single quotes is emphasized. Four or more
|
||||||
multiple CapitalLetters (e. g., StudlyCaps) will become a link (standard
|
hyphen characters at the start of a line create a horizontal line. Newlines
|
||||||
[[WikiLinks|WikiLink]] work too). Four or more
|
turn into the appropriate tags. Headers are matching equals signs around
|
||||||
hyphen characters at the start of a line create a horizontal line.
|
the header text -- the more signs, the lesser the header.
|
||||||
Newlines turn into the appropriate tags. Headers are matching equals signs
|
|
||||||
around the header text -- the more signs, the lesser the header.
|
Links are standard [[WikiLinks|WikiLink]], although you can also enable
|
||||||
|
[[CamelCase]] links.
|
||||||
|
|
||||||
Lists are indented text, by one tab or four spaces. In unordered lists,
|
Lists are indented text, by one tab or four spaces. In unordered lists,
|
||||||
where each item has its own bullet point, each item needs a leading
|
where each item has its own bullet point, each item needs a leading
|
||||||
|
|
Loading…
Reference in New Issue