2
0
mirror of https://github.com/tenrok/BBob.git synced 2026-05-30 15:24:05 +03:00
Commit Graph

12 Commits

Author SHA1 Message Date
Nikolay Kost 19e8dd659e feat(parser): context free tag mode (#165)
* feat(parser): initial context free tag mode

* fix: tests coverage

* chore: update readme

* chore: remove unused badge from readme
2023-01-27 05:26:09 +02:00
Nikolay Kostyurin da6709d437 feat: update core deps (#120)
* feat: use swc.rs instead of babel

* BREAKING CHANGE: now we use swc.rs as main bundler and transpiler instead of babel
  - jest now uses swc
  - rollup now uses swc

* feat: benchmark now separate package with `npm start` and colored output
  - benchmark as separate package with error throw if package drops performance

* feat: all lerna packages now using scripts/pkg-task

* feat(github): publish to npm and github registry
  - when release was created this action automaticly publish packages to npm and github

* feat(github): move all from Travis CI to Github Actions
  - code analysis and tests now using github actions

* test: increase tests coverage
  - add more tests for @bbob/react, @bbob/vue2 and @bbob/parser
2021-11-29 00:33:06 +02:00
Nikolay Kostyurin 09bda26d7c fix(parser): tag inside tag parsing regression (#81) 2020-12-16 00:29:26 +02:00
Nikolay Kostyurin 772d422d77 feat(parser): rewrite lexer to make it faster (#50)
* feat(parser): first iteration of new lexer

* feat(parser): convert token string props to number props

* refactor(parser): optimize char grabber

* refactor(parser): working on new lexer

* refactor(parser): convert token string props to number props

* refactor(parser): rebuild lexer, add tag attrs parsing

* refactor(parser): rework word parsing and tag parsing

* refactor(parser): rework to pass tests

* refactor(parser): rework tag parsing

* refactor(parser): rework escape tags parsing

* refactor(parser): rework tests

* refactor(parser): all test pass

* refactor(parser): make lexer faster by move mode switching in loop

* refactor(parser): remove all state map objects

* refactor(parser): order of parsing states

* refactor(parser): state switching without return

* refactor(parser): rename buffers to chars

* refactor(lexer): reduce function calls

* feat(lexer): add new parser tests and code to pass it

* fix(utils): remove unused variable in char grabber

* feat(lexer): add test for new lexer bug

* chore(*): add lexer and lexer2 to benchmark

* chore(lexer): add some debug info for char grabber

* feat(parser): add new test for single attributes without values

* fix(lexer): paired tags tests

* refactor(lexer): comment breaking changes tests for future releases

* feat(core): improve tests

* refactor(parser): add more tests, reduce char grabber size

* refactor(parser): reduce utils size

* refactor(parser): remove unused code from tag parsing code

* refactor(parser): remove unused code from word to tag transforming code

* chore(benchmark): fix benchmark imports
2020-12-09 01:03:48 +02:00
Nikolay Kostyurin b4cf27127f fix(parser): infinity loop problem when escape [\b] (#31)
With enableEscapeTags: true, when trying to write [b]test[\b] page is crashed.
Fixes #23
2019-06-30 11:15:10 +02:00
Nikolay Kostyurin c4a88e5036 chore: v2.5.1 (#21)
* fix(parser): fix issue with escaping backslashes when enableEscapeTags is set (#20)

there is a bug in the lexer where when enableEscapeTags is set, backslashes
are not always escaped (ie. \\[b] is treated as an escaped tag, rather than a
literal backslash, and then a tag).

* chore: v2.5.1
2019-06-18 09:56:21 +02:00
David Ferguson c4f78c1230 feat(parse): allow tags to be escaped with backslash (#17)
* feat(parse): allow tags to be escaped with backslash

adds additional option `enableEscapeTags` to `parse` and `createLexer` that
when true will parse openTag and closeTag as WORD (rather than TAG) when
proceeded with backslash
2019-06-17 21:29:10 +02:00
Nikolay Kostyurin 8cb1d495dd refactor(parser): better jsdoc, some behavior fixes, more tests
— all operations on nodes moved to `createList` function
- fixed problem with single tags with value only like `[url=value]` fixes #6
- write tests for `Token` class
- moved all node arrays to parse func, now parser supports many instances
- add jsdoc to critical parts of the parser to better understanding how it works
2019-03-04 02:24:12 +02:00
Nikolay Kostyurin b49b7435da feat(parser): better handlinf of unclosed tags like '[My unclosed and [closed] tag' 2018-09-24 00:33:27 +02:00
Nikolay Kostyurin 790825af30 feat(parser): custom open and close tags support, html tags tests (#3) 2018-09-18 23:41:52 +02:00
Nikolay Kostyurin 32a7fb51da refactor(*): convert to babel and generation to lib, es, dist folders (#2)
* refactor(*): convert to babel and generation to lib, es, dist

* chore(*): remove generated files

* fix(*): lint run command
2018-09-09 23:55:28 +02:00
Nikolay Kostyurin 88826512e7 feat(lexer): new lexer (#1) 2018-08-14 18:12:58 +02:00