runabol / jiccup

Clojure Hiccup inspired HTML rendering experiment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Jiccup

Jiccup is a Hiccup-inpsired library for representing HTML in Java.

Warning: This project is still in an experimental phase.

Requirements

Java 1.8+

Install

<dependency>
  <groupId>com.creactiviti</groupId>
  <artifactId>jiccup</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</dependency>

<repositories>
   <repository>
      <id>maven-snapshots</id>
      <url>http://oss.sonatype.org/content/repositories/snapshots</url>
      <layout>default</layout>
      <releases>
         <enabled>false</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
      </snapshots>
   </repository>
</repositories>

Syntax

Hello World

Here is a basic example of Jiccup's syntax:

import static com.creactiviti.jiccup.Elements.*;

...

html (
  body(
    h1(content("Hello World"))
  )
);

Which will render the following HTML:

<html>
  <body>
   <h1>Hello World</h1>
  </body>
</html>

Bootstrap Example

import static com.creactiviti.jiccup.Elements.*;

...

html (
    head (
      stylesheet("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"),
      stylesheet("/starter-template.css"),
      title("Starter Template for Bootstrap")
    ),
    body(
      nav(
        css("navbar","navbar-inverse","navbar-fixed-top"),
        div(
            css("container"),
            div(
              css("navbar-header"),
              button(css("navbar-toggle","collapsed"),span(css("sr-only"),content("Toggle navigation")),attr("type", "button")),
              a(href("/"),content("Project name"),css("navbar-brand"))
            ),
            div(
               id("navbar"),
               css("collapse","navbar-collapse"),
               ul(
                 css("nav","navbar-nav"),
                 li(a(href("/"),css("active"),content("Home"))),
                 li(a(href("#about"),content("About"))),
                 li(a(href("#contact"),content("Contact")))
               )
            )
         )
       )
       div(
         css("container"),
         div(css("starter-template"),
               h1(content("Bootstrap starter template")),
               p(css("lead"),content("Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document."))
         )
       )
    )
)

Which renders bootstrap's starter template.

Spring Integration

See Spring Boot Starter Jiccup

License

Jiccup is released under version 2.0 of the Apache License.

About

Clojure Hiccup inspired HTML rendering experiment


Languages

Language:Shell 42.8%Language:Batchfile 33.1%Language:Java 24.1%