1.0.7 • Published 3 years ago
@master/text-template v1.0.7
On this page
CONTENTS
- Install
- Usage
- Custom
startandendtoken - Tokenize with js syntax
- Remove token when errors occur
- Custom identification delimiter
- Options
1. Download
npm install @master/text-templateCDN
Usage
Getting start
import { TextTemplate } from '@master/text-template';Behaviors of default options
const template = new TextTemplate(text);equal to
const template = new TextTemplate(text, {
start: '{{',
end: '}}',
behavior: '', // replace
language: '', // /* data */ /* */,
removeOnError: false,
delimiter: ' ',
});Replace with data tokens
const template = new TextTemplate('Hi {{ username }}');
const renderedText = template.render({ username: 'Aron' });output renderedText:
Hi AronInsert with slot tokens
const html = `
<title>
<!-- title --><!-- -->
<title>
`;
const template = new TextTemplate(html, {
behavior: 'slot',
language: 'html'
});
const renderedHtml = template.render({ title: 'Hello World' });output renderedHtml:
<title>
<!-- title -->Hello World<!-- -->
<title>The slot token isn't removed, which means you can keep result and render multiple times.
Combo above behaviors
const readmeText = `
# Hi {{ username }}
<!-- description --><!-- -->
`;
const data = {
username: 'Aron',
description: 'Hello World {{ username }}'
}
// 1. Insert
const slotTemplate = new TextTemplate(readmeText, {
behavior: 'slot',
language: 'readme'
});
// 2. Replace
const template = new TextTemplate(slotTemplate.render(data));
const renderedReadmeText = template.render(data);output renderedReadmeText:
# Hi Aron
<!-- description -->Hello World Aron<!-- -->Custom start and end token
const template = new TextTemplate('Hi ${ username }', {
start: '${',
end: '}'
});Tokenize with js syntax
const data = {
people: ['Aron', 'Joy']
}
const text = `/* people.join(' ❤️ ') */ /* */`;
const template = new TextTemplate(text);
const renderedText = template.render(data);output renderedText
/* people.join(' ❤️ ') */ Aron ❤️ Joy /* */Remove token when errors occur
removeOnError: true
const text = 'Hi {{ username }}, welcome.';
const data = {};
const t1 = new TextTemplate(text);
const t2 = new TextTemplate(text, { removeOnError: true });
const r1 = t1.render(data);
const r2 = t2.render(data);output r1
Hi {{ username }}, welcome.output r2
Hi , welcome.Custom identification delimiter
default
const template = new TextTemplate(html, {
behavior: 'slot',
language: 'html'
});<title><!-- name -->text-template<!----></title>custom
const template = new TextTemplate(html, {
behavior: 'slot',
language: 'html',
delimiter: ' / '
});<title><!-- name --><!-- / --></title>Options
The default values of all options are undefined, and each has a default behavior.
startDefault{{. Replace or slot start tokenendDefault}}. Replace or slot end tokenbehaviorDefault replace. Specify render behaviorlanguageRequiredbehavior: 'slot'. Specify using comment language to setstartandendquickly.''relative to/* data */ /* */as default'html',readmerelative to<!-- data --> <!-- -->'pascal'relative to(* data *) (* *)or{ data } { }'forth'relative to( data ) ()'haskell'relative to{- data -} {- -}
delimiterDefault. Requiredbehavior: 'slot'. Specify middle delimiter for identifying endremoveOnErrorDefaultfalse. Iftrue, the token will be removed when the data doesn't match or js syntax go wrong.
1.0.7
3 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.4
4 years ago
1.0.3
4 years ago
1.0.2
4 years ago
1.0.1
4 years ago
1.0.0-alpha.9
4 years ago
1.0.0-alpha.8
4 years ago
1.0.0-alpha.7
4 years ago
1.0.0-alpha.6
4 years ago
1.0.0-alpha.5
4 years ago
1.0.0-alpha.4
4 years ago
1.0.0-alpha.3
4 years ago
1.0.0-alpha.2
4 years ago
1.0.0-alpha.12
4 years ago
1.0.0-alpha.11
4 years ago
1.0.0-alpha.10
4 years ago
1.0.0-alpha.1
4 years ago