allow sidebar directive to enable use of sidebar page
This way, the example blog always has a sidebar on the index page, but not the overhead of sidebars on all the other pages. And if a user wants to, they can enable global_sidebars to switch to sidebars on every page.master
parent
d7c164dbf2
commit
d63e043f0a
|
@ -23,7 +23,7 @@ sub getsetup () {
|
|||
global_sidebars => {
|
||||
type => "boolean",
|
||||
examples => 1,
|
||||
description => "show sidebar page on all pages?"
|
||||
description => "show sidebar page on all pages?",
|
||||
safe => 1,
|
||||
rebuild => 1,
|
||||
},
|
||||
|
@ -36,20 +36,22 @@ sub preprocess (@) {
|
|||
my $content=shift;
|
||||
shift;
|
||||
|
||||
if (! defined $content) {
|
||||
error(gettext("sidebar content not specified"));
|
||||
}
|
||||
|
||||
my $page=$params{page};
|
||||
return "" unless $page eq $params{destpage};
|
||||
my $file = $pagesources{$page};
|
||||
my $type = pagetype($file);
|
||||
|
||||
if (! defined $content) {
|
||||
$pagesidebar{$page}=undef;
|
||||
}
|
||||
else {
|
||||
my $file = $pagesources{$page};
|
||||
my $type = pagetype($file);
|
||||
|
||||
$pagesidebar{$page}=
|
||||
IkiWiki::htmlize($page, $page, $type,
|
||||
IkiWiki::linkify($page, $page,
|
||||
IkiWiki::preprocess($page, $page,
|
||||
IkiWiki::filter($page, $page, $content))));
|
||||
$pagesidebar{$page}=
|
||||
IkiWiki::htmlize($page, $page, $type,
|
||||
IkiWiki::linkify($page, $page,
|
||||
IkiWiki::preprocess($page, $page,
|
||||
IkiWiki::filter($page, $page, $content))));
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
@ -60,9 +62,10 @@ my $oldcontent;
|
|||
sub sidebar_content ($) {
|
||||
my $page=shift;
|
||||
|
||||
return $pagesidebar{$page} if exists $pagesidebar{$page};
|
||||
return $pagesidebar{$page} if defined $pagesidebar{$page};
|
||||
|
||||
return if defined $config{global_sidebars} && !$config{global_sidebars};
|
||||
return if ! exists $pagesidebar{$page} &&
|
||||
defined $config{global_sidebars} && ! $config{global_sidebars};
|
||||
|
||||
my $sidebar_page=bestlink($page, "sidebar") || return;
|
||||
my $sidebar_file=$pagesources{$sidebar_page} || return;
|
||||
|
|
|
@ -1,14 +1,6 @@
|
|||
[[!inline pages="./posts/* and !*/Discussion" show="10"
|
||||
actions=yes rootpage="posts"]]
|
||||
|
||||
[[!sidebar """
|
||||
[[Tags]]: [[!pagestats style="list" pages="./tags/*" among="./posts/*"]]
|
||||
|
||||
[[Recent Comments|comments]]
|
||||
|
||||
[[Archives]]
|
||||
|
||||
[[!calendar pages="./posts/* and !*/Discussion"]]
|
||||
"""]]
|
||||
[[!sidebar]]
|
||||
|
||||
This blog is powered by [ikiwiki](http://ikiwiki.info).
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
[[Tags]]: [[!pagestats style="list" pages="./tags/*" among="./posts/*"]]
|
||||
|
||||
[[Recent Comments|comments]]
|
||||
|
||||
[[Archives]]
|
||||
|
||||
[[!if "enabled(calendar)" then="""
|
||||
[[!calendar pages="./posts/* and !*/Discussion"]]
|
||||
"""]]
|
|
@ -1,8 +1,12 @@
|
|||
The `sidebar` directive is supplied by the [[!iki plugins/sidebar desc=sidebar]] plugin.
|
||||
|
||||
This directive specifies a custom sidebar to display on the page,
|
||||
This directive can specify a custom sidebar to display on the page,
|
||||
overriding any sidebar that is displayed globally.
|
||||
|
||||
If no custom sidebar content is specified, it forces the sidebar page to
|
||||
be used as the sidebar, even if the `global_sidebars` setting has been
|
||||
used to disable use of the sidebar page by default.
|
||||
|
||||
## examples
|
||||
|
||||
\[[!sidebar """
|
||||
|
@ -11,4 +15,6 @@ overriding any sidebar that is displayed globally.
|
|||
\[[!calendar pages="posts/*"]]
|
||||
"""]]
|
||||
|
||||
\[[!sidebar]]
|
||||
|
||||
[[!meta robots="noindex, follow"]]
|
||||
|
|
Loading…
Reference in New Issue