File size: 978 Bytes
bc02199
 
 
 
 
 
 
 
 
 
 
 
 
 
 
783b7b3
 
dd6cefc
783b7b3
 
 
 
bc02199
 
dd6cefc
bc02199
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
"""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>
    """