From 440effafd263075008eea96c0049dbd504c50cb8 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Fri, 23 Jul 2010 22:21:55 +0200 Subject: Drop nonedit branches: Disable plugin editpage instead. --- .gitmodules | 6 ------ basewiki_nonedit | 1 - ikiwiki_da.setup | 8 +++++--- templates_nonedit | 1 - 4 files changed, 5 insertions(+), 11 deletions(-) delete mode 160000 basewiki_nonedit delete mode 160000 templates_nonedit diff --git a/.gitmodules b/.gitmodules index 3b9000a..464012b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,12 +10,6 @@ [submodule "templates"] path = templates url = git://source.jones.dk/ikiwiki/templates -[submodule "basewiki_nonedit"] - path = basewiki_nonedit - url = git://source.jones.dk/ikiwiki/basewiki -[submodule "templates_nonedit"] - path = templates_nonedit - url = git://source.jones.dk/ikiwiki/templates [submodule "javascript"] path = javascript url = git://source.jones.dk/ikiwiki/javascript diff --git a/basewiki_nonedit b/basewiki_nonedit deleted file mode 160000 index ba83188..0000000 --- a/basewiki_nonedit +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ba83188183933a0d2dbb541e6b3216ac7ca4acb7 diff --git a/ikiwiki_da.setup b/ikiwiki_da.setup index 9f63af0..a14af0e 100644 --- a/ikiwiki_da.setup +++ b/ikiwiki_da.setup @@ -31,15 +31,17 @@ use IkiWiki::Setup::Standard { # plugins to add to the default configuration add_plugins => [], # plugins to disable - disable_plugins => [], + disable_plugins => [qw{ + editpage + }], # location of template files - templatedir => $ENV{'HOME'} . '/private_webdata/samplewiki/templates_nonedit', + templatedir => $ENV{'HOME'} . '/private_webdata/samplewiki/templates', # base wiki source location underlaydirs => [ $ENV{'HOME'} . '/private_webdata/samplewiki/content', ], # Some plugins (smiley in particular) need non-localized master underlay - underlaydir => $ENV{'HOME'} . '/private_webdata/samplewiki/basewiki_nonedit', + underlaydir => $ENV{'HOME'} . '/private_webdata/samplewiki/basewiki', # display verbose messages when building? #verbose => 1, # log to syslog? diff --git a/templates_nonedit b/templates_nonedit deleted file mode 160000 index 9d0065e..0000000 --- a/templates_nonedit +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9d0065e2bdf1d26afb37647686ebeae076f85299 -- cgit v1.2.3 From e01520eaa816090dda31fefb404f4f80b68a3aa9 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Fri, 27 Aug 2010 10:40:08 +0200 Subject: Sync plugins farbar and topbar with Ikiwiki 3.20100722 sidebar. --- perl/IkiWiki/Plugin/farbar.pm | 81 ++++++++++++++++++++++++++++++++++++------- perl/IkiWiki/Plugin/topbar.pm | 81 ++++++++++++++++++++++++++++++++++++------- 2 files changed, 138 insertions(+), 24 deletions(-) diff --git a/perl/IkiWiki/Plugin/farbar.pm b/perl/IkiWiki/Plugin/farbar.pm index ab4390a..37f1013 100644 --- a/perl/IkiWiki/Plugin/farbar.pm +++ b/perl/IkiWiki/Plugin/farbar.pm @@ -7,15 +7,64 @@ package IkiWiki::Plugin::farbar; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; -sub import { #{{{ +sub import { + hook(type => "getsetup", id => "farbar", call => \&getsetup); + hook(type => "preprocess", id => "farbar", call => \&preprocess); hook(type => "pagetemplate", id => "farbar", call => \&pagetemplate); -} # }}} +} -sub farbar_content ($) { #{{{ +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); @@ -26,7 +75,16 @@ sub farbar_content ($) { #{{{ # currently requires a wiki rebuild. add_depends($page, $farbar_page); - my $content=readfile(srcfile($farbar_file)); + 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, @@ -34,20 +92,19 @@ sub farbar_content ($) { #{{{ IkiWiki::filter($farbar_page, $page, $content)))); } -} # }}} +} -sub pagetemplate (@) { #{{{ +sub pagetemplate (@) { my %params=@_; - my $page=$params{page}; my $template=$params{template}; - - if ($template->query(name => "farbar")) { - my $content=farbar_content($page); + 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 index aa62a11..2705161 100644 --- a/perl/IkiWiki/Plugin/topbar.pm +++ b/perl/IkiWiki/Plugin/topbar.pm @@ -7,15 +7,64 @@ package IkiWiki::Plugin::topbar; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; -sub import { #{{{ +sub import { + hook(type => "getsetup", id => "topbar", call => \&getsetup); + hook(type => "preprocess", id => "topbar", call => \&preprocess); hook(type => "pagetemplate", id => "topbar", call => \&pagetemplate); -} # }}} +} -sub topbar_content ($) { #{{{ +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); @@ -26,7 +75,16 @@ sub topbar_content ($) { #{{{ # currently requires a wiki rebuild. add_depends($page, $topbar_page); - my $content=readfile(srcfile($topbar_file)); + 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, @@ -34,20 +92,19 @@ sub topbar_content ($) { #{{{ IkiWiki::filter($topbar_page, $page, $content)))); } -} # }}} +} -sub pagetemplate (@) { #{{{ +sub pagetemplate (@) { my %params=@_; - my $page=$params{page}; my $template=$params{template}; - - if ($template->query(name => "topbar")) { - my $content=topbar_content($page); + 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 -- cgit v1.2.3