Skip to content

sass/perl-libsass

Folders and files

NameName
Last commit message
Last commit date
Nov 23, 2017
May 4, 2020
May 4, 2020
May 25, 2019
Nov 4, 2019
May 1, 2020
Jul 2, 2016
Sep 24, 2014
Sep 9, 2015
Oct 16, 2017
Nov 4, 2019
Mar 4, 2019
May 4, 2020
Dec 10, 2016
May 4, 2020
May 4, 2020
May 4, 2020
May 19, 2019
May 18, 2019
May 19, 2019
Oct 23, 2015
Apr 10, 2019

Repository files navigation

CSS::Sass

Compile .scss and .sass files using LibSass

CSS::Sass provides a perl interface to LibSass, a nearly complete Sass compiler written in C++. It is currently at ruby sass 3.4 feature parity and heading towards 3.5 compatibility. It can compile .scss and .sass files.

Installation

Build Status Build status Coverage Status CPAN version

Manual installation:

  git clone https://github.com/sass/libsass
  cd libsass
  # disable plugins if you have problems compiling
  perl Makefile.PL --no-plugins
  make -j4 verbose=1
  make test verbose=1
  make install verbose=1

Standard CPAN:

  cpan CSS::Sass

CPAN-Minus*:

  cpanm CSS::Sass

CPAN-Minus* directly via github:

  cpanm git://github.com/sass/perl-libsass.git

(*) CPAN-Minus may not be installed by default, but there is a good chance your distribution has a package for it:

  # example for ubuntu:
  apt install cpanminus

On windows I recommend Strawberry Perl. Tip: Use dmake -PX instead of make -jX for manual installs.

Build Options

Since we need LibSass for perl-libsass, we need to compile the sources when building CSS::Sass. LibSass can be compiled in different ways and Makefile.PL knows some switches to support most common use cases:

$ perl Makefile.PL --help

CSS::Sass Makefile.PL end-user options:

  --sassc              Install optional sassc cli utility
  --plugins            Install optional libsass plugins (default)
  --library            Install libsass library (auto-enabled)
  --native-watcher     Depend on optimized file watcher module
  --help               This help screen

  The following options are for developers only:

  --debug              Build libsass in debug mode
  --profiling          Enable gcov profiling switches
  --compiler           Skips compiler autodetection (passed to CppGuess)
  --skip-manifest      Skips manifest generation (would need git repo)
  --skip-version       Skips generating libsass/VERSION (would need git repo)
  --update-deps        Update libsass and specs to latest master (needs git repo)
  --checkout-deps      Checkout submodules at linked commit (needs git repo)
  --get-versions       Show versions of all perl package (.pm) files
  --set-versions       Set versions of all perl package (.pm) files
  --patch-gcc44        Patch libsass for gcc44 compatibility
  --skip-git           Do not try to use anything git related

  You may use environment variables to set any option
  Prefix them with `PSASS_` and write all in uppercase
  e.g. --native-watcher becomes PSASS_NATIVE_WATCHER

Documentation

Before installing:

perldoc lib/CSS/Sass.pm

After installing:

man CSS::Sass

Or view converted markdown version

Command line utility

psass [options] [ path_in | - ] [ path_out | - ]
-v, --version                 print version
-h, --help                    print this help
-w, --watch                   start watchdog mode
-p, --precision=int           precision for float output
    --indent=string           set indent string used for output
    --linefeed=type           linefeed used for output [auto|unix|win|none]
-o, --output-file=file        output file to write result to
-t, --output-style=style      output style [expanded|nested|compressed|compact]
-P, --plugin-path=path        plugin load path (repeatable)
-I, --include-path=path       sass include path (repeatable)
-c, --source-comments         enable source debug comments
-l, --line-comments           synonym for --source-comments
    --line-numbers            synonym for --source-comments
-e, --source-map-embed        embed source-map in mapping url
-s, --source-map-contents     include original contents
-m, --source-map-file=file    create and write source-map to file
    --source-map-file-urls    create file urls for source paths
    --source-map-root=.       specific root for relative paths
    --no-source-map-url       omit sourceMappingUrl from output
    --benchmark               print benchmark for compilation time

Plugins may be pre-installed by CSS::Sass or from 3rd parties.
There are some options available for each known plugin.

    --all-plugins             enables all known plugins
    --list-plugin             print list of all known plugins
    --[name]-plugin           enables the plugin with [name]
    --no-[name]-plugin        disabled the plugin with [name]

Included default plugins

$ psass --list-plugins

Copyright And Licence

Copyright © 2013-2014 by David Caldwell
Copyright © 2014-2017 by Marcel Greter

This library is released under the MIT license.