Skip to content

Commit

Permalink
Add parameter to ignore words from declaration value
Browse files Browse the repository at this point in the history
  • Loading branch information
EdMSL committed Nov 7, 2024
1 parent c84e2a4 commit 9da6b37
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
3 changes: 2 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const colorNames = Object.keys(colors);
const colorFormats = [HEX_COLOR, RGB_COLOR, HSL_COLOR, KEYWORD_COLOR];

const propsWithColorRegExp = /(background|border|shadow|color|fill|outline|@|--|\$)/;
const ignoredValuesRegExp = /(url)/;
const specValuesInParamsRegExp = /(\$|calc|var)/;

const defaultOptions = {
Expand All @@ -44,7 +45,7 @@ module.exports = (options = {}) => {
postcssPlugin: 'postcss-color-converter',
Declaration (decl) {
if (
decl.prop && propsWithColorRegExp.test(decl.prop) && decl.value
decl.prop && propsWithColorRegExp.test(decl.prop) && decl.value && !ignoredValuesRegExp.test(decl.value)
) {
let valueObj = valueParser.parse(decl.value, { ignoreUnknownWords: true });

Expand Down
11 changes: 11 additions & 0 deletions test/complete.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -201,4 +201,15 @@ describe('Various complete test', function () {
);
}`);
});

it('url() function must be ignored', function () {
assert.equal(transform(
`
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIxMnB4IiB2aWV3Qm94PSIwIDAgMjAgMTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU0LjEgKDc2NDkwKSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT5pY29uLWFycm93LXVwPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggZD0iTTMuNDE0MjEzNTYsMC41ODU3ODY0MzggQzIuNjMzMTY0OTgsLTAuMTk1MjYyMTQ2IDEuMzY2ODM1MDIsLTAuMTk1MjYyMTQ2IDAuNTg1Nzg2NDM4LDAuNTg1Nzg2NDM4IEMtMC4xOTUyNjIxNDYsMS4zNjY4MzUwMiAtMC4xOTUyNjIxNDYsMi42MzMxNjQ5OCAwLjU4NTc4NjQzOCwzLjQxNDIxMzU2IEw4LjU4NTc4NjQ0LDExLjQxNDIxMzYgQzkuMzY2ODM1MDIsMTIuMTk1MjYyMSAxMC42MzMxNjUsMTIuMTk1MjYyMSAxMS40MTQyMTM2LDExLjQxNDIxMzYgTDE5LjQxNDIxMzYsMy40MTQyMTM1NiBDMjAuMTk1MjYyMSwyLjYzMzE2NDk4IDIwLjE5NTI2MjEsMS4zNjY4MzUwMiAxOS40MTQyMTM2LDAuNTg1Nzg2NDM4IEMxOC42MzMxNjUsLTAuMTk1MjYyMTQ2IDE3LjM2NjgzNSwtMC4xOTUyNjIxNDYgMTYuNTg1Nzg2NCwwLjU4NTc4NjQzOCBMMTAsNy4xNzE1NzI4OCBMMy40MTQyMTM1NiwwLjU4NTc4NjQzOCBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iTGFuZGluZ3BhZ2UiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIwMS4wMi1MYW5kaW5ncGFnZS1GQVEtRGVza3RvcCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTExNjUuMDAwMDAwLCAtNTk3LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0iMDQtQ29udGVudC1UeXAtMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzNi4wMDAwMDAsIDQ4Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJGcmFnZS0wMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDgwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJpY29uLWFycm93LXVwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MjkuMDAwMDAwLCAzNS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGlkPSJTaGFwZSIgZmlsbD0iIzI4MzczQyIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC4wMDAwMDAsIDYuMDAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC0xMC4wMDAwMDAsIC02LjAwMDAwMCkgIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==) no-repeat;
`,
{ outputColorFormat: 'rgb', alwaysAlpha: true },
), `
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIxMnB4IiB2aWV3Qm94PSIwIDAgMjAgMTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU0LjEgKDc2NDkwKSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT5pY29uLWFycm93LXVwPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggZD0iTTMuNDE0MjEzNTYsMC41ODU3ODY0MzggQzIuNjMzMTY0OTgsLTAuMTk1MjYyMTQ2IDEuMzY2ODM1MDIsLTAuMTk1MjYyMTQ2IDAuNTg1Nzg2NDM4LDAuNTg1Nzg2NDM4IEMtMC4xOTUyNjIxNDYsMS4zNjY4MzUwMiAtMC4xOTUyNjIxNDYsMi42MzMxNjQ5OCAwLjU4NTc4NjQzOCwzLjQxNDIxMzU2IEw4LjU4NTc4NjQ0LDExLjQxNDIxMzYgQzkuMzY2ODM1MDIsMTIuMTk1MjYyMSAxMC42MzMxNjUsMTIuMTk1MjYyMSAxMS40MTQyMTM2LDExLjQxNDIxMzYgTDE5LjQxNDIxMzYsMy40MTQyMTM1NiBDMjAuMTk1MjYyMSwyLjYzMzE2NDk4IDIwLjE5NTI2MjEsMS4zNjY4MzUwMiAxOS40MTQyMTM2LDAuNTg1Nzg2NDM4IEMxOC42MzMxNjUsLTAuMTk1MjYyMTQ2IDE3LjM2NjgzNSwtMC4xOTUyNjIxNDYgMTYuNTg1Nzg2NCwwLjU4NTc4NjQzOCBMMTAsNy4xNzE1NzI4OCBMMy40MTQyMTM1NiwwLjU4NTc4NjQzOCBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iTGFuZGluZ3BhZ2UiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIwMS4wMi1MYW5kaW5ncGFnZS1GQVEtRGVza3RvcCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTExNjUuMDAwMDAwLCAtNTk3LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0iMDQtQ29udGVudC1UeXAtMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzNi4wMDAwMDAsIDQ4Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJGcmFnZS0wMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDgwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJpY29uLWFycm93LXVwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MjkuMDAwMDAwLCAzNS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGlkPSJTaGFwZSIgZmlsbD0iIzI4MzczQyIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC4wMDAwMDAsIDYuMDAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC0xMC4wMDAwMDAsIC02LjAwMDAwMCkgIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==) no-repeat;
`);
});
});
1 change: 1 addition & 0 deletions test/fixtures/common.test.scss
Original file line number Diff line number Diff line change
Expand Up @@ -106,4 +106,5 @@ $greenlight: hsla(168, 75%, 37%, 0.747);
height: 300px;

animation-iteration-count: infinite;
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIxMnB4IiB2aWV3Qm94PSIwIDAgMjAgMTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDU0LjEgKDc2NDkwKSAtIGh0dHBzOi8vc2tldGNoYXBwLmNvbSAtLT4KICAgIDx0aXRsZT5pY29uLWFycm93LXVwPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggZD0iTTMuNDE0MjEzNTYsMC41ODU3ODY0MzggQzIuNjMzMTY0OTgsLTAuMTk1MjYyMTQ2IDEuMzY2ODM1MDIsLTAuMTk1MjYyMTQ2IDAuNTg1Nzg2NDM4LDAuNTg1Nzg2NDM4IEMtMC4xOTUyNjIxNDYsMS4zNjY4MzUwMiAtMC4xOTUyNjIxNDYsMi42MzMxNjQ5OCAwLjU4NTc4NjQzOCwzLjQxNDIxMzU2IEw4LjU4NTc4NjQ0LDExLjQxNDIxMzYgQzkuMzY2ODM1MDIsMTIuMTk1MjYyMSAxMC42MzMxNjUsMTIuMTk1MjYyMSAxMS40MTQyMTM2LDExLjQxNDIxMzYgTDE5LjQxNDIxMzYsMy40MTQyMTM1NiBDMjAuMTk1MjYyMSwyLjYzMzE2NDk4IDIwLjE5NTI2MjEsMS4zNjY4MzUwMiAxOS40MTQyMTM2LDAuNTg1Nzg2NDM4IEMxOC42MzMxNjUsLTAuMTk1MjYyMTQ2IDE3LjM2NjgzNSwtMC4xOTUyNjIxNDYgMTYuNTg1Nzg2NCwwLjU4NTc4NjQzOCBMMTAsNy4xNzE1NzI4OCBMMy40MTQyMTM1NiwwLjU4NTc4NjQzOCBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0iTGFuZGluZ3BhZ2UiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSIwMS4wMi1MYW5kaW5ncGFnZS1GQVEtRGVza3RvcCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTExNjUuMDAwMDAwLCAtNTk3LjAwMDAwMCkiPgogICAgICAgICAgICA8ZyBpZD0iMDQtQ29udGVudC1UeXAtMDIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzNi4wMDAwMDAsIDQ4Mi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJGcmFnZS0wMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDgwLjAwMDAwMCkiPgogICAgICAgICAgICAgICAgICAgIDxnIGlkPSJpY29uLWFycm93LXVwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg5MjkuMDAwMDAwLCAzNS4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0id2hpdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPgogICAgICAgICAgICAgICAgICAgICAgICA8dXNlIGlkPSJTaGFwZSIgZmlsbD0iIzI4MzczQyIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC4wMDAwMDAsIDYuMDAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC0xMC4wMDAwMDAsIC02LjAwMDAwMCkgIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==) no-repeat;
}

0 comments on commit 9da6b37

Please sign in to comment.