Neznam dali sam što propustio vidjeti, ali mi nekako falilo opcija u ovom gore enginu, tako da sam nakraju išao složiti vlastiti engine prema željenim značajkama.
Složio sam si pravila prema kojima mogu:
-definirati ID-ove koji će se automatski generirati, te nakon “aktivacije” templatea, moguće je sve elemente dohvaćati putem objekata na kojeg se apliciraju elementi pozivom: template_instance.applyDom(objekt)
-definirati varijable
-definirati varijable sa defaultnom vrijednošću
-definirati varijable koje će biti prebrisane/ignorirane u destkop ili mobile verziji
-definirati varijable nad kojima će biti odrađen HTML escape.
Uglavnom, cool stvarčica…em radi brže, em je sad jednostavnije dohvaćati elemente (sve se desi zapravo automatski) …pa nema više selectora. Nema više konfuzije ako zamjenim nešto u HTMLu, da ću promjenom klase ili strukture HTMLa napraviti zbrku među selektorima
I ono što mi je buety kod vlastitih alatića…da ih je uvijek lakše nadograđivati prema daljnjim željama/potrebama.
Sintaksa je sljedeća:
var template_instance= new template(string,param)
-string je string templatea, recimo:
<div id='$#element' class='whiteBox boxInfo $css'>
<i id='$#btn.close' class='close'></i>
<span>$span_value:defaultna vrijednost moze ici ovdje##</span>
<span>$varijabla;je prekinuta sa točka zarez</span>
</div>
SINTAKSA:
Generiranje ID-ova:
$#element -> stvara id: element_uid_1 , dohvatljiv kao objekt.element
$#btn.element-> stvara id: btn.element_uid_1, dohvatljiv kao objekt.btn.element;
$#R -> vraća vrijednost zadnjeg generiranog ID-a, korisno za povezivanje checkboxa sa njihovim label.for atributom.
Generiranje varijabli:
$varijableName -> zamjenjuje sa varijablom koja se prosljeđuje unutar param objekta kod kreiranja templatea
ako varijabla nije prosljeđena, ništa se ne dešava.
$varijableName:miki## ->ako varijabla nije prosljeđena, miki je defaultna vrijednost
$+varijableName -> radi escapeHTML nad umetnutim stringom.
$(m)varijableName ->radi samo u mobilnoj verziji, inace vraca prazan string
$(d)vradijableName ->radi samo u destkop verziji, inace vraca prazan string
$pero;zdero ->točka zarez po potrebi razdvaja varijablu od okoline. Prirodna okolina koja razdvaja varijablu je: [<,>, ,’,",(,),$]
METODE:
template_instance.toNode() -> vraća HTML element izgrađen iz templatea;
template_instance.applyDom(objekt) -da bi se varijable(ID-ovi) prenjele na neki objekat, treba pozvati temlape_instance.applyDom(objekat) -> ovo se može pozvati tek nakon što se template ugradi u DOM, kako bi ID-ovi postali važeći.