Przeglądaj źródła

Migrate all compiler wrappers

simov 8 lat temu
rodzic
commit
99b2c1ffdd

+ 0 - 24
background/commonmark.js

@@ -1,24 +0,0 @@
-
-md.commonmark = {
-  defaults: {
-    safe: false,
-    smart: false,
-    sourcepos: false
-  },
-  description: {
-    safe: 'Raw HTML will not be rendered',
-    smart: [
-      'Straight quotes will be made curly',
-      '-- will be changed to an en dash',
-      '--- will be changed to an em dash',
-      'and ... will be changed to ellipses'
-    ].join('\n'),
-    sourcepos: ''
-  },
-  compile: (markdown) => ((
-    reader = new commonmark.Parser(),
-    writer = new commonmark.HtmlRenderer(state.commonmark)
-  ) =>
-    writer.render(reader.parse(markdown))
-  )()
-}

+ 32 - 0
background/compilers/commonmark.js

@@ -0,0 +1,32 @@
+
+md.compilers.commonmark = (() => {
+  var defaults = {
+    safe: false,
+    smart: false,
+    sourcepos: false
+  }
+
+  var description = {
+    safe: 'Raw HTML will not be rendered',
+    smart: [
+      'Straight quotes will be made curly',
+      '-- will be changed to an en dash',
+      '--- will be changed to an em dash',
+      'and ... will be changed to ellipses'
+    ].join('\n'),
+    sourcepos: ''
+  }
+
+  var ctor = ({storage: {state}}) => ({
+    defaults,
+    description,
+    compile: (markdown) => ((
+      reader = new commonmark.Parser(),
+      writer = new commonmark.HtmlRenderer(state.commonmark)
+    ) =>
+      writer.render(reader.parse(markdown))
+    )()
+  })
+
+  return Object.assign(ctor, {defaults, description})
+})()

+ 17 - 9
background/markdown-it.js → background/compilers/markdown-it.js

@@ -1,6 +1,6 @@
 
-md['markdown-it'] = {
-  defaults: {
+md.compilers['markdown-it'] = (() => {
+  var defaults = {
     breaks: true,
     html: true,
     linkify: true,
@@ -9,15 +9,23 @@ md['markdown-it'] = {
     langPrefix: 'language-',
     quotes: '“”‘’'
     // highlight: (str, lang) => ''
-  },
-  description: {
+  }
+
+  var description = {
     breaks: 'Convert \\n in paragraphs into <br>',
     html: 'Enable HTML tags in source',
     linkify: 'Autoconvert URL-like text to links',
     typographer: 'Enable some language-neutral replacement + quotes beautification',
     xhtmlOut: 'Use / to close single tags (<br />)'
-  },
-  compile: (markdown) =>
-    markdownit(state['markdown-it'])
-      .render(markdown)
-}
+  }
+
+  var ctor = ({storage: {state}}) => ({
+    defaults,
+    description,
+    compile: (markdown) =>
+      markdownit(state['markdown-it'])
+        .render(markdown)
+  })
+
+  return Object.assign(ctor, {defaults, description})
+})()

+ 14 - 0
background/compilers/markdown-js.js

@@ -0,0 +1,14 @@
+
+md.compilers['markdown-js'] = (() => {
+  var defaults = {}
+  var description = {}
+
+  var ctor = ({storage: {state}}) => ({
+    defaults,
+    description,
+    compile: (_markdown) =>
+      markdown.toHTML(_markdown)
+  })
+
+  return Object.assign(ctor, {defaults, description})
+})()

+ 17 - 9
background/remarkable.js → background/compilers/remarkable.js

@@ -1,6 +1,6 @@
 
-md.remarkable = {
-  defaults: {
+md.compilers.remarkable = (() => {
+  var defaults = {
     breaks: true,
     html: true,
     linkify: true,
@@ -9,15 +9,23 @@ md.remarkable = {
     langPrefix: 'language-',
     quotes: '“”‘’'
     // highlight: (str, lang) => ''
-  },
-  description: {
+  }
+
+  var description = {
     breaks: 'Convert \\n in paragraphs into <br>',
     html: 'Enable HTML tags in source',
     linkify: 'Autoconvert URL-like text to links',
     typographer: 'Enable some language-neutral replacement + quotes beautification',
     xhtmlOut: 'Use / to close single tags (<br />)'
-  },
-  compile: (markdown) =>
-    new Remarkable('full', state.remarkable)
-      .render(markdown)
-}
+  }
+
+  var ctor = ({storage: {state}}) => ({
+    defaults,
+    description,
+    compile: (markdown) =>
+      new Remarkable('full', state.remarkable)
+        .render(markdown)
+  })
+
+  return Object.assign(ctor, {defaults, description})
+})()

+ 20 - 11
background/showdown.js → background/compilers/showdown.js

@@ -1,7 +1,8 @@
 
-md.showdown = {
-  defaults: null, // see below,
-  description: {
+md.compilers.showdown = (() => {
+  var defaults = null // see below
+
+  var description = {
     disableForced4SpacesIndentedSublists: "Disables the requirement of indenting nested sublists by 4 spaces",
     encodeEmails: "Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",
     excludeTrailingPunctuationFromURLs: "Excludes trailing punctuation from links generated with autoLinking",
@@ -29,8 +30,9 @@ md.showdown = {
     tablesHeaderId: "Adds an id property to table headers tags",
     openLinksInNewWindow: "Open all links in new windows",
     backslashEscapesHTMLTags: "Support for HTML Tag escaping",
-  },
-  flavor: (name) => {
+  }
+
+  var flavor = (name) => {
     var options = showdown.getDefaultOptions()
     var flavor = showdown.getFlavorOptions(name)
     var result = {}
@@ -38,10 +40,17 @@ md.showdown = {
       result[key] = (flavor[key] !== undefined) ? flavor[key] : options[key]
     }
     return result
-  },
-  compile: (markdown) =>
-    new showdown.Converter(state.showdown)
-      .makeHtml(markdown)
-}
+  }
+
+  defaults = flavor('github')
+
+  var ctor = ({storage: {state}}) => ({
+    defaults,
+    description,
+    compile: (markdown) =>
+      new showdown.Converter(state.showdown)
+        .makeHtml(markdown)
+  })
 
-md.showdown.defaults = md.showdown.flavor('github')
+  return Object.assign(ctor, {defaults, description})
+})()

+ 0 - 11
background/markdown-js.js

@@ -1,11 +0,0 @@
-
-md['markdown-js'] = {
-  defaults: {
-
-  },
-  description: {
-
-  },
-  compile: (_markdown) =>
-    markdown.toHTML(_markdown)
-}