sass/dart-sass

Add ASCII output support

Open

#568 opened on Jan 11, 2019

View on GitHub
 (53 comments) (17 reactions) (0 assignees)Dart (376 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (4,192 stars)
PR merge metrics
 (Avg merge 8d 8h) (18 merged PRs in 30d)

Description

I've been working on a product using libsass/sassc and have migrated it to Dart Sass. Presently, this product doesn't support UTF-8 characters in stylesheets.

It looks like Dart Sass only supports outputting as UTF-8, with dart-lang/sdk#11744 being the blocker given in the README for why there's no support for more encodings (UTF-16, etc). Dart does however appear to have an AsciiEncoder.

For the time being, we've added an extra step to CSS escape non-ASCII characters in generated stylesheets. (On a related note, we also remove the @charset 'UTF-8'; atrule, both because it would be technically incorrect for an ASCII-encoded stylesheet, and because of #567.)

This isn't trivial because of sourcemaps, so we're doing this step with a PostCSS plugin.

Would adding ASCII-encoded output support be in scope of Dart Sass? I'd imagine when Dart adds other encoders, having this ready would let other encodings be sibling output options alongside UTF-8 and ASCII.

Contributor guide