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

29 Commits

Author SHA1 Message Date
Nikolay Kost 0566241e23 feat(#271): whitespaceInTags mode (#272)
* fix: test for buggy behavior

* feat: implement whitespaceInTags mode

* feat: move all char arrays to Map

* feat: revert Map for char arrays
2025-03-09 02:23:03 +02:00
Nikolay Kost ccab54a454 feat(#250): introduce caseFreeTags option (#251)
* chore: initial tests

* feat: parser test

* feat: add case free tags support

* fix: coverage upload

* fix: --disable=gcov

* fix: npm publish sha commit

* fix: change codecov to coveralls

* fix: change workflow pr build and publish

* chore: change coverage badge [skip ci]
2024-10-16 23:26:06 +02:00
Steven Chang 40848747d4 feat: add start and end positions of tag nodes (#246)
Closes #134

* feat: Add start and end positions of tag nodes

Improves accuracy of row/col error reporting. Now targets the start of the relevant token instead of the end.

* Simplify language for TagNode and Token

* Update static TagNode.create to ingest setStart() logic

improve readability of end pos offset for no attr tags
2024-08-01 09:42:29 +02:00
Nikolay Kost 270f5645f8 fix(#206): TagNode.create now with null content argument by default (#233)
* fix: TagNode.create with null content by default

* Create five-meals-sing.md

* fix: tests

* fix(preset): types inference

* fix: preset types

* fix: preset types

* fix: lock file, parser and utils

* refactor: move types to separate package

* fix(preset): add @bbob/core to dev deps

* fix(preset): lock file

* test(preset-vue): create tags

* test(preset-vue): tests

* chore(nx): fix nx cover deps

* chore: changesets
2024-06-24 01:32:15 +03:00
Nikolay Kost 8797f7f363 feat: typescript support (#185)
* feat: initial typescript support

* feat: typescript support

* feat(plugin-helper): move files to typescript

* chore: update lock files

* feat: preset types

* fix: build

* fix: benchmark

* fix: remove pnpm cache

* fix: bench action

* fix: pnpm recursive install

* fix: nx cache

* fix: lock file

* fix: workflows

* fix: lerna support in pnpm

* fix: pnpm workspace

* fix: remove unused files

* fix: pnpm lock file

* fix: update lerna for support pnpm

* fix: lerna bootstrap

* fix: rollup build

* fix: update nx

* fix: build

* fix: add nx dep target

* fix: remove nx cache

* fix: workflow run on push only for master

* fix: test workflow run on push only for master

* fix: remove parallel for gen types

* fix: benchmark

* fix: benchmark imports

* fix: pnpm

* fix: types errors and pnpm

* fix: types

* fix: types

* refactor: parser

* fix(parser): tests

* fix: preset tests

* fix: react types

* fix: react type declarations

* fix: pnpm lock file

* fix: react preset types

* fix: lock file

* fix: vue2 types

* feat: dev container support

* fix: types

* fix: types

* refactor: rewrite pkg-task, add nx gen-types deps, fix react/render.ts

* refactor: types

* fix: types

* fix: rename gen-types to types

* fix: nx build order

* fix: nx reset

* fix: define nx deps explicit

* fix: build

* fix: nx

* fix: nx order build

* fix: nx deps

* fix: bbob cli tests

* fix: tests

* fix: cli tests and import

* fix: test cover

* fix: cli cover
2024-04-23 21:11:14 +02:00
Steven Chang 05246b2aea fix: treat contextFreeTags case insensitively (#230) 2024-04-14 16:02:29 +03:00
Nikolay Kost 0c78831372 feat(preset-html5): color tag #189, case insensitive tags #190 (#191)
* fix(preset-html5): add color tag #189

* fix(parser): case insensitive tags bug #190
2023-09-28 04:02:52 +03:00
Nikolay Kost 603c3ead0f fix: bug with lost closing tag (#186)
* fix: closing tag bug

* chore: add changeset thin-crabs-wonder.md

* chore: remove debug code

* chore: add more tests
2023-08-28 14:26:27 +02:00
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 Kost 2d1a08ba9a chore: update build system and dependencies (#155)
* chore: fix swc + rollup transform

* chore: fix pkg-task args parsing

* chore: update lerna, rollup and swc to build proper es6 files

* chore: fix swc build for es targets

* ci: nodes matrix to newest versions

* ci: rollup to mjs, swc to json

* ci: add canary publish

* ci: no git tag for canary

* ci: no private publish for canary

* ci: remove --canary from publish-canary

* fix: remove gitHead from package.json

* fix: tests setup

* fix: bbob plugin helper imports

* fix: plugin helper build priority and circular deps

* fix: add nx for parallel build

* fix: npm ci

* fix: code ql

* fix: remove exports directive

* fix: rollup build

* fix: vue2 test and minify

* fix: bundle size limits

* feat: bundlephobia pr review

* feat: bundlephobia more popular action

* feat: publish branch to npm

* fix: secret NPM token

* fix: bundlephobia version

* fix: remove bundlephobia checker

* fix: npm publish in PR

* chore: release 2.8.3

* chore: fix test runs on CI, removed 14.x version

* fix: sync package-lock

* fix: remove lock files in sub packages

* fix: bundlesize > bundlesize2

* fix: update lock files

* fix: lock file in vue2-example
2022-12-18 03:09:56 +02:00
Nikolay Kostyurin cad0e9e7f4 perf(parser): cache nested tokens in Set to prevent deoptimization (#83) 2020-12-16 23:55:17 +02:00
Nikolay Kostyurin 70ff2e6660 fix(parser): dont process nested tags as string if parent is not allowed (#84)
* fix(parser): dont process nested tags as string if parent is not allowed

* fix(plugin-helper): toString method with default params
2020-12-16 23:51:28 +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 fda6ddd6ee refactor: reduce dist files sizes (#76)
* fix(parser): plugin-helper import, remove dist file code duplication

* feat(plugin-helper): reduce bundle size, set new limits to 650 bytes

* refactor(preset): html5, react presets to reduce the size of dist files
2020-12-09 00:01:34 +02:00
Nikolay Kostyurin a16b9f73b0 fix(parser): don't eat not allowed tags with params (#58) fixes #54
* feat(parser): write test for only allowed tags parsing

* chore(parser): rename only allowed test

* fix(parser): only allowed tag rendering

* fix(plugin-helper): add new TagNode toString tests
2020-04-12 21:14:52 +02:00
Nikolay Kostyurin 97ecba0af6 perf(parser): optimize v8 perf deoptimizations (#61) 2020-04-05 15:08:59 +02:00
Nikolay Kostyurin aac1ae0e81 chore(*): update dependencies (#57)
Updated Rollup
Updated Babel
Fixed security problems with some dependencies
2020-01-22 20:25:42 +02:00
Nikolay Kostyurin be938fd21f fix(parser): try to hack terser minifier that removes working code (#49)
* fix(parser): try to hack terser minifier that removes working code Fixes #48
2019-09-25 09:29:21 +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 ef6a778f45 refactor(parser): jsdoc, move some utility functions to separate files 2019-03-02 22:21:44 +02:00
Nikolay Kostyurin 1c3bebef22 feat(parser): better line and column counting support in tokens 2018-10-07 22:20:49 +02:00
Nikolay Kostyurin b56b3c71a5 style(parser): remove unused func 2018-09-24 00:45:01 +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