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 %params=(id => "default", text => "more", @_);
|
||||||
|
|
||||||
my $id=genid($params{page}, $params{id});
|
my $id=genid($params{page}, $params{id});
|
||||||
if (! $params{preview}) {
|
return "<a class=\"toggle\" href=\"#$id\">$params{text}</a>";
|
||||||
return "<a class=\"toggle\" href=\"#$id\">$params{text}</a>";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "$params{text} ".
|
|
||||||
gettext("(not toggleable in preview mode)");
|
|
||||||
}
|
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
||||||
sub preprocess_toggleable (@) { #{{{
|
sub preprocess_toggleable (@) { #{{{
|
||||||
my %params=(id => "default", text => "", @_);
|
my %params=(id => "default", text => "", open => "no", @_);
|
||||||
|
|
||||||
# Preprocess the text to expand any preprocessor directives
|
# Preprocess the text to expand any preprocessor directives
|
||||||
# embedded inside it.
|
# embedded inside it.
|
||||||
|
@ -99,19 +93,20 @@ sub preprocess_toggleable (@) { #{{{
|
||||||
IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
|
IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
|
||||||
|
|
||||||
my $id=genid($params{page}, $params{id});
|
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
|
# Should really be a postprocessor directive, oh well. Work around
|
||||||
# markdown's dislike of markdown inside a <div> with various funky
|
# markdown's dislike of markdown inside a <div> with various funky
|
||||||
# whitespace.
|
# whitespace.
|
||||||
my ($indent)=$params{text}=~/( +)$/;
|
my ($indent)=$params{text}=~/( +)$/;
|
||||||
$indent="" unless defined $indent;
|
$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 (@) { #{{{
|
sub format (@) { #{{{
|
||||||
my %params=@_;
|
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;
|
$params{content}=~s/<div class="toggleableend">//g;
|
||||||
if (! ($params{content}=~s!^<\/body>!$javascript</body>!m)) {
|
if (! ($params{content}=~s!^<\/body>!$javascript</body>!m)) {
|
||||||
# no </body> tag, probably in preview mode
|
# no </body> tag, probably in preview mode
|
||||||
|
|
|
@ -4,6 +4,8 @@ ikiwiki (2.52) UNRELEASED; urgency=low
|
||||||
(Sponsored by The TOVA Company.)
|
(Sponsored by The TOVA Company.)
|
||||||
* If attachments are not enabled, configure CGI.pm to disable file
|
* If attachments are not enabled, configure CGI.pm to disable file
|
||||||
uploads by default. (An anti-DOS measure.)
|
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
|
-- 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.
|
mutiple toggles that all toggle a single togglable.
|
||||||
|
|
||||||
The id has a default value of "default", so can be omitted in simple cases.
|
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]]
|
--[[[rdennis]]
|
||||||
|
|
||||||
[[tag plugins/toggle]]
|
[[tag plugins/toggle]]
|
||||||
|
|
||||||
|
[[done]]
|
||||||
|
|
Loading…
Reference in New Issue