123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- showdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {
- 'use strict';
- spansOnly = spansOnly || false;
- var txt = '';
- // edge case of text without wrapper paragraph
- if (node.nodeType === 3) {
- return showdown.subParser('makeMarkdown.txt')(node, globals);
- }
- // HTML comment
- if (node.nodeType === 8) {
- return '<!--' + node.data + '-->\n\n';
- }
- // process only node elements
- if (node.nodeType !== 1) {
- return '';
- }
- var tagName = node.tagName.toLowerCase();
- switch (tagName) {
- //
- // BLOCKS
- //
- case 'h1':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\n\n'; }
- break;
- case 'h2':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\n\n'; }
- break;
- case 'h3':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\n\n'; }
- break;
- case 'h4':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\n\n'; }
- break;
- case 'h5':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\n\n'; }
- break;
- case 'h6':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\n\n'; }
- break;
- case 'p':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\n\n'; }
- break;
- case 'blockquote':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\n\n'; }
- break;
- case 'hr':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\n\n'; }
- break;
- case 'ol':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\n\n'; }
- break;
- case 'ul':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\n\n'; }
- break;
- case 'precode':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\n\n'; }
- break;
- case 'pre':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\n\n'; }
- break;
- case 'table':
- if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\n\n'; }
- break;
- //
- // SPANS
- //
- case 'code':
- txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);
- break;
- case 'em':
- case 'i':
- txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);
- break;
- case 'strong':
- case 'b':
- txt = showdown.subParser('makeMarkdown.strong')(node, globals);
- break;
- case 'del':
- txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);
- break;
- case 'a':
- txt = showdown.subParser('makeMarkdown.anchors')(node, globals);
- break;
- case 'img':
- txt = showdown.subParser('makeMarkdown.image')(node, globals);
- break;
- default:
- txt = node.outerHTML + '\n\n';
- }
- // common normalization
- // TODO eventually
- return txt;
- });
|