Markaby

{{lowercase}}

{{unreferenced|date=November 2014}}

{{Infobox software

| name =

| title =

| logo =

| logo caption =

| logo_size =

| logo_alt =

| screenshot =

| caption =

| screenshot_size =

| screenshot_alt =

| collapsible =

| author =

| developer =

| released =

| discontinued =

| latest release version =

| latest release date =

| latest preview version =

| latest preview date =

| status =

| programming language =

| operating system =

| platform =

| size =

| language =

| language count =

| language footnote =

| genre =

| license =

| alexa =

| website = {{URL|https://markaby.github.io/markaby/}}

| standard =

| AsOf =

}}

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

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:

</p> <p>Boats.com

Boats.com has great deals

  • $49 for a canoe

  • $39 for a raft

  • $29 for a huge boot that floats and can fit 5 people

Distribution

Gem

gem install markaby

Rails plugin

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