summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-07 18:28:27 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-07 18:28:27 +0000
commit0f22d66c965d7f2a3e4698de7ddf992efebf6c42 (patch)
treeff23d91c038143b34c9550c59f3b945d2455f0c0
parent723ebda4760d7e6bb848f1b1d39706f441d3f209 (diff)
* Add wikitext markup plugin, which supports ".wiki" pages written in the
original wiki syntax, CamelCase links and all.
-rw-r--r--IkiWiki/Plugin/wikitext.pm30
-rw-r--r--debian/changelog4
-rw-r--r--doc/features.mdwn5
-rw-r--r--doc/ikiwiki.setup2
-rw-r--r--doc/install.mdwn3
-rw-r--r--doc/plugins/wikitext.mdwn21
6 files changed, 60 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/wikitext.pm b/IkiWiki/Plugin/wikitext.pm
new file mode 100644
index 000000000..310b86724
--- /dev/null
+++ b/IkiWiki/Plugin/wikitext.pm
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+# WikiText markup
+package IkiWiki::Plugin::wikitext;
+
+use warnings;
+use strict;
+use Text::WikiFormat;
+
+sub import { #{{{
+ IkiWiki::hook(type => "filter", id => "wiki", call => \&filter);
+ 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 ($) { #{{{
+ my $content = shift;
+
+ return Text::WikiFormat::format($content, undef, { implicit_links => 0 });
+} # }}}
+
+1
diff --git a/debian/changelog b/debian/changelog
index 6b7c1a679..3cea775be 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,8 +4,10 @@ ikiwiki (1.9) UNRELEASED; urgency=low
* Patch from Faidon to use svn --limit when possible for recentchanges,
speeds up recentchanges a lot for wikis with more history.
* Patch from Recai to fix utf8 issues in git backend.
+ * Add wikitext markup plugin, which supports ".wiki" pages written in the
+ original wiki syntax, CamelCase links and all.
- -- Joey Hess <joeyh@debian.org> Wed, 5 Jul 2006 16:53:34 -0400
+ -- Joey Hess <joeyh@debian.org> Fri, 7 Jul 2006 14:11:50 -0400
ikiwiki (1.8) unstable; urgency=low
diff --git a/doc/features.mdwn b/doc/features.mdwn
index c22d2be91..5152beffd 100644
--- a/doc/features.mdwn
+++ b/doc/features.mdwn
@@ -23,11 +23,12 @@ Some of ikiwiki's features:
page with a filename ending in ".mdwn" is converted from markdown to html
by ikiwiki. Markdown understands text formatted as it would be in an email,
and is quite smart about converting it to html. The only additional markup
- provided by ikiwiki aside from regular markdown is the [[WikiLink]] and
+ provided by ikiwiki on top of regular markdown is the [[WikiLink]] and
[[PreprocessorDirective]]
If you prefer to use some other markup language, ikiwiki allows others to
- be added by [[plugins]].
+ easily be added by [[plugins]]. For example it also supports traditional
+ [[plugins/WikiText]] formatted pages.
* support for other file types
diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup
index 9713d553b..8bc0e3336 100644
--- a/doc/ikiwiki.setup
+++ b/doc/ikiwiki.setup
@@ -71,7 +71,7 @@ use IkiWiki::Setup::Standard {
#timeformat => '%c',
# To add plugins, list them here.
- #add_plugins => [qw{pagecount brokenlinks search smiley}],
+ #add_plugins => [qw{pagecount brokenlinks search smiley wikitext}],
# If you want to disable any of the default plugins, list them here.
#disable_plugins => [qw{inline htmlscrubber}],
}
diff --git a/doc/install.mdwn b/doc/install.mdwn
index f65e1a227..d23c88e41 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -6,7 +6,8 @@ perl modules if available: `CGI::Session` `CGI::FormBuilder` (version
`Date::Parse` (libtimedate-perl), `HTML::Scrubber`, `RPC::XML`,
`XML::Simple`
-If you want to install from the tarball, you should make sure that the required perl modules are installed, then run:
+If you want to install from the tarball, you should make sure that the
+required perl modules are installed, then run:
perl Makefile.PL
make
diff --git a/doc/plugins/wikitext.mdwn b/doc/plugins/wikitext.mdwn
new file mode 100644
index 000000000..5c5383fc5
--- /dev/null
+++ b/doc/plugins/wikitext.mdwn
@@ -0,0 +1,21 @@
+This plugin allows ikiwiki to process pages written in the original wiki
+text format. To use it, you need to have the Text::WikiFormat perl module
+installed, enable the plugin, then files with the extention `.wiki` will be
+processed as wiki text.
+
+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
+multiple CapitalLetters (e. g., StudlyCaps) will become a link (standard
+[[WikiLinks|WikiLink]] work too). Four or more
+hyphen characters at the start of a line create a horizontal line.
+Newlines turn into the appropriate tags. Headers are matching equals signs
+around the header text -- the more signs, the lesser the header.
+
+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
+asterisk and space. Ordered lists consist of items marked with combination
+of one or more alphanumeric characters followed by a period and an optional
+space. Any indented text without either marking is code, handled literally.
+You can nest lists.
+
+This plugin is included in ikiwiki, but is not enabled by default.