#!/usr/bin/perl # Sidebar plugin. # by Tuomo Valkonen package IkiWiki::Plugin::sidebar; use warnings; use strict; use IkiWiki 2.00; sub import { #{{{ hook(type => "getsetup", id => "sidebar", call => \&getsetup); hook(type => "pagetemplate", id => "sidebar", call => \&pagetemplate); } # }}} sub getsetup () { #{{{ return plugin => { safe => 1, rebuild => 1, }, } #}}} sub sidebar_content ($) { #{{{ my $page=shift; my $sidebar_page=bestlink($page, "sidebar") || return; my $sidebar_file=$pagesources{$sidebar_page} || return; my $sidebar_type=pagetype($sidebar_file); if (defined $sidebar_type) { # FIXME: This isn't quite right; it won't take into account # adding a new sidebar page. So adding such a page # currently requires a wiki rebuild. add_depends($page, $sidebar_page); my $content=readfile(srcfile($sidebar_file)); return unless length $content; return IkiWiki::htmlize($sidebar_page, $page, $sidebar_type, IkiWiki::linkify($sidebar_page, $page, IkiWiki::preprocess($sidebar_page, $page, IkiWiki::filter($sidebar_page, $page, $content)))); } } # }}} sub pagetemplate (@) { #{{{ my %params=@_; my $page=$params{page}; my $template=$params{template}; if ($template->query(name => "sidebar")) { my $content=sidebar_content($page); if (defined $content && length $content) { $template->param(sidebar => $content); } } } # }}} 1 GG10090@ltw.loris.tv/debian?h=master'>treecommitdiff
path: root/tags/f5/c6/20100317135412.GG10090@ltw.loris.tv/debian
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2023-06-27 09:35:08 +0200
committerJonas Smedegaard <dr@jones.dk>2023-06-27 09:35:08 +0200
commitfd54908da2b05c526dd3bee9b6dcd093214a220d (patch)
treec69c845069c99d1d01044f6fafda7c08433329c6 /tags/f5/c6/20100317135412.GG10090@ltw.loris.tv/debian
parentba46132213560cf3335d53560d519c0ec0190da2 (diff)
Diffstat (limited to 'tags/f5/c6/20100317135412.GG10090@ltw.loris.tv/debian')