This block would provide a syntax for marking up multi-part questions. It would allow for more consistent styling, that could be controlled across questions - similar to how the .HELM_parts class was used to do this across the HELM materials.
Here is an example of the sort of syntax I have in mind:
[[question_parts id="equations" labels="(a)"]]
[[qpart id="roots"]]
<p>Find the roots of the equation {@eqn@}.</p>
<p>[[input:ans1]] [[validation:ans1]] [[feedback:prt1]]</p>
[[qpart]]
[[qpart]]
<p>Hence solve the equation {@eqn2@].</p>
<p>[[input:ans2]] [[validation:ans2]] [[feedback:prt2]]</p>
[[qpart]]
[[/question_parts]]
This would be turned into a <ol> with each [[qpart]] becoming a <li>.
The optional id fields would be passed on to the ol/li elements, prepended by the quid so that they are unique on the page. This could be handy for accessing them through STACK-JS (and see also #975).
I'm not sure about the labels field, but I imagined it would accept a finite list of options like a. and (1) - perhaps any of a. | (a) | a) where a could be any of a/A/i/I/1, with matching CSS definitions provided for each of those (along similar lines to .HELM_parts). Longer-term, I see that there is a new way of specifying list numbering through CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/@counter-style) - so once that is a bit more widely-supported in browsers, it could be nice to allow use of a whole range of styles suited to different languages (e.g. https://www.w3.org/TR/predefined-counter-styles/)
This block would provide a syntax for marking up multi-part questions. It would allow for more consistent styling, that could be controlled across questions - similar to how the .HELM_parts class was used to do this across the HELM materials.
Here is an example of the sort of syntax I have in mind:
<ol>
with each [[qpart]] becoming a<li>
.labels
field, but I imagined it would accept a finite list of options likea.
and(1)
- perhaps any ofa. | (a) | a)
wherea
could be any ofa/A/i/I/1
, with matching CSS definitions provided for each of those (along similar lines to .HELM_parts). Longer-term, I see that there is a new way of specifying list numbering through CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/@counter-style) - so once that is a bit more widely-supported in browsers, it could be nice to allow use of a whole range of styles suited to different languages (e.g. https://www.w3.org/TR/predefined-counter-styles/)