Code Monkey home page Code Monkey logo

xain's Introduction

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}
  markup safe: true do
    div ("#my-id.my-class") do
      span ".bold Testing"
    end
  end

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.