From d6fdf936cf27ea2ec28f21b0ddde942ad2ff13c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Sat, 5 Sep 2026 14:59:09 +0100 Subject: [PATCH] the description is rich text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is the one piece of writing about a collection, a piece or a collab — the paragraph the template draws under the name — so it wants the headings, emphasis, links and alignment the page's own text blocks have, not a plain textarea. Prose on the site already renders HTML when it finds any and falls back to paragraphs when it does not, so everything stored as plain text goes on working untouched. Co-Authored-By: Claude Opus 5 (1M context) --- web/sections/SubjectFields.tsx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/web/sections/SubjectFields.tsx b/web/sections/SubjectFields.tsx index 00e29c9..1b68809 100644 --- a/web/sections/SubjectFields.tsx +++ b/web/sections/SubjectFields.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from 'react'; import { useClient } from 'hooks/useClient'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; +import { RichText } from '../RichText'; import { useAutosave } from '../useAutosave'; import type { SubjectRecord, SubjectSection } from './subjects'; @@ -67,12 +68,22 @@ export const SubjectFields = ({

+ {/* + Rich text, not a textarea. + + It is the paragraph the template draws under the name — the one piece of writing about this + thing — so it wants the same headings, emphasis, links and alignment the page's own text + blocks have. `Prose` on the site already renders HTML when it finds any and falls back to + paragraphs when it does not, so what is already stored as plain text goes on working. + + Sanitised on the way in by the API, against the same allowlist the page components use. + */}
-