From 9777cf9fd6ed2a134143378e2fb37e096b869ecd Mon Sep 17 00:00:00 2001 From: Saqib Date: Thu, 8 Oct 2026 18:20:53 +0530 Subject: [PATCH 1/3] CMS: give the Solution fields a link button Switch the 7 Work Solution fields from the plain text widget to the markdown widget, matching the Context fields (#388). The project page already renders Solution as Markdown, so no template change is needed. --- static/admin/config.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/static/admin/config.yml b/static/admin/config.yml index 7abe15fbe..efb00d514 100644 --- a/static/admin/config.yml +++ b/static/admin/config.yml @@ -137,7 +137,7 @@ collections: - { label: "Project Name", name: "name", widget: "string" } - { label: "Summary", name: "summary", widget: "text", required: false } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - - { label: "Solution", name: "solution", widget: "text", required: false } + - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Website URL", name: "url", widget: "string", required: false } - { label: "Twitter", name: "twitter", widget: "string", required: false } @@ -170,7 +170,7 @@ collections: - { label: "Project Name", name: "name", widget: "string" } - { label: "Summary", name: "summary", widget: "text", required: false } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - - { label: "Solution", name: "solution", widget: "text", required: false } + - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Website URL", name: "url", widget: "string", required: false } - { label: "Twitter", name: "twitter", widget: "string", required: false } @@ -201,7 +201,7 @@ collections: - { label: "Project Name", name: "name", widget: "string" } - { label: "Summary", name: "summary", widget: "text", required: false } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - - { label: "Solution", name: "solution", widget: "text", required: false } + - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Website URL", name: "url", widget: "string", required: false } - { label: "Twitter", name: "twitter", widget: "string", required: false } @@ -232,7 +232,7 @@ collections: - { label: "Project Name", name: "name", widget: "string" } - { label: "Summary", name: "summary", widget: "text", required: false } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - - { label: "Solution", name: "solution", widget: "text", required: false } + - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Website URL", name: "url", widget: "string", required: false } - { label: "Twitter", name: "twitter", widget: "string", required: false } @@ -263,7 +263,7 @@ collections: - { label: "Project Name", name: "name", widget: "string" } - { label: "Summary", name: "summary", widget: "text", required: false } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - - { label: "Solution", name: "solution", widget: "text", required: false } + - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Website URL", name: "url", widget: "string", required: false } - { label: "GitHub", name: "github", widget: "string", required: false } @@ -293,7 +293,7 @@ collections: - { label: "Project Name", name: "name", widget: "string" } - { label: "Summary", name: "summary", widget: "text", required: false } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - - { label: "Solution", name: "solution", widget: "text", required: false } + - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Website URL", name: "url", widget: "string", required: false } - { label: "GitHub", name: "github", widget: "string", required: false } @@ -323,7 +323,7 @@ collections: - { label: "Project Name", name: "name", widget: "string" } - { label: "Summary", name: "summary", widget: "text", required: false } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - - { label: "Solution", name: "solution", widget: "text", required: false } + - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Website URL", name: "url", widget: "string", required: false } - { label: "GitHub", name: "github", widget: "string", required: false } From ff66005aee3fdd0fe4c9493ccffbdb9b9d0e6a9f Mon Sep 17 00:00:00 2001 From: Saqib Date: Thu, 8 Oct 2026 18:27:10 +0530 Subject: [PATCH 2/3] Render Summary as Markdown and give it a link button Project and event pages printed Summary as plain text, so a link typed in it showed as [text](url). Render it with MarkdownView like Context and Solution, keep the existing spacing, and switch the 12 Summary fields in the CMS to the markdown widget with the link button. --- src/templates/eventdetail.js | 13 ++++++++++++- src/templates/project.js | 13 ++++++++++++- static/admin/config.yml | 24 ++++++++++++------------ 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/src/templates/eventdetail.js b/src/templates/eventdetail.js index 5a39ec1cc..1691cc646 100644 --- a/src/templates/eventdetail.js +++ b/src/templates/eventdetail.js @@ -75,6 +75,15 @@ const SummaryText = styled.div` font-size: 1.5rem; margin-top: 24px; + p { + margin: 0; + } + + a { + color: #05b7be; + text-decoration: none; + } + @media (min-width: 1280px) { font-size: 2rem; } @@ -298,7 +307,9 @@ const EventDetailTemplate = ({ data }) => { - {eventdetail.frontmatter.summary} + + +

Context:

diff --git a/src/templates/project.js b/src/templates/project.js index b32c79978..b3612cdc7 100644 --- a/src/templates/project.js +++ b/src/templates/project.js @@ -80,6 +80,15 @@ const SummaryText = styled.div` font-size: 1.5rem; margin-top: 24px; + p { + margin: 0; + } + + a { + color: #05b7be; + text-decoration: none; + } + @media (min-width: 1280px) { font-size: 2rem; } @@ -340,7 +349,9 @@ const ProjectTemplate = ({ data }) => { - {project.frontmatter.summary} + + +

Context:

diff --git a/static/admin/config.yml b/static/admin/config.yml index efb00d514..ca8a64f2a 100644 --- a/static/admin/config.yml +++ b/static/admin/config.yml @@ -135,7 +135,7 @@ collections: filter: { field: "type", value: "project" } fields: - { label: "Project Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -168,7 +168,7 @@ collections: filter: { field: "type", value: "project" } fields: - { label: "Project Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -199,7 +199,7 @@ collections: filter: { field: "type", value: "project" } fields: - { label: "Project Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -230,7 +230,7 @@ collections: filter: { field: "type", value: "project" } fields: - { label: "Project Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -261,7 +261,7 @@ collections: filter: { field: "type", value: "project" } fields: - { label: "Project Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -291,7 +291,7 @@ collections: filter: { field: "type", value: "project" } fields: - { label: "Project Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -321,7 +321,7 @@ collections: filter: { field: "type", value: "project" } fields: - { label: "Project Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Solution", name: "solution", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -351,7 +351,7 @@ collections: filter: { field: "type", value: "eventdetail" } fields: - { label: "Event Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Event Type", name: "eventtype", widget: "hidden", default: "Data Dialogues" } - { label: "Banner Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -380,7 +380,7 @@ collections: filter: { field: "type", value: "eventdetail" } fields: - { label: "Event Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Event Type", name: "eventtype", widget: "hidden", default: "Climate Dialogues" } - { label: "Banner Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -409,7 +409,7 @@ collections: filter: { field: "type", value: "eventdetail" } fields: - { label: "Event Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Event Type", name: "eventtype", widget: "hidden", default: "CivicSabha 2.0" } - { label: "Banner Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -438,7 +438,7 @@ collections: filter: { field: "type", value: "eventdetail" } fields: - { label: "Event Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Event Type", name: "eventtype", widget: "hidden", default: "India AI Impact Summit" } - { label: "Banner Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } @@ -472,7 +472,7 @@ collections: filter: { field: "type", value: "eventdetail" } fields: - { label: "Event Name", name: "name", widget: "string" } - - { label: "Summary", name: "summary", widget: "text", required: false } + - { label: "Summary", name: "summary", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Context", name: "context", widget: "markdown", required: false, buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Date", name: "date", widget: "string", required: false, hint: "YYYY-MM-DD" } - { label: "Banner Image", name: "image", widget: "image", required: false, hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } From 5d58496ab70c89e38093d937728f28f7d6576152 Mon Sep 17 00:00:00 2001 From: Saqib Date: Thu, 8 Oct 2026 18:27:10 +0530 Subject: [PATCH 3/3] Render sector and event category Description as Markdown Switch the sector and event category Description to MarkdownView and the CMS markdown widget with a link button. Links inside it override the sidebar's 200px block link style so they stay inline in the sentence. --- src/templates/event.js | 17 ++++++++++++++--- src/templates/sector.js | 15 ++++++++++++++- static/admin/config.yml | 4 ++-- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/templates/event.js b/src/templates/event.js index 62746c913..877b5cb49 100644 --- a/src/templates/event.js +++ b/src/templates/event.js @@ -7,6 +7,7 @@ import EventNav from '../components/EventNav'; import HeroText from '../styles/HeroText'; import ImageEventItem from '../components/ImageEventItem'; import WorkHomePage from '../components/WorkHomePage'; +import MarkdownView from 'react-showdown'; import Seo from '../components/Seo/Seo'; import useFixedScroll from '../hooks/useFixedScroll'; import MainContainer from '../styles/MainContainer'; @@ -23,6 +24,18 @@ const EventInfo = styled.div` display: none; } + .description p { + margin: 0 0 1em; + } + + .description a { + display: inline; + width: auto; + margin-top: 0; + font-size: inherit; + line-height: inherit; + } + @media (min-width: 1024px) { a { width: 200px; @@ -83,9 +96,7 @@ const EventTemplate = ({ data }) => { {data.markdownRemark.frontmatter.name} -

- {data.markdownRemark.frontmatter.description} -

+ diff --git a/src/templates/sector.js b/src/templates/sector.js index 83b4ed17e..0398c91d7 100644 --- a/src/templates/sector.js +++ b/src/templates/sector.js @@ -8,6 +8,7 @@ import HeroText from '../styles/HeroText'; import ImageItem from '../components/ImageItem'; import WorkHomePage from '../components/WorkHomePage'; import MiniTeamSection from '../components/MiniTeamSection'; +import MarkdownView from 'react-showdown'; import Seo from '../components/Seo/Seo'; import useFixedScroll from '../hooks/useFixedScroll'; import MainContainer from '../styles/MainContainer'; @@ -25,6 +26,18 @@ const SectorInfo = styled.div` display: none; } + .description p { + margin: 0 0 1em; + } + + .description a { + display: inline; + width: auto; + margin-top: 0; + font-size: inherit; + line-height: inherit; + } + @media (min-width: 1024px) { a { width: 200px; @@ -83,7 +96,7 @@ const SectorTemplate = ({ data }) => { {data.markdownRemark.frontmatter.name} -

{data.markdownRemark.frontmatter.description}

+ {/* View All {data.markdownRemark.frontmatter.name} Case Studies */} diff --git a/static/admin/config.yml b/static/admin/config.yml index ca8a64f2a..91e3648ce 100644 --- a/static/admin/config.yml +++ b/static/admin/config.yml @@ -500,7 +500,7 @@ collections: file: "content/work/climateaction/index.md" fields: §orFields - { label: "Name", name: "name", widget: "string" } - - { label: "Description", name: "description", widget: "text" } + - { label: "Description", name: "description", widget: "markdown", buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Color", name: "color", widget: "color" } - { label: "Type", name: "type", widget: "hidden", default: "sector" } @@ -538,7 +538,7 @@ collections: file: "content/events/civicsabha-2/index.md" fields: &eventtypeFields - { label: "Name", name: "name", widget: "string" } - - { label: "Description", name: "description", widget: "text" } + - { label: "Description", name: "description", widget: "markdown", buttons: ["bold", "italic", "link", "bulleted-list", "numbered-list"], editor_components: [], hint: "Select text and use the link button to add a hyperlink." } - { label: "Image", name: "image", widget: "image", hint: "JPG, PNG or WebP only (no GIF/SVG). Keep it under 500 KB; larger files fail to save." } - { label: "Color", name: "color", widget: "color" } - { label: "Type", name: "type", widget: "hidden", default: "eventtype" }