Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comments in local SVG files are removed regardless of configuration #177

Open
sandrofigo opened this issue Dec 31, 2023 · 1 comment
Open
Labels
enhancement New feature or request

Comments

@sandrofigo
Copy link

What version of astro-icon are you using?

v1.0.1

Astro Info

Astro                    v4.0.8
Node                     v18.18.0
System                   Linux (x64)
Package Manager          npm
Output                   static
Adapter                  none
Integrations             astro-icon

If this issue only occurs in one browser, which browser is a problem?

No response

Describe the Bug

When using a local SVG file (containing comments <!-- -->) from the icons folder, the rendered HTML does not contain the comments, although the SVGO plugin removeComments is disabled in the config file:

// astro.config.mjs
import { defineConfig } from 'astro/config';

import icon from 'astro-icon';

// https://astro.build/config
export default defineConfig({
  integrations: [
    icon({
      svgoOptions: {
        multipass: true,
        plugins: [
          {
            name: 'preset-default',
            params: {
              overrides: {
                // customize default plugin options
                inlineStyles: {
                  onlyMatchedOnce: false,
                },

                // or disable plugins
                removeDoctype: false,

                // FOR BUG REPORT:
                removeComments: false,
              },
            },
          },
        ],
      },
    }),
  ],
});

What's the expected result?

Comments should be preserved in the final output, since some icons (e.g. Font Awesome) require the CC BY 4.0 license notice (https://fontawesome.com/license/free)

Link to Minimal Reproducible Example

https://stackblitz.com/edit/github-aqxtyy?file=astro.config.mjs

@natemoo-re
Copy link
Owner

I dug into this a little bit, and it looks like we are passing the svgoOptions through. It seems like Iconify's importDirectory utility has already stripped the comments before we even have access to them.

const local = await importDirectory(dir, {
prefix: "local",
keepTitles: true,
});

It's possible that refactoring this logic to use our own loading mechanism would solve this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants