Module Haml::Precompiler
In: lib/haml/precompiler.rb

Handles the internal pre-compilation from Haml into Ruby code, which then runs the final creation of the HTML string.

Included Modules

Haml::Util

Classes and Modules

Class Haml::Precompiler::Line

Constants

ELEMENT = ?%   Designates an XHTML/XML element. @private
DIV_CLASS = ?.   Designates a `<div>` element with the given class. @private
DIV_ID = ?#   Designates a `<div>` element with the given id. @private
COMMENT = ?/   Designates an XHTML/XML comment. @private
DOCTYPE = ?!   Designates an XHTML doctype or script that is never HTML-escaped. @private
SCRIPT = ?=   Designates script, the result of which is output. @private
SANITIZE = ?&   Designates script that is always HTML-escaped. @private
FLAT_SCRIPT = ?~   Designates script, the result of which is flattened and output. @private
SILENT_SCRIPT = ?-   Designates script which is run but not output. @private
SILENT_COMMENT = ?#   When following SILENT_SCRIPT, designates a comment that is not output. @private
ESCAPE = ?\\   Designates a non-parsed line. @private
FILTER = ?:   Designates a block of filtered text. @private
PLAIN_TEXT = -1   Designates a non-parsed line. Not actually a character. @private
SPECIAL_CHARACTERS = [ ELEMENT, DIV_CLASS, DIV_ID, COMMENT, DOCTYPE, SCRIPT, SANITIZE, FLAT_SCRIPT, SILENT_SCRIPT, ESCAPE, FILTER   Keeps track of the ASCII values of the characters that begin a specially-interpreted line. @private
MULTILINE_CHAR_VALUE = ?|   The value of the character that designates that a line is part of a multiline string. @private
MID_BLOCK_KEYWORD_REGEX = /^-\s*(#{%w[else elsif rescue ensure when end].join('|')})\b/   Regex to match keywords that appear in the middle of a Ruby block with lowered indentation. If a block has been started using indentation, lowering the indentation with one of these won‘t end the block. For example:
  - if foo
    %p yes!
  - else
    %p no!

The block is ended after `%p no!`, because `else` is a member of this array. @private

DOCTYPE_REGEX = /(\d(?:\.\d)?)?[\s]*([a-z]*)/i   The Regex that matches a Doctype command. @private
LITERAL_VALUE_REGEX = /:(\w*)|(["'])((?![\\#]|\2).|\\.)*\2/   The Regex that matches a literal string or symbol value @private

[Validate]