CrossClj

2.0.0-alpha1 docs

SourceDocs



RECENT

    hiccup

    Clojars

    Jan 14, 2017


    OWNER
    James Reeves
    Boolean Knot Ltd
    London, UK
    jreeves@booleanknot.com
    www.booleanknot.com

    Readme

    Index of all namespaces


    « Project + dependencies

    A fast library for rendering HTML in Clojure

    hiccup.coreDocsSource
    Library for rendering a tree of vectors into a string of HTML.
    Pre-compiles where possible for performance.

    VARS

    h html

    hiccup.defDocsSource
    Macros for defining functions that generate HTML
    
    hiccup.middlewareDocsSource
    Ring middleware functions for Hiccup.
    
    hiccup2.coreDocsSource
    Library for rendering a tree of vectors into HTML. Pre-compiles where
    possible for performance. Strings are automatically escaped.

    VARS

    html raw

    The README below is fetched from the published project artifact. Some relative links may be broken.

    Hiccup

    Build Status

    Hiccup is a library for representing HTML in Clojure. It uses vectors to represent elements, and maps to represent an element’s attributes.

    Install

    Add the following dependency to your project.clj file:

    [hiccup "1.0.5"]
    

    Documentation

    Syntax

    Here is a basic example of Hiccup syntax:

    user=> (use 'hiccup.core)
    nil
    user=> (html [:span {:class "foo"} "bar"])
    "<span class=\"foo\">bar</span>"
    

    The first element of the vector is used as the element name. The second attribute can optionally be a map, in which case it is used to supply the element’s attributes. Every other element is considered part of the tag’s body.

    Hiccup is intelligent enough to render different HTML elements in different ways, in order to accommodate browser quirks:

    user=> (html [:script])
    "<script></script>"
    user=> (html [:p])
    "<p />"
    

    And provides a CSS-like shortcut for denoting id and class attributes:

    user=> (html [:div#foo.bar.baz "bang"])
    "<div id=\"foo\" class=\"bar baz\">bang</div>"
    

    If the body of the element is a seq, its contents will be expanded out into the element body. This makes working with forms like map and for more convenient:

    user=> (html [:ul
                   (for [x (range 1 4)]
                     [:li x])])
    "<ul><li>1</li><li>2</li><li>3</li></ul>"
    

    License

    Copyright © 2016 James Reeves

    Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.