toggle: Add support for toggles that are open by default.
Also fix to work in preview mode.master
parent
d593533af5
commit
895faed642
|
@ -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
|
||||
|
|
|
@ -4,6 +4,8 @@ ikiwiki (2.52) UNRELEASED; urgency=low
|
|||
(Sponsored by The TOVA Company.)
|
||||
* If attachments are not enabled, configure CGI.pm to disable file
|
||||
uploads by default. (An anti-DOS measure.)
|
||||
* toggle: Add support for toggles that are open by default.
|
||||
* toggle: Fix to work in preview mode.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Mon, 30 Jun 2008 19:56:28 -0400
|
||||
|
||||
|
|
|
@ -28,3 +28,6 @@ each other, but can be located anywhere on the page. There can also be
|
|||
mutiple toggles that all toggle a single togglable.
|
||||
|
||||
The id has a default value of "default", so can be omitted in simple cases.
|
||||
|
||||
If you'd like a toggleable to be displayed by default, and toggle to
|
||||
hidden, then pass a parameter "open=true" when setting up the toggleable.
|
||||
|
|
|
@ -2,3 +2,5 @@ It would be nice if one could set the initial state of the toggleable area.
|
|||
--[[[rdennis]]
|
||||
|
||||
[[tag plugins/toggle]]
|
||||
|
||||
[[done]]
|
||||
|
|
Loading…
Reference in New Issue