diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-07-02 16:02:01 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-07-02 16:02:01 -0400 |
commit | 895faed6428f3523871d29ed82b0ab3326453b75 (patch) | |
tree | beca73381f8d9289efff5c311e20656d79894bdf /IkiWiki/Plugin/toggle.pm | |
parent | d593533af58d5133ef6ecfc4323e3e1d55d71c48 (diff) | |
download | ikiwiki-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.pm | 15 |
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 |