Compile less filter
This commit is contained in:
parent
76487a74ed
commit
ad1a3561c7
|
@ -26,9 +26,11 @@ Gem::Specification.new do |spec|
|
||||||
spec.add_development_dependency 'bundler', '~> 1.10'
|
spec.add_development_dependency 'bundler', '~> 1.10'
|
||||||
spec.add_development_dependency 'coffee-script'
|
spec.add_development_dependency 'coffee-script'
|
||||||
spec.add_development_dependency 'faml', '>= 0.3.3'
|
spec.add_development_dependency 'faml', '>= 0.3.3'
|
||||||
|
spec.add_development_dependency 'less'
|
||||||
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
||||||
spec.add_development_dependency 'rails', '>= 4.0.0'
|
spec.add_development_dependency 'rails', '>= 4.0.0'
|
||||||
spec.add_development_dependency 'rake', '~> 10.0'
|
spec.add_development_dependency 'rake', '~> 10.0'
|
||||||
|
spec.add_development_dependency 'therubyracer'
|
||||||
spec.add_development_dependency 'thor', '~> 0.19'
|
spec.add_development_dependency 'thor', '~> 0.19'
|
||||||
spec.add_development_dependency 'unindent'
|
spec.add_development_dependency 'unindent'
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,6 +3,7 @@ require 'hamlit/filters/tilt_base'
|
||||||
require 'hamlit/filters/coffee'
|
require 'hamlit/filters/coffee'
|
||||||
require 'hamlit/filters/css'
|
require 'hamlit/filters/css'
|
||||||
require 'hamlit/filters/escaped'
|
require 'hamlit/filters/escaped'
|
||||||
|
require 'hamlit/filters/less'
|
||||||
require 'hamlit/filters/javascript'
|
require 'hamlit/filters/javascript'
|
||||||
require 'hamlit/filters/plain'
|
require 'hamlit/filters/plain'
|
||||||
require 'hamlit/filters/preserve'
|
require 'hamlit/filters/preserve'
|
||||||
|
@ -26,6 +27,7 @@ module Hamlit
|
||||||
register :coffeescript, Coffee
|
register :coffeescript, Coffee
|
||||||
register :css, Css
|
register :css, Css
|
||||||
register :escaped, Escaped
|
register :escaped, Escaped
|
||||||
|
register :less, Less
|
||||||
register :javascript, Javascript
|
register :javascript, Javascript
|
||||||
register :plain, Plain
|
register :plain, Plain
|
||||||
register :preserve, Preserve
|
register :preserve, Preserve
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
require 'tilt'
|
||||||
|
|
||||||
|
module Hamlit
|
||||||
|
class Filters
|
||||||
|
class Less < TiltBase
|
||||||
|
def compile(node)
|
||||||
|
if Haml::Util.contains_interpolation?(node.value[:text])
|
||||||
|
return runtime_compile(node)
|
||||||
|
end
|
||||||
|
|
||||||
|
temple = [:multi]
|
||||||
|
temple << [:static, "<style>\n".freeze]
|
||||||
|
temple << [:static, TiltBase.render('less', node.value[:text])]
|
||||||
|
temple << [:static, "</style>".freeze]
|
||||||
|
temple
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def runtime_compile(node)
|
||||||
|
source = Haml::Util.unescape_interpolation(node.value[:text])
|
||||||
|
code = "::Hamlit::Filters::TiltBase.render('less', #{source})"
|
||||||
|
|
||||||
|
temple = [:multi]
|
||||||
|
temple << [:static, "<style>\n".freeze]
|
||||||
|
temple << [:dynamic, code]
|
||||||
|
temple << [:static, "</style>".freeze]
|
||||||
|
temple
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -3,7 +3,6 @@ describe Hamlit::Filters do
|
||||||
|
|
||||||
describe '#compile' do
|
describe '#compile' do
|
||||||
it 'renders less filter' do
|
it 'renders less filter' do
|
||||||
skip
|
|
||||||
assert_render(<<-HAML, <<-HTML, compatible_only: :haml, error_with: :faml)
|
assert_render(<<-HAML, <<-HTML, compatible_only: :haml, error_with: :faml)
|
||||||
:less
|
:less
|
||||||
.users_controller {
|
.users_controller {
|
||||||
|
@ -23,7 +22,6 @@ describe Hamlit::Filters do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'parses string interpolation' do
|
it 'parses string interpolation' do
|
||||||
skip
|
|
||||||
assert_render(<<-'HAML', <<-HTML, compatible_only: :haml, error_with: :faml)
|
assert_render(<<-'HAML', <<-HTML, compatible_only: :haml, error_with: :faml)
|
||||||
:less
|
:less
|
||||||
.foo {
|
.foo {
|
||||||
|
|
Loading…
Reference in New Issue