feat(diarization-ui): render markdown in document preview
This commit is contained in:
11
app.py
11
app.py
@@ -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('<','<')}</pre>
|
||||
<div class='card mdview'>{rendered}</div>
|
||||
"""
|
||||
return layout("Dokument", body)
|
||||
|
||||
|
||||
@@ -2,3 +2,4 @@ fastapi==0.115.6
|
||||
uvicorn[standard]==0.32.1
|
||||
requests==2.32.3
|
||||
python-multipart==0.0.12
|
||||
markdown==3.7
|
||||
|
||||
Reference in New Issue
Block a user