manolo
Version:
troff/groff file parser
73 lines (53 loc) • 1.49 kB
JavaScript
var line = "-w \\fRor\\fP --path",
fonts = {
B: 'bold',
I: 'italics',
R: 'roman'
},
FONTS = fonts;
function doFormat(str, font) {
var mark = str.indexOf('\\f'),
start = 0,
pieces = [];
fonts.P = font;
if (mark === -1) {
return [{ type: font, text: str }];
}
while (mark < str.length && mark > -1) {
console.log('mark ', mark);
console.log('str ', str);
pieces.push({ type: font, text: str.substr(start, mark) });
font = fonts[str.charAt(mark + 2)];
str = str.substr(mark + 3);
mark = str.indexOf('\\f');
console.log('str', str);
console.log('mark ', mark);
console.log(font);
//mark = 1000
}
if (str.length) {
pieces.push({ type: font, text: str });
}
return pieces;
}
function inlineFormat(str, font, nodeList) {
var mark = str.indexOf('\\f'),
start = 0;
console.log(nodeList)
FONTS.P = font;
if (mark === -1) {
nodeList.push({ type: font, text: str });
}
while (mark < str.length && mark > -1) {
nodeList.push({ type: font, text: str.substr(start, mark) });
font = fonts[str.charAt(mark + 2)];
str = str.substr(mark + 3);
mark = str.indexOf('\\f');
}
if (str.length) {
nodeList.push({ type: font, text: str });
}
}
var thingz = [];
inlineFormat(line, 'bold', thingz)
console.log(thingz);