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 'hamlit/attribute_compiler'
|
||||
require 'hamlit/attribute_sorter'
|
||||
require 'hamlit/compiler'
|
||||
require 'hamlit/dynamic_formatter'
|
||||
require 'hamlit/doctype_compiler'
|
||||
require 'hamlit/filter_compiler'
|
||||
|
@ -24,6 +25,7 @@ module Hamlit
|
|||
|
||||
use MultilinePreprocessor
|
||||
use Parser
|
||||
use Compiler
|
||||
use DoctypeCompiler
|
||||
use AttributeCompiler
|
||||
use NewAttributeCompier
|
||||
|
|
|
@ -18,5 +18,9 @@ module Hamlit
|
|||
def on_haml_text(exp)
|
||||
[:haml, :text, compile(exp)]
|
||||
end
|
||||
|
||||
def on_haml_preserve(exp)
|
||||
[:haml, :preserve, exp]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -132,8 +132,7 @@ module Hamlit
|
|||
raise SyntaxError unless scanner.scan(/~/)
|
||||
|
||||
code = scan_code(scanner)
|
||||
code = "Hamlit::Helpers.find_and_preserve(#{code})"
|
||||
escape_html([:dynamic, code])
|
||||
escape_html([:haml, :preserve, code])
|
||||
end
|
||||
|
||||
def parse_silent_script(scanner)
|
||||
|
|
Loading…
Add table
Reference in a new issue