| 2691 | }; |
| 2692 | |
| 2693 | var renderNodes = function(block) { |
| 2694 | |
| 2695 | var attrs; |
| 2696 | var tagname; |
| 2697 | var walker = block.walker(); |
| 2698 | var event, node, entering; |
| 2699 | var buffer = ""; |
| 2700 | var lastOut = "\n"; |
| 2701 | var disableTags = 0; |
| 2702 | var indentLevel = 0; |
| 2703 | var indent = ' '; |
| 2704 | var container; |
| 2705 | var selfClosing; |
| 2706 | var nodetype; |
| 2707 | |
| 2708 | var out = function(s) { |
| 2709 | if (disableTags > 0) { |
| 2710 | buffer += s.replace(reXMLTag, ''); |
| 2711 | } else { |
| 2712 | buffer += s; |
| 2713 | } |
| 2714 | lastOut = s; |
| 2715 | }; |
| 2716 | var esc = this.escape; |
| 2717 | var cr = function() { |
| 2718 | if (lastOut !== '\n') { |
| 2719 | buffer += '\n'; |
| 2720 | lastOut = '\n'; |
| 2721 | for (var i = indentLevel; i > 0; i--) { |
| 2722 | buffer += indent; |
| 2723 | } |
| 2724 | } |
| 2725 | }; |
| 2726 | |
| 2727 | var options = this.options; |
| 2728 | |
| 2729 | if (options.time) { console.time("rendering"); } |
| 2730 | |
| 2731 | buffer += '<?xml version="1.0" encoding="UTF-8"?>\n'; |
| 2732 | buffer += '<!DOCTYPE CommonMark SYSTEM "CommonMark.dtd">\n'; |
| 2733 | |
| 2734 | while ((event = walker.next())) { |
| 2735 | entering = event.entering; |
| 2736 | node = event.node; |
| 2737 | nodetype = node.type; |
| 2738 | |
| 2739 | container = node.isContainer; |
| 2740 | selfClosing = nodetype === 'thematic_break' || nodetype === 'linebreak' || |
| 2741 | nodetype === 'softbreak'; |
| 2742 | tagname = toTagName(nodetype); |
| 2743 | |
| 2744 | if (entering) { |
| 2745 | |
| 2746 | attrs = []; |
| 2747 | |
| 2748 | switch (nodetype) { |
| 2749 | case 'document': |
| 2750 | attrs.push(['xmlns', 'http://commonmark.org/xml/1.0']); |