diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/lib/blocks.js | 37 | ||||
| -rw-r--r-- | js/lib/html.js | 6 | ||||
| -rw-r--r-- | js/lib/inlines.js | 2 | ||||
| -rw-r--r-- | js/lib/node.js | 8 | ||||
| -rw-r--r-- | js/lib/xml.js | 2 | 
5 files changed, 28 insertions, 27 deletions
diff --git a/js/lib/blocks.js b/js/lib/blocks.js index d8c25a1..0224f74 100644 --- a/js/lib/blocks.js +++ b/js/lib/blocks.js @@ -106,7 +106,7 @@ var endsWithBlankLine = function(block) {          if (block.last_line_blank) {              return true;          } -        var t = block.getType(); +        var t = block.type();          if (t === 'List' || t === 'Item') {              block = block.lastChild;          } else { @@ -124,7 +124,7 @@ var breakOutOfLists = function(block) {      var b = block;      var last_list = null;      do { -        if (b.getType() === 'List') { +        if (b.type() === 'List') {              last_list = b;          }          b = b.parent; @@ -154,7 +154,7 @@ var addLine = function(ln, offset) {  // accept children, close and finalize it and try its parent,  // and so on til we find a block that can accept children.  var addChild = function(tag, offset) { -    while (!canContain(this.tip.getType(), tag)) { +    while (!canContain(this.tip.type(), tag)) {          this.finalize(this.tip, this.lineNumber - 1);      } @@ -272,7 +272,7 @@ var incorporateLine = function(ln) {          }          indent = first_nonspace - offset; -        switch (container.getType()) { +        switch (container.type()) {          case 'BlockQuote':              if (indent <= 3 && ln.charCodeAt(first_nonspace) === C_GREATERTHAN) {                  offset = first_nonspace + 1; @@ -357,7 +357,7 @@ var incorporateLine = function(ln) {      // Unless last matched container is a code block, try new container starts,      // adding children to the last matched container: -    var t = container.getType(); +    var t = container.type();      while (t !== 'CodeBlock' && t !== 'HtmlBlock' &&             // this is a little performance optimization:             matchAt(reMaybeSpecial, ln, offset) !== -1) { @@ -375,7 +375,7 @@ var incorporateLine = function(ln) {          if (indent >= CODE_INDENT) {              // indented code -            if (this.tip.getType() !== 'Paragraph' && !blank) { +            if (this.tip.type() !== 'Paragraph' && !blank) {                  offset += CODE_INDENT;                  allClosed = allClosed ||                      this.closeUnmatchedBlocks(); @@ -427,13 +427,18 @@ var incorporateLine = function(ln) {              offset -= indent; // back up so spaces are part of block              break; -        } else if (container.getType() === 'Paragraph' && +        } else if (t === 'Paragraph' &&                     container.strings.length === 1 &&                     ((match = ln.slice(offset).match(reSetextHeaderLine)))) {              // setext header line              allClosed = allClosed || this.closeUnmatchedBlocks(); -            container.setType('Header'); // convert Paragraph to SetextHeader -            container.level = match[0][0] === '=' ? 1 : 2; +            var header = new Node('Header', container.sourcepos); +            header.level = match[0][0] === '=' ? 1 : 2; +            header.strings = container.strings; +            container.insertAfter(header); +            container.unlink(); +            container = header; +            this.tip = header;              offset = ln.length;              break; @@ -450,7 +455,7 @@ var incorporateLine = function(ln) {              offset += data.padding;              // add the list if needed -            if (container.getType() !== 'List' || +            if (t !== 'List' ||                  !(listsMatch(container.list_data, data))) {                  container = this.addChild('List', first_nonspace);                  container.list_data = data; @@ -482,7 +487,7 @@ var incorporateLine = function(ln) {      // First check for a lazy paragraph continuation:      if (!allClosed && !blank && -        this.tip.getType() === 'Paragraph' && +        this.tip.type() === 'Paragraph' &&          this.tip.strings.length > 0) {          // lazy paragraph continuation @@ -493,12 +498,12 @@ var incorporateLine = function(ln) {          // finalize any blocks not matched          allClosed = allClosed || this.closeUnmatchedBlocks(); +        t = container.type();          // Block quote lines are never blank as they start with >          // and we don't count blanks in fenced code for purposes of tight/loose          // lists or breaking out of lists.  We also don't set last_line_blank          // on an empty list item. -        var t = container.getType();          container.last_line_blank = blank &&              !(t === 'BlockQuote' ||                t === 'Header' || @@ -513,7 +518,7 @@ var incorporateLine = function(ln) {              cont = cont.parent;          } -        switch (container.getType()) { +        switch (t) {          case 'HtmlBlock':              this.addLine(ln, offset);              break; @@ -541,7 +546,7 @@ var incorporateLine = function(ln) {              break;          default: -            if (acceptsLines(container.getType())) { +            if (acceptsLines(t)) {                  this.addLine(ln, first_nonspace);              } else if (blank) {                  break; @@ -570,7 +575,7 @@ var finalize = function(block, lineNumber) {      block.open = false;      block.sourcepos[1] = [lineNumber, this.lastLineLength + 1]; -    switch (block.getType()) { +    switch (block.type()) {      case 'Paragraph':          block.string_content = block.strings.join('\n'); @@ -647,7 +652,7 @@ var processInlines = function(block) {      var walker = block.walker();      while ((event = walker.next())) {          node = event.node; -        t = node.getType(); +        t = node.type();          if (!event.entering && (t === 'Paragraph' || t === 'Header')) {              this.inlineParser.parse(node, this.refmap);          } diff --git a/js/lib/html.js b/js/lib/html.js index fd0aaf1..e39b4ac 100644 --- a/js/lib/html.js +++ b/js/lib/html.js @@ -68,7 +68,7 @@ var renderNodes = function(block) {              }          } -        switch (node.getType()) { +        switch (node.type()) {          case 'Text':              out(esc(node.literal));              break; @@ -134,7 +134,7 @@ var renderNodes = function(block) {          case 'Paragraph':              grandparent = node.parent.parent;              if (grandparent !== null && -                grandparent.getType() === 'List') { +                grandparent.type() === 'List') {                  if (grandparent.list_data.tight) {                      break;                  } @@ -221,7 +221,7 @@ var renderNodes = function(block) {              break;          default: -            throw "Unknown node type " + node.getType(); +            throw "Unknown node type " + node.type();          }      } diff --git a/js/lib/inlines.js b/js/lib/inlines.js index cfe085f..f12e297 100644 --- a/js/lib/inlines.js +++ b/js/lib/inlines.js @@ -658,7 +658,7 @@ var parseNewline = function(block) {      this.pos += 1; // assume we're at a \n      // check previous node for trailing spaces      var lastc = block.lastChild; -    if (lastc && lastc.getType() === 'Text') { +    if (lastc && lastc.type() === 'Text') {          var sps = reFinalSpace.exec(lastc.literal)[0].length;          if (sps > 0) {              lastc.literal = lastc.literal.replace(reFinalSpace, ''); diff --git a/js/lib/node.js b/js/lib/node.js index 12bb89e..65f3814 100644 --- a/js/lib/node.js +++ b/js/lib/node.js @@ -89,13 +89,9 @@ Node.prototype.isContainer = function() {      return isContainer(this);  }; -Node.prototype.getType = function() { +Node.prototype.type = function() {      return this.t; -} - -Node.prototype.setType = function(newtype) { -    this.t = newtype; -} +};  Node.prototype.appendChild = function(child) {      child.unlink(); diff --git a/js/lib/xml.js b/js/lib/xml.js index 8e4b689..64422c9 100644 --- a/js/lib/xml.js +++ b/js/lib/xml.js @@ -72,7 +72,7 @@ var renderNodes = function(block) {      while ((event = walker.next())) {          entering = event.entering;          node = event.node; -        nodetype = node.getType(); +        nodetype = node.type();          container = node.isContainer();          selfClosing = nodetype === 'HorizontalRule' || nodetype === 'Hardbreak' ||  | 
