fix(ci+chat): drop docker buildx flags + style chat code blocks
Deploy marketing to Cloud Run / deploy (push) Failing after 2m27s

CI: gitea runner ships docker without the buildx plugin, so
`docker buildx build --platform linux/amd64 --load` exits 125
("unknown flag: --platform") in both the full build (build-stage.sh)
and the asset-only fast path (deploy.yaml). Runner host is already
linux/amd64, so explicit --platform is redundant. Switch both call
sites to plain `docker build`. This unblocks the pipeline — every
run since the workflow was added (~26 runs) has failed at this
exact step.

Chat: the live chat bubble renders marked.parse() output via
innerHTML, but .demo-msg-ai .demo-msg-bubble only had CSS rules
for p/ul/ol/li/strong. Fenced code blocks rendered as <pre><code>
with no styling — they appeared as wrapped plaintext, hard to
distinguish from prose. Add rules for code (inline and block),
pre, blockquote, em, h1-h4, and a, mirroring the share-card
styling (which always had them) so chat code blocks finally get
the monospace + tinted-background treatment users expect.
This commit is contained in:
Will Anderson
2026-05-03 10:15:24 -05:00
parent 8cd07b9107
commit 254afd2fb2
3 changed files with 60 additions and 3 deletions
+47
View File
@@ -1603,6 +1603,53 @@ fn page_open() -> String {
.demo-msg-ai .demo-msg-bubble ul, .demo-msg-ai .demo-msg-bubble ol { margin: 0.5rem 0 0.5rem 1.25rem; }
.demo-msg-ai .demo-msg-bubble li + li { margin-top: 0.25rem; }
.demo-msg-ai .demo-msg-bubble strong { font-weight: 600; }
.demo-msg-ai .demo-msg-bubble em { font-style: italic; }
.demo-msg-ai .demo-msg-bubble a { color: var(--navy); text-decoration: underline; }
/* Code: marked.js emits <code> for inline backticks and <pre><code> for
fenced blocks. Without these rules they render as unstyled inline
text and the user can't tell where the code starts and stops. */
.demo-msg-ai .demo-msg-bubble code {
font-family: 'IBM Plex Mono', Menlo, Consolas, monospace;
font-size: 0.85em;
background: rgba(0, 0, 0, 0.06);
padding: 1px 4px;
border-radius: 3px;
word-break: break-word;
}
.demo-msg-ai .demo-msg-bubble pre {
background: rgba(0, 0, 0, 0.06);
padding: 0.75rem;
border-radius: 6px;
overflow-x: auto;
font-size: 0.85em;
line-height: 1.5;
margin: 0.5rem 0;
max-width: 100%;
white-space: pre;
}
.demo-msg-ai .demo-msg-bubble pre code {
background: none;
padding: 0;
font-size: inherit;
word-break: normal;
}
.demo-msg-ai .demo-msg-bubble blockquote {
border-left: 3px solid var(--border);
margin: 0.5rem 0;
padding: 0.25rem 0 0.25rem 0.75rem;
color: var(--t2);
}
.demo-msg-ai .demo-msg-bubble h1,
.demo-msg-ai .demo-msg-bubble h2,
.demo-msg-ai .demo-msg-bubble h3,
.demo-msg-ai .demo-msg-bubble h4 {
font-weight: 600;
margin: 0.5rem 0 0.25rem;
}
.demo-msg-ai .demo-msg-bubble h1 { font-size: 1.05em; }
.demo-msg-ai .demo-msg-bubble h2 { font-size: 1em; }
.demo-msg-ai .demo-msg-bubble h3 { font-size: 0.95em; }
.demo-msg-ai .demo-msg-bubble h4 { font-size: 0.9em; }
.demo-msg-share {
position: relative;
margin-top: 0.375rem;