* Replace css-escape-polyfill.js with escapecss.js utility module
* Add $tw.utils.escapeCSS() method and invoke that function within the
escapecss operator.
* Add test cases for the "escapecss" filter operator
* Fix $tw.boot.doesTaskMatchPlatform() so it works as expected if
a module's export.platforms contains more than one values
* Add missed files to the last commit
Fixes#5246. Now the reduce operator and :reduce filter run prefix will
both return empty output when their input is empty, so that both can be
chained together with the else operator or :else prefix.
Default with no suffix is pre-5.1.23 behavior, escaping all Unicode
characters for maximum compatibility (avoids encoding issues). New
"rawunicode" suffix allows passing through Unicode characters U+0080
and up unchanged, for cases where you know your tools are handling
encoding correctly and you want less verbose escaping.
* Extend toggle operator to support optional second operand to toggle a value pair
* Added tests for extended toggle filter
* Updated docs for toggle operator
* Add suffix and parameter to trim operator
Fixes#4809
* Unit tests for new trim operator parameters
* Mention trim operator in 5.1.23 release notes
* Address review comments
* Move regex escaping into utils.js trim functions
This way the trimPrefix and trimSuffix functions from utils.js are safe
to call without regex-escaping their parameters, which should make them
easier to use from other parts of the Javascript code.
* The `!has[tags]` filter didn't work because "tags" is an array
The negated `has` filter only considered empty strings, but not empty
arrays (such as the `tags` field).
* Add tests for `has` filter operator with array-like fields (tags, list)
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* extend fields-widget with include/exclude/sort/reverse and fields-filter with include and exclude params plus DOCS
* remove new-line
* remove eslint settings
* restore old eslint settings
* remove typo
* add escapecss filter
this filter would allow creating valid css classes from titles containing special characters
we assign a class to an element using `encodeuricomponent[]` so that the class name is encoded
in a stylesheet we create the classname by `<title>escapecss[]` which applies the uri encoding and escapes characters that need to be escaped
* Update encodings.js
* refactor tagToCssSelector, add escapeCssSelector
* use escapeCssSelector
* escape using CSS.escape if it's available
* Update encodings.js
* revert factoring out escapeCssSelector