]> BookStack Code Mirror - bookstack/blobdiff - resources/js/editor/markdown-serializer.js
Rolled out text alignment to other block types
[bookstack] / resources / js / editor / markdown-serializer.js
index 7fc0bad48280d87351016e3f1be0027bebd890fe..c194ceaf7874c6552741fbaae1f7c87bb02702aa 100644 (file)
@@ -4,10 +4,12 @@ import {docToHtml} from "./util";
 const nodes = defaultMarkdownSerializer.nodes;
 const marks = defaultMarkdownSerializer.marks;
 
+
 nodes.callout = function(state, node) {
     writeNodeAsHtml(state, node);
 };
 
+
 marks.underline = {
     open: '<span style="text-decoration: underline;">',
     close: '</span>',
@@ -28,12 +30,28 @@ marks.subscript = {
     close: '</sub>',
 };
 
+
 function writeNodeAsHtml(state, node) {
     const html = docToHtml({ content: [node] });
     state.write(html);
+    state.ensureNewLine();
+    state.write('\n');
     state.closeBlock();
 }
 
+// Update serializers to just write out as HTML if we have an attribute
+// or element that cannot be represented in commonmark without losing
+// formatting or content.
+for (const [nodeType, serializerFunction] of Object.entries(nodes)) {
+    nodes[nodeType] = function(state, node) {
+        if (node.attrs.align) {
+            writeNodeAsHtml(state, node);
+        } else {
+            serializerFunction(state, node);
+        }
+    }
+}
+
 
 const serializer = new MarkdownSerializer(nodes, marks);