Skip to content

bsidoruk/xain

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xain - Easy HTML in Elixir

Library Providing HTML tag macros for Elixir

Example usage

defmodule Example do
  use Xain

  markup do
    div ("#my-id.my-class") do
      span ".bold Testing"
    end
  end
end

Will render the following:

<div id="my-id" class="my-class"><span class="bold">Testing</span></div>

HTML Tag Attributes

Additional tag attributes can be included in the html tag by passing in key-value pairs.

markup do
  script src: "http://www.someexamplesite.com/example.js", type: "text/javascript"
end

Will render:

<script src="http://www.someexamplesite.com/example.js" type="text/javascript"></script>

Or, with content:

markup do
  a "ExampleSite", [name: "example", href: "http://www.someexamplesite.com/"]
end

Will Render:

<a name="example" href="http://www.someexamplesite.com/">ExampleSite</a>

Configuration

Add a call back to transform the returned html

i.e. Phoenix raw

Add the following to your project's config file

config :xain, :after_callback, {Phoenix.HTML, :raw}

Will render the above as:

{safe, "<div id=\"my-id\" class=\"my-class\"><span class=\"bold\">Testing</span></div>"}

Change attribute quoting

To have return markup attributes use single quotes instead of the default double, add the following to your project's config file.

config :xain, :quote, "'"

Will render the above as:

<div id='my-id' class='my-class'><span class='bold'>Testing</span></div>

Acknowledgments

This work was inspired by Chris McCord's book "Metaprogramming Elixir", and by the ruby project "Arbre"

License

xain is Copyright (c) 2015-2016 E-MetroTel

About

Easy HTML for Elixir

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%