Released 2023-07-15.
- CLI tools
clj-art
andlein-art
provide their classpaths to the ART template evaluation environment, as well as a reworked:dependencies
mechanism that uses pomegranate to add further dependencies. This deprecates the prior ShimDandy. - Support for Clojure versions 1.11.0, 1.11.1.
- CLI tools offer these ART commands (not yet implemented for
clj-art
):auto
: Watches template files and directories, re-rendering on changes.config
: Dump the effective ART configuration to stdout.help
: Display tool help.render
: ART's default behavior of rendering templates.
- Template authors can express blocks or partials -like structuring of a collection of templates through recursive
use of
(vivid.art/render :bindings ...)
, a new*render-context*
, and(yield)
ing from those bindings. - Parallel rendering test suite
vivid.art.parallelism-test
. Demonstrates use of(render)
using(pmap)
as well as(core.async/go)
and(core.async/thread)
.
- Template
(emit)
function accepts any number of args, emitting each in order of appearance to the output. :dependencies
now expects a Leiningen-style dependencies map.(vivid.art/render)
function signature now accepts options as keyword arguments. In practice, you only need to replace the map with its contents (delete the curly braces surrounding the map contents).art-cli
honors symlinks.
- ShimDandy -based
:dependencies
behavior along withboot-art
.
Released 2022-02-25.
- Pretty-prints error details as a Clojure data structure. Good starting point for improving on error diagnoses messaging.
- CLI tool didn't catch signals and print error messages properly.
Released 2022-02-24.
art-cli
-based tooling allows callers to specify a path to a JSON file to provide bindings.- Ring server cookbook recipe.
- In alignment with clojars.org verified group names
the Maven Group name
vivid
that had served as the umbrella for the ART project changes in this 0.6.0 release tonet.vivid-inc
. Please update your dependencies from i.e.vivid/art
tonet.vivid-inc/art
for ART 0.6.0 onwards. - Bindings can be specified as paths to EDN or JSON files. In such cases, the content of the given bindings file is set
as the value of a symbol, created by removing the file extension from the base filename (
.edn
,.json
). - The default delimiters has been changed to a new
vivid.art.delimiters/lispy
that looks like<( )>
(note how they ooze with LISP-iness); changed from the prior default ofvivid.art.delimiters/erb
. - Minimum supported Clojure version is advanced from 1.9.0 to 1.10.0 (minimum version supported by farolero).
- With the goal of reducing
net.vivid-inc/art
project dependencies, branched off CLI-specific code fromnet.vivid-inc/art
into a newnet.vivid-inc/art-cli
lib. The:dependencies
option tovivid.art/render
is also migrated there. - Adding Java 17, an LTS release, to the set of Java versions that ART is tested with.
- farolero replaces
special
for condition handling. - Upgraded org.clojure/tools.cli from version 1.0.196 to the new version 1.0.206 which offers the
:multi
option, allowing >= 2 binding specifications on the CLI.
Released 2021-01-19.
- Introducing Clojure CLI tools plugin
clj-art
. - Cookbook recipes in README files and example projects.
- (Unstable until version 1.0) Render option
:to-phase
allows the dataflow to stop at an earlier(render)
phase. Useful for inspecting ART output at intermediate phases for diagnosis and for understanding ART's behavior.
- Renamed
vivid/ash-ra-template
tovivid/art
to more closely mirror its Clojure namespace. - License changed from EPL to Apache License, version 2.0.
- Honors the Java system property
user.dir
when determining file paths. The defect came to light during a Maven multi-module build usingvivid:clojure-maven-plugin
.
Released 2019-07-05.
- Bindings can be supplied with the
(render {:bindings {...})
option. - Template delimiter definitions can be changed from the default ERB-style with the
(render {:delimiters {...}})
option. vivid.art.delimiters
offers a selection of pre-defined delimiter sets:erb
,jinja
,mustache
, andphp
.- Introducing Leiningen plugin
lein-art
. - Both the Boot task and Leiningen plugin are at feature parity, supporting all of
(render)
's options.
- Changed template parsing mechanism from regular expressions to instaparse.
- Changed
(render)
from accepting options as keyword arguments to an optional options map.
Released 2019-05-03.
- Defining the initial evaluation environment of ART template code as
user
.
- Simplified the renderer namespace from
vivid.art.core/render
tovivid.art/render
. - Re-organizing the project into two sub-projects:
ash-ra-template
the library, and a Boot pluginboot-art
.
Released 2019-04-13.
- Addition of automated tests.
- Switch from
eval-soup
to an embedded evaluation environment based on ShimDandy.
Released 2017-11-20.
- Use
eval-soup
to render templates featuring Clojure language processing with ERB 2.0-esque syntax.