mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 21:11:10 +08:00
correct more specs
This commit is contained in:
@ -1,25 +1,3 @@
|
||||
import { registerOption } from 'pretty-text/pretty-text';
|
||||
|
||||
function insertDetails(_, summary, details) {
|
||||
return `<details><summary>${summary}</summary>${details}</details>`;
|
||||
}
|
||||
|
||||
// replace all [details] BBCode with HTML 5.1 equivalent
|
||||
function replaceDetails(text) {
|
||||
text = text || "";
|
||||
|
||||
while (text !== (text = text.replace(/\[details=([^\]]+)\]((?:(?!\[details=[^\]]+\]|\[\/details\])[\S\s])*)\[\/details\]/ig, insertDetails)));
|
||||
|
||||
// add new lines to make sure we *always* have a <p> element after </summary> and around </details>
|
||||
// otherwise we can't hide the content since we can't target text nodes via CSS
|
||||
return text.replace(/<\/summary>/ig, "</summary>\n\n")
|
||||
.replace(/<\/details>/ig, "\n\n</details>\n\n");
|
||||
}
|
||||
|
||||
registerOption((siteSettings, opts) => {
|
||||
opts.features.details = true;
|
||||
});
|
||||
|
||||
const rule = {
|
||||
tag: 'details',
|
||||
before: function(state, attrs) {
|
||||
@ -46,11 +24,7 @@ export function setup(helper) {
|
||||
'details.elided'
|
||||
]);
|
||||
|
||||
if (helper.markdownIt) {
|
||||
helper.registerPlugin(md => {
|
||||
md.block.bbcode_ruler.push('details', rule);
|
||||
});
|
||||
} else {
|
||||
helper.addPreProcessor(text => replaceDetails(text));
|
||||
}
|
||||
helper.registerPlugin(md => {
|
||||
md.block.bbcode_ruler.push('details', rule);
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user