From cf4013f8683d6e3cd3da59d54a2af5f8466c7c72 Mon Sep 17 00:00:00 2001 From: Nathan Weizenbaum Date: Fri, 29 Feb 2008 22:38:01 -0800 Subject: [PATCH] Add support for complicated @import rules by passing them off to CSS. This makes e.g. "@import url(fonts.css) all" work. --- lib/sass/engine.rb | 5 +++-- test/sass/engine_test.rb | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/sass/engine.rb b/lib/sass/engine.rb index 79cb7cad..1d31b8de 100644 --- a/lib/sass/engine.rb +++ b/lib/sass/engine.rb @@ -298,8 +298,9 @@ module Sass def parse_directive(line) directive, value = line[1..-1].split(/\s+/, 2) - case directive - when "import" + # If value begins with url( or ", + # it's a CSS @import rule and we don't want to touch it. + if directive == "import" && value !~ /^(url\(|")/ import(value) else Tree::DirectiveNode.new(line, @options[:style]) diff --git a/test/sass/engine_test.rb b/test/sass/engine_test.rb index 3cb230c1..3e9a8d65 100644 --- a/test/sass/engine_test.rb +++ b/test/sass/engine_test.rb @@ -98,6 +98,11 @@ class SassEngineTest < Test::Unit::TestCase end end + def test_css_import + assert_equal("@import url(./fonts.css) screen;", render("@import url(./fonts.css) screen")) + assert_equal("@import \"./fonts.css\" screen;", render("@import \"./fonts.css\" screen")) + end + def test_default_function assert_equal("foo {\n bar: url(foo.png); }\n", render("foo\n bar = url(foo.png)\n"));