···472 OPEN('align', {align: a})
473 } break; case '\\spoiler': case '\\h': {
474 let [label="spoiler"] = rargs
475- OPEN('spoiler', {label})
0476 } break; case '\\ruby': {
477 let [txt="true"] = rargs
478 OPEN('ruby', {text: txt})
···472 OPEN('align', {align: a})
473 } break; case '\\spoiler': case '\\h': {
474 let [label="spoiler"] = rargs
475+ let cw = /\bcw\b|🔞/i.test(label)
476+ OPEN('spoiler', {label, cw})
477 } break; case '\\ruby': {
478 let [txt="true"] = rargs
479 OPEN('ruby', {text: txt})
+3-1
render.js
···315 return e.firstChild
316 }.bind(𐀶`<ruby><span></span><rt>`), // I don't think we need <rp> since we're rendering for modern browsers...
317318- spoiler: function({label}) {
319 let e = this()
00320 e.firstChild.textContent = label//.replace(/_/g, " ")
321 //todo: [12y1] maybe replace all underscores in args with spaces, during parsing?
322 return e.lastChild
···315 return e.firstChild
316 }.bind(𐀶`<ruby><span></span><rt>`), // I don't think we need <rp> since we're rendering for modern browsers...
317318+ spoiler: function({label, cw}) {
319 let e = this()
320+ if (cw)
321+ e.classList.add('M-content-warning')
322 e.firstChild.textContent = label//.replace(/_/g, " ")
323 //todo: [12y1] maybe replace all underscores in args with spaces, during parsing?
324 return e.lastChild