An open API service indexing awesome lists of open source software.

https://github.com/pedsmoreira/casex-template

Simple, self expressive template engine for scaffolding files based on casex
https://github.com/pedsmoreira/casex-template

javascript nodejs templating-engine typescript

Last synced: 10 months ago
JSON representation

Simple, self expressive template engine for scaffolding files based on casex

Awesome Lists containing this project

README

          

# casex-template

Simple, self expressive template engine for scaffolding files based on [casex](https://github.com/pedsmoreira/casex)

## Introduction

_casex-template_ is a simple template engine that applies the [casex](https://github.com/pedsmoreira/casex) pattern to
all
occurrences in a template.

Often creating templates feels tedious and time consuming, I wanted to create an engine that lets someone pretty much
copy an example file, replace a few words and you should be good to go.

## Install

```zsh
npm install --save casex-template
```

## Usage

```ts
import {casexTemplate} from 'casex-template';

const text = "const __na_me__ = () => '#TODO: Implement Na Me'";
casexTemplate({text, name: 'cool component'})
```

# How it works

As the name suggests project uses [casex](https://github.com/pedsmoreira/casex), an open source library designed to be
an `All in one function for transforming word casings`.

While `casex` is design to apply a pattern for a specific string, _casex-template_ focuses on getting a template,
finding
all occurrences of `__name__` and replacing them with the corresponding value.

Here are a few examples of how it works, considering you're using the name `John Doe`:

- `__name__`: johndoe
- `__naMe__`: johnDoe
- `__NaMe__`: JohnDoe
- `__na-me__`: john-doe
- `__na me__`: john doe

## Pluralization and singularization

_casex-template_ provides pluralization and singularization out of the box
with [pluralize](https://github.com/blakeembrey/pluralize).

To use this feature, instead of `__name__`, use `_name_`, with one underscore. Here are a few examples of how it works:

- Regulars: `user`
- `_name_`: user
- `_name_s`: users
- Irregulars: `person`
- `_name_`: person
- `_name_s`: people
- Composed names: `user name`
- `_na me_`: user name
- `_na me_s`: user names
- Names in the plural: `users`
- `_na me_`: user
- `_na me_s`: users

## License

_casex-template_ is open-sourced software licensed under the [MIT License](./LICENSE.md).