Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A jQuery-like HTML templating library written in Java

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .settings
Octocat-spinner-32 src
Octocat-spinner-32 .classpath
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .project
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 pom.xml
README.md

Moulder-j

Build Status

A (relatively) tiny jQuery-like HTML templating library written in Java. In a nutshell, here's how to use moulder:

  1. parse a document
  2. select one or more elements (using jQuery's selectors syntax)
  3. apply one or more modifiers on the previous selection (add/remove/modify attribute, set text, repeat, ...)
  4. go back to 2 to alter as many other elements as needed
  5. profit !

Using this library

To use this library in your projects, just add the following to the dependencies section of your pom.xml (moulder is deployed in central):

<dependency>
  <groupId>com.plecting</groupId>
  <artifactId>moulder</artifactId>
  <version>1.0.0</version>
</dependency>

I've compiled some simple and elementary use cases in this gist, and some more complex and advanced use cases in this gist.

Here's a quick sample of how moulder can be used to manipulate html:

Given this markup:

<html>
    <body>
        <h1>dummy text to be replaced</h1>
    </body>
</html>

This moulder based snippet:

Document doc = Jsoup.parse(HTML);
MoulderShop m = new MoulderShop();

List<String> items = Arrays.asList("summer", "autumn", "winter", "spring");

m.register("h1",
        repeat(items.size()),
        text(seq(items)),
        attr("class", seq("even", "odd").cycle()),
        append("<p>content</p>")
);

m.process(doc);

Will generate the following:

<html>
    <head>
    </head>
    <body>
        <h1 class="even">Spring</h1>
        <p>content</p>
        <h1 class="odd">Summer</h1>
        <p>content</p>
        <h1 class="even">Autumn</h1>
        <p>content</p>
        <h1 class="odd">Winter</h1>
        <p>content</p>
    </body>
</html>

Or in plain english:

  • repeat the h1 element as many times as there are items in the list
  • For each generated h1 element, set it's class to even or odd
  • Also set it's text content to the corresponding season
  • And finally, append a paragraph after it

Building

You need a Java 5 (or newer) environment and Maven 3 installed:

$ mvn --version
Apache Maven 3.0-beta-1 (r935667; 2010-04-19 19:00:39+0200)
Java version: 1.6.0_20
Java home: /usr/lib/jvm/java-6-sun-1.6.0.20/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.32-22-generic" arch: "amd64" Family: "unix"

You should now be able to do a full build of ojaas:

$ git clone git://github.com/jawher/moulder-j.git
$ cd moulder-j
$ mvn clean install

Troubleshooting

Please consider using Github issues tracker to submit bug reports or feature requests.

License

See LICENSE for details.

Something went wrong with that request. Please try again.