UNPKG

manolo

Version:

troff/groff file parser

73 lines (53 loc) 1.49 kB
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);