mirror of
https://github.com/haml/haml.git
synced 2022-11-09 12:33:31 -05:00
Create Hamlit::Compiler
This commit is contained in:
parent
3ea7748a29
commit
2c9dc63bde
5 changed files with 25 additions and 2 deletions
8
lib/hamlit/compiler.rb
Normal file
8
lib/hamlit/compiler.rb
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
require 'hamlit/compilers/preserve'
|
||||||
|
require 'hamlit/filter'
|
||||||
|
|
||||||
|
module Hamlit
|
||||||
|
class Compiler < Hamlit::Filter
|
||||||
|
include Compilers::Preserve
|
||||||
|
end
|
||||||
|
end
|
10
lib/hamlit/compilers/preserve.rb
Normal file
10
lib/hamlit/compilers/preserve.rb
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Hamlit
|
||||||
|
module Compilers
|
||||||
|
module Preserve
|
||||||
|
def on_haml_preserve(code)
|
||||||
|
code = "Hamlit::Helpers.find_and_preserve(#{code})"
|
||||||
|
[:dynamic, code]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,6 +1,7 @@
|
||||||
require 'temple'
|
require 'temple'
|
||||||
require 'hamlit/attribute_compiler'
|
require 'hamlit/attribute_compiler'
|
||||||
require 'hamlit/attribute_sorter'
|
require 'hamlit/attribute_sorter'
|
||||||
|
require 'hamlit/compiler'
|
||||||
require 'hamlit/dynamic_formatter'
|
require 'hamlit/dynamic_formatter'
|
||||||
require 'hamlit/doctype_compiler'
|
require 'hamlit/doctype_compiler'
|
||||||
require 'hamlit/filter_compiler'
|
require 'hamlit/filter_compiler'
|
||||||
|
@ -24,6 +25,7 @@ module Hamlit
|
||||||
|
|
||||||
use MultilinePreprocessor
|
use MultilinePreprocessor
|
||||||
use Parser
|
use Parser
|
||||||
|
use Compiler
|
||||||
use DoctypeCompiler
|
use DoctypeCompiler
|
||||||
use AttributeCompiler
|
use AttributeCompiler
|
||||||
use NewAttributeCompier
|
use NewAttributeCompier
|
||||||
|
|
|
@ -18,5 +18,9 @@ module Hamlit
|
||||||
def on_haml_text(exp)
|
def on_haml_text(exp)
|
||||||
[:haml, :text, compile(exp)]
|
[:haml, :text, compile(exp)]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def on_haml_preserve(exp)
|
||||||
|
[:haml, :preserve, exp]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -132,8 +132,7 @@ module Hamlit
|
||||||
raise SyntaxError unless scanner.scan(/~/)
|
raise SyntaxError unless scanner.scan(/~/)
|
||||||
|
|
||||||
code = scan_code(scanner)
|
code = scan_code(scanner)
|
||||||
code = "Hamlit::Helpers.find_and_preserve(#{code})"
|
escape_html([:haml, :preserve, code])
|
||||||
escape_html([:dynamic, code])
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_silent_script(scanner)
|
def parse_silent_script(scanner)
|
||||||
|
|
Loading…
Add table
Reference in a new issue