Be consistent
This commit is contained in:
parent
2fb885282b
commit
085e76d7bb
1 changed files with 85 additions and 80 deletions
165
build/md2json.js
165
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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue