diff --git a/build/md2json.js b/build/md2json.js index 92d91bb..1db3a71 100644 --- a/build/md2json.js +++ b/build/md2json.js @@ -27,105 +27,110 @@ function md_trim(str, context) { function handle(filename, anchor) { fs.readFile(filename, 'utf8', function (err,text) { - if (err) { - return console.log(err); - } - var lines = text.split("\n"); - var cur_line = 0; - var line = "" - var table_name = ""; - var col_num = 0; - var cols = []; - var rows = []; + if (err) { + return console.log(err); + } - function read_line() { - return lines[cur_line++]; - } - var root = {}; - while (true) { + var lines = text.split("\n"); + var cur_line = 0; + var line = "" + var table_name = ""; + var col_num = 0; var cols = []; var rows = []; - while (line.indexOf(anchor) == -1 && cur_line != lines.length) { - line = read_line(); + var root = {}; + + function read_line() { + return lines[cur_line++]; } - if (cur_line == lines.length) { - break; - } - table_name = line.split(anchor)[1]; - table_name = md_trim(table_name, 0) - line = read_line() - - if (line) { - line = line.split("|") - for (var j in line) { - - line[j] = md_trim(line[j], 0) - if ((j == 0 || j == line.length - 1) && line[j] === "") { - - } else { - cols.push(line[j]); - } + while (true) { + var cols = []; + var rows = []; + while (line.indexOf(anchor) == -1 && cur_line != lines.length) { + line = read_line(); } - if (line.length) { - cols = line; - rows.push(cols) - } else { - console.error("Markdown expects column title") + if (cur_line == lines.length) { break; } - } else { - console.error("Markdown expects table content") - break; - } + table_name = line.split(anchor)[1]; + table_name = md_trim(table_name, 0) - line = read_line() - - if (!line) { - console.error("Markdown expects table spliter") - break; - } - line = read_line() - while (line.indexOf("|") != -1 && cur_line != lines.length) { - - var line_this = line.split("|") - var row = [] - for (var j in line_this) { - line_this[j] = md_trim(line_this[j], j) - if ((j == 0 || j == line_this.length - 1) && line_this[j] === "") { - - } else { - row.push(line_this[j]); - } - - } - rows.push(row); line = read_line() + + if (line) { + line = line.split("|") + for (var j in line) { + + line[j] = md_trim(line[j], 0) + if ((j == 0 || j == line.length - 1) && line[j] === "") { + + } else { + cols.push(line[j]); + } + } + if (line.length) { + cols = line; + rows.push(cols) + } else { + console.error("Markdown expects column title") + break; + } + } else { + console.error("Markdown expects table content") + break; + } + + line = read_line() + + if (!line) { + console.error("Markdown expects table spliter") + break; + } + line = read_line() + while (line.indexOf("|") != -1 && cur_line != lines.length) { + + var line_this = line.split("|") + var row = [] + for (var j in line_this) { + line_this[j] = md_trim(line_this[j], j) + if ((j == 0 || j == line_this.length - 1) && line_this[j] === "") { + + } else { + row.push(line_this[j]); + } + + } + rows.push(row); + line = read_line() + } + + var data=[]; + for (var j in rows) { + if (j != 0) { + var ele = {}; + for (var k in rows[j]) { + ele[rows[0][k]] = rows[j][k]; + } + data.push(ele); + } + } + root[table_name] = data; } - var data=[]; - for (var j in rows) { - if (j != 0) { - var ele = {}; - for (var k in rows[j]) { - ele[rows[0][k]] = rows[j][k]; - } - data.push(ele); - } - } - root[table_name] = data; - } - console.log(JSON.stringify(root)); - }); + console.log(JSON.stringify(root)); + }); } if (process.argv.length < 3) { console.log("No .md file passed!"); return; } + if (process.argv.length < 4) { - anchorText = "###"; + anchorText = "###"; } else { - anchorText = process.argv[3]; + anchorText = process.argv[3]; } + handle(process.argv[2].toString(), anchorText);