ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - JuneKelly/sneeze: Render Elixir data-structures to HTML, inspired by Hiccup.
Render Elixir data-structures to HTML, inspired by Hiccup. - JuneKelly/sneeze
Visit Site

GitHub - JuneKelly/sneeze: Render Elixir data-structures to HTML, inspired by Hiccup.

GitHub - JuneKelly/sneeze: Render Elixir data-structures to HTML, inspired by Hiccup.

Sneeze

Render Elixir data-structures to HTML. Inspired by Hiccup.

Installation

Sneeze is available from Hex.pm:

def deps do
  [{:sneeze, "~> 2.0"}]
end

Usage

The Sneeze.render/1 function will render a list of 'nodes' to html. A node can be any of:

  • A tag: [:br]
  • A tag with a body: [:p, "hello"]
  • A tag with attributes: [:input, %{type: "text", class: "form-field", name: "widget-input"}]
  • A tag with attributes and a body: [:p, %{class: "article-content"}, "hello"]
  • A bare, stringable node: 22
  • A "raw html" node, which will not be escaped: [:__@raw_html, "<span>derp</span>"]

Of course, the body of any node can be an arbitrary number of other nodes, like so: [:p, %{id: "status"}, [:span, "woo"]]

The Sneeze.render_iodata/1 function returns an iodata list, which can be more performant in cases where you are passing the result to a function that accepts iodata.

Examples

Sneeze.render([:p %{class: "greeting"} "hello world"])
# => <p class="greeting">hello world</p>

Sneeze.render([:br])
# => <br />

Sneeze.render([:span, "<a>will be escaped</a>"])
# => <span>&lt;a&gt;will be escaped&lt;/a&gt</span>;

Sneeze.render([:div, [:__@raw_html, "<span>totally not escaped</span>"]])
# => <div><span>totally not escaped</span></div>

Sneeze.render(
  [:ul, %{class: "super-cool-list"},
   [:li,
    [:a, %{href: "/"},        "Home"]],
   [:li,
    [:a, %{href: "/about"},   "About"]],
   [:li,
    [:a, %{href: "/contact"}, "Contact"]]]
)
# => <ul class="super-cool-list"><li><a href="/">Home</a></li>...</ul

Sneeze.render([
  [:__@raw_html, "<!DOCTYPE html>"],
  [:head,
   [:title, "wat"]],
  [:body,
   [:div, %{id: "main-content"}, "hello"]]
]
# => <!DOCTYPE html><head><title>wat</title></head><body><div id="main-content">hello</div></body>

Sneeze.render_iodata([:a, %{href: "example.com"}, "hello"])
# => [
#      ["<", "a", [[" ", "href", "=\"", "example.com", "\""]], ">"],
#      [["hello"]],
#      ["</", "a", ">"]
#    ]

If you're using sneeze and getting surprising/screwy results, please open an issue.

Documentation

Documentation can be found on hexdocs.

Demo App

See cold for a demo of how to use Sneeze with Plug.

Bugs, Improvements and Contributing

Open an issue or pull-request on GitHub, all contributions welcome! :)

Changes

2.0.0

1.3.0

  • A new Sneeze.render_iodata/1 function
  • Various modernizations, dependency upgrades

1.2.1

  • Upgrade html_entities

1.2.0

  • Add html_entities to application list

1.1.0

  • Better performance, using iolists instead of string-concatination

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory