Plain JS typography template for MTE plugin
More information about the project is located here: https://github.com/LLazyEmail/documentation/blob/main/docs/templates/hn/details.md
npm install| Command | Description |
|---|---|
npm test |
Run tests with Jest |
npm run lint |
Check code with ESLint |
npm run lint:fix |
Auto-fix ESLint issues |
npm run format |
Format source files with Prettier |
npm run format:check |
Check formatting without writing |
npm run build |
Build all distribution bundles |
npm run dev |
Watch mode build |
src/
components/ # Individual typography component functions
components.js # Aggregates all components into a single export
config.js # Shared configuration values
index.js # Package entry point
tests/
index.test.js # Component unit tests
Each component is a plain function that accepts props and returns an HTML string:
headingComponent–<h3>section headingtitleComponent–<h1>main titlesubtitleComponent– styled<p>subtitleparagraphComponent– body text wrapper<div>strongComponent–<strong>bold textitalicComponent–<i>italic textlinkComponent–<a>anchor taglistComponent–<ul>unordered listlistItemComponent–<li>list item with inner<p>imageComponent–<img>inside a centered<p>separatorComponent– horizontal***separatorbuttonComponent– styled<a>button link
-
https://lit.dev/docs/v1/lit-html/introduction/ + https://www.npmjs.com/package/tag-html
-
https://dev.to/azure/too-hard-too-soft-just-right-rendering-html-with-lit-html-1km8
-
https://github.com/runem/lit-analyzer/tree/master/packages/ts-lit-plugin
| Property | Value |
|---|---|
| Repo | LLazyEmail/_trying_simple_tags |
| Repo ID | 503538517 |
| Language | Percentage |
|---|---|
| HTML | 56.5% |
| JavaScript | 43.5% |
This project is organized around reusable typography components for HTML email generation, with dedicated tests and a modern JS build/test toolchain.
/home/runner/work/_trying_simple_tags/_trying_simple_tags/
├── src/
│ ├── components/
│ │ ├── button2.js
│ │ ├── heading.js
│ │ ├── image.js
│ │ ├── italic.js
│ │ ├── link.js
│ │ ├── list.js
│ │ ├── listItem.js
│ │ ├── mainTitle.js
│ │ ├── mainTitleImage.js
│ │ ├── paragraph.js
│ │ ├── paragraphComponentUpdated.js
│ │ ├── separator.js
│ │ ├── strong.js
│ │ └── subtitle.js
│ ├── components.js
│ ├── config.js
│ └── index.js
├── tests/ (14 test files)
├── package.json
├── babel.config.json
├── rollup.config.js
└── [config files: .eslintrc.json, .prettierrc, etc.]
Contains the core presentational building blocks for HTML email typography:
- Text emphasis –
strong,italic - Structural text –
paragraph,heading,mainTitle,subtitle - List rendering –
list,listItem - Interactive / content –
link,button2,image - Utility / presentation –
separator - Alternate versions –
mainTitleImage,paragraphComponentUpdated
Primary entry point that exposes the component API for external consumption.
Aggregates and re-exports component modules for convenient imports.
Holds shared configuration/constants used across rendering logic.
Houses 14 test files, reflecting a split-by-component testing strategy for better maintainability and clearer test ownership.
| File | Purpose |
|---|---|
package.json |
Project metadata, scripts, and dependencies |
babel.config.json |
Transpilation configuration |
rollup.config.js |
Bundling and build pipeline |
.eslintrc.json |
Linting rules and standards |
.prettierrc |
Code formatting configuration |
The repository follows a component-first architecture with:
- Clear separation between source (
src/) and tests (tests/) - Modular, single-purpose rendering components — one component per file
- Build + lint + format tooling for reliability and consistency
- Scalable testing layout aligned with component boundaries (14 dedicated test files)
- Plain JavaScript (no TypeScript, no JSX) for maximum compatibility in email toolchains