Details Formatter
%%(details title="summary" open=1)%%
<details open> <summary>System Requirements</summary> <p>Requires a computer running an operating system. The computer must have some memory and ideally some kind of long-term storage. An input device as well as some form of output device is recommended.</p> </details>
formatter/highlight/details.php
<?php
/*
% %(details
[title="Title"]
[open=0|1]
)
content
% %
*/
if (!isset($options['title'])) $options['title'] = null;
if (!isset($options['open'])) $options['open'] = 0;
$title = $options['title'] ?? $this->_t('ShowHideDetails');
$open = $options['open'] ? ' open' : '';
echo '<ignore><details' . $open . '>' . "\n";
echo ($title
? '<summary>' . Ut::html($title) . '</summary>' . "\n"
: '');
include Ut::join_path(FORMATTER_DIR, 'wiki.php');
echo "</details></ignore>\n";
Summary
The HTML Details Element (<details>
) creates a disclosure widget in which information is visible only when the widget is toggled into an "open" state. A summary or label can be provided using the <summary>
element.A disclosure widget is typically presented onscreen using a small triangle which rotates (or twists) to indicate open/closed status, with a label next to the triangle. If the first child of the
<details>
element is a <summary>
, the contents of the <summary>
element are used as the label for the disclosure widget.
Remarks
- The Formatter does not support nesting. A formatter cannot invoke another formatter by design.
- formatter + wrapper
- it can be done via inline HTML, but this is rather inconvenient because you can't nest wiki syntax in between the
<details>
tags, the HTML SAX parser would close your<details>
tag with</details>
in advance
Links