#Changes and TODO
- [TODO] Wrap fn/evaluator invocation exceptions with Basil template info
- originating from Quiddity (due to wrong number/type of args)
- originating from user-supplied fns/evaluators/values
- [TODO] Nested template sections
- [TODO] Template distribution mechanism
- [TODO] Investigate abstracting out string concatenation
(let [sb (goog.string.StringBuffer. "hello, ")]
(.append sb "world")
(.toString sb))
- [TODO] Filter fns for reversing HTML entities
- Fix issue where missing file did not lead to a meaningful error message
- Common cached-group feature
- Update dependencies
- Quiddity 0.2.0
- clip-test 0.2.0
- ClojureScript support (via clip-test)
- Use Quiddity to eval slots
- Update context built-ins (replace conditionals with Quiddity built-ins)
- Streamlined filter-fns for HTML generation, esp collections
- Library functions for 'locals scope'
- Error reporting must throw exception by default
- implicitly uses JVM/CLJS error-handler
- New API basil.public[-cljs]
- Template with slots
- Parse/compile and Render are separate
- Pluggable error reporting
- Model
- Filter functions
- Slot features
- attributes <% name %>
- literals <% "Number" 1 "String" "Joe Walker" "Keyword" :male %>
- filter calls <% (second name) %>
- Template Groups and "Include"
- JVM specific API for template groups
- Collection literals - vectors, sets, maps
- Cache compiled templates (re-load only if modified)
- HTML entities (escaping HTML to avoid XSS)