Commit 5144eae6 authored by josé bollo's avatar josé bollo

Merge branch 'master' into 'master'

Update README.md

See merge request !2
parents b035cab5 c60d5296
Introduction to mustach
Introduction to Mustach
=======================
mustach is a C implementation of [mustache](http://mustache.github.io "main site for mustache").
`mustach` is a C implementation of the [mustache](http://mustache.github.io "main site for mustache") template library.
The main site for mustach is on [gitlab](https://gitlab.com/jobol/mustach).
The main site for `mustach` is on [gitlab](https://gitlab.com/jobol/mustach).
The best way to use mustach is to copy the files **mustach.h** and **mustach.c**
in your project and use it.
directly into your project and use it.
The current source files are:
- **mustach.c** core implementation of mustache in C
- **mustach.h** header file for core definitions
- **mustach-json-c.c** tiny json wrapper of mustach using [json-c](https://github.com/json-c/json-c)
- **mustach-json-c.h** header file for using the tiny json wrapper
- **mustach-tool.c** simple tool for applying template files to a json file
- **mustach-json-c.h** header file for using the tiny JSON wrapper
- **mustach-tool.c** simple tool for applying template files to a JSON file
The file **mustach-json-c.c** is the main example of use of **mustach** core
and it is also a practical implementation that can be used.
The tool **mustach** is build using Makefile. Its usage is:
The tool **mustach** is build using `make`, its usage is:
mustach json template [template]...
and it prints the result of applying the templates files to the json file.
It then outputs the result of applying the templates files to the JSON file.
Extensions
==========
By default, the current implementation provide the following extensions.
By default, the current implementation provides the following extensions:
Explicit substitution
Explicit Substitution
---------------------
This is a core extension implemented in file **mustach.c**.
In somecases the name of the key used for substition begins with a
character reserved for mustach: one of '#', '^', '/', '&', '{', '>' and '='.
This extension introduces the special character ':' to explicitely
This extension introduces the special character ':' to explicitly
tell mustach to just substitute the value. So ':' becomes a new special
character!
character.
Test of the value
-----------------
Value Testing
-------------
This is a tool extension implmented in file **mustach-json-c.c**.
This extension allows to test the value of the selected key.
This extension allows you to test the value of the selected key.
It is allowed to write key=value (matching test) or key=!value
(not matching test) in any query.
Removing extensions
Removing Extensions
-------------------
When compiling mustach.c or mustach-json-c.c,
......@@ -59,35 +59,35 @@ using option -D.
The possible macros are:
- NO_COLON_EXTENSION_FOR_MUSTACH
- `NO_COLON_EXTENSION_FOR_MUSTACH`
This macro remove the ability to use colon (:)
as explicit command for variable substituion.
This extension allows to have name starting
with one of the mustach character :#^/&{=<
- NO_EQUAL_VALUE_EXTENSION_FOR_MUSTACH
- `NO_EQUAL_VALUE_EXTENSION_FOR_MUSTACH`
This macro allows the tool to check the whether
This macro allows the program to check the whether
the actual value is equal to an expected value.
This is useful in {{#key=val}} or {{^key=val}}
with the corresponding {{/key=val}}.
It can also be used in {{key=val}} but this
This is useful in `{{#key=val}}` or `{{^key=val}}`
with the corresponding `{{/key=val}}`.
It can also be used in `{{key=val}}` but this
doesn't seem to be useful.
- NO_JSON_POINTER_EXTENSION_FOR_MUSTACH
- `NO_JSON_POINTER_EXTENSION_FOR_MUSTACH`
This macro removes the possible use of JSON pointers.
JSON pointers are defined by IETF RFC 6901.
If not set, any key starting with / is a JSON pointer.
JSON pointers are defined in IETF RFC 6901.
If not set, any key starting with "/" is a JSON pointer.
This implies to use the colon to introduce keys.
So NO_COLON_EXTENSION_FOR_MUSTACH implies
NO_JSON_POINTER_EXTENSION_FOR_MUSTACH.
A special escaping is used for = signs when
values comparison is enabled: ~= leaves = in the key.
So `NO_COLON_EXTENSION_FOR_MUSTACH` implies
`NO_JSON_POINTER_EXTENSION_FOR_MUSTACH`.
A special escaping is used for "=" signs when
values comparison is enabled: "~=" leaves "=" in the key.
- NO_EXTENSION_FOR_MUSTACH
- `NO_EXTENSION_FOR_MUSTACH`
This macro disables any current or futur
extension.
This macro disables any current or future
extensions.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment