Estou tentando criar um mermaid
gráfico no nicegui. Consigo encaixar o ícone e o texto no nó do gráfico. Mas no navegador, só o ícone aparece. Sei que é por causa da largura do rótulo do nó. Como consertar?
from nicegui import ui
@ui.page('/')
def index_page() -> None:
def fa_setup():
ui.run_javascript("""
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css';
document.head.appendChild(link);
""")
fa_setup()
class State:
def __init__(self):
self.graph = """
graph LR;
A1["fa:fa-credit-card A1"];
A2["fa:fa-server A2"];
A1 -- |4ms| --> A2;
"""
state = State()
diag = ui.mermaid(content=state.graph, config={'securityLevel': 'loose', 'theme': 'classic'})
diag.bind_content(state, 'graph')
ui.run()
Pode não responder à sua pergunta, mas este código NiceGUI
se comporta exatamente como este exemplo simples da Sereia:
Então, aparentemente, o problema está em como o Mermaid renderiza nós com ícones.
Então, adicionar o
classDef
to specifyfont-family
resolve o problema.