I asked Dominique to send this to the list for a proper debate.
I made a mistake by enabling this ToggleNext feature without discussion,
but it is probably not too late to revert it (before people start
building on it) and do it better.
Currently there is the "details+summary" nestable block markup:
(:details123 summary="a summary":)...(:details123end:)
It produces a <details> block that works in modern browsers except
IE/Edge.
It doesn't allow a multi-line summary with a complex markup or even
quotes in the summary, but per PmWiki Philosophy "2. Don't try to
replace HTML" this looks like the most common need for such markup. We
can also enable the following:
(:details123:)(:summary:)...(:summaryend:)...(:details123end:)
Instead of, or in addition to the ToggleNext implementation, we can add
a JavaScript polyfill and a reasonable CSS so that the <detail> elements
work with both current and older browsers.
Dominique, I wasn't thinking about changing ToggleNext to produce a
details+summary block.
I wrote ToggleNext because I needed the open/close feature for a project
FAQ and it was simpler to implement cross-browser than <details>, and
also I could control the styles so when the page is printed, all hidden
sections are open. The last requirement is more complex with <details>
but maybe can be done.
It is also possible to keep both ToggleNext and a cross-browser working
<details> but this may sound like a feature creep. Also, I feel that the
(:details:) markup in a wiki page, while more characters to type than %p
toggle%, leaves the page source text more readable.
BTW, ToggleNext is disabled by default in the core but can be enabled in
an easy way, like the other new features added recently (table of
contents, code highlighting...).
Anyways, I'd like to read more thoughts about this.
Petko
On 29/01/2020 13:07, Dominique Faure wrote:
Hi,
Before all, I want to thank Petko sparing no effort to provide us with
an ever more efficient wiki including interesting features with each
release.
The last release (v2.2.125) was embedding the ToggleNext[1] recipe and
I wanted to share some thoughts on this particular feature:
The ToggleNext recipe is mostly a upgraded rewrite of what was offered
by the previously released as beta Untoggle[2] recipe, ie. a clever
use of css and javascript to offer visual toggling of sibling document
divs.
For several years, the W3C was defining the <details>...</details>
html block element[3] which should enable the same features in recent
browsers natively[4], and it has already been handled (at least
partially) in our favorite wiki engine[5].
My concern here is two-fold:
In order to keep being future-proof as usual with PmWiki, the
ToggleNext recipe should be relying on the <details> and <summary>
elements for the html rendering, even if this implies providing some
kind of element+behavior simulation for older browser (aka a
polyfill), such as those easily available on github[6][7].
For now we are in lack of a proper wiki markup definition to handle
the <details> and <summary> elements as a sole structural block
possibly nestable (btw, there're similar potential issues with the
<fieldset> and <legend> couple and one of the <label> + <input> form).
Perhaps, we need a slightly more elaborate (:div:) handling which
would allow to specify if a (:summaryNN:) block markup could render as
the summary element of the following first encountered (:detailsNN:)
block such as:
(:summary:)
Nested content
(:details:)
The de-facto container
(:detailsend:)
giving:
<details>
<summary>
Nested content
</summary>
The de-facto container
</details>
Regards,
Dominique
References:
[1] https://www.pmwiki.org/wiki/Cookbook/ToggleNext
[2] https://www.pmwiki.org/wiki/Cookbook/UnToggle
[3]
https://html.spec.whatwg.org/multipage/interactive-elements.html#the-details-element
[4] https://caniuse.com/#feat=details
[5] https://www.pmwiki.org/wiki/PmWiki/BlockMarkup#semantic
[6] https://gist.github.com/remy/370590
[7]
https://github.com/javan/details-element-polyfill/blob/master/dist/details-element-polyfill.js
_______________________________________________
pmwiki-users mailing list
pmwiki-users@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-users
_______________________________________________
pmwiki-users mailing list
pmwiki-users@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-users