1.1.0 • Published 7 years ago
html-literal v1.1.0
HTML Tagged Template Literal
Tagged template literal for authoring HTML in JavaScript.
Useful for writing HTML as simple template tag literals that provide syntax highlighting (through lit-html extension) and some convenience (no need to manually join arrays, JSON-encode objects etc).
- Provides syntax highlighting with VSCode lit-html extension.
- Handles promises, arrays, functions and objects.
- Arrays get automatically joined.
- Objects get automatically displayed as formatted json.
- Works with circular data structures.
- Written in TypeScript, no need for extra typings.
- 100% test coverage.
Installation
This package is distributed via npm
npm install html-literalyarn add html-literalExample
import html from "../src";
const info = {
name: "Chuck Norris",
age: 42,
jokes: [
"Chuck Norris counted to infinity. Twice.",
"When the Boogeyman goes to sleep every night he checks his closet for Chuck Norris.",
],
details: {
Residence: "Navasota, Texas, U.S.",
Occupation: "Actor, martial artist, film producer, screenwriter, air policeman (U.S. Air Force).",
},
weakness: undefined,
enemy: () => "none",
getInterests: () => Promise.resolve(),
};
const output = html`
<h1>HTML Tagged Template Literal</h1>
<p>Name: ${info.name}</p>
<p>Age: ${info.age}</p>
<p>Details: <pre>${info.details}</pre></p>
<p>Weakness: ${info.weakness}</p>
<p>Enemy: ${info.enemy}</p>
<p>Interests: ${info.getInterests()}</p>
<ul>
${info.jokes.map(
joke =>
html`
<li>${joke}</li>
`,
)}
</ul>
`;
console.log(output);
/*
<h1>HTML Tagged Template Literal</h1>
<p>Name: Chuck Norris</p>
<p>Age: 42</p>
<p>Details: <pre>{
"Residence": "Navasota, Texas, U.S.",
"Occupation": "Actor, martial artist, film producer, screenwriter, air policeman (U.S. Air Force)."
}</pre></p>
<p>Weakness: </p>
<p>Enemy: [function]</p>
<p>Interests: [promise]</p>
<ul>
<li>Chuck Norris counted to infinity. Twice.</li>
<li>When the Boogeyman goes to sleep every night he checks his closet for Chuck Norris.</li>
</ul>
*/Commands
yarn startto start the example application.yarn buildto build the production version.yarn testto run tests.yarn coverageto gather code coverage.yarn lintto lint the codebase.yarn prettierto run prettier.yarn validateto run all pre-commit checks (prettier, build, lint, test)