GitHub - crystal-lang/html_builder: DSL for creating HTML (original) (raw)
html_builder 
DSL for creating HTML programatically (extracted from Crystal's standard library).
Installation
Add this to your application's shard.yml
:
dependencies: html_builder: github: crystal-lang/html_builder
Usage
Basic usage
require "html_builder"
html = HTML.build do a(href: "http://crystal-lang.org") do text "crystal is awesome" end end
puts html
Output (this output is formatted for better display):
crystal is awesomeFull HTML5 page
html = HTML.build do doctype html(lang: "pt-BR") do head do title { text "Crystal Programming Language" }
meta(charset: "UTF-8")
end
body do
a(href: "http://crystal-lang.org") { text "Crystal rocks!" }
form(method: "POST") do
input(name: "name")
end
end
end end
puts html
Output :
Crystal Programming Language<meta charset="UTF-8">
Crystal rocks!
Custom tags
html = HTML.build do tag("v-button", to: "home") { text "Home" } end
puts html
Output:
HomeSafety
HTML::Builder escapes attribute values:
html = HTML.build do a(href: "<>") { } end
puts html
Output:
And escapes text:
html = HTML.build do a { text "<>" } end
puts html
Output:
Contributing
- Fork it ( https://github.com/crystal-lang/html_builder/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request