Giter Site home page Giter Site logo

metarhia / tickplate Goto Github PK

View Code? Open in Web Editor NEW
34.0 11.0 1.0 320 KB

Back-tick template engine for JavaScript 💬

Home Page: https://metarhia.com

License: MIT License

JavaScript 100.00%
template nodejs metarhia impress javascript templating format formatter render renderer

tickplate's Introduction

Tickplate - Back-tick templates for JavaScript

ci status codacy snyk npm version npm downloads/month npm downloads

Usage

  • Install: npm install tickplate
  • Require: const t = require('tickplate');
  • Place tag t before templated string

Examples:

const t = require('tickplate');

const data = {
  hello: 'Ave!',
  myFriend: {
    name: 'Marcus Aurelius',
    toString() {
      return this.name;
    },
  },
  positions: ['emperor', 'philosopher', 'writer'],
};

const templ = t`${'hello'} ${'myFriend'}, great ${'positions'} of Rome`;

console.log(templ(data));
console.log(templ(data, { delimiter: ', ' }));

With default values provided (optionally):

const t = require('tickplate');

const data = {
  greeting: 'Valē!',
  person: {
    name: 'Lucius Aurelius Verus',
    toString() {
      return this.name;
    },
  },
  positions: ['brother', 'emperor', 'co-emperor'],
  ruleFrom: 161,
  ruleTo: 169,
};

const templ = t`${'greeting='} ${'person="Marcus Aurelius"'}, great ${'positions=["emperor", "philosopher"]'} of Rome from ${'ruleFrom=161'} to ${'ruleTo=180'} AD`;

console.log(templ(data));

License & Contributors

Copyright (c) 2017-2023 Metarhia contributors. Tickplate is MIT licensed.
Tickplate is a part of Metarhia technology stack.

tickplate's People

Contributors

amativos avatar aqrln avatar dependabot[bot] avatar juliagerasymenko avatar rustworthy avatar tshemsedinov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mainarthur

tickplate's Issues

Templates without extra quotes

Templates syntax as of now:

const template1 = t`Example: ${'hello'} ${'myFriend'} great ${'positions'} of Rome`;

Better syntax without extra quotes:

const template1 = t`Example: ${hello} ${myFriend} great ${positions} of Rome`;

Support options like delimiter

Is your feature request related to a problem? Please describe.
There is no way to provide a delimiter for array values passed to a tickplate. Taking readme example into account, the following string is outputted: Ave! Marcus Aurelius, great emperor,philosopher,writer of Rome. Right now, there is no way to provide a delimiter that would be used when joining data.positions.

Describe the solution you'd like
Would be nice if we could provide options to templ(data, options). And one of the options would be a delimiter. For example:

const t = require('tickplate');

const data = {
  hello: 'Ave!',
  myFriend: {
    name: 'Marcus Aurelius',
    toString() {
      return this.name;
    },
  },
  positions: ['emperor', 'philosopher', 'writer'],
};

const templ = t`${'hello'} ${'myFriend'}, great ${'positions'} of Rome`;

console.log(templ(data, { delimiter: ", " }));

// Output: Ave! Marcus Aurelius, great emperor, philosopher, writer of Rome

Describe alternatives you've considered
As an alternative, we can use predefined ', ' value as a delimiter instead of a default JS one.

Additional context
N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.