summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile12
-rw-r--r--ikiwiki_da.setup (renamed from ikiwiki.setup)16
-rw-r--r--ikiwiki_da_admin.setup162
-rw-r--r--perl/IkiWiki/Plugin/farbar.pm53
-rw-r--r--perl/IkiWiki/Plugin/topbar.pm53
5 files changed, 285 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 9cf8814..b0d19db 100644
--- a/Makefile
+++ b/Makefile
@@ -4,22 +4,22 @@ ikiwiki_VERSION = 2.62.1
# 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
+ikiwiki_LOCALES = da
# 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_da_admin.setup ikiwiki_da.setup
# Everything after this is generic
diff --git a/ikiwiki.setup b/ikiwiki_da.setup
index 3b28c97..c8148ef 100644
--- a/ikiwiki.setup
+++ b/ikiwiki_da.setup
@@ -11,13 +11,19 @@ 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",
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",
+ templatedir => $ENV{'HOME'} . "/private_webdata/samplewiki/templates_nonedit_l10n/da",
+ underlaydirs => [
+ $ENV{'HOME'} . "/private_webdata/samplewiki/content",
+ #$ENV{'HOME'} . "/private_webdata/samplewiki/smiley_l10n/da",
+ $ENV{'HOME'} . "/private_webdata/samplewiki/basewiki_nonedit_l10n/da",
+ ],
+ # Some plugins (smiley in particular) need non-localized master underlay
+ underlaydir => $ENV{'HOME'} . "/private_webdata/samplewiki/basewiki_nonedit",
# Git stuff.
#rcs => "git",
@@ -38,7 +44,7 @@ use IkiWiki::Setup::Standard {
# # 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",
+ # wrapper => $ENV{'HOME'} . "/public_websites/git.example.org/samplewiki_content.git/hooks/post-update-ikiwiki-da",
# wrappermode => "06755",
#},
],
@@ -62,7 +68,7 @@ use IkiWiki::Setup::Standard {
# Time format (for strftime)
#timeformat => '%c',
# Locale to use. Must be a UTF-8 locale.
- #locale => 'en_US.UTF-8',
+ locale => 'da_DK.UTF-8',
# Only send cookies over SSL connections.
#sslcookie => 1,
# Logging settings:
diff --git a/ikiwiki_da_admin.setup b/ikiwiki_da_admin.setup
new file mode 100644
index 0000000..c6df093
--- /dev/null
+++ b/ikiwiki_da_admin.setup
@@ -0,0 +1,162 @@
+#!/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/admin.example.org",
+
+ url => "http://admin.example.org",
+ cgiurl => "http://admin.example.org/ikiwiki.cgi",
+ templatedir => $ENV{'HOME'} . "/private_webdata/samplewiki/templates_l10n/da",
+ underlaydirs => [
+ #$ENV{'HOME'} . "/private_webdata/samplewiki/smiley_l10n/da",
+ $ENV{'HOME'} . "/private_webdata/samplewiki/basewiki_l10n/da",
+ ],
+ # Some plugins (smiley in particular) need non-localized master underlay
+ underlaydir => $ENV{'HOME'} . "/private_webdata/samplewiki/basewiki",
+
+ # 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",
+
+ wrappers => [
+ #{
+ # # The cgi wrapper.
+ # cgi => 1,
+ # wrapper => $ENV{'HOME'} . "/public_cgi/admin.example.org/ikiwiki.cgi",
+ # wrappermode => "06755",
+ #},
+ #{
+ # # 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-da-admin",
+ # 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 => 'da_DK.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