• Stars
    star
    181
  • Rank 204,526 (Top 5 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 10 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Sass converter for Jekyll.

Jekyll Sass Converter

Let Jekyll build your Sass and SCSS!

Continuous Integration

Installation

Jekyll Sass Converter requires Jekyll 2.0.0 or greater and is bundled with Jekyll so you don't need to install it if you're already using Jekyll.

Add this line to your application's Gemfile:

gem 'jekyll-sass-converter'

And then execute:

$ bundle

Or install it yourself as:

$ gem install jekyll-sass-converter

Usage

Jekyll Sass Converter comes bundled with Jekyll 2.0.0 and greater. For more information about usage, visit the Jekyll Assets Documentation page.

Sass Implementations

Starting with v3.0, Jekyll Sass Converter uses sass-embedded for Sass implementation.

Please see migrate from 2.x to 3.x for more information.

Sass Embedded

sass-embedded is a host for the Sass embedded protocol.

The host runs Dart Sass compiler as a subprocess and communicates with the dart-sass compiler by sending / receiving protobuf messages via the standard input-output channel.

Source Maps

Starting with v2.0, the Converter will by default generate a source map file along with the .css output file. The source map is useful when we use the web developers tools of Chrome or Firefox to debug our .sass or .scss stylesheets.

The source map is a file that maps from the output .css file to the original source .sass or .scss style sheets. Thus enabling the browser to reconstruct the original source and present the reconstructed original in the debugger.

Configuration Options

Configuration options are specified in the _config.yml file in the following way:

sass:
  <option_name1>: <option_value1>
  <option_name2>: <option_value2>

Available options are:

  • style

    Sets the style of the CSS-output. Can be compressed or expanded. See the SASS_REFERENCE for details.

    Defaults to expanded.

  • sass_dir

    A filesystem-path which should be searched for Sass partials.

    Defaults to _sass

  • load_paths

    An array of additional filesystem-paths which should be searched for Sass partials.

    Defaults to []

  • sourcemap

    Controls when source maps shall be generated.

    • never β€” causes no source maps to be generated at all.
    • always β€” source maps will always be generated.
    • development β€” source maps will only be generated if the site is in development environment. That is, when the environment variable JEKYLL_ENV is set to development.

    Defaults to always.

  • quiet_deps

    If this option is set to true, Sass won’t print warnings that are caused by dependencies. A β€œdependency” is defined as any file that’s loaded through sass_dir or load_paths. Stylesheets that are imported relative to the entrypoint are not considered dependencies.

    Defaults to false.

  • verbose

    By default, Dart Sass will print only five instances of the same deprecation warning per compilation to avoid deluging users in console noise. If you set verbose to true, it will instead print every deprecation warning it encounters.

    Defaults to false.

Migrate from 2.x to 3.x

Classic GitHub Pages experience still uses 1.x version of jekyll-sass-converter.

To use latest Jekyll and Jekyll Sass Converter on GitHub Pages, you can now deploy to a GitHub Pages site using GitHub Actions.

Requirements

  • Minimum Ruby Version: Ruby 2.6.0 (all platforms).
  • Minimum Rubygems Version: 3.3.22 (for Linux-based platforms).

Dropped implementation Option

In v3.0.0, sass-embedded gem becomes the default Sass implementation, and sassc gem is no longer supported. As part of this change, support for Ruby 2.5 is dropped.

Dropped add_charset Option

The Converter will no longer emit @charset "UTF-8"; or a U+FEFF (byte-order marker) for sassify and scssify Jekyll filters so that this option is no longer needed.

Dropped line_comments Option

sass-embedded does not support line_comments option.

Dropped support of importing files with non-standard extension names

sass-embedded only allows importing files that have extension names of .sass, .scss or .css. Scss syntax in files with .css extension name will result in a syntax error.

Dropped support of importing files relative to site source

In v2.x, the Converter allowed imports using paths relative to site source directory, even if the site source directory is not in Sass 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 wild.

In 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 added to load_paths option.

Dropped support of importing files with the same filename as their parent file

In v2.x, the Converter allowed imports of files with the same filename as their parent file from sass_dir or 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 wild.

In v3.x, imports using the same filename of parent file will create a circular import. To fix these imports, rename either of the files, or use complete relative path from the parent file.

Behavioral Differences in Sass Implementation

Please see https://github.com/sass/dart-sass#behavioral-differences-from-ruby-sass.

Contributing

  1. Fork it ( https://github.com/jekyll/jekyll-sass-converter/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

More Repositories

1

jekyll

🌐 Jekyll is a blog-aware static site generator in Ruby
Ruby
48,088
star
2

minima

Minima is a one-size-fits-all Jekyll theme for writers.
SCSS
3,238
star
3

jekyll-admin

A Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites.
JavaScript
2,799
star
4

jekyll-seo-tag

A Jekyll plugin to add metadata tags for search engines and social networks to better index and display your site's content.
Ruby
1,594
star
5

jekyll-sitemap

Jekyll plugin to silently generate a sitemaps.org compliant sitemap for your Jekyll site
Ruby
932
star
6

jekyll-feed

πŸ“ A Jekyll plugin to generate an Atom (RSS-like) feed of your Jekyll posts
Ruby
810
star
7

jekyll-redirect-from

πŸ”€ Seamlessly specify multiple redirections URLs for your pages and posts.
Ruby
770
star
8

jekyll-compose

πŸ“ Streamline your writing in Jekyll with these commands.
Ruby
651
star
9

classifier-reborn

A general classifier module to allow Bayesian and other types of classifications. A fork of cardmagic/classifier.
Ruby
544
star
10

jemoji

GitHub-flavored emoji plugin for Jekyll
Ruby
544
star
11

jekyll-import

πŸ“₯ The "jekyll import" command for importing from various blogs to Jekyll format.
Ruby
503
star
12

jekyll-archives

πŸ“š Archive pages for your Jekyll tags and categories.
Ruby
433
star
13

github-metadata

Jekyll plugin to propagate the `site.github` namespace and set default values for use with GitHub Pages.
Ruby
270
star
14

jekyll-gist

πŸ“ƒ Liquid tag for displaying GitHub Gists in Jekyll sites.
Ruby
262
star
15

jekyll-mentions

πŸ‘₯ @mention support for your Jekyll site
Ruby
197
star
16

mercenary

An easier way to build your command-line scripts in Ruby.
Ruby
149
star
17

jekyll-help

NO LONGER MAINTAINED. USE JEKYLL TALK INSTEAD.
147
star
18

jekyll-paginate

NO LONGER UNDER ACTIVE DEVELOPMENT as of Jekyll 3: Pagination Generator for Jekyll
Ruby
109
star
19

jekyll-watch

πŸ‘€ Rebuild your Jekyll site when a file changes with the `--watch` switch.
Ruby
92
star
20

jekyll-avatar

A Jekyll plugin for rendering GitHub avatars
Ruby
89
star
21

jekyll-coffeescript

A CoffeeScript converter for Jekyll.
Ruby
50
star
22

brand

Logo files for Jekyll.
40
star
23

dashboard

A dashboard for at-a-glance knowledge of the health of the Jekyll ecosystem.
Go
38
star
24

example

Jekyll example Project site. Do not clone.
CSS
38
star
25

jekyll-docs

Offline usage documentation for Jekyll. Requires Jekyll 3 and above.
Ruby
37
star
26

jekyll-opal

Let Jekyll convert your Ruby into JavaScript using Opal
Ruby
36
star
27

jekyll-commonmark

CommonMark generator for Jekyll
Ruby
33
star
28

directory

Plugins and Themes discovery for Jekyll, built with Jekyll.
SCSS
32
star
29

atom-jekyll

An editor built on top of a web browser? How 'bout some static site previewing?
26
star
30

jekyll-textile-converter

Textile converter for Jekyll.
Ruby
19
star
31

Utterson

CI benchmarking suite for Jekyll
Shell
14
star
32

dns

DNS records for Jekyll properties. Uses octodns to sync.
Shell
13
star
33

hyde

Our Campfire Hubot. Helps us maintain Jekyll even better. ❀️
CoffeeScript
13
star
34

benchmarking

Benchmarking tools for Jekyll
Shell
12
star
35

hubot-pr-status

Determine the status of a given pull request on GitHub.
CoffeeScript
9
star
36

jekyllbot

The code that runs @jekyllbot
Go
8
star
37

acceptance

Daily acceptance tests for Jekyll. Builds 10 complex websites.
Shell
8
star
38

themes-site

A list of third-party themes.
8
star
39

teams

The code behind teams.jekyllrb.com
HTML
7
star
40

screencast

A collection of Jekyll screencast ideas.
7
star
41

rubocop-jekyll

A RuboCop extension to enforce common code style in Jekyll and Jekyll plugins
Ruby
7
star
42

jekyll-test

Testing helpers for Jekyll.
Ruby
6
star
43

test-site

A very, very simple, barebones test site for Jekyll.
CSS
6
star
44

omnibus-jekyll

NOT UNDER ACTIVE DEVELOPMENT: Build standalone installers for Jekyll & its dependencies.
Ruby
6
star
45

jekyll-test-gem-plugin

Wouldn't it be cool if you could ship Jekyll plugins as gems?
Ruby
5
star
46

mojobot

The #jekyll IRC bot.
CoffeeScript
4
star
47

cases

Test cases to aid in exploring bugs with Jekyll.
CSS
4
star
48

jekyll-test-plugin-malicious

A MALICIOUS I WILL EAT ALL YOUR CODE plugin. Use at your own risk.
Ruby
4
star
49

common-theme

HTML
3
star
50

carbon-copy-content

Clone these files from here to other repos using probot.
3
star
51

jekyll-test-theme-malicious

A malicious theme for Jekyll (for testing)
Ruby
3
star
52

.github

Jekyll organization github metadata
2
star
53

profiling

Profiling the build time of various types of sites.
Shell
2
star