- Notifications
You must be signed in to change notification settings - Fork0
Extremely Small, Fast, and damn Customizable ⚙ template engine on Native low-level implementation. / Mr. Jt / [ TypeScript & JavaScript ]
License
3F/Jt
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
🎩
Meet beardless customizable template engine, Mr. Jt for Node.js and Web browsers.
jt.use('',' $Hello %p% {{world}} ').as({p:'amazing'}).reset().as({p:'crazy'})// ... +$Hello, +{{world}}
jt.use('s1','Today is a {( a < b )} good {/} bad {;} day!').sa(jtif,{a:5,b:7}).value()
Extremely small, fast, and damn customizable. Okay, Let's see what's going on:
Onlynative lower-level implementation. Even for conditional statements, like:
{( d > 5 )} yes {/} no {;}
Which donot usesregex
, oreval()
, ornew Function()
, ... Feel the speed.
Extra small size. Just about o-n-e kilobyte of fully workable core engine:
- ~1.02 KB for Core of ES6 gzipped;
- ~ 1.09 KB for Core ofES3 gzipped;
Same things for custom handlers.
You can configure, add, or change anything!
Jt was designed to be loyal to your preferenceson the fly. Maybe for this:
jt.use('s1','Good {{p}}, $p -p- !').as({p:'Jt'}).as({p:'Mr.'},{op:'$'}).as({p:'morning'},'{{}}').val(),
Or for this:
// {( true )} yes {/} no {;} -> {if( true )} yes {else} no {endif}jt.use('legacy','{if( true )} yes {else} no {endif}!').sa(newJtIfHandler(['{}'],{if:'if',else:'else',fi:'endif',})).val()// yes !
Or for something more ...
Sure! Add or change any features for the layers, stillon the fly.
Do you need something special? No problem, just implementIJtHandler to cover your awesome things. It easy.
Changeable layers through common chain will make you happy.
You can control everything just in a few steps:
jt.use('hello','Hello you from $tip, dear $name.').as({tip:'Jt',name:'John'});// Hello you from Jt, dear John.// ...jt.use('hello').as(-1,true).as({name:'Denis'})// Hello you from Jt, dear Denis..reset().as({tip:'Moscow'}).eject((v)=>t.is(v,'Hello you from Moscow, dear $name.'))....as({name:'{( r > 100 )}friend{/}visitor{;}'}).sa(jtif,{r:actual})// // Hello you from Moscow, dear friend.....val();🐧
CleanAPI and itstests will take care of your peace of mind.
Developed from scratch without dependencies to something from our end-product.
Open Source project; MIT License, Yes! Enjoy!
Licensed under theMIT License (MIT)
Copyright (c) 2019 Denis Kuzmin < entry.reg@gmail.com > GitHub/3F
[ ☕ Donate ]
- Core:IJt ➟IJtAct
- Configuration:IJtConfig
- Handlers:IJtHandler
Separate ES3+/ES6+ support for your environment. Choose more suitable package for your case.
- ...
https://unpkg.com/mrjt[@version]/[path_to_specific_file]
- ...
CI builds:
/artifacts
page or find asPre-release
with mark🎲 Nightly build
onGitHub Releases page.
npm installgulp build --conf debug
Available tests can be raised by command:
npm test
We're waiting for your awesome contributions!
About
Extremely Small, Fast, and damn Customizable ⚙ template engine on Native low-level implementation. / Mr. Jt / [ TypeScript & JavaScript ]