mirror of
https://github.com/cupcakearmy/cometa.git
synced 2025-03-11 05:47:29 +00:00
Cometa
Yet another templating engine 📠
Cometa is a templating engine with no dependencies written in JS
. That was the reason it was created.
Quickstart 💥
# Go to examples
cd examples/simple
# Install
npm i
# Run
node app.js
Setup 🏗
General Import
// Import
const Cometa = require('cometa')
// Initialize
const cometa = new Cometa()
Installation 🚂
npm i cometa
Run 🚀
Constructor Options
new Cometa(options, expressions)
All options and expressions are optional.
options
(default
) description
Example
new Cometa({
views: './someDir'
}, {
begin: '<<',
comment: '^'
})
Options
views
(./views
) Root template folderextension
(html
) File extension of the templatesencoding
(utf-8
) Encoding of the files
Expressions
begin
({{
) Opening tagsending
(}}
) Closing tagscomment
(#
) Comment charinlcude
(>
) Include charif
(?
) If statement charif_invert
(!
) Invert the variable in if statementfor
(*
) For charfor_in
(in
) Divider between array and iclosing_tag
(/
) Closing tag for ifs and loops
Render template
const Cometa = require('cometa')
const cometa = new Cometa()
// Data
const template = 'index' // file called index.html in ./views
const data = {name: 'World'}
const callback = (err, html) => console.log(html)
// Do the render
cometa.render(template, data, callback)
Render file
const Cometa = require('cometa')
const cometa = new Cometa()
// Data
const data = {name: 'World'}
const callback = (err, html) => console.log(html)
// Do the render
cometa.renderFile('myDir/myTemplate.myExtesion', data, callback)
Express
const express = require('express')
const app = express()
app.set('views', `${__dirname}/views`)
app.set('view engine', 'html')
app.engine('html', require('cometa').__express)
app.get('/', (req, res) => {
res.render('index', {
title: 'Cometa!'
})
})
app.listen(3000, () => console.log('Example app listening on port 3000!'))
Reference 📒
Variable
{"myVar": "ok"}
<span>{{myVar}}</span>
Comments
<div>
{{# Me Me Comment #}}
</div>
If
True is everything that is different from:
undefined
false
null
''
{
"myVar": "something",
"myVar": true,
"myVar": [1,2,3],
"myVar": 42,
}
{{? myVar }}
<span>Only show me when I exist: {{ myVar }}</span>
{{/?}}
Loop
{
"links": [
{"id":0, "name": "One"},
{"id":1, "name": "Two"},
{"id":2, "name": "Three"}
]
}
<ul>
{{* link in links}}
<li id="{{link.id}}">{{ link.name }}</li>
{{/*}}
</ul>
Description
Languages
TypeScript
81.9%
JavaScript
14.2%
HTML
3.9%