Text::Sass::XS - Perl Binding for libsass
# 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);
Text::Sass::XS is a Perl Binding for libsass.
-
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
.
Nothing to export.
-
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 assass_compile
.
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
-
:func
Exports
sass_compile
andsass_compile_file
. -
:const
Exports all constants.
-
:all
Exports :func and :const.
Text::Sass - Pure perl implementation.
CSS::Sass - Yet another libsass binding.
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.
Yoshihiro Sasaki ysasaki@cpan.org