Files
gott/wwwroot/css/markdown.css
T
Meleki 489b5e0eb0 feat: Timestamps + LaTeX/KaTeX-Rendering im Chat
Timestamps (dd.MM.yyyy HH:mm:ss):
- Neuer _formatTimestamp() + _addTimestamp() Helper in ui.js
- Timestamp bei allen User- und Assistant-Nachrichten (live, history, archiv)
- Erscheint on hover, halbtransparent, rechts oben an der Bubble

LaTeX/Math-Rendering mit KaTeX 0.16.21:
- KaTeX lokal eingebunden (JS + CSS + 21 woff2-Fonts)
- renderMarkdown() schützt LaTeX vor Markdown-Parsing
- $$...$$ → Block-Math (zentriert), $...$ → Inline-Math
- Fehlerhafte Ausdrücke als <code> Fallback
- KaTeX-Display Styling in markdown.css

Weitere Änderungen:
- theme.css: Neue --info Farbe
- Blockquote-Styling: info-Farbe statt halbtransparent
2026-03-05 18:25:03 +01:00

175 lines
2.5 KiB
CSS

/* Markdown in Chat Bubbles */
.markdown {
white-space: normal;
}
.markdown > *:first-child {
margin-top: 0;
}
.markdown > *:last-child {
margin-bottom: 0;
}
.markdown p {
margin: 0 0 .5em 0;
}
.markdown p:last-child {
margin-bottom: 0;
}
.markdown h1,
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
margin: 1em 0 .5em 0;
}
.markdown h1:first-child,
.markdown h2:first-child,
.markdown h3:first-child {
margin-top: 0;
}
.markdown h1 {
font-size: calc(var(--font-size) * 1.5);
padding-bottom: .125em;
border-bottom: 1px solid var(--f3-border);
}
.markdown h2 {
font-size: calc(var(--font-size) * 1.25);
}
.markdown ul,
.markdown ol {
margin: 0 0 .5em 0;
padding-left: 1.5em;
}
.markdown li {
margin-bottom: .25em;
}
.markdown li:last-child {
margin-bottom: 0;
}
.markdown code {
background: var(--f3-bg);
border-radius: var(--border-radius);
padding: .1em .3em;
}
.markdown pre {
background: var(--f3-bg);
border: var(--border-width) solid var(--f3-border);
border-radius: var(--border-radius);
padding: .5em;
margin: 0 0 .5em 0;
overflow-x: auto;
}
.markdown pre:last-child {
margin-bottom: 0;
}
.markdown pre code {
background: none;
padding: 0;
}
.markdown blockquote {
border-left: 3px solid var(--info);
margin: 0 0 .5em 0;
padding: .5em;
color: var(--info);
}
.markdown blockquote:last-child {
margin-bottom: 0;
}
.markdown hr {
border: none;
border-top: var(--border-width) solid var(--f3-border);
margin: .5em 0;
}
.markdown table {
border-collapse: collapse;
margin: 0 0 .5em 0;
width: 100%;
}
.markdown table:last-child {
margin-bottom: 0;
}
.markdown th,
.markdown td {
border: var(--border-width) solid var(--f3-border);
padding: .5em;
text-align: left;
}
.markdown th {
background: var(--f3-bg);
}
.markdown a {
color: var(--primary);
text-decoration: underline;
}
.markdown img {
max-width: 100%;
}
.markdown input[type="checkbox"] {
margin-right: .5em;
}
/* KaTeX Math */
.markdown .katex-display {
margin: .75em .25em;
overflow-x: auto;
overflow-y: hidden;
padding: .25em 0;
text-align: left;
font-size: 1.1em;
}
.markdown .katex-display:first-child {
margin-top: 0;
}
.markdown .katex-display:last-child {
margin-bottom: 0;
}
.markdown .katex {
text-align: left;
}
.markdown .katex-error {
color: var(--dangerous);
}
/* Fluent Emoji */
img.fluent-emoji {
display: inline-block;
height: 1.2em;
width: 1.2em;
vertical-align: -0.2em;
object-fit: contain;
margin: 0 .1em;
scale: 1.25;
}