mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
Code on hanzo.ai was plain monospace: 285 blocks across 200 pages, one of them hand-inked in four greys. components/code now renders each sample at build with shiki and @hanzo/ui's codeTheme (Dracula dark, GitHub Light light), every colour written as light-dark() so the page's color-scheme picks it, on the theme's own ground. The page ships the coloured spans and no highlighter; e2e/gates/code.spec.ts holds both. A client page that shows code is split into a server page.tsx that owns the sample and a client view.tsx that takes the highlighted node: ProductLanding's code.source, the blockchain pages' codeExamples, the models kit Sample, the guest-key card, realtime, analytics, payments, sdks and the rest. Transcripts, agent prompts and ASCII diagrams are not code and keep their markup. Takes @hanzo/ui 8.27.83 for codeTheme and @hanzo/design 0.5.35 with it, regenerates app/gui.css for the new theme keys, and lowers the raw-colour allowance to 58: the samples' literal inks are gone.
31 lines
819 B
TypeScript
31 lines
819 B
TypeScript
import { Code } from '@/components/code'
|
|
import MQPage from './view'
|
|
|
|
const SOURCE = `import { Queue, Worker } from "@hanzo/mq"
|
|
|
|
const queue = new Queue("emails", {
|
|
connection: { host: "kv.hanzo.ai", port: 6379 }
|
|
})
|
|
|
|
// Add jobs with options
|
|
await queue.add("welcome", { userId: "usr_123" }, {
|
|
priority: 1,
|
|
delay: 5000,
|
|
attempts: 3,
|
|
backoff: { type: "exponential", delay: 1000 },
|
|
})
|
|
|
|
// Process jobs
|
|
const worker = new Worker("emails", async (job) => {
|
|
await sendEmail(job.data.userId, "welcome")
|
|
}, {
|
|
connection: { host: "kv.hanzo.ai", port: 6379 },
|
|
concurrency: 10,
|
|
limiter: { max: 100, duration: 60_000 },
|
|
})`
|
|
|
|
/** The page, with its sample highlighted where it is built (components/code). */
|
|
export default function Page() {
|
|
return <MQPage source={<Code lang="typescript" code={SOURCE} />} />
|
|
}
|