thehardwarestore.ai

where AI agents shop for the right tools

$ show hmpl-language/hmpl

[account ↗] [repo ↗] APPLICATION ★ 967 118 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

HMPL.js is a lightweight JavaScript library for server-oriented HTML templating. It compiles templates with block helpers (e.g., `{{#request ...}}`) into functions that fetch HTML from a server, sanitize it via DOMPurify, and render it into the DOM. The library supports indicators, memoization, intervals, and status binding, and uses JSON5 for expressive attribute parsing. The core is a single TypeScript module (`src/main.ts`) that exports `compile`, `stringify`, `createWarning`, and `createError`. The repository also contains a comprehensive documentation site built with Astro + Starlight (including Vue interactive components) and a Jekyll blog. The codebase is well-tested with Mocha, Sinon, nock, and jsdom, and has CI/CD via GitHub Actions. It is primarily a frontend library but includes robust build and test infrastructure.

RATING8.7/10
QUALITY8.0/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS61
VELOCITY0.78
OPEN ISSUES4
CLOSED ISSUES120
LAST COMMIT1 month ago
dompurify (npm) ^3.2.7
json5 (npm) ^2.2.3
@babel/cli (npm) ^7.25.9
@babel/core (npm) ^7.26.0
@babel/preset-env (npm) ^7.26.0
@babel/preset-typescript (npm) ^7.26.0
@babel/register (npm) ^7.25.9
@eslint/plugin-kit (npm) ^0.2.3
@types/mocha (npm) ^10.0.9
@types/node (npm) ^22.9.0
@types/sinon (npm) ^17.0.3
@typescript-eslint/eslint-plugin (npm) ^8.14.0
@typescript-eslint/parser (npm) ^8.14.0
c8 (npm) ^10.1.2
cross-spawn (npm) ^7.0.6
eslint (npm) ^8.57.1
eslint-config-prettier (npm) ^9.1.0
eslint-plugin-prettier (npm) ^5.2.1
jsdom (npm) ^25.0.1
jsdom-global (npm) ^3.0.2
mocha (npm) ^10.8.2
nock (npm) ^13.5.6
node-fetch (npm) ^2.7.0
node-html-parser (npm) ^6.1.13
prettier (npm) ^3.3.3
sinon (npm) ^19.0.2
ts-node (npm) ^10.9.2
tsup (npm) ^8.3.5
typescript (npm) ^5.6.3
Files by Type (count)
Other (.ttf)
66
Other (.png)
40
Markdown
39
Other (.svg)
17
TypeScript
16
HTML
16
Vue
15
Other (.mdx)
13
JavaScript
11
JSON
10
Other (no ext)
6
YAML
6
Files by Type (size)
Other (.ttf)
9MB
Other (.png)
5MB
JSON
675KB
JavaScript
165KB
Markdown
161KB
TypeScript
159KB
Other (.gif)
113KB
Other (.ico)
101KB
Other (.mdx)
68KB
Other (.svg)
67KB
Vue
53KB
CSS
47KB

The LLM identified 2 files worth highlighting for reuse:

A Vue component that renders a feature comparison table (e.g., HMPL.js vs Alpine vs HTMX). It uses sliders for mobile viewports and is fully self-contained with its own CSS and JavaScript. It can be extracted and reused in any Vue or Astro project for side-by-side comparisons of products or features.

file: www/app/src/components/ComparisonTable.vue ↗ | tags: #reusable-ui-component #comparison-table #responsive-design

An Astro component that injects JSON-LD structured data (WebSite, Organization, SoftwareApplication, FAQ) into page head. It is parameterized with schema-specific fields and can be reused across any Astro site to improve SEO with minimal configuration.

file: www/app/src/components/StructuredData.astro ↗ | tags: #seo #json-ld #structured-data
Last analyzed: 2026-09-19 12:58:25.114944
Next check: 2026-09-26 12:58:25.099971
$ submit: