$ command line cheat sheets
Cheat Sheet Title: [ no_spaces_alphanumeric_only ]
Cheat Sheet:INSTALLING ---------- $ sudo gem install haml To create plugin hook in Rails: $ haml --rails /path/to/app See 'haml --help' for command-line compiling options. NUTSHELL -------- Think of Haml as HTML/Erb with open/close tags replaced by indentation conventions. It's a "dumb" syntax compiler which directly transliterates any element you specify to XHTML, with no validation. The key benefit is clean reading and elegant presentation. Many developers find pages and views written in Haml more maintainable than XHTML. Whitespace rules in Haml are very strict. Nesting is specified by indenting the contained content two spaces from the enclosing block. For example: %html %h1 My title. %p This is a paragraph. Here I will specify some %strong bold and %em italicized text. %p Another paragraph. ...maps to: <html> <h1>My title.</h1> <p> This is a paragraph. Here I will specify some <strong> bold and <em>italicized</em> text. </strong> </p> <p>Another paragraph.</p> </html> SYNTAX ------ !!! - doctype specifier, e.g. !!! Strict Inserts an HTML DOCTYPE or XML declaration. Default is XHTML 1.0 Transitional, but other formats can be given. (See Haml docs.) % - element specifier, e.g. %h1 Wraps everything following on the same line *or* nested in following indented lines with open/close element tags: <element>stuff</element> # - id specifier, e.g. #main or %div#main Sets an 'id' attribute on an element. If %element is not specified, creates an implied <div> element. . - class specifier, e.g. .error or %li.error Sets a 'class' attribute on an element. If %element is not specified, creates an implied <div> element. Classes can be chained with multiple periods. {} - attributes, e.g. %input{:name => "title", :length => "30"} Sets attributes on an element, taking either Ruby hash key/value pairs or one or more Ruby methods which return a hash. [] - id and class from Ruby object, e.g. %div[@content] Sets the 'class' and 'id' attributes based on the class and class-plus-object-id of the specified Ruby object. / (at end of tag definition) - self-closing tag, e.g. %br/ Specifies a self-closing tag. (Some tags are self-closed by default.) / (at start of line) - comment, e.g. / Here there be tygers. Creates an HTML comment from the content on the line or nested beneath. \ - escape character, e.g. \. (to render a period at the start of a line) Allows 'special' characters from this list to be rendered as plain text. | - multi-line string, e.g. This | (break) is one | (break) line. Joins the line with the following line in the output. Keeps the Haml line-breaking rules from looking too ugly on inline tags. > - trim whitespace outside tag, e.g. %span> single-word (break) . Keeps whitespace from being automatically inserted outside the specified tag. Useful for preserving punctuation with inline tags. < - trim whitespace inside tags, e.g. %tr< (break) %td Keeps whitespace from being automatically inserted inside the specified tag. Useful for nesting tags that logically should go on one line. : - filter following content, e.g. :markdown Runs nested content through another filter process and embeds the result. See Haml docs for list of supported filters. = - Ruby expression, e.g. %h1= @content.title or = @content.title Works just like the Erb = marker: the Ruby expression following it is evaluated and its result inserted into the document. May follow a tag or stand on a line by itself. - - Ruby non-printing code, e.g. - for content in @contents do Works just like the Erb - marker: the Ruby expression is evaluated but no output goes into the document. Primarily used for flow control and the quirky Rails form_for syntax. ~ - Ruby expression preserving whitespace, e.g. %pre~ @content.body Works just like =, but calls the find_and_preserve helper to keep line breaks intact in the output. == - Ruby interpolated string, e.g. %h1== Now editing #{@content.title} Works just like = followed by a double-quoted string. Content is treated as a literal with Ruby variable substitutions. &= - Ruby sanitized expression, e.g. %h1&= @content.title_from_user Works just like = but sanitizes HTML-unsafe characters in output by converting to escaped entities. Also see :escape_html option. != - Ruby unsanitized expression, e.g. #body!= @content.generated_html Works just like = but *never* sanitizes output, regardless of whether the :escape_html option is set. -# - Silent comment, e.g. -# The users are all idiots. Contained content is never output. MORE INFO AND TIPS ------------------ http://haml.hamptoncatlin.com http://haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html http://www.elctech.com/projects/random-haml-tips # More tips http://snippets.dzone.com/posts/show/6838 # Snippet to convert all ERb views to Haml
Your cheat sheet will be editable (fixable) by anyone. Each cheat sheet is essentially a wiki page. It may also be used by millions of people for reference purposes from the comfort of their command line. If this is okay with you, please save.