markaby

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

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 anonymous computer programmer "why the lucky stiff" and its name comes from Markup as Ruby.


Contents

Usage

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

Gem

 gem install markaby

Rails plugin

 script/plugin install git://github.com/markaby/markaby.git

Please note that the above script no longer works - the URL provided is no longer active — but see Talk page

Camping

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


External links

Personal tools

Served in 0.046 secs.