* Need to keep track of the globlists in the index file.
- Probably need to redesign the index file format to allow for this sort
of future expansion.
-* Need to make _ render as " " in page titles.
-* Also need to support as much other punctuation as possible in page
- titles, ideally all of it. Punctuation that is illegal in filenames for
- various good reasons should be embedded encoded in the filenames. Blogs
- tend to have more punctuation-intensive page titles than wikis.
* Need to pick a good token and note that the token will need to be passed
multiple parameters. Possibly something like this:
- [[rss pages="myblog/*" show="30"]]
+ [[embed pages="myblog/*" show="30"]]
## revisit case
WikiLinks can be entered in any case you like, the page they link to is
always lowercased.
+While a WikiLink is limited to alphanumerics and only a few special
+charaters, it is possible to create page names containing other characters:
+
+* To display a page name with a space in it, use "_" in the WikiLink, for
+ example, [[Multi_Word_Page_Name]].
+* For any other special character, you can use "__nnnn__" where `nnnn` is the
+ unicode character number. For example,
+ [[This_page_name_is__44___uselessly__44___a_complete_sentence__46__]]
+ Limiting use of this to when you really need it is a good idea.
+
Note that if the file linked to by a WikiLink looks like an image, it will
be displayed inline on the page.
%config=(
wiki_file_prune_regexp => qr{((^|/).svn/|\.\.|^\.|\/\.|\.html?$)},
wiki_link_regexp => qr/\[\[([^\s\]]+)\]\]/,
- wiki_file_regexp => qr/(^[-A-Za-z0-9_.:\/+]+$)/,
+ wiki_file_regexp => qr/(^[-A-Za-z0-9_.\&;:\/+]+$)/,
verbose => 0,
wikiname => "wiki",
default_pageext => ".mdwn",
unless exists $config{wikistatedir};
if ($config{svn}) {
- require IkiWiki::RCS::SVN;
+ require IkiWiki::Rcs::SVN;
$config{rcs}=1;
}
else {
- require IkiWiki::RCS::Stub;
+ require IkiWiki::Rcs::Stub;
$config{rcs}=0;
}
} #}}}
$file=~/\.(png|gif|jpg|jpeg)$/;
} #}}}
+sub pagetitle ($) { #{{{
+ my $page=shift;
+ $page=~s/__(\d+)__/&#$1;/g;
+ $page=~y/_/ /;
+ return $page;
+} #}}}
+
sub htmllink ($$;$$) { #{{{
my $page=shift;
my $link=shift;
$bestlink="$page/".lc($link);
}
- return $link if length $bestlink && $page eq $bestlink;
+ my $linktext=pagetitle($link);
+
+ return $linktext if length $bestlink && $page eq $bestlink;
# TODO BUG: %renderedfiles may not have it, if the linked to page
# was also added and isn't yet rendered! Note that this bug is
$bestlink=htmlpage($bestlink);
}
if (! grep { $_ eq $bestlink } values %renderedfiles) {
- return "<a href=\"$config{cgiurl}?do=create&page=$link&from=$page\">?</a>$link"
+ return "<a href=\"$config{cgiurl}?do=create&page=$link&from=$page\">?</a>$linktext"
}
$bestlink=File::Spec->abs2rel($bestlink, dirname($page));
if (! $noimageinline && isinlinableimage($bestlink)) {
return "<img src=\"$bestlink\">";
}
- return "<a href=\"$bestlink\">$link</a>";
+ return "<a href=\"$bestlink\">$linktext</a>";
} #}}}
sub indexlink () { #{{{