WARNING: You are not looking at the live version, but at an older version.

Introduction

Here we give an overview of the features of the Kauri template language, and their current state. We also give a qualification of the importance/urgency of the feature.

Legend:

--

not needed

+

nice to have

++

need to have

+++

blocker (i.e. need to have asap)

Template directives

directive

state

qualification

note

if...

icon_ok

++

if... else...

--

no added value next to choose when... otherwise...

choose -> when...

icon_ok

++

choose -> otherwise...

icon_ok

++

forEach...

icon_ok

icon_ok

++

++

repeat number of times ; access to: index, number, (size), (position), revIndex, revNumber

foreach x in collection

import <template>

icon_ok

++

@runtime  - xslt-alike - local macro's and var assignments overrule the ones in the imported template

include <template>

icon_ok

++

@runtime - xslt-alike - included macro's and var assignments can overrule when include is after the local declaration

insert <url>

insert <var>

icon_ok

icon_nok

icon_nok

+++
+
+

@runtime - verbatim copy of refered document note: have to think about surpressing e.g. html/body
  - maybe by having some mild match-path expression syntax
@runtime - serialize in sax events from refered object

comment

icon_ok

+

ability to generate comments in output

attribute

icon_ok

++

element

icon_ok

icon_nok

++

+

create an output element with a dynamic name

support creation of namespaced elements

macro

icon_ok

+

variable

icon_ok

icon_nok

++

+

create a local alias of an object

support dom-trees (maybe implement when adding xpath support ?)

Expression language

expression

state

qualification

note

true, false

icon_ok

++

and, or, ! (not)

icon_ok

++

==, !=, <, >, <=, >=

icon_ok

++

toUpperCase, toLowerCase

icon_ok

++

substring, left, right

icon_ok

+

trim

icon_ok

+

length

icon_ok

++

concat

icon_okicon_nok

--

this can be done implicit, so maybe we don't need a concat expression

date (with formatting options), now

icon_ok

+

startswith, endswith, contains

icon_ok

++

exp ? val1 : val2

icon_ok

++

Advanced topics

topic

state

qualification

note

taglibs support

icon_ok icon_nok

++

first attempt

decorator

icon_nok

+

waiting for concrete use case

formatting, i18n

icon_nok

+++

very important - via EL

public uri translate

icon_ok

+++

very important - via EL

function registry

icon_ok

+++

enable through module interface: important

whitespace handling

icon_okicon_nok

++

keep in mind

template inheritance mechanism

icon_ok

+++

cfr include and import ; important

XPath support in EL

icon_nok

++

inspiration from xslt - use jxpath (cfr jxtemplate) ? Yes: important (not blocking)

support for groovy expressions

icon_ok

+++

think about it asap : might demand serious refactoring so decisions are important

security aspect

icon_nok

--

possibility to white- or blacklist locations of scripts (e.g. groovy) and templates

Template engine

subject

state

note

template executor

icon_ok

sax based default implementation

template builder

icon_ok

sax based default implementation

template service

icon_ok

first version with some basic caching

junit tests

icon_ok

documentation

icon_okicon_nok

some more javadoc, documentation with some drawings to explain how the engine works

restlet/kauri integration

icon_okicon_nok

resolver, context (also request, response), caching (compiledtemplate & output) !!!