Template features

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) !!!

Comments (0)