summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--.gitmodules36
-rw-r--r--Makefile4
-rw-r--r--README3
m---------basewiki_da0
m---------basewiki_nb0
m---------directives_da0
m---------directives_nb0
-rw-r--r--ikiwiki.setup13
-rw-r--r--ikiwiki_admin.setup234
-rw-r--r--ikiwiki_da.setup95
-rw-r--r--ikiwiki_da_admin.setup234
-rw-r--r--ikiwiki_nb.setup95
-rw-r--r--ikiwiki_nb_admin.setup234
m---------javascript_da0
m---------javascript_nb0
m---------openid-selector_da0
m---------openid-selector_nb0
-rw-r--r--perl/IkiWiki/Plugin/farbar.pm110
-rw-r--r--perl/IkiWiki/Plugin/topbar.pm110
m---------smiley_da0
m---------smiley_nb0
m---------templates0
m---------templates_da0
m---------templates_nb0
25 files changed, 1026 insertions, 145 deletions
diff --git a/.gitignore b/.gitignore
index 0ff330c..83d0833 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,9 @@
/basewiki_l10n
/basewiki_nonedit_l10n
+/content_l10n
/content_dummy
+/content_dummy_da
+/content_dummy_nb
/directives_l10n
/smiley_l10n
/templates_l10n
diff --git a/.gitmodules b/.gitmodules
index fb39a3a..876514e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,18 +10,30 @@
[submodule "templates"]
path = templates
url = git://source.jones.dk/ikiwiki/templates
-[submodule "basewiki_nb"]
- path = basewiki_nb
- url = git://source.jones.dk/ikiwiki/basewiki
-[submodule "templates_nb"]
- path = templates_nb
- url = git://source.jones.dk/ikiwiki/templates
[submodule "basewiki_da"]
path = basewiki_da
url = git://source.jones.dk/ikiwiki/basewiki
[submodule "templates_da"]
path = templates_da
url = git://source.jones.dk/ikiwiki/templates
+[submodule "basewiki_nb"]
+ path = basewiki_nb
+ url = git://source.jones.dk/ikiwiki/basewiki
+[submodule "templates_nb"]
+ path = templates_nb
+ url = git://source.jones.dk/ikiwiki/templates
+[submodule "directives_da"]
+ path = directives_da
+ url = git://source.jones.dk/ikiwiki/directives
+[submodule "directives_nb"]
+ path = directives_nb
+ url = git://source.jones.dk/ikiwiki/directives
+[submodule "smiley_da"]
+ path = smiley_da
+ url = git://source.jones.dk/ikiwiki/smiley
+[submodule "smiley_nb"]
+ path = smiley_nb
+ url = git://source.jones.dk/ikiwiki/smiley
[submodule "javascript"]
path = javascript
url = git://source.jones.dk/ikiwiki/javascript
@@ -31,3 +43,15 @@
[submodule "themes"]
path = themes
url = git://source.jones.dk/ikiwiki/themes
+[submodule "javascript_da"]
+ path = javascript_da
+ url = git://source.jones.dk/ikiwiki/javascript
+[submodule "openid-selector_da"]
+ path = openid-selector_da
+ url = git://source.jones.dk/ikiwiki/openid-selector
+[submodule "javascript_nb"]
+ path = javascript_nb
+ url = git://source.jones.dk/ikiwiki/javascript
+[submodule "openid-selector_nb"]
+ path = openid-selector_nb
+ url = git://source.jones.dk/ikiwiki/openid-selector
diff --git a/Makefile b/Makefile
index 42aaafc..0116a64 100644
--- a/Makefile
+++ b/Makefile
@@ -9,10 +9,10 @@ ikiwiki_LOCALES = da nb
#ikiwiki_POMODULES = basewiki smiley directives
#ikiwiki_POLOCALES = da
-#dummy_MODULES = content_dummy
+dummy_MODULES = content_dummy content_dummy_da content_dummy_nb
# uncomment this when ikiwiki.setup is configured for the local environment
-#CONFIGS = ikiwiki_da.setup ikiwiki_nb.setup ikiwiki.setup
+#CONFIGS = ikiwiki_da_admin.setup ikiwiki_nb_admin.setup ikiwiki_admin.setup ikiwiki_da.setup ikiwiki_nb.setup ikiwiki.setup
# Everything after this is generic
diff --git a/README b/README
index 5f4302c..da044bf 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/basewiki_da b/basewiki_da
-Subproject 320795e6d83f5d9fa2fefdcdd3f28cf1033243b
+Subproject a9f5af6289d5b5b3b7c92fc3b958f325e36ab91
diff --git a/basewiki_nb b/basewiki_nb
-Subproject ef6324a81724619a7811a964200208f5c808ac1
+Subproject d298a5fe6aa3f3308377635adb64f67834433ea
diff --git a/directives_da b/directives_da
new file mode 160000
+Subproject 6634fec4377c1d358edc87c3819c280a9e27338
diff --git a/directives_nb b/directives_nb
new file mode 160000
+Subproject 6634fec4377c1d358edc87c3819c280a9e27338
diff --git a/ikiwiki.setup b/ikiwiki.setup
index dd5e1eb..553274b 100644
--- a/ikiwiki.setup
+++ b/ikiwiki.setup
@@ -25,7 +25,7 @@ use IkiWiki::Setup::Standard {
# users who are banned from the wiki
banned_users => [],
# where the source of the wiki is located
- srcdir => $basedir . '/content',
+ srcdir => $basedir . '/content_dummy',
# where to build the wiki
destdir => $builddir . '/html',
# base url to the wiki
@@ -43,10 +43,14 @@ use IkiWiki::Setup::Standard {
}],
# plugins to disable
disable_plugins => [qw{
+ editpage
}],
# location of template files
templatedir => $basedir . '/templates',
# base wiki source location
+ underlaydirs => [
+ $basedir . '/content',
+ ],
underlaydir => $basedir . '/basewiki',
# display verbose messages when building?
#verbose => 1,
@@ -224,4 +228,11 @@ use IkiWiki::Setup::Standard {
#websetup_force_plugins => [],
# show unsafe settings, read-only, in web interface?
#websetup_show_unsafe => 1,
+
+ # varioki plugin (strings are eval'ed: double-quote actual strings!)
+ #varioki => {
+ # 'branding_logo_text' => '"Example Website"',
+ # 'branding_logo' => '"logo.png"',
+ # 'branding_logo_tagline' => '"Yet another ikiwiki site!"',
+ #},
}
diff --git a/ikiwiki_admin.setup b/ikiwiki_admin.setup
new file mode 100644
index 0000000..4b1a077
--- /dev/null
+++ b/ikiwiki_admin.setup
@@ -0,0 +1,234 @@
+#!/usr/bin/perl
+# Setup 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.
+
+our ($basedir, $builddir, $domain, $gitrepo);
+BEGIN {
+ # git hook requires full path as basedir: $ENV{'HOME'} . '/mywiki'
+ $basedir = $ENV{'SRCDIR'} || $ENV{'PWD'};
+ $builddir = $ENV{'BUILDDIR'} || $basedir . '/build';
+ $domain = 'example.org';
+ $gitrepo = 'wiki';
+}
+
+use IkiWiki::Setup::Standard {
+ # name of the wiki
+ wikiname => 'MyWiki',
+ # contact email for wiki
+ #adminemail => 'me@' . $domain,
+ # users who are wiki admins
+ adminuser => [],
+ # users who are banned from the wiki
+ banned_users => [],
+ # where the source of the wiki is located
+ srcdir => $basedir . '/content',
+ # where to build the wiki
+ destdir => $builddir . '/html-admin',
+ # base url to the wiki
+ url => 'http://admin.' . $domain . '/',
+ # url to the ikiwiki.cgi
+ cgiurl => 'http://admin.' . $domain . '/ikiwiki.cgi',
+ # cgi wrapper to generate
+ cgi_wrapper => $builddir . '/cgi-admin/ikiwiki.cgi',
+ # mode for cgi_wrapper (can safely be made suid)
+ cgi_wrappermode => '00755',
+ # rcs backend to use
+ rcs => 'git',
+ # plugins to add to the default configuration
+ add_plugins => [qw{
+ }],
+ # plugins to disable
+ disable_plugins => [qw{
+ }],
+ # location of template files
+ templatedir => $basedir . '/templates',
+ # base wiki source location
+ underlaydir => $basedir . '/basewiki',
+ # display verbose messages when building?
+ #verbose => 1,
+ # log to syslog?
+ #syslog => 1,
+ # create output files named page/index.html?
+ usedirs => 1,
+ # use '!'-prefixed preprocessor directives?
+ prefix_directives => 1,
+ # use page/index.mdwn source files
+ indexpages => 0,
+ # enable Discussion pages?
+ discussion => 1,
+ # only send cookies over SSL connections?
+ sslcookie => 0,
+ # extension to use for new pages
+ default_pageext => 'mdwn',
+ # extension to use for html files
+ htmlext => 'html',
+ # strftime format string to display date
+ timeformat => '%c',
+ # UTF-8 locale to use
+ locale => 'en_US.UTF-8',
+ # put user pages below specified page
+ userdir => '',
+ # how many backlinks to show before hiding excess (0 to show all)
+ numbacklinks => 10,
+ # attempt to hardlink source files? (optimisation for large files)
+ hardlink => 0,
+ # force ikiwiki to use a particular umask
+ #umask => 022,
+ # extra library and plugin directory
+ libdir => $basedir . '/perl',
+ # environment variables
+ ENV => {},
+ # regexp of source files to ignore
+ #exclude => '\\.wav$',
+ # specifies the characters that are allowed in source filenames
+ wiki_file_chars => '-[:alnum:]+/.:_',
+ # allow symlinks in the path leading to the srcdir (potentially insecure)
+ allow_symlinks_before_srcdir => 0,
+
+ # aggregate plugin
+ # enable aggregation to internal pages?
+ #aggregateinternal => 0,
+ # allow aggregation to be triggered via the web?
+ #aggregate_webtrigger => 0,
+
+ # amazon_s3 plugin
+ # public access key id
+ #amazon_s3_key_id => 'XXXXXXXXXXXXXXXXXXXX',
+ # file holding secret key (must not be readable by others!)
+ #amazon_s3_key_id => 's3_key',
+ # globally unique name of bucket to store wiki in
+ #amazon_s3_bucket => 'mywiki',
+ # a prefix to prepend to each page name
+ #amazon_s3_prefix => 'wiki/',
+ # which S3 datacenter to use (leave blank for default)
+ #amazon_s3_location => 'EU',
+ # store each index file twice? (allows urls ending in "/index.html" and "/")
+ #amazon_s3_dupindex => 0,
+
+ # anonok plugin
+ # PageSpec to limit which pages anonymous users can edit
+ #anonok_pagespec => '*/discussion',
+
+ # attachment plugin
+ # enhanced PageSpec specifying what attachments are allowed
+ #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)',
+ # virus checker program (reads STDIN, returns nonzero if virus found)
+ #virus_checker => 'clamdscan -',
+
+ # calendar plugin
+ # base of the archives hierarchy
+ #archivebase => 'archives',
+
+ # git plugin
+ # git hook to generate
+ git_wrapper => $builddir . '/git/post-update-ikiwiki-admin',
+ # mode for git_wrapper (can safely be made suid)
+ git_wrappermode => '06755',
+ # gitweb url to show file history ([[file]] substituted)
+ historyurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=history;f=[[file]]', # ;hb=master
+ # gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], and [[file]] substituted)
+ diffurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
+ # where to pull and push changes (set to empty string to disable)
+ #gitorigin_branch => 'samplewiki',
+ # branch that the wiki is stored in
+ #gitmaster_branch => 'master',
+
+ # htmlscrubber plugin
+ # PageSpec specifying pages not to scrub
+ #htmlscrubber_skip => '!*/Discussion',
+
+ # inline plugin
+ # enable rss feeds by default?
+ #rss => 0,
+ # enable atom feeds by default?
+ #atom => 0,
+ # allow rss feeds to be used?
+ #allowrss => 0,
+ # allow atom feeds to be used?
+ #allowatom => 0,
+ # urls to ping (using XML-RPC) on feed update
+ #pingurl => 'http://rpc.technorati.com/rpc/ping',
+
+ # listdirectives plugin
+ # directory in srcdir that contains directive descriptions
+ #directive_description_dir => 'ikiwiki/directive',
+
+ # lockedit plugin
+ # PageSpec controlling which pages are locked
+ #locked_pages => '!*/Discussion',
+
+ # mdwn plugin
+ # enable multimarkdown features?
+ #multimarkdown => 0,
+
+ # mirrorlist plugin
+ # list of mirrors
+ #mirrorlist => {},
+
+ # openid plugin
+ # an url where users can signup for an OpenID
+ #openidsignup => 'http://myopenid.com/',
+
+ # passwordauth plugin
+ # a password that must be entered when signing up for an account
+ #account_creation_password => 's3cr1t',
+ # cost of generating a password using Authen::Passphrase::BlowfishCrypt
+ #password_cost => 8,
+
+ # pinger plugin
+ # how many seconds to try pinging before timing out
+ #pinger_timeout => 15,
+
+ # prettydate plugin
+ # format to use to display date
+ #prettydateformat => '%X, %B %o, %Y',
+
+ # recentchanges plugin
+ # name of the recentchanges page
+ #recentchangespage => 'recentchanges',
+ # number of changes to track
+ #recentchangesnum => 100,
+
+ # search plugin
+ # path to the omega cgi program
+ #omega_cgi => '/usr/lib/cgi-bin/omega/omega',
+
+ # tag plugin
+ # parent page tags are located under
+ #tagbase => 'tag',
+
+ # teximg plugin
+ # Should teximg use dvipng to render, or dvips and convert?
+ #teximg_dvipng => '',
+ # LaTeX prefix for teximg plugin
+ #teximg_prefix => '\\documentclass{article}
+ #\\usepackage{amsmath}
+ #\\usepackage{amsfonts}
+ #\\usepackage{amssymb}
+ #\\pagestyle{empty}
+ #\\begin{document}
+ #',
+ # LaTeX postfix for teximg plugin
+ #teximg_postfix => '\\end{document}',
+
+ # typography plugin
+ # Text::Typography attributes value
+ #typographyattributes => '3',
+
+ # websetup plugin
+ # list of plugins that cannot be enabled/disabled via the web interface
+ #websetup_force_plugins => [],
+ # show unsafe settings, read-only, in web interface?
+ #websetup_show_unsafe => 1,
+
+ # varioki plugin (strings are eval'ed: double-quote actual strings!)
+ #varioki => {
+ # 'branding_logo_text' => '"Example Website"',
+ # 'branding_logo' => '"logo.png"',
+ # 'branding_logo_tagline' => '"Yet another ikiwiki site!"',
+ #},
+}
diff --git a/ikiwiki_da.setup b/ikiwiki_da.setup
index 1e8a2a7..469a7d5 100644
--- a/ikiwiki_da.setup
+++ b/ikiwiki_da.setup
@@ -6,20 +6,12 @@
#
# Remember to re-run ikiwiki --setup any time you edit this file.
-our $libdir;
-our $webdir;
-our $cgidir;
-our $gitdir;
-our $webhost;
-our $githost;
-our $gitrepo;
+our ($basedir, $builddir, $domain, $gitrepo);
BEGIN {
- $libdir = $ENV{'PWD'} . '/perl';
- $webdir = 'build/html';
- $cgidir = 'build/cgi';
- $gitdir = 'build/git';
- $webhost = 'wiki.example.org';
- $githost = 'git.example.org';
+ # git hook requires full path as basedir: $ENV{'HOME'} . '/mywiki'
+ $basedir = $ENV{'SRCDIR'} || $ENV{'PWD'};
+ $builddir = $ENV{'BUILDDIR'} || $basedir . '/build';
+ $domain = 'example.org';
$gitrepo = 'wiki';
}
@@ -27,21 +19,21 @@ use IkiWiki::Setup::Standard {
# name of the wiki
wikiname => 'MyWiki',
# contact email for wiki
- #adminemail => 'me@example.org',
+ #adminemail => 'me@' . $domain,
# users who are wiki admins
adminuser => [],
# users who are banned from the wiki
banned_users => [],
# where the source of the wiki is located
- srcdir => 'content_da',
+ srcdir => $basedir . '/content_dummy_da',
# where to build the wiki
- destdir => $webdir,
+ destdir => $builddir . '/html',
# base url to the wiki
- url => 'http://' . $webhost . '/',
+ url => 'http://wiki.' . $domain . '/',
# url to the ikiwiki.cgi
- cgiurl => 'http://' . $webhost . '/ikiwiki.da.cgi',
+ cgiurl => 'http://wiki.' . $domain . '/ikiwiki.da.cgi',
# cgi wrapper to generate
- cgi_wrapper => $cgidir . '/ikiwiki.da.cgi',
+ cgi_wrapper => $builddir . '/cgi/ikiwiki.da.cgi',
# mode for cgi_wrapper (can safely be made suid)
cgi_wrappermode => '00755',
# rcs backend to use
@@ -51,11 +43,15 @@ use IkiWiki::Setup::Standard {
}],
# plugins to disable
disable_plugins => [qw{
+ editpage
}],
# location of template files
- templatedir => 'templates_da',
+ templatedir => $basedir . '/templates_da',
# base wiki source location
- underlaydir => 'basewiki_da',
+ underlaydirs => [
+ $basedir . '/content',
+ ],
+ underlaydir => $basedir . '/basewiki_da',
# display verbose messages when building?
#verbose => 1,
# log to syslog?
@@ -87,7 +83,7 @@ use IkiWiki::Setup::Standard {
# force ikiwiki to use a particular umask
#umask => 022,
# extra library and plugin directory
- libdir => $libdir,
+ libdir => $basedir . '/perl',
# environment variables
ENV => {},
# regexp of source files to ignore
@@ -127,16 +123,6 @@ use IkiWiki::Setup::Standard {
# virus checker program (reads STDIN, returns nonzero if virus found)
#virus_checker => 'clamdscan -',
- # bzr plugin
- # bzr post-commit hook to generate
- #bzr_wrapper => '',
- # mode for bzr_wrapper (can safely be made suid)
- #bzr_wrappermode => '06755',
- # url to show file history, using loggerhead ([[file]] substituted)
- #historyurl => '',
- # url to view a diff, using loggerhead ([[file]] and [[r2]] substituted)
- #diffurl => 'http://example.org/revision?start_revid=[[r2]]#[[file]]-s',
-
# calendar plugin
# base of the archives hierarchy
#archivebase => 'archives',
@@ -147,9 +133,9 @@ use IkiWiki::Setup::Standard {
# mode for git_wrapper (can safely be made suid)
git_wrappermode => '06755',
# gitweb url to show file history ([[file]] substituted)
- #historyurl => 'http://' . $githost . '/gitweb.cgi?p=' . $gitrepo . '.git;a=history;f=[[file]];hb=master-da',
+ #historyurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=history;f=[[file]];hb=master-da',
# gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], and [[file]] substituted)
- #diffurl => 'http://' . $githost . '/gitweb.cgi?p=' . $gitrepo . '.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
+ #diffurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
# where to pull and push changes (set to empty string to disable)
#gitorigin_branch => 'samplewiki',
# branch that the wiki is stored in
@@ -183,16 +169,6 @@ use IkiWiki::Setup::Standard {
# enable multimarkdown features?
#multimarkdown => 0,
- # mercurial plugin
- # mercurial post-commit hook to generate
- #mercurial_wrapper => '',
- # mode for mercurial_wrapper (can safely be made suid)
- #mercurial_wrappermode => '06755',
- # url to hg serve'd repository, to show file history ([[file]] substituted)
- #historyurl => 'http://example.org:8000/log/tip/[[file]]',
- # url to hg serve'd repository, to show diff ([[file]] and [[r2]] substituted)
- #diffurl => 'http://localhost:8000/?fd=[[r2]];file=[[file]]',
-
# mirrorlist plugin
# list of mirrors
#mirrorlist => {},
@@ -225,20 +201,6 @@ use IkiWiki::Setup::Standard {
# path to the omega cgi program
#omega_cgi => '/usr/lib/cgi-bin/omega/omega',
- # svn plugin
- # subversion repository location
- #svnrepo => '/svn/wiki',
- # path inside repository where the wiki is located
- #svnpath => 'trunk',
- # svn post-commit hook to generate
- #svn_wrapper => '/svn/wikirepo/hooks/post-commit',
- # mode for svn_wrapper (can safely be made suid)
- #svn_wrappermode => '04755',
- # viewvc url to show file history ([[file]] substituted)
- #historyurl => 'http://svn.example.org/trunk/[[file]]',
- # viewvc url to show a diff ([[file]], [[r1]], and [[r2]] substituted)
- #diffurl => 'http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]',
-
# tag plugin
# parent page tags are located under
#tagbase => 'tag',
@@ -257,16 +219,6 @@ use IkiWiki::Setup::Standard {
# LaTeX postfix for teximg plugin
#teximg_postfix => '\\end{document}',
- # tla plugin
- # tla post-commit hook to generate
- #tla_wrapper => '',
- # mode for tla_wrapper (can safely be made suid)
- #tla_wrappermode => '06755',
- # url to show file history ([[file]] substituted)
- #historyurl => '',
- # url to show a diff ([[file]] and [[rev]] substituted)
- #diffurl => '',
-
# typography plugin
# Text::Typography attributes value
#typographyattributes => '3',
@@ -276,4 +228,11 @@ use IkiWiki::Setup::Standard {
#websetup_force_plugins => [],
# show unsafe settings, read-only, in web interface?
#websetup_show_unsafe => 1,
+
+ # varioki plugin (strings are eval'ed: double-quote actual strings!)
+ #varioki => {
+ # 'branding_logo_text' => '"Example Website"',
+ # 'branding_logo' => '"logo.png"',
+ # 'branding_logo_tagline' => '"Yet another ikiwiki site!"',
+ #},
}
diff --git a/ikiwiki_da_admin.setup b/ikiwiki_da_admin.setup
new file mode 100644
index 0000000..7e707a7
--- /dev/null
+++ b/ikiwiki_da_admin.setup
@@ -0,0 +1,234 @@
+#!/usr/bin/perl
+# Setup 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.
+
+our ($basedir, $builddir, $domain, $gitrepo);
+BEGIN {
+ # git hook requires full path as basedir: $ENV{'HOME'} . '/mywiki'
+ $basedir = $ENV{'SRCDIR'} || $ENV{'PWD'};
+ $builddir = $ENV{'BUILDDIR'} || $basedir . '/build';
+ $domain = 'example.org';
+ $gitrepo = 'wiki';
+}
+
+use IkiWiki::Setup::Standard {
+ # name of the wiki
+ wikiname => 'MyWiki',
+ # contact email for wiki
+ #adminemail => 'me@' . $domain,
+ # users who are wiki admins
+ adminuser => [],
+ # users who are banned from the wiki
+ banned_users => [],
+ # where the source of the wiki is located
+ srcdir => $basedir . '/content_da',
+ # where to build the wiki
+ destdir => $builddir . '/html-da-admin',
+ # base url to the wiki
+ url => 'http://admin.da.' . $domain . '/',
+ # url to the ikiwiki.cgi
+ cgiurl => 'http://admin.da.' . $domain . '/ikiwiki.cgi',
+ # cgi wrapper to generate
+ cgi_wrapper => $builddir . '/cgi-da-admin/ikiwiki.cgi',
+ # mode for cgi_wrapper (can safely be made suid)
+ cgi_wrappermode => '00755',
+ # rcs backend to use
+ rcs => 'git',
+ # plugins to add to the default configuration
+ add_plugins => [qw{
+ }],
+ # plugins to disable
+ disable_plugins => [qw{
+ }],
+ # location of template files
+ templatedir => $basedir . '/templates_da',
+ # base wiki source location
+ underlaydir => $basedir . '/basewiki_da',
+ # display verbose messages when building?
+ #verbose => 1,
+ # log to syslog?
+ #syslog => 1,
+ # create output files named page/index.html?
+ usedirs => 1,
+ # use '!'-prefixed preprocessor directives?
+ prefix_directives => 1,
+ # use page/index.mdwn source files
+ indexpages => 0,
+ # enable Discussion pages?
+ discussion => 1,
+ # only send cookies over SSL connections?
+ sslcookie => 0,
+ # extension to use for new pages
+ default_pageext => 'mdwn',
+ # extension to use for html files
+ htmlext => 'html',
+ # strftime format string to display date
+ timeformat => '%c',
+ # UTF-8 locale to use
+ locale => 'da_DK.UTF-8',
+ # put user pages below specified page
+ userdir => '',
+ # how many backlinks to show before hiding excess (0 to show all)
+ numbacklinks => 10,
+ # attempt to hardlink source files? (optimisation for large files)
+ hardlink => 0,
+ # force ikiwiki to use a particular umask
+ #umask => 022,
+ # extra library and plugin directory
+ libdir => $basedir . '/perl',
+ # environment variables
+ ENV => {},
+ # regexp of source files to ignore
+ #exclude => '\\.wav$',
+ # specifies the characters that are allowed in source filenames
+ wiki_file_chars => '-[:alnum:]+/.:_',
+ # allow symlinks in the path leading to the srcdir (potentially insecure)
+ allow_symlinks_before_srcdir => 0,
+
+ # aggregate plugin
+ # enable aggregation to internal pages?
+ #aggregateinternal => 0,
+ # allow aggregation to be triggered via the web?
+ #aggregate_webtrigger => 0,
+
+ # amazon_s3 plugin
+ # public access key id
+ #amazon_s3_key_id => 'XXXXXXXXXXXXXXXXXXXX',
+ # file holding secret key (must not be readable by others!)
+ #amazon_s3_key_id => 's3_key',
+ # globally unique name of bucket to store wiki in
+ #amazon_s3_bucket => 'mywiki',
+ # a prefix to prepend to each page name
+ #amazon_s3_prefix => 'wiki/',
+ # which S3 datacenter to use (leave blank for default)
+ #amazon_s3_location => 'EU',
+ # store each index file twice? (allows urls ending in "/index.html" and "/")
+ #amazon_s3_dupindex => 0,
+
+ # anonok plugin
+ # PageSpec to limit which pages anonymous users can edit
+ #anonok_pagespec => '*/discussion',
+
+ # attachment plugin
+ # enhanced PageSpec specifying what attachments are allowed
+ #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)',
+ # virus checker program (reads STDIN, returns nonzero if virus found)
+ #virus_checker => 'clamdscan -',
+
+ # calendar plugin
+ # base of the archives hierarchy
+ #archivebase => 'archives',
+
+ # git plugin
+ # git hook to generate
+ git_wrapper => $builddir . '/git/post-update-ikiwiki-da-admin',
+ # mode for git_wrapper (can safely be made suid)
+ git_wrappermode => '06755',
+ # gitweb url to show file history ([[file]] substituted)
+ historyurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=history;f=[[file]];hb=master-da',
+ # gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], and [[file]] substituted)
+ diffurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
+ # where to pull and push changes (set to empty string to disable)
+ #gitorigin_branch => 'samplewiki',
+ # branch that the wiki is stored in
+ #gitmaster_branch => 'master-da',
+
+ # htmlscrubber plugin
+ # PageSpec specifying pages not to scrub
+ #htmlscrubber_skip => '!*/Discussion',
+
+ # inline plugin
+ # enable rss feeds by default?
+ #rss => 0,
+ # enable atom feeds by default?
+ #atom => 0,
+ # allow rss feeds to be used?
+ #allowrss => 0,
+ # allow atom feeds to be used?
+ #allowatom => 0,
+ # urls to ping (using XML-RPC) on feed update
+ #pingurl => 'http://rpc.technorati.com/rpc/ping',
+
+ # listdirectives plugin
+ # directory in srcdir that contains directive descriptions
+ #directive_description_dir => 'ikiwiki/directive',
+
+ # lockedit plugin
+ # PageSpec controlling which pages are locked
+ #locked_pages => '!*/Discussion',
+
+ # mdwn plugin
+ # enable multimarkdown features?
+ #multimarkdown => 0,
+
+ # mirrorlist plugin
+ # list of mirrors
+ #mirrorlist => {},
+
+ # openid plugin
+ # an url where users can signup for an OpenID
+ #openidsignup => 'http://myopenid.com/',
+
+ # passwordauth plugin
+ # a password that must be entered when signing up for an account
+ #account_creation_password => 's3cr1t',
+ # cost of generating a password using Authen::Passphrase::BlowfishCrypt
+ #password_cost => 8,
+
+ # pinger plugin
+ # how many seconds to try pinging before timing out
+ #pinger_timeout => 15,
+
+ # prettydate plugin
+ # format to use to display date
+ #prettydateformat => '%X, %B %o, %Y',
+
+ # recentchanges plugin
+ # name of the recentchanges page
+ #recentchangespage => 'recentchanges',
+ # number of changes to track
+ #recentchangesnum => 100,
+
+ # search plugin
+ # path to the omega cgi program
+ #omega_cgi => '/usr/lib/cgi-bin/omega/omega',
+
+ # tag plugin
+ # parent page tags are located under
+ #tagbase => 'tag',
+
+ # teximg plugin
+ # Should teximg use dvipng to render, or dvips and convert?
+ #teximg_dvipng => '',
+ # LaTeX prefix for teximg plugin
+ #teximg_prefix => '\\documentclass{article}
+ #\\usepackage{amsmath}
+ #\\usepackage{amsfonts}
+ #\\usepackage{amssymb}
+ #\\pagestyle{empty}
+ #\\begin{document}
+ #',
+ # LaTeX postfix for teximg plugin
+ #teximg_postfix => '\\end{document}',
+
+ # typography plugin
+ # Text::Typography attributes value
+ #typographyattributes => '3',
+
+ # websetup plugin
+ # list of plugins that cannot be enabled/disabled via the web interface
+ #websetup_force_plugins => [],
+ # show unsafe settings, read-only, in web interface?
+ #websetup_show_unsafe => 1,
+
+ # varioki plugin (strings are eval'ed: double-quote actual strings!)
+ #varioki => {
+ # 'branding_logo_text' => '"Example Website"',
+ # 'branding_logo' => '"logo.png"',
+ # 'branding_logo_tagline' => '"Yet another ikiwiki site!"',
+ #},
+}
diff --git a/ikiwiki_nb.setup b/ikiwiki_nb.setup
index 3578c72..41126a3 100644
--- a/ikiwiki_nb.setup
+++ b/ikiwiki_nb.setup
@@ -6,20 +6,12 @@
#
# Remember to re-run ikiwiki --setup any time you edit this file.
-our $libdir;
-our $webdir;
-our $cgidir;
-our $gitdir;
-our $webhost;
-our $githost;
-our $gitrepo;
+our ($basedir, $builddir, $domain, $gitrepo);
BEGIN {
- $libdir = $ENV{'PWD'} . '/perl';
- $webdir = 'build/html';
- $cgidir = 'build/cgi';
- $gitdir = 'build/git';
- $webhost = 'wiki.example.org';
- $githost = 'git.example.org';
+ # git hook requires full path as basedir: $ENV{'HOME'} . '/mywiki'
+ $basedir = $ENV{'SRCDIR'} || $ENV{'PWD'};
+ $builddir = $ENV{'BUILDDIR'} || $basedir . '/build';
+ $domain = 'example.org';
$gitrepo = 'wiki';
}
@@ -27,21 +19,21 @@ use IkiWiki::Setup::Standard {
# name of the wiki
wikiname => 'MyWiki',
# contact email for wiki
- #adminemail => 'me@example.org',
+ #adminemail => 'me@' . $domain,
# users who are wiki admins
adminuser => [],
# users who are banned from the wiki
banned_users => [],
# where the source of the wiki is located
- srcdir => 'content_nb',
+ srcdir => $basedir . '/content_dummy_nb',
# where to build the wiki
- destdir => $webdir,
+ destdir => $builddir . '/html',
# base url to the wiki
- url => 'http://' . $webhost . '/',
+ url => 'http://wiki.' . $domain . '/',
# url to the ikiwiki.cgi
- cgiurl => 'http://' . $webhost . '/ikiwiki.nb.cgi',
+ cgiurl => 'http://wiki.' . $domain . '/ikiwiki.nb.cgi',
# cgi wrapper to generate
- cgi_wrapper => $cgidir . '/ikiwiki.nb.cgi',
+ cgi_wrapper => $builddir . '/cgi/ikiwiki.nb.cgi',
# mode for cgi_wrapper (can safely be made suid)
cgi_wrappermode => '00755',
# rcs backend to use
@@ -51,11 +43,15 @@ use IkiWiki::Setup::Standard {
}],
# plugins to disable
disable_plugins => [qw{
+ editpage
}],
# location of template files
- templatedir => 'templates_nb',
+ templatedir => $basedir . '/templates_nb',
# base wiki source location
- underlaydir => 'basewiki_nb',
+ underlaydirs => [
+ $basedir . '/content',
+ ],
+ underlaydir => $basedir . '/basewiki_nb',
# display verbose messages when building?
#verbose => 1,
# log to syslog?
@@ -87,7 +83,7 @@ use IkiWiki::Setup::Standard {
# force ikiwiki to use a particular umask
#umask => 022,
# extra library and plugin directory
- libdir => $libdir,
+ libdir => $basedir . '/perl',
# environment variables
ENV => {},
# regexp of source files to ignore
@@ -127,16 +123,6 @@ use IkiWiki::Setup::Standard {
# virus checker program (reads STDIN, returns nonzero if virus found)
#virus_checker => 'clamdscan -',
- # bzr plugin
- # bzr post-commit hook to generate
- #bzr_wrapper => '',
- # mode for bzr_wrapper (can safely be made suid)
- #bzr_wrappermode => '06755',
- # url to show file history, using loggerhead ([[file]] substituted)
- #historyurl => '',
- # url to view a diff, using loggerhead ([[file]] and [[r2]] substituted)
- #diffurl => 'http://example.org/revision?start_revid=[[r2]]#[[file]]-s',
-
# calendar plugin
# base of the archives hierarchy
#archivebase => 'archives',
@@ -147,9 +133,9 @@ use IkiWiki::Setup::Standard {
# mode for git_wrapper (can safely be made suid)
git_wrappermode => '06755',
# gitweb url to show file history ([[file]] substituted)
- #historyurl => 'http://' . $githost . '/gitweb.cgi?p=' . $gitrepo . '.git;a=history;f=[[file]];hb=master-nb',
+ #historyurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=history;f=[[file]];hb=master-nb',
# gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], and [[file]] substituted)
- #diffurl => 'http://' . $githost . '/gitweb.cgi?p=' . $gitrepo . '.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
+ #diffurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
# where to pull and push changes (set to empty string to disable)
#gitorigin_branch => 'samplewiki',
# branch that the wiki is stored in
@@ -183,16 +169,6 @@ use IkiWiki::Setup::Standard {
# enable multimarkdown features?
#multimarkdown => 0,
- # mercurial plugin
- # mercurial post-commit hook to generate
- #mercurial_wrapper => '',
- # mode for mercurial_wrapper (can safely be made suid)
- #mercurial_wrappermode => '06755',
- # url to hg serve'd repository, to show file history ([[file]] substituted)
- #historyurl => 'http://example.org:8000/log/tip/[[file]]',
- # url to hg serve'd repository, to show diff ([[file]] and [[r2]] substituted)
- #diffurl => 'http://localhost:8000/?fd=[[r2]];file=[[file]]',
-
# mirrorlist plugin
# list of mirrors
#mirrorlist => {},
@@ -225,20 +201,6 @@ use IkiWiki::Setup::Standard {
# path to the omega cgi program
#omega_cgi => '/usr/lib/cgi-bin/omega/omega',
- # svn plugin
- # subversion repository location
- #svnrepo => '/svn/wiki',
- # path inside repository where the wiki is located
- #svnpath => 'trunk',
- # svn post-commit hook to generate
- #svn_wrapper => '/svn/wikirepo/hooks/post-commit',
- # mode for svn_wrapper (can safely be made suid)
- #svn_wrappermode => '04755',
- # viewvc url to show file history ([[file]] substituted)
- #historyurl => 'http://svn.example.org/trunk/[[file]]',
- # viewvc url to show a diff ([[file]], [[r1]], and [[r2]] substituted)
- #diffurl => 'http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]',
-
# tag plugin
# parent page tags are located under
#tagbase => 'tag',
@@ -257,16 +219,6 @@ use IkiWiki::Setup::Standard {
# LaTeX postfix for teximg plugin
#teximg_postfix => '\\end{document}',
- # tla plugin
- # tla post-commit hook to generate
- #tla_wrapper => '',
- # mode for tla_wrapper (can safely be made suid)
- #tla_wrappermode => '06755',
- # url to show file history ([[file]] substituted)
- #historyurl => '',
- # url to show a diff ([[file]] and [[rev]] substituted)
- #diffurl => '',
-
# typography plugin
# Text::Typography attributes value
#typographyattributes => '3',
@@ -276,4 +228,11 @@ use IkiWiki::Setup::Standard {
#websetup_force_plugins => [],
# show unsafe settings, read-only, in web interface?
#websetup_show_unsafe => 1,
+
+ # varioki plugin (strings are eval'ed: double-quote actual strings!)
+ #varioki => {
+ # 'branding_logo_text' => '"Example Website"',
+ # 'branding_logo' => '"logo.png"',
+ # 'branding_logo_tagline' => '"Yet another ikiwiki site!"',
+ #},
}
diff --git a/ikiwiki_nb_admin.setup b/ikiwiki_nb_admin.setup
new file mode 100644
index 0000000..dc3604a
--- /dev/null
+++ b/ikiwiki_nb_admin.setup
@@ -0,0 +1,234 @@
+#!/usr/bin/perl
+# Setup 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.
+
+our ($basedir, $builddir, $domain, $gitrepo);
+BEGIN {
+ # git hook requires full path as basedir: $ENV{'HOME'} . '/mywiki'
+ $basedir = $ENV{'SRCDIR'} || $ENV{'PWD'};
+ $builddir = $ENV{'BUILDDIR'} || $basedir . '/build';
+ $domain = 'example.org';
+ $gitrepo = 'wiki';
+}
+
+use IkiWiki::Setup::Standard {
+ # name of the wiki
+ wikiname => 'MyWiki',
+ # contact email for wiki
+ #adminemail => 'me@' . $domain,
+ # users who are wiki admins
+ adminuser => [],
+ # users who are banned from the wiki
+ banned_users => [],
+ # where the source of the wiki is located
+ srcdir => $basedir . '/content_nb',
+ # where to build the wiki
+ destdir => $builddir . '/html-nb-admin',
+ # base url to the wiki
+ url => 'http://admin.nb.' . $domain . '/',
+ # url to the ikiwiki.cgi
+ cgiurl => 'http://admin.nb.' . $domain . '/ikiwiki.cgi',
+ # cgi wrapper to generate
+ cgi_wrapper => $builddir . '/cgi-nb-admin/ikiwiki.cgi',
+ # mode for cgi_wrapper (can safely be made suid)
+ cgi_wrappermode => '00755',
+ # rcs backend to use
+ rcs => 'git',
+ # plugins to add to the default configuration
+ add_plugins => [qw{
+ }],
+ # plugins to disable
+ disable_plugins => [qw{
+ }],
+ # location of template files
+ templatedir => $basedir . '/templates_nb',
+ # base wiki source location
+ underlaydir => $basedir . '/basewiki_nb',
+ # display verbose messages when building?
+ #verbose => 1,
+ # log to syslog?
+ #syslog => 1,
+ # create output files named page/index.html?
+ usedirs => 1,
+ # use '!'-prefixed preprocessor directives?
+ prefix_directives => 1,
+ # use page/index.mdwn source files
+ indexpages => 0,
+ # enable Discussion pages?
+ discussion => 1,
+ # only send cookies over SSL connections?
+ sslcookie => 0,
+ # extension to use for new pages
+ default_pageext => 'mdwn',
+ # extension to use for html files
+ htmlext => 'html',
+ # strftime format string to display date
+ timeformat => '%c',
+ # UTF-8 locale to use
+ locale => 'nb_NO.UTF-8',
+ # put user pages below specified page
+ userdir => '',
+ # how many backlinks to show before hiding excess (0 to show all)
+ numbacklinks => 10,
+ # attempt to hardlink source files? (optimisation for large files)
+ hardlink => 0,
+ # force ikiwiki to use a particular umask
+ #umask => 022,
+ # extra library and plugin directory
+ libdir => $basedir . '/perl',
+ # environment variables
+ ENV => {},
+ # regexp of source files to ignore
+ #exclude => '\\.wav$',
+ # specifies the characters that are allowed in source filenames
+ wiki_file_chars => '-[:alnum:]+/.:_',
+ # allow symlinks in the path leading to the srcdir (potentially insecure)
+ allow_symlinks_before_srcdir => 0,
+
+ # aggregate plugin
+ # enable aggregation to internal pages?
+ #aggregateinternal => 0,
+ # allow aggregation to be triggered via the web?
+ #aggregate_webtrigger => 0,
+
+ # amazon_s3 plugin
+ # public access key id
+ #amazon_s3_key_id => 'XXXXXXXXXXXXXXXXXXXX',
+ # file holding secret key (must not be readable by others!)
+ #amazon_s3_key_id => 's3_key',
+ # globally unique name of bucket to store wiki in
+ #amazon_s3_bucket => 'mywiki',
+ # a prefix to prepend to each page name
+ #amazon_s3_prefix => 'wiki/',
+ # which S3 datacenter to use (leave blank for default)
+ #amazon_s3_location => 'EU',
+ # store each index file twice? (allows urls ending in "/index.html" and "/")
+ #amazon_s3_dupindex => 0,
+
+ # anonok plugin
+ # PageSpec to limit which pages anonymous users can edit
+ #anonok_pagespec => '*/discussion',
+
+ # attachment plugin
+ # enhanced PageSpec specifying what attachments are allowed
+ #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)',
+ # virus checker program (reads STDIN, returns nonzero if virus found)
+ #virus_checker => 'clamdscan -',
+
+ # calendar plugin
+ # base of the archives hierarchy
+ #archivebase => 'archives',
+
+ # git plugin
+ # git hook to generate
+ git_wrapper => $builddir . '/git/post-update-ikiwiki-nb-admin',
+ # mode for git_wrapper (can safely be made suid)
+ git_wrappermode => '06755',
+ # gitweb url to show file history ([[file]] substituted)
+ historyurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=history;f=[[file]];hb=master-nb',
+ # gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], and [[file]] substituted)
+ diffurl => 'http://source.' . $domain . '/gitweb.cgi?p=' . $gitrepo . '.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
+ # where to pull and push changes (set to empty string to disable)
+ #gitorigin_branch => 'samplewiki',
+ # branch that the wiki is stored in
+ #gitmaster_branch => 'master-nb',
+
+ # htmlscrubber plugin
+ # PageSpec specifying pages not to scrub
+ #htmlscrubber_skip => '!*/Discussion',
+
+ # inline plugin
+ # enable rss feeds by default?
+ #rss => 0,
+ # enable atom feeds by default?
+ #atom => 0,
+ # allow rss feeds to be used?
+ #allowrss => 0,
+ # allow atom feeds to be used?
+ #allowatom => 0,
+ # urls to ping (using XML-RPC) on feed update
+ #pingurl => 'http://rpc.technorati.com/rpc/ping',
+
+ # listdirectives plugin
+ # directory in srcdir that contains directive descriptions
+ #directive_description_dir => 'ikiwiki/directive',
+
+ # lockedit plugin
+ # PageSpec controlling which pages are locked
+ #locked_pages => '!*/Discussion',
+
+ # mdwn plugin
+ # enable multimarkdown features?
+ #multimarkdown => 0,
+
+ # mirrorlist plugin
+ # list of mirrors
+ #mirrorlist => {},
+
+ # openid plugin
+ # an url where users can signup for an OpenID
+ #openidsignup => 'http://myopenid.com/',
+
+ # passwordauth plugin
+ # a password that must be entered when signing up for an account
+ #account_creation_password => 's3cr1t',
+ # cost of generating a password using Authen::Passphrase::BlowfishCrypt
+ #password_cost => 8,
+
+ # pinger plugin
+ # how many seconds to try pinging before timing out
+ #pinger_timeout => 15,
+
+ # prettydate plugin
+ # format to use to display date
+ #prettydateformat => '%X, %B %o, %Y',
+
+ # recentchanges plugin
+ # name of the recentchanges page
+ #recentchangespage => 'recentchanges',
+ # number of changes to track
+ #recentchangesnum => 100,
+
+ # search plugin
+ # path to the omega cgi program
+ #omega_cgi => '/usr/lib/cgi-bin/omega/omega',
+
+ # tag plugin
+ # parent page tags are located under
+ #tagbase => 'tag',
+
+ # teximg plugin
+ # Should teximg use dvipng to render, or dvips and convert?
+ #teximg_dvipng => '',
+ # LaTeX prefix for teximg plugin
+ #teximg_prefix => '\\documentclass{article}
+ #\\usepackage{amsmath}
+ #\\usepackage{amsfonts}
+ #\\usepackage{amssymb}
+ #\\pagestyle{empty}
+ #\\begin{document}
+ #',
+ # LaTeX postfix for teximg plugin
+ #teximg_postfix => '\\end{document}',
+
+ # typography plugin
+ # Text::Typography attributes value
+ #typographyattributes => '3',
+
+ # websetup plugin
+ # list of plugins that cannot be enabled/disabled via the web interface
+ #websetup_force_plugins => [],
+ # show unsafe settings, read-only, in web interface?
+ #websetup_show_unsafe => 1,
+
+ # varioki plugin (strings are eval'ed: double-quote actual strings!)
+ #varioki => {
+ # 'branding_logo_text' => '"Example Website"',
+ # 'branding_logo' => '"logo.png"',
+ # 'branding_logo_tagline' => '"Yet another ikiwiki site!"',
+ #},
+}
diff --git a/javascript_da b/javascript_da
new file mode 160000
+Subproject 9bf18ddbcb122e0f0005c06870c3b792bf7d9b0
diff --git a/javascript_nb b/javascript_nb
new file mode 160000
+Subproject 9bf18ddbcb122e0f0005c06870c3b792bf7d9b0
diff --git a/openid-selector_da b/openid-selector_da
new file mode 160000
+Subproject 517a71e93b14812d722f000ab42a6e61cb7b402
diff --git a/openid-selector_nb b/openid-selector_nb
new file mode 160000
+Subproject 517a71e93b14812d722f000ab42a6e61cb7b402
diff --git a/perl/IkiWiki/Plugin/farbar.pm b/perl/IkiWiki/Plugin/farbar.pm
new file mode 100644
index 0000000..37f1013
--- /dev/null
+++ b/perl/IkiWiki/Plugin/farbar.pm
@@ -0,0 +1,110 @@
+#!/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 3.00;
+
+sub import {
+ hook(type => "getsetup", id => "farbar", call => \&getsetup);
+ hook(type => "preprocess", id => "farbar", call => \&preprocess);
+ hook(type => "pagetemplate", id => "farbar", call => \&pagetemplate);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 1,
+ },
+ global_farbars => {
+ type => "boolean",
+ example => 1,
+ description => "show farbar page on all pages?",
+ safe => 1,
+ rebuild => 1,
+ },
+}
+
+my %pagefarbar;
+
+sub preprocess (@) {
+ my %params=@_;
+
+ my $page=$params{page};
+ return "" unless $page eq $params{destpage};
+
+ if (! defined $params{content}) {
+ $pagefarbar{$page}=undef;
+ }
+ else {
+ my $file = $pagesources{$page};
+ my $type = pagetype($file);
+
+ $pagefarbar{$page}=
+ IkiWiki::htmlize($page, $page, $type,
+ IkiWiki::linkify($page, $page,
+ IkiWiki::preprocess($page, $page, $params{content})));
+ }
+
+ return "";
+}
+
+my $oldfile;
+my $oldcontent;
+
+sub farbar_content ($) {
+ my $page=shift;
+
+ return delete $pagefarbar{$page} if defined $pagefarbar{$page};
+
+ return if ! exists $pagefarbar{$page} &&
+ defined $config{global_farbars} && ! $config{global_farbars};
+
+ 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;
+ if (defined $oldfile && $farbar_file eq $oldfile) {
+ $content=$oldcontent;
+ }
+ else {
+ $content=readfile(srcfile($farbar_file));
+ $oldcontent=$content;
+ $oldfile=$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 $template=$params{template};
+ if ($params{destpage} eq $params{page} &&
+ $template->query(name => "farbar")) {
+ my $content=farbar_content($params{destpage});
+ 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..2705161
--- /dev/null
+++ b/perl/IkiWiki/Plugin/topbar.pm
@@ -0,0 +1,110 @@
+#!/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 3.00;
+
+sub import {
+ hook(type => "getsetup", id => "topbar", call => \&getsetup);
+ hook(type => "preprocess", id => "topbar", call => \&preprocess);
+ hook(type => "pagetemplate", id => "topbar", call => \&pagetemplate);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 1,
+ },
+ global_topbars => {
+ type => "boolean",
+ example => 1,
+ description => "show topbar page on all pages?",
+ safe => 1,
+ rebuild => 1,
+ },
+}
+
+my %pagetopbar;
+
+sub preprocess (@) {
+ my %params=@_;
+
+ my $page=$params{page};
+ return "" unless $page eq $params{destpage};
+
+ if (! defined $params{content}) {
+ $pagetopbar{$page}=undef;
+ }
+ else {
+ my $file = $pagesources{$page};
+ my $type = pagetype($file);
+
+ $pagetopbar{$page}=
+ IkiWiki::htmlize($page, $page, $type,
+ IkiWiki::linkify($page, $page,
+ IkiWiki::preprocess($page, $page, $params{content})));
+ }
+
+ return "";
+}
+
+my $oldfile;
+my $oldcontent;
+
+sub topbar_content ($) {
+ my $page=shift;
+
+ return delete $pagetopbar{$page} if defined $pagetopbar{$page};
+
+ return if ! exists $pagetopbar{$page} &&
+ defined $config{global_topbars} && ! $config{global_topbars};
+
+ 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;
+ if (defined $oldfile && $topbar_file eq $oldfile) {
+ $content=$oldcontent;
+ }
+ else {
+ $content=readfile(srcfile($topbar_file));
+ $oldcontent=$content;
+ $oldfile=$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 $template=$params{template};
+ if ($params{destpage} eq $params{page} &&
+ $template->query(name => "topbar")) {
+ my $content=topbar_content($params{destpage});
+ if (defined $content && length $content) {
+ $template->param(topbar => $content);
+ }
+ }
+}
+
+1
diff --git a/smiley_da b/smiley_da
new file mode 160000
+Subproject 30dd469765c2396ded03355876af391e922e89b
diff --git a/smiley_nb b/smiley_nb
new file mode 160000
+Subproject 30dd469765c2396ded03355876af391e922e89b
diff --git a/templates b/templates
-Subproject 5df058b2b3dc6e565ad3b3604263f487ef65f2a
+Subproject 806dedad06b62b4a49c0fddb89cde1c3b73fb15
diff --git a/templates_da b/templates_da
-Subproject ee62a82c4be0125da6b4758e43e231a3c28c857
+Subproject a4e4a6599526eff20be43f8c4db8051c5954e6a
diff --git a/templates_nb b/templates_nb
-Subproject 7ece5830013f820325074b5982742aed0f220f4
+Subproject bc2428706e55a105261241c281190e7cddc3f91