From 179faf0d2cbee41a3eb63df8f07995185d4652e6 Mon Sep 17 00:00:00 2001 From: Rotimi Best Date: Fri, 13 Jun 2025 16:56:09 +0100 Subject: [PATCH] fix: katex fetching from the backend --- apps/backend/.env.example | 1 - apps/backend/src/routes/course/katex.ts | 21 +++++++-------------- docker-compose.yaml | 1 - 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/apps/backend/.env.example b/apps/backend/.env.example index 2c9fb028..0f24be11 100644 --- a/apps/backend/.env.example +++ b/apps/backend/.env.example @@ -9,7 +9,6 @@ CLOUDFLARE_BUCKET_DOMAIN= CLOUDFLARE_ACCESS_KEY= CLOUDFLARE_SECRET_ACCESS_KEY= CLOUDFLARE_ACCOUNT_ID= -CLOUDFLARE_BUCKET_ID= # Email SMTP_HOST= diff --git a/apps/backend/src/routes/course/katex.ts b/apps/backend/src/routes/course/katex.ts index 15e36ea1..49f8d70e 100644 --- a/apps/backend/src/routes/course/katex.ts +++ b/apps/backend/src/routes/course/katex.ts @@ -5,25 +5,18 @@ import { z } from 'zod'; export const katexRouter = new Hono(); -const katexSchema = z.object({ - latex: z.string().min(1), - displayMode: z.boolean().optional() -}); - -katexRouter.post('/', async (c: Context) => { +katexRouter.get('/', async (c: Context) => { try { - const data = await c.req.json(); - const validatedData = katexSchema.parse(data); + const original = c.req.raw.url; - const html = katex.renderToString(validatedData.latex, { - displayMode: validatedData.displayMode ?? false, + const latexString = original.split('?')[1].replaceAll('+', '+').replaceAll('&space;', ''); + + const html = katex.renderToString(latexString, { + output: 'mathml', throwOnError: false }); - return c.json({ - success: true, - html - }); + return c.html(html); } catch (error) { if (error instanceof z.ZodError) { return c.json( diff --git a/docker-compose.yaml b/docker-compose.yaml index 39c861b2..a78b6082 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -38,7 +38,6 @@ services: - CLOUDFLARE_ACCESS_KEY=${CLOUDFLARE_ACCESS_KEY} - CLOUDFLARE_SECRET_ACCESS_KEY=${CLOUDFLARE_SECRET_ACCESS_KEY} - CLOUDFLARE_ACCOUNT_ID=${CLOUDFLARE_ACCOUNT_ID} - - CLOUDFLARE_BUCKET_ID=${CLOUDFLARE_BUCKET_ID} # SMTP - Emails - SMTP_HOST=${SMTP_HOST} - SMTP_USER=${SMTP_USER}