Skip to content

Commit 52e6473

Browse files
committed
Add template tag examples
1 parent da9265d commit 52e6473

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

JavaScript/8-tag.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
'use strict';
2+
3+
const tag = (string, ...values) => {
4+
console.dir({ string, values });
5+
};
6+
7+
// Usage
8+
9+
const greeting = 'Hello';
10+
const person = { name: 'Marcus Aurelius' };
11+
12+
const text = tag`${greeting} ${person.name}!`;
13+
console.dir({ text });

JavaScript/9-styles.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict';
2+
3+
const esc = (code, s) => `\x1b[${code}m${s}\x1b[0m`;
4+
5+
const tag = (strings, ...values) => {
6+
const result = [strings[0]];
7+
let i = 1;
8+
for (const val of values) {
9+
const str = strings[i++];
10+
result.push(esc(i + 1, val), str);
11+
}
12+
return result.join('');
13+
};
14+
15+
// Usage
16+
17+
const greeting = 'Ave';
18+
const person = { name: 'Marcus Aurelius', position: 'Emperor' };
19+
20+
const text = tag`${greeting} ${person.position} ${person.name}!`;
21+
console.log(text);

0 commit comments

Comments
 (0)