diff options
Diffstat (limited to 'js/lib')
-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' || |