Tagged template literals for HTML, CSS, JavaScript, SQL, Markdown + SEO meta generators. Near string-concatenation performance.
Zero dependencies. Zero transpilation. Zero framework lock-in.
npm install @raven-js/beak
import { html, safeHtml, escapeHtml } from "@raven-js/beak";
// Trusted content - no escaping
const page = html`<h1>${title}</h1>
${items.map((x) => html`<li>${x}</li>`)}`;
// Untrusted content - XSS protection
const safe = safeHtml`<p>User: ${userInput}</p>`;
// Manual escaping
const escaped = escapeHtml('<script>alert("xss")</script>');
Behavior:
[1,2,3]
→ "123"
${0}
→ "0"
${null}
→ ""
import { css, style } from "@raven-js/beak";
// Template with objects and arrays
const styles = css`
.btn {
${{ fontSize: "16px", margin: [10, 20] }}px;
color: ${isDark ? "#fff" : "#000"};
}
`;
// Wrapped in <style> tags
const inlined = style`${styles}`;
Processing:
import { js, script, scriptAsync, scriptDefer } from "@raven-js/beak";
// Template processing
const code = js`const ${varName} = ${value};`;
// Script tag variations
const inline = script`window.config = ${config};`;
const deferred = scriptDefer`document.focus();`;
const async = scriptAsync`fetch('/track', { body: ${data} });`;
import { sql } from "@raven-js/beak";
const query = sql`SELECT * FROM users WHERE name = '${input}' AND status = '${status}'`;
Security: Escapes '
→ ''
, \
→ \
, newlines, null bytes. Prevents string literal breakouts. Use parameterized queries for complete protection.
import { md } from "@raven-js/beak";
const doc = md`
# ${title}
${items.map((item) => `- ${item}`).join("\n")}
Visit [our site](${url}) for more.
`;
Features: GitHub Flavored Markdown with tables, task lists, strikethrough, autolinks. Deterministic O(n) parsing.
import {
general,
social,
openGraph,
twitter,
pinterest,
linkedin,
discord,
robots,
author,
canonical,
} from "@raven-js/beak/seo";
// Basic SEO
const basic = general({
title: "Page Title",
description: "Page description",
domain: "example.com",
path: "/page",
});
// All social platforms
const socialTags = social({
title: "Page Title",
description: "Page description",
domain: "example.com",
path: "/page",
imageUrl: "/image.jpg",
});
// Individual platforms
const og = openGraph({
title,
description,
domain,
path,
imageUrl,
type: "article",
});
const tw = twitter({
title,
description,
domain,
imageUrl,
cardType: "summary_large_image",
});
Template processing: 4 execution paths by interpolation count (0, 1, 2-3, 4+) with pre-allocated arrays.
CSS minification: Single-pass regex normalization.
Markdown parsing: O(n) time complexity, deterministic output.
core/
├── css/ # CSS processing: minification, object→kebab-case
├── html/ # HTML rendering: escaping, normalization
├── js/ # JavaScript: value filtering, script tags
├── sql/ # SQL: character escaping, injection prevention
└── md/ # Markdown: GitHub Flavored Markdown parser
seo/ # Meta tag generators for all social platforms
// XSS prevention
const unsafe = html`<p>${userInput}</p>`; // ❌ Vulnerable
const safe = safeHtml`<p>${userInput}</p>`; // ✅ Escaped
// SQL injection
const query = sql`SELECT * WHERE name = '${userName}'`; // ✅ Basic escaping
const stmt = db.prepare("SELECT * WHERE name = ?"); // ✅ Complete protection
MIT - Copyright (c) 2025 Anonyfox e.K.