https://github.com/killme2008/ring.velocity
Render apache velocity template for ring in clojure.
https://github.com/killme2008/ring.velocity
Last synced: over 1 year ago
JSON representation
Render apache velocity template for ring in clojure.
- Host: GitHub
- URL: https://github.com/killme2008/ring.velocity
- Owner: killme2008
- Created: 2012-07-17T15:26:47.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2012-10-25T10:14:58.000Z (over 13 years ago)
- Last Synced: 2024-04-14T16:06:38.310Z (about 2 years ago)
- Language: Clojure
- Size: 140 KB
- Stars: 21
- Watchers: 6
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ring.velocity
A Clojure library designed to render velocity template for ring/compojure in clojure.
## Usage
Adds dependency in leiningen project.clj:
[ring.velocity "0.1.2"]
Create a directory named `templates` in your project directory to keep all velocity templates.
Create a template `templates/test.vm`:
hello,$name,your age is $age.
Use ring.velocity in your namespace:
(use '[ring.velocity.core :only [render]])
Use `render` function to render template with vars:
(render "test.vm" :name "dennis" :age 29)
The `test.vm` will be interpreted equals to:
hello,dennis,your age is 29.
Use ring.velocity in compojure:
(defroutes app-routes
(GET "/" [] (render "test.vm" :name "dennis" :age 29))
(route/not-found "Not Found"))
And if you just want to get a rendered template without variables,you can use `template-resources` to compile a route into compojure:
(use '[ring.velocity.core :only [render template-resources]])
(defroutes app-routes
(GET "/" [] (render "test.vm" :name "dennis" :age 29))
(template-resources "/vm")
(route/not-found "Not Found"))
Then you can access any velocity template files in `templates` folder by `http://host:port/vm/${template_file_name}`. It is just like the `resources` in compojure except it only serve velocity template requests.
Use ring.velocity in ring:
(use '[ring.util.response])
(response (render "test.vm" :name "dennis" :age 29))
Custom velocity properties,just put a file named `ring-velocity.properties` to your classpath or resource paths.The default velocity properties is in [src/default/velocity.properties](https://github.com/killme2008/ring.velocity/blob/master/src/default/velocity.properties).
A demo project with compojure is in [demo](https://github.com/killme2008/ring.velocity/tree/master/demo) folder.
## License
Copyright © 2012 dennis zhuang[killme2008@gmail.com]
Distributed under the Eclipse Public License, the same as Clojure.