This is a mini template engine which can generate HTML dynamically by parsing templates on server-side. It is a bit like Django.
1. Templates
A template is a text file which contains variables, tags.
1.1 Variable
There are two types of template variables, one is common variable, the other is conditional variable.
1.2 Tags
Tags control the logic of the template. they are surrounded in {% %}. Some create text in the output, some control flow by performing loops or logic, and some load external information into the template to be used by later variables.
2. Use templates in B4J
The template parsing library b4jtpl.0.11.0 is attached.
2.1 Pass variables to templates
In B4J, template variables will are put into a map,each key of the map corresponds to a template variable name
2.2 initialize
HtmlTplParser is a class which generates HTML.
To use the class you need to set templatefile's basepath and extension
2.3 Render
A method render which returns html string by template file and map variale
For a hands-on example of creating HTML pages with templates, please see stplExample.
It's only a creation or a practice not a product, I did it just for learning b4x .
1. Templates
A template is a text file which contains variables, tags.
1.1 Variable
There are two types of template variables, one is common variable, the other is conditional variable.
Type | Decription | Usage |
Common | Variable name is put inside {{ }} | <h1>Hello {{ firstname }}, how are you?</h1> |
Conditional | Variable name is put inside tags | {%if isLogin %} or {% for menu in menus %} |
1.2 Tags
Tags control the logic of the template. they are surrounded in {% %}. Some create text in the output, some control flow by performing loops or logic, and some load external information into the template to be used by later variables.
Tag | Decription | Usage |
block | Define a section in a master template that should be replaced by a section in a child template | {% block content %}{% endblock %} |
if [ else | elseif ] endif | An if statement evaluates a boolean variable and executes a block of code if the value is true. | {%if isLogin %} <li class="nav-item"><a href="/logout" class="nav-link">LOGOUT</a></li> {% else %} <li class="nav-item"><a href="/login" class="nav-link">LOGIN</a></li> {% endif %} |
for in | A for loop is used for iterating over a list. | {% for menu in menus %} <li class="nav-item"><a href={{menu.href}} class="nav-link {{ menu.active }}">{{menu.item}}</a></li> {% endfor %} |
extends | The extends tag allows you to add a parent template for the current template.This means that you can have one master page that acts like a parent for all other pages | {%extends base %} {% block content %}<h2>Page-{{uri}} {{username}} </h2>{% endblock %} |
include | The include tag allows you to include a template inside the current template. This is useful when you have a block of content that is the same for many pages. | {% include partial/header %} body is content what you would like to do {% include partial/footer %} |
2. Use templates in B4J
The template parsing library b4jtpl.0.11.0 is attached.
2.1 Pass variables to templates
In B4J, template variables will are put into a map,each key of the map corresponds to a template variable name
2.2 initialize
HtmlTplParser is a class which generates HTML.
To use the class you need to set templatefile's basepath and extension
2.3 Render
A method render which returns html string by template file and map variale
For a hands-on example of creating HTML pages with templates, please see stplExample.
It's only a creation or a practice not a product, I did it just for learning b4x .
Attachments
Last edited: