/** @module */ import postcssPlugin from '../../helpers/postcss_plugin' import postcssImportParse from './parse' /** * Marpit PostCSS import suppress plugin. * * Comment out `@import` / `@import-theme` rules that have imported theme. * * This plugin is useful to prevent the inline style's rolled-up theme import by * unexpected order. * * @function importSuppress * @param {ThemeSet} themeSet ThemeSet instance. */ export const importSuppress = postcssPlugin( 'marpit-postcss-import-suppress', (themeSet) => ({ plugins: [ postcssImportParse(), postcssPlugin('marpit-postcss-import-suppress', () => (css) => { css.walk((node) => { if (node.marpitImportParse && themeSet.has(node.marpitImportParse)) node.replaceWith(`${node.raw('before')}/* ${node.toString()}; */`) }) })(), ], }), ) export default importSuppress