Skip to content

ysasaki/Text-Sass-XS

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
t
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

NAME

Text::Sass::XS - Perl Binding for libsass

SYNOPSIS

# OO Interface
use Text::Sass::XS;
use Try::Tiny;

my $sass = Text::Sass::XS->new;

try {
    my $css = $sass->compile(".something { color: red; }");
}
catch {
    die $_;
};

# OO Interface with options
my $sass = Text::Sass::XS->new(
    include_paths   => ['path/to/include'],
    image_path      => '/images',
    output_style    => SASS_STYLE_COMPRESSED,
    source_comments => SASS_SOURCE_COMMENTS_NONE,
);
try {
    my $css = $sass->compile(".something { color: red; }");
}
catch {
    die $_;
};



# Compile from file.
my $sass = Text::Sass::XS->new;
my $css = $sass->compile_file("/path/to/foo.scss");

# with options.
my $sass = Text::Sass::XS->new(
    include_paths   => ['path/to/include'],
    image_path      => '/images',
    output_style    => SASS_STYLE_COMPRESSED,
    source_comments => SASS_SOURCE_COMMENTS_NONE,
);
my $css = $sass->compile_file("/path/to/foo.scss");



# Functional Interface
# export sass_compile, sass_compile_file and some constants
use Text::Sass::XS ':all';

my $sass = "your sass string here...";
my $options = {
    output_style    => SASS_STYLE_COMPRESSED,
    source_comments => SASS_SOURCE_COMMENTS_NONE,
    include_paths   => 'site/css:vendor/css',
    image_path      => '/images'
};
my ($css, $errstr) = sass_compile($sass, $options);
die $errstr if $errstr;

my $sass_filename = "/path/to/foo.scss";
my $options = {
    output_style    => SASS_STYLE_COMPRESSED,
    source_comments => SASS_SOURCE_COMMENTS_NONE,
    include_paths   => 'site/css:vendor/css',
    image_path      => '/images'
};

# In scalar context, sass_compile(_file)? returns css only.
my $css = sass_compile_file($sass_filename, $options);
print $css;



# Text::Sass compatible Interface
my $sass = Text::Sass::XS->new(%options);
my $css = $sass->scss2css($source);

# sass2css and css2sass are implemented by Text::Sass
my $css  = $sass->sass2css($source);
my $scss = $sass->css2sass($css);

DESCRIPTION

Text::Sass::XS is a Perl Binding for libsass.

libsass Project page

OO INTERFACE

  • new

      $sass = Text::Sass::XS->new(options)
    

    Creates a Sass object with the specified options. Example:

      $sass = Text::Sass::XS->new; # no options
      $sass = Text::Sass::XS->new(output_style => SASS_STYLE_NESTED);
    
  • compile(source_code)

      $css = $sass->compile("source code");
    

    This compiles the Sass string that is passed in the first parameter. If there is an error it will croak().

  • compile_file(input_path)

      $css = $sass->compile_file("/path/to/foo.scss");
    

    This compiles the Sass file that is passed in the first parameter. If there is an error it will croak().

  • options

      $sass->options->{include_paths} = ['/path/to/assets'];
    

    Allows you to inspect or change the options after a call to new.

  • scss2css(source_code)

      $css = $sass->scss2css("scss souce code");
    

    Same as compile.

  • sass2css(source_code)

      $css = $sass->compile("sass source code");
    

    Wrapper method of Text::Sass#sass2css.

  • css2sass(source_code)

      $css = $sass->css2sass("css source code");
    

    Wrapper method of Text::Sass#css2sass.

FUNCTIONAL INTERFACE

EXPORT

Nothing to export.

EXPORT_OK

Funcitons

  • sass_compile($source_string :Str, $options :HashRef)

    Returns css string if success. Otherwise throws exception.

    Default value of $options is below.

      my $options = {
          output_style    => SASS_STYLE_COMPRESSED,
          source_comments => SASS_SOURCE_COMMENTS_NONE, 
          include_paths   => undef,
          image_path      => undef,
      };
    

    input_paths is a coron-separated string for "@import". image_path is a string using for "image-url".

  • sass_compile_file($input_path :Str, $options :HashRef)

    Returns css string if success. Otherwise throws exception. $options is same as sass_compile.

Constants

For $options->{output_style}.

  • SASS_STYLE_NESTED
  • SASS_STYLE_EXPANDED
  • SASS_STYLE_COMPRESSED

For $options->{source_comments}.

  • SASS_SOURCE_COMMENTS_NONE
  • SASS_SOURCE_COMMENTS_DEFAULT
  • SASS_SOURCE_COMMENTS_MAP

EXPORT_TAGS

  • :func

    Exports sass_compile and sass_compile_file.

  • :const

    Exports all constants.

  • :all

    Exports :func and :const.

SEE ALSO

Text::Sass - Pure perl implementation.

CSS::Sass - Yet another libsass binding.

LICENSE

Text::Sass::XS

Copyright (C) 2013 Yoshihiro Sasaki.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

libsass

Copyright (C) 2012 by Hampton Catlin.

See libsass/LICENSE for more details.

AUTHOR

Yoshihiro Sasaki ysasaki@cpan.org

About

Perl Binding for libsass

Resources

License

Stars

Watchers

Forks

Packages

No packages published