#!/usr/bin/perl
package IkiWiki::Plugin::toggle;
use warnings;
use strict;
use IkiWiki 3.00;
sub import {
add_underlay("javascript");
hook(type => "getsetup", id => "toggle", call => \&getsetup);
hook(type => "preprocess", id => "toggle",
call => \&preprocess_toggle);
hook(type => "preprocess", id => "toggleable",
call => \&preprocess_toggleable);
hook(type => "format", id => "toggle", call => \&format);
}
sub getsetup () {
return
plugin => {
safe => 1,
rebuild => undef,
section => "widget",
},
}
sub genid ($$) {
my $page=shift;
my $id=shift;
$id="$page.$id";
# make it a legal html id attribute
$id=~s/[^-a-zA-Z0-9.]/-/g;
if ($id !~ /^[a-zA-Z]/) {
$id="id$id";
}
return $id;
}
sub preprocess_toggle (@) {
my %params=(id => "default", text => "more", @_);
my $id=genid($params{page}, $params{id});
return "$params{text}";
}
sub preprocess_toggleable (@) {
my %params=(id => "default", text => "", open => "no", @_);
# Preprocess the text to expand any preprocessor directives
# embedded inside it.
$params{text}=IkiWiki::preprocess($params{page}, $params{destpage},
IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
my $id=genid($params{page}, $params{id});
my $class=(lc($params{open}) ne "yes") ? "toggleable" : "toggleable-open";
# Should really be a postprocessor directive, oh well. Work around
# markdown's dislike of markdown inside a
with various funky
# whitespace.
my ($indent)=$params{text}=~/( +)$/;
$indent="" unless defined $indent;
return "
\n\n$params{text}\n$indent
";
}
sub format (@) {
my %params=@_;
if ($params{content}=~s!(
\s*)
!$1!g) {
$params{content}=~s/
//g;
if (! ($params{content}=~s!^(]*>)!$1.include_javascript($params{page})!em)) {
# no tag, probably in preview mode
$params{content}=include_javascript($params{page}, 1).$params{content};
}
}
return $params{content};
}
sub include_javascript ($;$) {
my $page=shift;
my $absolute=shift;
return ''."\n".
'';
}
1
ff/tags/88/24/E1LbkVs-000614-Sb@ries.debian.org?h=master'>E1LbkVs-000614-Sb@ries.debian.org/
debian1 files changed, 0 insertions, 0 deletions
3 files changed, 0 insertions, 0 deletions