MukulRay commited on
Commit
83c07da
Β·
1 Parent(s): d7e8faf

feat: markdown rendering with gold-themed styling in UI

Browse files
Files changed (1) hide show
  1. index.html +44 -2
index.html CHANGED
@@ -6,6 +6,7 @@
6
  <title>Irminsul β€” Genshin Impact AI Assistant</title>
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
  <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=EB+Garamond:ital,wght@0,400;0,500;1,400&family=JetBrains+Mono:wght@300;400&display=swap" rel="stylesheet">
 
9
  <style>
10
  :root {
11
  --bg: #060d08;
@@ -26,6 +27,7 @@
26
  --green: #5dd68c;
27
  --red: #e87878;
28
  --amber: #d8a84a;
 
29
  --mono: 'JetBrains Mono', monospace;
30
  --serif: 'EB Garamond', serif;
31
  --display: 'Cinzel', serif;
@@ -356,7 +358,47 @@
356
  padding: 22px 24px;
357
  font-size: 15.5px; line-height: 1.9;
358
  color: var(--text); font-family: var(--serif);
359
- white-space: pre-wrap; word-break: break-word;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
  }
361
 
362
  .thinking {
@@ -715,7 +757,7 @@ async function submitQuery() {
715
  }
716
 
717
  const data = await res.json();
718
- respBody.textContent = data.answer;
719
 
720
  const ms = Math.round(data.latency_ms);
721
  latTag.textContent = ms >= 1000 ? `${(ms/1000).toFixed(1)}s` : `${ms}ms`;
 
6
  <title>Irminsul β€” Genshin Impact AI Assistant</title>
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
  <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=EB+Garamond:ital,wght@0,400;0,500;1,400&family=JetBrains+Mono:wght@300;400&display=swap" rel="stylesheet">
9
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/9.1.6/marked.min.js"></script>
10
  <style>
11
  :root {
12
  --bg: #060d08;
 
27
  --green: #5dd68c;
28
  --red: #e87878;
29
  --amber: #d8a84a;
30
+ --gold: #d4af37;
31
  --mono: 'JetBrains Mono', monospace;
32
  --serif: 'EB Garamond', serif;
33
  --display: 'Cinzel', serif;
 
358
  padding: 22px 24px;
359
  font-size: 15.5px; line-height: 1.9;
360
  color: var(--text); font-family: var(--serif);
361
+ white-space: normal; word-break: break-word;
362
+ }
363
+ .response-body > *:first-child { margin-top: 0; }
364
+
365
+ /* ── Markdown answer styling ─────────────────────────── */
366
+ .response-body h1,
367
+ .response-body h2 {
368
+ font-family: var(--display);
369
+ color: var(--gold);
370
+ letter-spacing: 0.04em;
371
+ margin: 1.4em 0 0.4em;
372
+ font-weight: 500;
373
+ }
374
+ .response-body h2 { font-size: 1.15em; border-bottom: 1px solid rgba(212,175,55,0.25); padding-bottom: 0.3em; }
375
+ .response-body h3 { font-family: var(--serif); color: var(--gold); opacity: 0.85; font-size: 1em; margin: 1.1em 0 0.25em; font-style: italic; }
376
+ .response-body strong { color: var(--gold); font-weight: 600; }
377
+ .response-body em { color: var(--text); opacity: 0.8; font-style: italic; }
378
+ .response-body ul, .response-body ol {
379
+ padding-left: 1.4em;
380
+ margin: 0.5em 0 0.8em;
381
+ }
382
+ .response-body li {
383
+ margin-bottom: 0.35em;
384
+ line-height: 1.75;
385
+ }
386
+ .response-body li::marker { color: var(--gold); opacity: 0.7; }
387
+ .response-body p { margin: 0 0 0.8em; }
388
+ .response-body p:last-child { margin-bottom: 0; }
389
+ .response-body hr {
390
+ border: none;
391
+ border-top: 1px solid rgba(212,175,55,0.2);
392
+ margin: 1.2em 0;
393
+ }
394
+ .response-body code {
395
+ font-family: var(--mono);
396
+ font-size: 0.88em;
397
+ background: rgba(212,175,55,0.08);
398
+ border: 1px solid rgba(212,175,55,0.2);
399
+ border-radius: 3px;
400
+ padding: 0.1em 0.4em;
401
+ color: var(--gold);
402
  }
403
 
404
  .thinking {
 
757
  }
758
 
759
  const data = await res.json();
760
+ respBody.innerHTML = marked.parse(data.answer);
761
 
762
  const ms = Math.round(data.latency_ms);
763
  latTag.textContent = ms >= 1000 ? `${(ms/1000).toFixed(1)}s` : `${ms}ms`;