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
175 lines
2.5 KiB
CSS
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;
|
|
}
|