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



    % %(details
    % %

if (!isset($options['title']))        $options['title']    = null;
if (!isset(
$options['open']))        $options['open']    = 0;

$title    $options['title'] ?? $this->_t('ShowHideDetails');
$open    $options['open'] ? ' open' '';

'<ignore><details' $open '>' "\n";
echo    (
'<summary>' Ut::html($title) . '</summary>' "\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.


  • 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