UNPKG

marktable

Version:

Markdown table parser, editor and formater

357 lines (356 loc) 10.4 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for marktable.js</title> <meta charset="utf-8" /> <link rel="stylesheet" href="prettify.css" /> <link rel="stylesheet" href="base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="index.html">All files</a> marktable.js </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">90.63% </span> <span class="quiet">Statements</span> <span class='fraction'>29/32</span> </div> <div class='fl pad1y space-right2'> <span class="strong">50% </span> <span class="quiet">Branches</span> <span class='fraction'>3/6</span> </div> <div class='fl pad1y space-right2'> <span class="strong">80% </span> <span class="quiet">Functions</span> <span class='fraction'>4/5</span> </div> <div class='fl pad1y space-right2'> <span class="strong">90.63% </span> <span class="quiet">Lines</span> <span class='fraction'>29/32</span> </div> </div> </div> <div class='status-line high'></div> <pre><table class="coverage"> <tr><td class="line-count quiet">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">7x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// Import var re = require('./regex') var Table = require('./Table') &nbsp; // Export module.exports = marktable &nbsp; /** * Format each table in a markdown source * * @param {String} src Markdown source * @param {Object} [options] Formating option (not used yet) * @return {String} */ function marktable (src) { // TODO: without src (and eventually options) // this function may return a transform stream // that bufferize only table data return marktable.parse(src, function (table) { return table.toMarkdown(/*options*/) }) } &nbsp; /** * Parse synchronously a source and call a function on each table object found * * @param {String} src * Markdown source * * @param {Function} handleTable * A function that receive two arguments: a table object and the offset * This function may return undefined or a transformed table source to * replace the table in the body * * @return {String} * The source after transformation */ marktable.parse = function (src, handleTable) { var trim = false <span class="missing-if-branch" title="if path not taken" >I</span>if (!/\n$/.test(src)) { // No empty line before EOF, (\Z do not work in JS) // We add an EOL (removed later if needed) <span class="cstat-no" title="statement not covered" > src += '\n'</span> <span class="cstat-no" title="statement not covered" > trim = true</span> } &nbsp; return src.replace(new RegExp(re.wholeTable.source, 'g'), function (rawTable) { var args = Array.prototype.slice.call(arguments) var offset = args[args.length - 2] // var rest = args[args.length - 3] var rest = '' var parseResult = { offset: offset, offsetEnd: offset + args[0].length, raw: args[0], caption: args[1], headers: args[2], columns: args[3], rows: args[4] } &nbsp; var table = new Table() table.handleParseResult(parseResult) &nbsp; var result = handleTable(table, parseResult) result = result !== undefined ? (result + rest) : <span class="branch-1 cbranch-no" title="branch not covered" >rawTable</span> <span class="missing-if-branch" title="if path not taken" >I</span>if (trim) { <span class="cstat-no" title="statement not covered" > result = result.trim()</span> } return result }) } &nbsp; /** * Return a transform stream * * @param {Function} handleTable * A function that receive two arguments: a table object and the offset * This function may return undefined or a transformed table source to * replace the table in the body * * @return {Stream.Transform} */ marktable.transform = <span class="fstat-no" title="function not covered" >fu</span>nction (handleTable) { // TODO: Return a transform stream } &nbsp; // Expose API marktable.Document = require('./Document') marktable.Cell = require('./Cell') marktable.Colgroup = require('./Colgroup') marktable.Column = require('./Column') marktable.MultilineRow = require('./MultilineRow') marktable.Row = require('./Row') marktable.Table = require('./Table') marktable.TBody = require('./TBody') marktable.Cursor = require('./Cursor') &nbsp;</pre></td></tr> </table></pre> <div class='push'></div><!-- for sticky footer --> </div><!-- /wrapper --> <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Oct 22 2017 17:31:15 GMT+0200 (CEST) </div> </div> <script src="prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="sorter.js"></script> </body> </html>