package jingoo

  1. Overview
  2. Docs
Template engine almost compatible with Jinja2(python template engine)


Dune Dependency







"o": new feature
"*": bug fixed
"!": change that can break compatibility with older version

version: 1.3.0
o [PR#63] Dune build system, documentation and github pages.
o [PR#64] Added jg_reject, jg_filter filter.
o [PR#65] jg_range: generate an array instead of a list, and support char ranges.
o [PR#66] Added jg_nth, jg_forall, jg_fold.
o [PR#66] jg_plus(+ operator in template) supports array and list.
o [PR#66] Some internal enhancements.
* [PR#66] Fixed jg_slice.
! [PR#66] Rename jg_filter to jg_select, to avoid wired naming(filter filter).
o [PR#67] Started writing documentation for template designers.
* [PR#68] Fixed jg_fold for multi byte string.
o [PR#69] Reworked Tfun to provide partial application for all functions.
o [PR#71] Dead code elimination. New module jg_ast_optimize is added.
o [PR#72] Function definition helpers: made function using kwargs the default, added _no_kw variants.
o [PR#73] Rewrite Jg_utils.escape in a more efficient way.
* [PR#73] Added escape for single quote(U+0027).
! [PR#74] Enhanced pretty-printer and added `pprint` filter.
o [PR#75] Improved jg_urlize_regexp for real-world usage.
o [PR#76] For loops: only declare 'loop' variable once instead of doing it for each iteration.
* [PR#76] Fix jg_iter_str (unicode safe).
o [PR#77] Added jg_printf function.
o [PR#78] Added jg_compose, jg_exists function.

version: 1.2.21, 2018-10-27
o [PR#55] type error messages enhancement.
o [PR#56] Implemented jg_batch for arrays.
o [PR#58] Added .gitattribute to provide .jingoo syntax highlight on github.
o [PR#59] Added function ~ endfunction syntax.
* [PR#60] Fix empty if branch trouble.
o [PR#61] Switch from Pcre to Re.
o [PR#62] jg_compare: fix list comparison, jg_sort: added ''compare" keyword argument. 
! [ISSUE#57] Removed mutex lock.

version: 1.2.20, 2018-09-25
! Enabled to create curried function with keyword arguments.
* Add 'uucp' to META.

version: 1.2.19, 2018-09-20
o [PR#43] Added ast_mapper in order to implement optimization passes.
o [PR#46,47] groupby filter support.
o [PR#48] sort filter supports reverse and attribute keyword arguments.
o [PR#49] min, max, nth support.
o [PR#50] Improved UTF8 support.
o [PR#53] map support.
* [PR#54] Add support for empty else and a test for it.
o [ISSUE#52] Rename default template extension from *.tmpl to *.jingoo.

version: 1.2.18, 2018-07-24
o [PR#27] Avoid unnecessary buffer while parsing.
* [PR#32] Handle whitespace control in lexer in order to avoid a ugly hack and Pcre use.
o [PR#31] Added Tarray type.
o [PR#33] Fixed lexer line update, better error message, fail on unclosed statements.
o [PR#28] Added Tpat data structure: object base on string pattern matching.
o [PR#34] Added Tlazy constructor.
o [PR#36] Added Tvolatile contructor.
o [PR#37] Optimize some operations on strings.
* [PR#39] Fixed jg_is_true with float (used comparison with epsilon_float).
* [PR#40] Treat Tnull iterable.
o [PR#41] Added basic namespace support.
o [ISSUE#23] Added strict_mode to environment.

version: 1.2.17, 2018-07-03
o [PR#25] Add keywords 'and', 'or', 'elif'.
* [PR#26] Make the lexer reject input when a keyword is expected but not found.

version: 1.2.16, 2017-11-15
! [PR#24] Drop support for 3.x because -safe-string(compiler option) is used by default since OCaml>=4.06.0.

version: 1.2.15, 2017-07-24
* [ISSUE#23] Treat invalid iterable object as empty list.

version: 1.2.14, 2016-12-16
o Update cheatsheet.tmpl(Add more '{% block %} ~ {% endblock %}' example code).
! Use labeled arguments for Jg_stub.add_func, Jg_stub.get_func.
* Remove unused func and types.
* [PR#21] Install .cmx files.
* [PR#22] Add support for iterating over Tobj and Thash data.

version: 1.2.13, 2016-05-10
! [PR#20] Replace batteries to uutf.

version: 1.2.12, 2015-12-05
* Use $(MAKE) instead of hard-coded make(PR#18) to support OSX and BSD via opam.

version: 1.2.11, 2015-12-03
* If native compiler is not supported, bytecode library is automatically selected by opam(Issues#16, PR#17).

version: 1.2.10, 2015-10-11
o Allow arbitrary expressions in object lookups(PR#15).

version: 1.2.7, 2015-04-12
! switch lib(extlib -> batteries).

version: 1.2.6, 2014-08-14
! deplicated compiled mode.
o support symbol include like {% include some_var %}, {% rawinclude some_var %}.

version: 1.2.5, 2014-08-01
o fix bug about recursive object lookup like {{ }}

version: 1.2.4, 2013-12-17
o replace UTF8 module from camomile to extlib.

version: 1.2.3, 2013-?-?
o support negative base for substring

version: 1.2.3, 2013-11-14
o support syntax of white space control('{%-' and '-%}').
o port test to oUnit2.
* fix META(switch link target whether '-thread' is anotated or not).

version: 1.2.2, 2013-11-02
* remove some needless funcs.
* fix bug about implicit file path.
* fix bug about jg_default(order of argument invalid).

version: 1.2.1, 2012-08-25
o disable auto convert from Tobj to Thash.

version: 1.2.0, 2012-08-24
* fix trouble of duplicated funcs between std_func and std_test(upper, lower).
o changed variable table from assoc list to Hashtbl for performance reason.
o add new type Thash for faster object.
  now template models(Tobj) are automatically converted into Thash.

version: 1.1.0, 2012-06-06
o license changed. now under MIT license.
o new cmdline tool option "-interp".
o support eval syntax(see cheatsheet.tmpl).

version: 1.0.1, 2012-03-13:
o add new syntax "rawinclude"

version: 1.0.0,  2012-02-18:
o first release

Innovation. Community. Security.