- fix: data-embed style tags db64a51
- build(deps): bump entities from 7.0.0 to 7.0.1 476d286
- build(deps-dev): bump @types/node from 25.0.10 to 25.2.0 306ceb7
juice ignoreCSS comments ce49f21removeInlinedSelectors130184e- inline duplicate properties c5b78ae
preservedSelectorsoption fbd82ca
We are now pinning the cheerio dependency to v1.0.0 so that we can keep supporting Node 18.
To anyone affected by the cheerio breaking change that should have been a major version release, sorry! Moving forward, for as long as we rely on cheerio we will pin it to a fixed version that we make sure does not silently introduce breaking changes in patch releases.
- fix:
ignorePseudosselector matching ee81959
- Dependency updates
- Resolve css variables
- Fix: An error is thrown in resetCounter when adding an counter-reset inline style to an element in combination with a different style (e.g., in head).
- pseudo Update
- !important table attribute update
- Breaking: requires node 10+
- Please see changes in web-resource-inliner@5 for other details
- Drop support for Node.js 4
- Fix bug with
getPreservedText(mixed uppreservePseudosandignorePseudos)
- Add
codeBlockssupport in CLI--options-file
- Fix gradient CSS being inlined into the
backgroundattribute
- Adds
preservePseudosoption with defaulttrue - Adds
thto list of elements that can receive awidthattribute
- Adds
preserveKeyFramesoption
- fix help typo
- fix memory leak in cheerio code block encode/decode
- update TS definition to allow for optional fileContent option
- Fix code blocks encode/decode so cheerio doesn't mulch them if they are tag attributes
- Fix regex catastrophic backtracking issue with unclosed code blocks
- Adds support for
preserveImportantto CLI
- Updated typescript definitions
- deps: update web-resource-inliner and cross-spawn
- engine: specify support as node 4.2+
- feat: add option
codeBlocksto support general exclusion of fenced code, like EJS, HBS, etc.
- deps: install mensch from npm instead of github
- deps: upgrade web-resource-inliner, change cross-spawn-async to cross-spawn, move batch to devDeps
- fix: specificity bugs
- deps: upgrade cheerio, cssom, web-resource-inliner
- major: most options default to
trueinstead offalsenow - major: remove deprecated
toArray
- feat: exclude css properties from inliner with juiceClient.excludedProperties
- fix: specificity of consecutive !important rules
- cli: correctly handle absolute path for
optionsFile - cli: convert all numbers and booleans from default string values
- Replace deprecated dep
win-spawnwithcross-spawn-async
- Add option
insertPreservedExtraCss
- Switch xtend to deep-extend to fix issue loading webResources settings when using --options-file
- Make all options available through CLI
- Add
--options-fileto CLI for loading JSON options - Make CLI tests work on Windows
- Deprecate
utils.toArray() - Fix handling of
:not()specificity
- Refactor to provide browser support at
juice/client - Add option
applyHeightAttributes - Bump dep
web-resource-inliner
- Add feature
data-embedattribute - update deps: web-resource-inliner, batch, commander, slick
- Exclude non-visual tags from inlining
- Add option
preserveFontFaces - update dep: web-resource-inliner
- Add extra CSS option to CLI
- CLI has test coverage now
- Prevent mangling of EJS tags
- Add option
preserveImportant - Make lib
use_strictcompliant and lint files
- Add
xmlModeoption
- remove index.js and point
mainin package.json to/lib/juice.js
- publish with line endings fixed in /bin
- Fix order of inlined style properties. Now sorted by selector specificity, resulting in the same computed styles that the original CSS would have had.
- Add option to inline pseudo elements as elements
- added option
applyAttributesTableElements - bump version on web-resource-inliner to 1.1.1
- fix bin/juice so it works as documented
- legacy support for
urloption - bump version on web-resource-inliner to use
relativeTowith a url and remote paths starting// - update skipped tests to mocha so they will run with
npm testand on travis - bump web-resource-inliner version to expose
strictoption, which is nowfalseby default
- add support for node 0.12
- drop support for node 0.8
- use cheerio instead of jsdom
- move remote resource fetching to external library web-resource-inliner
- adjust public methods as needed to support other changes
- rename
juiceContenttojuiceResources - maintain CSS single quotes
- ability to inline css pixel widths to
widthattribute withapplyWidthAttributes - alphabetize styles for improved specificity
- ability to keep media query styles with option
preserveMediaQueries - clean up testing setup, including removing old dependency on expresso
- istanbul put in place to show test coverage
- remove now unused options
applyLinkTagsandremoveLinkTags
- update dependencies [binarykitchen]
- handle errors in loading external css
- add repository field to readme
- update jsdom dependency to 0.6.0
- fix resolving file:// paths on windows (thanks Mirco Zeiss)
- fix crash during cleanup. (thanks Ger Hobbelt)
- update superagent to 0.14.0
- fix regression: not ignoring pseudos
- do not crash on ::selectors (covered by normalize.css test case)
- update jsdom dependency to 0.5.4
- support node v0.10
- switch dependency to slick instead of mootools which was rudely unpublished
- update jsdom dependency to 0.5.0
- fix specificity test. all test cases passed now.
- add a command line
juiceprogram
- fix incorrectly lowercasing href
- explicitly document which node versions are supported
with
enginesand travis-ci. - expose
juice.inlineDocumentandjuice.inlineContent
- fix / test case for @media queries
- merge boost into juice
- legacy
juicefunction still works as is - add
juice(filePath, [options], callback) - add
juice.juiceDocument(document, options, callback) - add
juice.juiceContent(html, options, callback) - remove
juice.juiceDom
- update jsdom dependency to 0.4.0
- update cssom dependency to 0.2.5
- expose a lower level export so you can operate on a jsdom document [superjoe30]
- fix exports not working [superjoe30]
- fix jshint problems [superjoe30]
- fixed test case expected outputs to have starting and ending and tags as jsdom appends them in its html() function if they do not exist
- regression test for previous fix for media queries. note i had to wrap my test .out content in tags in order to pass tests, it looks like they are appended at some point for partial html content which just guessing is new behavior from when these tests were written
- make sure the css rule has selectorText to prevent parsing exception. hit this on @media rules which do not have selector text. afaik this means media queries will not be inlined. however everything else is.
- bump jsdom
- Added note regarding node-email-templates to README
- Corrected juice unit tests for latest cssom.
- Fixed presence of \n in selectors.
- Fixed unneeded removal of inline event handlers in html.
- Bumped jsdom.
- Added whitelist of pseudos to ignore (fixes
:first-childetc) - Fine-tuned jsdom for speed (disabled unneded features).
- Added caching of parsed selectors.
- Fixed
:hover.
- Fixed specificity :not recursion.
- Fixed specificity calculation for
not()and pseudos. [arian]
- Initial release.