diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2015-01-11 21:04:45 -0800 | 
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2015-01-11 21:04:45 -0800 | 
| commit | 3b3c5c9502252a2ce13a7daffa80da2709d586e1 (patch) | |
| tree | 3133809d5a448dfd5045dc49313ef8a108606183 /js/lib | |
| parent | 5e2e9034f13438ad6286ab09d49cfe425f06090c (diff) | |
More xml.js improvements.
Diffstat (limited to 'js/lib')
| -rw-r--r-- | js/lib/xml.js | 37 | 
1 files changed, 19 insertions, 18 deletions
diff --git a/js/lib/xml.js b/js/lib/xml.js index c90704e..30b44c8 100644 --- a/js/lib/xml.js +++ b/js/lib/xml.js @@ -41,6 +41,7 @@ var renderNodes = function(block) {      var unescapedContents;      var container;      var selfClosing; +    var nodetype;      var out = function(s) {          if (disableTags > 0) { @@ -71,22 +72,24 @@ var renderNodes = function(block) {      while ((event = walker.next())) {          entering = event.entering;          node = event.node; +        nodetype = node.t; -        if (node.t === 'ReferenceDef') { +        if (nodetype === 'ReferenceDef') {              continue;          }          container = node.isContainer(); -        selfClosing = node.t === 'HorizontalRule' || node.t === 'Hardbreak' || -            node.t === 'Softbreak' || node.t === 'Image'; -        unescapedContents = node.t === 'Html' || node.t === 'HtmlInline'; -        tagname = toTagName(node.t); +        selfClosing = nodetype === 'HorizontalRule' || nodetype === 'Hardbreak' || +            nodetype === 'Softbreak' || nodetype === 'Image'; +        unescapedContents = nodetype === 'Html' || nodetype === 'HtmlInline'; +        tagname = toTagName(nodetype);          if (entering) {              attrs = []; -            if (node.list_data) { +            switch (nodetype) { +            case 'List':                  var data = node.list_data;                  if (data.type !== undefined) {                      attrs.push(['type', data.type.toLowerCase()]); @@ -106,21 +109,21 @@ var renderNodes = function(block) {                      }                      attrs.push(['delimiter', delimword]);                  } -            } - -            if (node.info !== undefined) { +                break; +            case 'CodeBlock':                  attrs.push(['info', node.info]); -            } -            if (node.level !== undefined) { +                break; +            case 'Header':                  attrs.push(['level', String(node.level)]); -            } -            if (node.destination !== undefined) { +                break; +            case 'Link': +            case 'Image':                  attrs.push(['destination', node.destination]); -            } -            if (node.title !== undefined) {                  attrs.push(['title', node.title]); +                break; +            default: +                break;              } -              if (options.sourcepos) {                  var pos = node.sourcepos;                  if (pos !== undefined) { @@ -130,8 +133,6 @@ var renderNodes = function(block) {                  }              } - -              cr();              out(tag(tagname, attrs, selfClosing));              if (container) {  | 
