Wondering what‚Äôs next for npm?Check out our public roadmap! ¬Ľ

    extract-css

    2.0.0¬†‚Äʬ†Public¬†‚Äʬ†Published

    extract-css Build Status Coverage Status

    NPM

    Extract the CSS from an HTML document.

    Install

    Install with npm

    npm install --save extract-css
    

    Usage

    var extractCss = require('extract-css');
    var options = {
          url: './',
          applyStyleTags: true,
          removeStyleTags: true,
          applyLinkTags: true,
          removeLinkTags: true,
          preserveMediaQueries: false
      };
     
    extractCss(document, options, function (err, html, css) {
        console.log(html);
        console.log(css);
    });

    API

    extractCss(html, options, callback)

    options.applyStyleTags

    Type: Boolean

    Whether to inline styles in <style></style>.

    options.applyLinkTags

    Type: Boolean

    Whether to resolve <link rel="stylesheet"> tags and inline the resulting styles.

    options.removeStyleTags

    Type: Boolean

    Whether to remove the original <style></style> tags after (possibly) inlining the css from them.

    options.removeLinkTags

    Type: Boolean

    Whether to remove the original <link rel="stylesheet"> tags after (possibly) inlining the css from them.

    options.url

    Type: String

    How to resolve hrefs. Required.

    options.preserveMediaQueries

    Type: Boolean

    Preserves all media queries (and contained styles) within <style></style> tags as a refinement when removeStyleTags is true. Other styles are removed.

    options.codeBlocks

    Type: Object
    Default: { EJS: { start: '<%', end: '%>' }, HBS: { start: '{{', end: '}}' } }

    An object where each value has a start and end to specify fenced code blocks that should be ignored during parsing. For example, Handlebars (hbs) templates are HBS: {start: '{{', end: '}}'}. Note that codeBlocks is a dictionary which can contain many different code blocks, so don't do codeBlocks: {...} do codeBlocks.myBlock = {...}.

    Special markup

    data-embed

    When a data-embed attribute is present on a tag, extract-css will not inline the styles and will not remove the tags.

    This can be used to embed email client support hacks that rely on css selectors into your email templates.

    Credit

    The code for this module was originally taken from the Juice library.

    License

    MIT © Jonathan Kemp

    Keywords

    Install

    npm i extract-css

    DownloadsWeekly Downloads

    61,793

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    5.53 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar