UNPKG

wtf_wikipedia

Version:
54 lines (52 loc) 1.24 kB
//remove top-bottoms const cleanup = function (lines) { lines = lines.filter((line) => { //a '|+' row is a 'table caption', remove it. return line && /^\|\+/.test(line) !== true }) if (/^\{\|/.test(lines[0]) === true) { lines.shift() } if (/^\|\}/.test(lines[lines.length - 1]) === true) { lines.pop() } if (/^\|-/.test(lines[0]) === true) { lines.shift() } return lines } //turn newline seperated into '|-' seperated const findRows = function (lines) { let rows = [] let row = [] lines = cleanup(lines) for (let i = 0; i < lines.length; i += 1) { let line = lines[i] //'|-' is a row-seperator if (/^\|-/.test(line) === true) { //okay, we're done the row if (row.length > 0) { rows.push(row) row = [] } } else { //look for '||' inline row-splitter line = line.split(/(?:\|\||!!)/) //eslint-disable-line //support newline -> '||' if (!line[0] && line[1]) { line.shift() } line.forEach((l) => { l = l.replace(/^\| */, '') l = l.trim() row.push(l) }) } } //finish the last one if (row.length > 0) { rows.push(row) } return rows } module.exports = findRows