Trying to parse a string in javascript that contains bold annotations, marked as *multi word bold*
(asterisk), and italic annotations, marked as _multi word italic_
(underline).
I'd like the parser function to support multi words annotations, italic within bold, bold within italic and mixed (see examples).
Here are some inputs with required outputs examples:
const simpleInput = "The *quick brown fox* jumps _over the lazy dog_";
const simpleOutput =[
{text: 'The '},
{text: 'quick brown fox', bold: true},
{text: ' jumps '},
{text: 'over the lazy dog', italic: true}
];
const italicWithinBoldInput = "The *quick brown _fox jumps_ over the* lazy dog";
const italicWithinBoldOutput =[
{text: 'The '},
{text: 'quick brown ', bold: true},
{text: 'fox jumps', bold: true, italic: true},
{text: ' over the', bold: true},
{text: ' lazy dog'}
];
const mixedInput = "The *quick brown _fox jumps* over the_ lazy dog";
const mixedOutput =[
{text: 'The '},
{text: 'quick brown ', bold: true},
{text: 'fox jumps', bold: true, italic: true},
{text: ' over the', italic: true},
{text: ' lazy dog'}
];
I tried some parsers on npm but everything was a bit of an overkill, nothing was quite what I needed..