feat(diarization-ui): render markdown in document preview

This commit is contained in:
2026-03-21 14:32:24 +01:00
parent 3215dde312
commit 1c9953251f
2 changed files with 11 additions and 1 deletions

11
app.py
View File

@@ -4,6 +4,7 @@ import sqlite3
from datetime import datetime
from typing import Optional
import markdown as md
import requests
from fastapi import FastAPI, File, Form, HTTPException, UploadFile
from fastapi.responses import HTMLResponse, PlainTextResponse, Response
@@ -116,6 +117,13 @@ button{{background:linear-gradient(90deg,var(--acc),var(--acc2));color:#001018;b
button:hover{{filter:brightness(1.05)}}
textarea{{width:100%;min-height:150px}}
pre{{white-space:pre-wrap;background:#020617;color:#86efac;padding:12px;border-radius:12px;border:1px solid #1e293b}}
.mdview{{line-height:1.55}}
.mdview h1,.mdview h2,.mdview h3{{margin:16px 0 8px}}
.mdview p{{margin:10px 0}}
.mdview ul,.mdview ol{{padding-left:22px}}
.mdview code{{background:#0b1222;padding:2px 5px;border-radius:6px}}
.mdview pre code{{display:block;padding:10px}}
.mdview blockquote{{border-left:3px solid #334155;padding-left:10px;color:#cbd5e1}}
.row{{display:flex;gap:8px;flex-wrap:wrap;align-items:center}}
small{{color:var(--muted)}}
.hint{{color:var(--muted);font-size:13px}}
@@ -344,11 +352,12 @@ def view_document(doc_id: int):
if not d:
raise HTTPException(404, "not found")
rendered = md.markdown(d["content_md"] or "", extensions=["fenced_code", "tables", "nl2br"])
body = f"""
<h2>Dokument #{d['id']} {d['title']}</h2>
<p><small>Projekt: {d['project']} · Typ: {d['kind']} · {d['created_at']}</small></p>
<p><a href='/document/{doc_id}/download.md'>Download .md</a></p>
<pre>{(d['content_md'] or '').replace('<','&lt;')}</pre>
<div class='card mdview'>{rendered}</div>
"""
return layout("Dokument", body)