diff --git a/app.py b/app.py index ca28295..8261be1 100644 --- a/app.py +++ b/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"""
Projekt: {d['project']} · Typ: {d['kind']} · {d['created_at']}
-{(d['content_md'] or '').replace('<','<')}
+