1-01

Papercraft - functional HTML templates for Ruby

Greeter = ->(name) {
  h1 "Hello, #{name}!"
}
template = -> {
  div { Greeter('Paris.rb') }
}

Papercraft.html(template)
#=> "<div><h1>Hello, Paris.rb!</h1></div>"
  • Write HTML using Ruby
  • Templates as lambdas

Design goals:

  • Developer happiness
  • Functional approach: templates as pure functions
  • Explicit arguments
  • Template composition