Installation
Quick Take
The Purpose
Let’s say, you know that variables are wrapped with heads, for example, {{
and tails, }}
.
For example:
"Hi {{ first_name }}!";
This library detects and deletes redundant heads and tails wrapped around the whole input string:
"{{ Hi {{ first_name }}! }}" => "Hi {{ first_name }}!"
But it’s also smart and detects legit heads and tails at the edges of string: {{ first_name }} {{ last_name }}
is not turned into first_name }} {{ last_name
.
That’s what this library is mainly about — being able to detect, are outer heads and tails currently wrapping a single chunk of text, or are those heads and tails from separate chunks.
Also, this lib removes the leading/trailing empty clumps of empty heads/tails, with or without empty space:
// without whitespace:
`{{}}{{}} {{}}{{}} {{}}{{}} a {{}}{{}}` => `a`
// with whitespace:
`{{ \n }} \t a \n\n {{ \n\n \n\n }} \t\t` => `a`
You can configure heads
and tails
to be whatever you like, single string or array of them. Also, the length of the different heads in your given set can be different.
API — remDup()
The main function remDup()
is imported like this:
It’s a function which takes three input arguments:
Input argument | Type | Obligatory | Description |
---|---|---|---|
str Type: String Obligatory: yes | |||
str | String | yes | Source string upon which to perform the operation |
opts Type: Plain object Obligatory: no | |||
opts | Plain object | no | Optional Options Object, see below for its API |
The Optional Options Object has the following shape:
Key | Type | Default | Description |
---|---|---|---|
heads Type: Non-empty string or array of one or more non-empty strings Default: ['{{'] | |||
heads | Non-empty string or array of one or more non-empty strings | ['{{'] | Put here the way you mark the beginnings of your variables in a string. |
tails Type: Non-empty string or array of one or more non-empty strings Default: ['}}'] | |||
tails | Non-empty string or array of one or more non-empty strings | ['}}'] | Put here the way you mark the endings of your variables in a string. |
These double curlies are default for Nunjucks/Jinja and many other templating languages.
Here are all defaults in one place for copying:
The function will return a string.
API — defaults
You can import defaults
:
It's a plain object:
The main function calculates the options to be used by merging the options you passed with these defaults.
API — version
You can import version
: