ObjectverseDiary / src /renderer /share_card.py
qqyule's picture
Deploy latest Objectverse Diary from fa09aac
dd6cefc verified
"""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>
"""