Jekyll Sass Converter 3.0 shipped recently and is available to those using Jekyll 4.3 and above. This release contains major changes.
Specifically, the plugin has stopped using
sassc for converting your Sass partials and stylesheets into CSS files.
Instead, the converter now uses the
sass-embedded gem acting as an interface to Dart Sass, which is the current primary
implementation of Sass under active development. The secondary implementation
libsass which the
sassc gem interfaced
with has been deprecated by its developers.
However, Dart Sass isn’t fully compatible with older Ruby Sass workflow.
- Minimum Ruby Version:
Ruby 2.6.0(all platforms).
- Minimum Rubygems Version:
3.3.22(for Linux-based platforms).
sass-embedded is the only supported Sass implmentation, and therefore the config option
sass.implementation introduced in
v2.2.0 has been removed.
The converter will no longer emit
@charset "UTF-8"; or a
U+FEFF (byte-order marker) for
Jekyll filters and hence the redundant option
sass.add_charset is no longer active.
sass-embedded does not support
Dropped support of importing files with non-standard extension names
sass-embedded only allows importing files that have extension names of
.css. SCSS syntax in
.css extension name will result in a syntax error.
Dropped support of importing files relative to site source
v2.x, the Converter allowed imports using paths relative to site source directory, even if the site source
directory is not present in Sass’
load_paths option. This is a side effect of a bug in the converter, which will remain as is in
v2.x due to its usage in the wild.
v3.x, imports using paths relative to site source directory will not work out of box. To allow these imports,
(meaning current directory, or site source directory) need to be explicitly listed under
Dropped support of importing files with the same filename as their parent file
v2.x, the Converter allowed imports of files with the same filename as their parent file from
load_paths. This is a side effect of a bug in the Converter, which will remain as is in
v2.x due to its usage in the
v3.x, imports using the same filename of parent file will create a circular import. To fix such imports, rename
either of the files, or use complete relative path from the parent file.
Behavioral Differences in Sass Implementation
There are a few intentional behavioral differences between Dart Sass and Ruby Sass. Please refer Behavioral Differences from Ruby Sass for details.