summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--README3
-rw-r--r--ikiwiki.setup58
-rw-r--r--ikiwiki_admin.setup206
-rw-r--r--perl/IkiWiki/Plugin/farbar.pm53
-rw-r--r--perl/IkiWiki/Plugin/topbar.pm53
6 files changed, 326 insertions, 57 deletions
diff --git a/Makefile b/Makefile
index 4f3fe1e..29baeda 100644
--- a/Makefile
+++ b/Makefile
@@ -3,22 +3,22 @@ SOURCES = ikiwiki
# Git origin (with capital MOULE replaced or stripped as needed)
ikiwiki_ORIGIN = git://source.jones.dk/ikiwiki_MODULE
# Git branch (with capital FLAVOR and LOCALE replaced or stripped as needed)
-ikiwiki_BRANCH = master-FLAVOR-LOCALE
+ikiwiki_BRANCH = allinone-FLAVOR-LOCALE
# modules (subproject extension names) used. Expands Git ORIGINs
ikiwiki_MODULES = templates basewiki smiley
# flavors used. Expands Git BRANCHes
-#ikiwiki_basewiki_FLAVORS = nonedit
-#ikiwiki_templates_FLAVORS = nonedit
+ikiwiki_basewiki_FLAVORS = nonedit
+ikiwiki_templates_FLAVORS = nonedit
# locales used. Expands Git BRANCHes
#ikiwiki_LOCALES = da nb
# gettext-based modules and locales used
#ikiwiki_POMODULES = basewiki smiley
#ikiwiki_POLOCALES = da
-#dummy_MODULES = content_dummy
+dummy_MODULES = content_dummy
# uncomment this when ikiwiki.setup is configured for the local environment
-#CONFIGS = ikiwiki.setup
+#CONFIGS = ikiwiki.setup ikiwiki_admin.setup
# Everything after this is generic
diff --git a/README b/README
index 3becd90..4e6efe3 100644
--- a/README
+++ b/README
@@ -8,6 +8,9 @@ the following locales:
* danish (da) by Jonas Smedegaard <dr@jones.dk>
+Additionally, the configuration has been simplified to not mention non-Git VCS
+systems, and deprecated placeholder files has been removed from basewiki.
+
Getting the source
------------------
diff --git a/ikiwiki.setup b/ikiwiki.setup
index 78182ba..97cee63 100644
--- a/ikiwiki.setup
+++ b/ikiwiki.setup
@@ -11,20 +11,16 @@ use IkiWiki::Setup::Standard {
adminemail => 'me@example.org',
# Be sure to customise these..
- srcdir => $ENV{'HOME'} . "/private_webdata/samplewiki/content",
+ srcdir => $ENV{'HOME'} . "/private_webdata/samplewiki/content_dummy",
destdir => $ENV{'HOME'} . "/public_websites/wiki.example.org/wiki",
url => "http://wiki.example.org",
cgiurl => "http://wiki.example.org/ikiwiki.cgi",
- templatedir => $ENV{'HOME'} . "/private_webdata/samplewiki/templates",
- underlaydir => $ENV{'HOME'} . "/private_webdata/samplewiki/basewiki",
-
- # Subversion stuff.
- #rcs => "svn",
- #historyurl => "http://svn.example.org/trunk/[[file]]",
- #diffurl => "http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]",
- #svnrepo => "/svn/wiki",
- #svnpath => "trunk",
+ templatedir => $ENV{'HOME'} . "/private_webdata/samplewiki/templates_nonedit",
+ underlaydirs => [
+ $ENV{'HOME'} . "/private_webdata/samplewiki/content",
+ ],
+ underlaydir => $ENV{'HOME'} . "/private_webdata/samplewiki/basewiki_nonedit",
# Git stuff.
#rcs => "git",
@@ -33,32 +29,6 @@ use IkiWiki::Setup::Standard {
#gitorigin_branch => "samplewiki",
#gitmaster_branch => "master",
- # Tla stuff.
- #rcs => "tla"
- #historyurl => ??,
- #diffurl => ??,
-
- # Mercurial stuff.
- #rcs => "mercurial",
- #historyurl => "http://localhost:8000/log/tip/[[file]]", # hg serve'd local repository
- #diffurl => "http://localhost:8000/?fd=[[r2]];file=[[file]]",
-
- # Bazaar stuff.
- #rcs => "bzr",
- #historyurl => "",
- #diffurl => "http://example.com/revision?start_revid=[[r2]]#[[file]]-s", # using loggerhead
-
- # Monotone stuff
- #rcs => "monotone",
- #mtnkey => "web\@machine.company.com",
- #historyurl => "http://viewmtn.example.com/branch/head/filechanges/com.example.branch/[[file]]",
- #diffurl => "http://viewmtn.example.com/revision/diff/[[r1]]/with/[[r2]]/[[file]]",
- # Set if you want the wiki to sync on update and commit.
- #mtnsync => 0,
- # The path to your workspace (defaults to the srcdir itself)
- # e.g. use if your srcdir is a subdirectory of the workspace.
- #mtnrootdir => "path/to/root/of/workspace",
-
wrappers => [
#{
# # The cgi wrapper.
@@ -67,17 +37,6 @@ use IkiWiki::Setup::Standard {
# wrappermode => "06755",
#},
#{
- # # The svn post-commit wrapper.
- # # Note that this will overwrite any existing
- # # post-commit hook script, which may not be
- # # what you want.
- # wrapper => "/svn/wikirepo/hooks/post-commit",
- # wrappermode => "04755",
- # # Log to syslog since svn post-commit hooks
- # # hide output and errors.
- # syslog => 1,
- #},
- #{
# # The git post-update wrapper.
# # Note that this will overwrite any existing
# # post-update hook script, which may not be
@@ -85,11 +44,6 @@ use IkiWiki::Setup::Standard {
# wrapper => $ENV{'HOME'} . "/public_websites/git.example.org/samplewiki_content.git/hooks/post-update-ikiwiki",
# wrappermode => "06755",
#},
- #{
- # # The monotone netsync hook.
- # wrapper => "path/to/root/of/workspace/_MTN/ikiwiki-netsync-hook",
- # wrappermode => "06755",
- #},
],
# Default to generating rss feeds for pages with feeds?
diff --git a/ikiwiki_admin.setup b/ikiwiki_admin.setup
new file mode 100644
index 0000000..eda158d
--- /dev/null
+++ b/ikiwiki_admin.setup
@@ -0,0 +1,206 @@
+#!/usr/bin/perl
+# Configuration file for ikiwiki.
+# Passing this to ikiwiki --setup will make ikiwiki generate wrappers and
+# build the wiki.
+#
+# Remember to re-run ikiwiki --setup any time you edit this file.
+
+use IkiWiki::Setup::Standard {
+ wikiname => "MyWiki",
+ #adminuser => ["yourname", ],
+ adminemail => 'me@example.org',
+
+ # Be sure to customise these..
+ srcdir => $ENV{'HOME'} . "/private_webdata/samplewiki/content",
+ destdir => $ENV{'HOME'} . "/public_websites/wiki.example.org",
+
+ url => "http://wiki.example.org",
+ cgiurl => "http://wiki.example.org/ikiwiki.cgi",
+ templatedir => $ENV{'HOME'} . "/private_webdata/samplewiki/templates",
+ underlaydir => $ENV{'HOME'} . "/private_webdata/samplewiki/basewiki",
+
+ # Subversion stuff.
+ #rcs => "svn",
+ #historyurl => "http://svn.example.org/trunk/[[file]]",
+ #diffurl => "http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]",
+ #svnrepo => "/svn/wiki",
+ #svnpath => "trunk",
+
+ # Git stuff.
+ #rcs => "git",
+ #historyurl => "http://git.example.org/?p=samplewiki_content.git;a=history;f=[[file]]", # ;hb=master
+ #diffurl => "http://git.example.org/?p=samplewiki_content.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]",
+ #gitorigin_branch => "samplewiki",
+ #gitmaster_branch => "master",
+
+ # Tla stuff.
+ #rcs => "tla"
+ #historyurl => ??,
+ #diffurl => ??,
+
+ # Mercurial stuff.
+ #rcs => "mercurial",
+ #historyurl => "http://localhost:8000/log/tip/[[file]]", # hg serve'd local repository
+ #diffurl => "http://localhost:8000/?fd=[[r2]];file=[[file]]",
+
+ # Bazaar stuff.
+ #rcs => "bzr",
+ #historyurl => "",
+ #diffurl => "http://example.com/revision?start_revid=[[r2]]#[[file]]-s", # using loggerhead
+
+ # Monotone stuff
+ #rcs => "monotone",
+ #mtnkey => "web\@machine.company.com",
+ #historyurl => "http://viewmtn.example.com/branch/head/filechanges/com.example.branch/[[file]]",
+ #diffurl => "http://viewmtn.example.com/revision/diff/[[r1]]/with/[[r2]]/[[file]]",
+ # Set if you want the wiki to sync on update and commit.
+ #mtnsync => 0,
+ # The path to your workspace (defaults to the srcdir itself)
+ # e.g. use if your srcdir is a subdirectory of the workspace.
+ #mtnrootdir => "path/to/root/of/workspace",
+
+ wrappers => [
+ #{
+ # # The cgi wrapper.
+ # cgi => 1,
+ # wrapper => $ENV{'HOME'} . "/public_cgi/wiki.example.org/ikiwiki.cgi",
+ # wrappermode => "06755",
+ #},
+ #{
+ # # The svn post-commit wrapper.
+ # # Note that this will overwrite any existing
+ # # post-commit hook script, which may not be
+ # # what you want.
+ # wrapper => "/svn/wikirepo/hooks/post-commit",
+ # wrappermode => "04755",
+ # # Log to syslog since svn post-commit hooks
+ # # hide output and errors.
+ # syslog => 1,
+ #},
+ #{
+ # # The git post-update wrapper.
+ # # Note that this will overwrite any existing
+ # # post-update hook script, which may not be
+ # # what you want.
+ # wrapper => $ENV{'HOME'} . "/public_websites/git.example.org/samplewiki_content.git/hooks/post-update-ikiwiki-admin",
+ # wrappermode => "06755",
+ #},
+ #{
+ # # The monotone netsync hook.
+ # wrapper => "path/to/root/of/workspace/_MTN/ikiwiki-netsync-hook",
+ # wrappermode => "06755",
+ #},
+ ],
+
+ # Default to generating rss feeds for pages with feeds?
+ #rss => 1,
+ # Default to generating atom feeds for pages with feeds?
+ #atom => 1,
+ # Allow generating feeds even if not generated by default?
+ #allowrss => 1,
+ #allowatom => 1,
+ # Urls to ping with XML-RPC when feeds are updated
+ #pingurl => [qw{http://rpc.technorati.com/rpc/ping}],
+ # Include discussion links on all pages?
+ discussion => 1,
+ # To exclude files matching a regexp from processing. This adds to
+ # the default exclude list.
+ #exclude => qr/\.wav$/,
+ # To change the extension used for generated html files.
+ #htmlext => 'htm',
+ # Time format (for strftime)
+ #timeformat => '%c',
+ # Locale to use. Must be a UTF-8 locale.
+ #locale => 'en_US.UTF-8',
+ # Only send cookies over SSL connections.
+ #sslcookie => 1,
+ # Logging settings:
+ #verbose => 1,
+ syslog => 0,
+ # To link to user pages in a subdirectory of the wiki.
+ #userdir => "users",
+ # To create output files named page.html rather than page/index.html.
+ #usedirs => 0,
+ # Simple spam prevention: require an account-creation password.
+ #account_creation_password => "example",
+ # Cost of generating a password using Authen::Passphrase::BlowfishCrypt
+ #password_cost => 8,
+ # Uncomment to force ikiwiki to run with a particular umask.
+ #umask => 022,
+ # Default settings for the recentchanges page.
+ #recentchangespage => "recentchanges",
+ #recentchangesnum => 100,
+ # Use new '!'-prefixed preprocessor directive syntax
+ #prefix_directives => 1,
+ # Attempt to make hardlinks to source files instead of copying them.
+ # Useful if the wiki contains large media files.
+ #hardlink => 1,
+ # Enable use of multimarkdown features in .mdwn files.
+ #multimarkdown => 1,
+
+ # To add plugins, list them here.
+ #add_plugins => [qw{goodstuff search wikitext camelcase
+ # htmltidy fortune sidebar map rst anonok}],
+ # If you want to disable any of the default plugins, list them here.
+ #disable_plugins => [qw{inline htmlscrubber passwordauth openid}],
+ # To add a directory to the perl search path, use this.
+ #libdir => "/home/me/private_webdata/samplewiki/perl",
+
+ # To override environment variable settings, you can list values here.
+ #ENV => {
+ # TZ => "America/New_York",
+ # PATH => "/home/me/bin:/usr/local/bin:/usr/bin:/bin",
+ #},
+
+ # For use with the tag plugin, make all tags be located under a
+ # base page.
+ #tagbase => "tag",
+
+ # For use with the search plugin if the omega cgi is located
+ # somewhere else.
+ #omega_cgi => "/usr/lib/cgi-bin/omega/omega",
+
+ # For use with the openid plugin, to give an url to a page users
+ # can use to signup for an OpenID.
+ #openidsignup => "http://myopenid.com/",
+
+ # For use with the mirrorlist plugin, a list of mirrors.
+ #mirrorlist => {
+ # mirror1 => "http://hostname1",
+ # mirror2 => "http://hostname2/mirror",
+ #},
+
+ # For use with the anonok plugin, a PageSpec specifying what
+ # pages anonymous users can edit
+ #anonok_pagespec => "*",
+
+ # For use with the aggregate plugin.
+ # Enable aggregation to internal pages. New wikis should set this to 1,
+ # but if you use aggregate already, read the aggregate plugin docs
+ # before enabling it.
+ #aggregateinternal => 1,
+ # Allow aggregation to be triggered via the web.
+ #aggregate_webtrigger => 1,
+
+ # For use with the pinger plugin, how many seconds to wait before
+ # timing out.
+ #pinger_timeout => 15.
+
+ # For use with the amazon S3 plugin, your public access key id.
+ #amazon_s3_key_id => 'XXXXXXXXXXXXXXXXXXXX',
+ # And a file holding your secret key. This file *must* not be
+ # readable by others!
+ #amazon_s3_key_file => "/home/me/secret_webdata/s3_key
+ # The globally unique name of the bucket to use to store the wiki.
+ #amazon_s3_bucket => "mywiki",
+ # A prefix to prepend to each page name.
+ #amazon_s3_prefix => "wiki/",
+ # Uncomment to use the S3 European datacenter.
+ #amazon_s3_location => "EU",
+ # Uncomment if you need to store each index file twice.
+ #amazon_s3_dupindex => 1,
+
+ # For use with the attachment plugin, a program that returns
+ # nonzero if its standard input contains an virus.
+ #virus_checker => "clamdscan -",
+}
diff --git a/perl/IkiWiki/Plugin/farbar.pm b/perl/IkiWiki/Plugin/farbar.pm
new file mode 100644
index 0000000..ab4390a
--- /dev/null
+++ b/perl/IkiWiki/Plugin/farbar.pm
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+# Farbar plugin.
+# by Jonas Smedegaard <dr@jones.dk>
+# Heavily based on Sidebar by Tuomo Valkonen <tuomov at iki dot fi>
+
+package IkiWiki::Plugin::farbar;
+
+use warnings;
+use strict;
+use IkiWiki 2.00;
+
+sub import { #{{{
+ hook(type => "pagetemplate", id => "farbar", call => \&pagetemplate);
+} # }}}
+
+sub farbar_content ($) { #{{{
+ my $page=shift;
+
+ my $farbar_page=bestlink($page, "farbar") || return;
+ my $farbar_file=$pagesources{$farbar_page} || return;
+ my $farbar_type=pagetype($farbar_file);
+
+ if (defined $farbar_type) {
+ # FIXME: This isn't quite right; it won't take into account
+ # adding a new farbar page. So adding such a page
+ # currently requires a wiki rebuild.
+ add_depends($page, $farbar_page);
+
+ my $content=readfile(srcfile($farbar_file));
+ return unless length $content;
+ return IkiWiki::htmlize($farbar_page, $page, $farbar_type,
+ IkiWiki::linkify($farbar_page, $page,
+ IkiWiki::preprocess($farbar_page, $page,
+ IkiWiki::filter($farbar_page, $page, $content))));
+ }
+
+} # }}}
+
+sub pagetemplate (@) { #{{{
+ my %params=@_;
+
+ my $page=$params{page};
+ my $template=$params{template};
+
+ if ($template->query(name => "farbar")) {
+ my $content=farbar_content($page);
+ if (defined $content && length $content) {
+ $template->param(farbar => $content);
+ }
+ }
+} # }}}
+
+1
diff --git a/perl/IkiWiki/Plugin/topbar.pm b/perl/IkiWiki/Plugin/topbar.pm
new file mode 100644
index 0000000..aa62a11
--- /dev/null
+++ b/perl/IkiWiki/Plugin/topbar.pm
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+# Topbar plugin.
+# by Jonas Smedegaard <dr@jones.dk>
+# Heavily based on Sidebar by Tuomo Valkonen <tuomov at iki dot fi>
+
+package IkiWiki::Plugin::topbar;
+
+use warnings;
+use strict;
+use IkiWiki 2.00;
+
+sub import { #{{{
+ hook(type => "pagetemplate", id => "topbar", call => \&pagetemplate);
+} # }}}
+
+sub topbar_content ($) { #{{{
+ my $page=shift;
+
+ my $topbar_page=bestlink($page, "topbar") || return;
+ my $topbar_file=$pagesources{$topbar_page} || return;
+ my $topbar_type=pagetype($topbar_file);
+
+ if (defined $topbar_type) {
+ # FIXME: This isn't quite right; it won't take into account
+ # adding a new topbar page. So adding such a page
+ # currently requires a wiki rebuild.
+ add_depends($page, $topbar_page);
+
+ my $content=readfile(srcfile($topbar_file));
+ return unless length $content;
+ return IkiWiki::htmlize($topbar_page, $page, $topbar_type,
+ IkiWiki::linkify($topbar_page, $page,
+ IkiWiki::preprocess($topbar_page, $page,
+ IkiWiki::filter($topbar_page, $page, $content))));
+ }
+
+} # }}}
+
+sub pagetemplate (@) { #{{{
+ my %params=@_;
+
+ my $page=$params{page};
+ my $template=$params{template};
+
+ if ($template->query(name => "topbar")) {
+ my $content=topbar_content($page);
+ if (defined $content && length $content) {
+ $template->param(topbar => $content);
+ }
+ }
+} # }}}
+
+1