aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/toggle.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-07-02 16:02:01 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-07-02 16:02:01 -0400
commit895faed6428f3523871d29ed82b0ab3326453b75 (patch)
treebeca73381f8d9289efff5c311e20656d79894bdf /IkiWiki/Plugin/toggle.pm
parentd593533af58d5133ef6ecfc4323e3e1d55d71c48 (diff)
downloadikiwiki-895faed6428f3523871d29ed82b0ab3326453b75.tar
ikiwiki-895faed6428f3523871d29ed82b0ab3326453b75.tar.gz
toggle: Add support for toggles that are open by default.
Also fix to work in preview mode.
Diffstat (limited to 'IkiWiki/Plugin/toggle.pm')
-rw-r--r--IkiWiki/Plugin/toggle.pm15
1 files changed, 5 insertions, 10 deletions
diff --git a/IkiWiki/Plugin/toggle.pm b/IkiWiki/Plugin/toggle.pm
index 54c9a0d9a..f969d7686 100644
--- a/IkiWiki/Plugin/toggle.pm
+++ b/IkiWiki/Plugin/toggle.pm
@@ -81,17 +81,11 @@ sub preprocess_toggle (@) { #{{{
my %params=(id => "default", text => "more", @_);
my $id=genid($params{page}, $params{id});
- if (! $params{preview}) {
- return "<a class=\"toggle\" href=\"#$id\">$params{text}</a>";
- }
- else {
- return "$params{text} ".
- gettext("(not toggleable in preview mode)");
- }
+ return "<a class=\"toggle\" href=\"#$id\">$params{text}</a>";
} # }}}
sub preprocess_toggleable (@) { #{{{
- my %params=(id => "default", text => "", @_);
+ my %params=(id => "default", text => "", open => "no", @_);
# Preprocess the text to expand any preprocessor directives
# embedded inside it.
@@ -99,19 +93,20 @@ sub preprocess_toggleable (@) { #{{{
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 <div> with various funky
# whitespace.
my ($indent)=$params{text}=~/( +)$/;
$indent="" unless defined $indent;
- return "<div class=\"toggleable\" id=\"$id\"></div>\n\n$params{text}\n$indent<div class=\"toggleableend\"></div>";
+ return "<div class=\"$class\" id=\"$id\"></div>\n\n$params{text}\n$indent<div class=\"toggleableend\"></div>";
} # }}}
sub format (@) { #{{{
my %params=@_;
- if ($params{content}=~s!(<div class="toggleable" id="[^"]+">)</div>!$1!g) {
+ if ($params{content}=~s!(<div class="toggleable(?:-open)?" id="[^"]+">)</div>!$1!g) {
$params{content}=~s/<div class="toggleableend">//g;
if (! ($params{content}=~s!^<\/body>!$javascript</body>!m)) {
# no </body> tag, probably in preview mode