Skip to content

SVGR exception with CDATA inside <style/> tag #558

@kodidu

Description

@kodidu

Hello!

My application to design SVG uses CDATA inside the <style/> section.
All tested browsers open this SVG without issues:

<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="960px" height="560px" version="1.1" viewBox="0 0 960 560">
 <defs>
  <style type="text/css">
   <![CDATA[
    .fnt0 {font-weight:normal;font-size:39px;font-family:'Arial'}
   ]]>
  </style>
 </defs>
 <g id="XO">
  <metadata id="Layer"/>
  <text x="751" y="104" id="Temp" class="fnt0">25.0°C</text>
 </g>
</svg>

But SVGR fails to convert the SVG if i disable SVGO:

PS src\application\components> npx  @svgr/cli --icon --no-svgo -d .\ .\svg\cdata.svg
node_modules\@svgr\cli\lib\index.js:162
    throw error;
    ^
Error: Expected node, got `
    .fnt0 {font-weight:normal;font-size:39px;font-family:'Arial'}
   `
    at one (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\one.js:12:11)
    at all (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\all.js:20:37)
    at element (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\handlers.js:51:37)
    at one (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\one.js:19:10)
    at all (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\all.js:20:37)
    at element (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\handlers.js:51:37)
    at one (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\one.js:19:10)
    at all (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\all.js:20:37)
    at element (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\handlers.js:51:37)
    at one (node_modules\@svgr\cli\node_modules\@svgr\hast-util-to-babel-ast\lib\one.js:19:10)
PS src\application\components> 

So maybe SVGO parses the CDATA section without issues but if SVGR parses the SVG directly it fails.
If i simply remove <![CDATA[`` and ]]` SVGO and SVGR have no issues.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions