npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

smarty2etpl

v0.0.3

Published

transfer smarty to etpl

Downloads

8

Readme

smarty2etpl

translate smarty template to etpl

Install

for use in command line:

npm install -g smarty2etpl

or for use in nodejs

npm install smarty2etpl

Usage

use in a command line:

smarty2etpl some-template.tpl

use in nodejs api

var smarty2etpl = require('smarty2etpl');

var etpl = smarty2etpl.compile('hello, {%$name%}');

console.log(etpl);

config smarty2etpl

modifier src/config.json to set ldelim or ldelim. Save config.json and run command in your terminal:

npm install
grunt build

This requires grunt-cli and you can get it by:

sudo npm install -g grunt-cli

Default ldelim and rdelim are {% and %}

Notice

current version only support these commands, modifiers or php functions:

  • Commands
    • foreach
    • if
    • block
    • extends
    • function
    • assign
    • strip
  • Modifiers
    • escape
  • php functions
    • count
    • empty: use this php function will make your page rely on jQuery.isEmptyObject
    • isset

these features are not supported:

  • if parameter value is a string, the '' or "" cannot be bypassed:

this is ok:

{%funciton name='menu'%} ... {%/function%}
{%$data|escape:'html'%}

this will cause pasre error:

{%funciton name=menu%} ... {%/function%}
{%$data|escape:html%}
  • foreach

only support smarty2 syntax

{%foreach from=$data item=$item key=$key"%}
	

@index @first @last etc. this feature cannot go with etpl for now;

There maybe is a trick way, and we may support this in future;

  • all kinds short-hand. Only key=value parameters supported

this is ok:

{%function name='menu' level=0%} ... {%/block%} 

these will cause parse error:

{%block menu%} ... {%/block%}
  • function chainable such as:

    {%json_encode($data)|escape:'javascipt'%}

TODO

pull requests are totally welcome

  • make ldemin and rdemin can be set through nodejs api
  • support these commands:
    • include
    • while
    • for
  • strengthen these commands:
    • foreach