mirror of
https://github.com/awizemann/scarf.git
synced 2026-05-08 02:14:37 +00:00
6175bee27d
Adds site/ with vanilla HTML + CSS + ~300 lines of JavaScript that
renders ProjectDashboard JSON directly in the browser. Each template's
detail page shows a live preview of the exact dashboard the user will
get post-install — the catalog IS the dogfood.
site/widgets.js mirrors the Swift widget dispatcher:
- stat (big number + colored icon + optional subtitle)
- progress (0..1 bar)
- text with inline markdown subset (headings, bold/italic, inline code,
code fences, bullet + numbered lists, links)
- table (plain HTML)
- list (with up/down/unknown status badges)
- chart (SVG line + bar — no Chart.js dependency)
- webview (sandboxed iframe)
- unknown (placeholder so the page doesn't silently omit widgets)
Plus the renderMarkdown helper used by the template detail page to
display the bundle's README.
site/index.html.tmpl + site/template.html.tmpl are substitution-only —
the Python regenerator swaps {{CARDS}}, {{COUNT}}, {{COUNT_PLURAL}},
{{NAME}}, {{DESC}}, {{VERSION}}, {{AUTHOR_HTML}}, {{TAGS_HTML}},
{{INSTALL_URL_ENCODED}}, {{SCARF_INSTALL_URL}}. The detail page fetches
dashboard.json + README.md at page load and hands them to widgets.js.
No client-side framework, no bundler, no npm.
site/styles.css: minimal CSS with scarf green accent, prefers-color-
scheme dark support, responsive at 680px. One file, ~280 lines.
build-catalog.py extended to copy dashboard.json + README.md out of each
bundle into its detail dir so widgets.js can fetch them without
reaching across directories (and so gh-pages doesn't need to serve zip
contents at request time).
Two new Python tests: end-to-end site rendering (both cards, install
URL wiring, static asset copy, per-template dashboard + README copy)
and the {{COUNT_PLURAL}} singular-vs-plural flip. 16/16 Python tests
green.
Smoke-tested locally with python3 -m http.server: every endpoint
(index, catalog.json, detail HTML, per-template dashboard.json + README,
widgets.js) returns 200. The .gh-pages-worktree/appcast.xml +
.gh-pages-worktree/index.html are untouched — the catalog is purely
additive under /templates/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
49 lines
1.6 KiB
Cheetah
49 lines
1.6 KiB
Cheetah
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Scarf Templates</title>
|
|
<meta name="description" content="Community catalog of Scarf project templates — pre-configured AI-agent projects with dashboards, cron jobs, and agent instructions.">
|
|
<link rel="stylesheet" href="styles.css">
|
|
<link rel="icon" type="image/png" href="assets/icon.png">
|
|
</head>
|
|
<body>
|
|
<header class="site-header">
|
|
<a class="brand" href=".">
|
|
<img src="assets/icon.png" alt="" width="40" height="40">
|
|
<span class="brand-name">Scarf Templates</span>
|
|
</a>
|
|
<nav class="site-nav">
|
|
<a href="https://github.com/awizemann/scarf">GitHub</a>
|
|
<a href="https://github.com/awizemann/scarf/blob/main/templates/CONTRIBUTING.md">Contribute</a>
|
|
</nav>
|
|
</header>
|
|
|
|
<section class="hero">
|
|
<h1>Pre-packaged projects for Scarf</h1>
|
|
<p>
|
|
Browse {{COUNT}} community template{{COUNT_PLURAL}} — each ships with a
|
|
ready-to-install Scarf dashboard, a cross-agent <code>AGENTS.md</code>, optional
|
|
cron jobs and skills. Click a template to see what it does; one click installs
|
|
it into Scarf.
|
|
</p>
|
|
</section>
|
|
|
|
<main class="catalog">
|
|
<div class="grid">
|
|
{{CARDS}}
|
|
</div>
|
|
</main>
|
|
|
|
<footer class="site-footer">
|
|
<p>
|
|
Scarf is open source:
|
|
<a href="https://github.com/awizemann/scarf">github.com/awizemann/scarf</a>.
|
|
Want to add your own template? See the
|
|
<a href="https://github.com/awizemann/scarf/blob/main/templates/CONTRIBUTING.md">contribution guide</a>.
|
|
</p>
|
|
</footer>
|
|
</body>
|
|
</html>
|