From 6b9b2d3d6ad0dfc026fbf66d250220eab2c8c8fe Mon Sep 17 00:00:00 2001
From: Robin Ward `, any other tags
+ // end up in a `span`
+ if (node.nodeType === 1 && node.nodeName === "IMG") {
+ return ['div', {class: 'spoiler'}, processInside(node)];
+ } else {
+ return ['span', {class: 'spoiler'}, processInside(node)];
}
});
diff --git a/app/assets/javascripts/discourse/dialects/dialect.js b/app/assets/javascripts/discourse/dialects/dialect.js
index cf12fc64d1..5be09d5591 100644
--- a/app/assets/javascripts/discourse/dialects/dialect.js
+++ b/app/assets/javascripts/discourse/dialects/dialect.js
@@ -22,6 +22,50 @@ function initializeDialects() {
initialized = true;
}
+/**
+ Converts an HTML node Element into JsonML.
+
+ @method nodeToJsonML
+ @param {Element} node to convert
+ @returns {Array} jsonML result
+**/
+function nodeToJsonML(node) {
+ if (node.nodeType === 3) {
+ return node.nodeValue;
+ }
+
+ var result = [node.nodeName.toLowerCase()],
+ attributes = {};
+
+ if (node.attributes && node.attributes.length > 0) {
+ for (var i=0; i
" + expected.replace(/'/g, "\"") + "
", text); }; test('basic bbcode', function() { @@ -30,8 +30,15 @@ test('code', function() { }); test('spoiler', function() { + format("[spoiler][/spoiler]", "", "it can spoil nothing"); format("[spoiler]it's a sled[/spoiler]", "it's a sled", "supports spoiler tags on text"); - format("[spoiler]
[/spoiler]", "
[/spoiler]", "