markaby

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Markaby
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Websitemarkaby.github.io/markaby/

    Markaby is a small Ruby library for writing HTML code in pure Ruby. It is an alternative to templating languages such as ERb and HAML which combine Ruby code with some form of markup. It was developed by the computer programmer "why the lucky stiff" and its name comes from Markup as Ruby.

    Usage

    [edit | edit source]
    require 'markaby'
    
    mab = Markaby::Builder.new
    mab.html do
      head { title "Boats.com" }
      body do
        h1 "Boats.com has great deals"
        ul do
          li "$49 for a canoe"
          li "$39 for a raft"
          li "$29 for a huge boot that floats and can fit 5 people"
        end
      end
    end
    puts mab.to_s
    

    Executing the above code will render the following HTML:

    <html>
      <head>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
        <title>
        Boats.com</title>
      </head>
      <body>
        <h1>
        Boats.com has great deals</h1>
        <ul>
          <li>
          $49 for a canoe</li>
          <li>
          $39 for a raft</li>
          <li>
          $29 for a huge boot that floats and can fit 5 people</li>
        </ul>
      </body>
    </html>
    

    Distribution

    [edit | edit source]

    Gem

    gem install markaby
    

    Rails plugin

    Camping

    [edit | edit source]

    Markaby is the templating engine used for the Camping micro web framework.

     module HomePage::Views
    
       # If you have a `layout' method like this, it
       # will wrap the HTML in the other methods.  The
       # `self << yield' is where the HTML is inserted.
       def layout
         html do
           title { 'My HomePage' }
           body { self << yield }
         end
       end
    
       # The `index' view.  Inside your views, you express
       # the HTML in Ruby.  See http://code.whytheluckystiff.net/markaby/.
       def index
         p 'Hi my name is Charles.'
         p 'Here are some links:'
         ul do
          li { a 'Google', :href => 'http://google.com/' }
          li { a 'A sample page', :href => '/sample' }
         end
       end
    
       # The `sample' view.
       def sample
         p 'A sample page'
       end
     end
    

    See also

    [edit | edit source]
    [edit | edit source]