diff --git a/app/assets/javascripts/pretty-text/pretty-text.js.es6 b/app/assets/javascripts/pretty-text/pretty-text.js.es6
index f341e7c4c7c..32064527aed 100644
--- a/app/assets/javascripts/pretty-text/pretty-text.js.es6
+++ b/app/assets/javascripts/pretty-text/pretty-text.js.es6
@@ -1,10 +1,9 @@
import { cook as cookIt, setup as setupIt } from 'pretty-text/engines/discourse-markdown-it';
export function registerOption() {
- // TODO next major version deprecate this
- // if (window.console) {
- // window.console.log("registerOption is deprecated");
- // }
+ if (window.console) {
+ window.console.log("registerOption is deprecated");
+ }
}
export function buildOptions(state) {
diff --git a/plugins/discourse-details/assets/javascripts/lib/discourse-markdown/details.js.es6 b/plugins/discourse-details/assets/javascripts/lib/discourse-markdown/details.js.es6
index 602846062e2..4fb9b3d0f3b 100644
--- a/plugins/discourse-details/assets/javascripts/lib/discourse-markdown/details.js.es6
+++ b/plugins/discourse-details/assets/javascripts/lib/discourse-markdown/details.js.es6
@@ -1,3 +1,25 @@
+import { registerOption } from 'pretty-text/pretty-text';
+
+function insertDetails(_, summary, details) {
+ return `${summary}
${details}
element after and around
+ // otherwise we can't hide the content since we can't target text nodes via CSS
+ return text.replace(/<\/summary>/ig, "\n\n")
+ .replace(/<\/details>/ig, "\n\n\n\n");
+}
+
+registerOption((siteSettings, opts) => {
+ opts.features.details = true;
+});
+
const rule = {
tag: 'details',
before: function(state, attrs) {
@@ -24,7 +46,11 @@ export function setup(helper) {
'details.elided'
]);
- helper.registerPlugin(md => {
- md.block.bbcode_ruler.push('details', rule);
- });
+ if (helper.markdownIt) {
+ helper.registerPlugin(md => {
+ md.block.bbcode_ruler.push('details', rule);
+ });
+ } else {
+ helper.addPreProcessor(text => replaceDetails(text));
+ }
}
diff --git a/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6 b/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6
index 4087ea22b21..a1bd26c43d6 100644
--- a/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6
+++ b/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js.es6
@@ -8,7 +8,7 @@ const defaultOpts = buildOptions({
emoji_set: 'emoji_one',
highlighted_languages: 'json|ruby|javascript',
default_code_lang: 'auto',
- censored_words: ''
+ censored_words: 'shucks|whiz|whizzer'
},
getURL: url => url
});
@@ -19,13 +19,17 @@ test("details", assert => {
assert.equal(new PrettyText(defaultOpts).cook(input), expected.replace(/\/>/g, ">"), text);
};
cooked(` coucou coucou test coucou coucouInfo
coucouInfo
coucouInfo
\n\nInfo
coucouInfo
\n\n
-testing
-Info
coucouInfo
\n\nInfo
coucouInfo
\n\n