Spaces:
Running on Zero
Running on Zero
| """Share card renderer.""" | |
| from __future__ import annotations | |
| from html import escape | |
| from src.models.schema import DiaryEntry, PersonaEnvelope | |
| from src.renderer.html_templates import CARD_WRAPPER_CLASS | |
| def render_share_card(persona: PersonaEnvelope, diary: DiaryEntry) -> str: | |
| p = persona.persona | |
| tags = "".join(f"<span>{escape(tag)}</span>" for tag in p.tags) | |
| return f""" | |
| <article class="{CARD_WRAPPER_CLASS}"> | |
| <header class="card-header"> | |
| <div> | |
| <div class="card-kicker">Objectverse Diary <span class="lang-zh">万物日记</span></div> | |
| <h2>{escape(p.character_name)}</h2> | |
| </div> | |
| <span class="card-stamp">OBJECT FILE</span> | |
| </header> | |
| <p class="card-object">{escape(p.object_name)} · {escape(p.mood)}</p> | |
| <p class="card-quote">{escape(diary.english)}</p> | |
| <p class="card-cn lang-zh block">{escape(diary.chinese)}</p> | |
| <div class="card-tags">{tags}</div> | |
| </article> | |
| """ | |