# 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](https://github.com/hcatlin/libsass) # 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](http://search.cpan.org/perldoc?Text::Sass) - Pure perl implementation. [CSS::Sass](http://search.cpan.org/perldoc?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