Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes #38
But before accepting it, probably we should a little bit discuss it.
The parser is partially based on this spec. It takes 100+ lines of code and adds 0.33kb to dist size.
The reason why it takes so much is because of nesting, escaping support and also because of some edge cases, which can not be achieved using only js regexp. We can a little bit reduce parser size if we drop nesting support (which is actually currently broken in browser due to bad styles order e.g.:
console.log('%c%cfoo%c%c', 'font-weight: bold;', '', 'font-style:italic;', '')
forlogger.log('*_foo_*')
). What do you think? (@caiogondim , @bennyn )There is one more feature, that looks interesting to me, but I've skipped it to keep code a little bit simpler. But if you think, that we need it, I can implement it too. Please see this test case:
BTW. In my console on linux
chalk.italic
looks almost the same as the normal text.