Versuch, Strings in Nutzerbeiträgen zu ersetzen / automatisch zu formatieren

Hallo, ich bin neu bei Discourse, habe meine Website eingerichtet und versuche, eine kritische Funktionalität zu verstehen, die ich für einen großen Teil der Community benötige.

Benutzer haben Software, die magische Zeichenfolgen exportieren kann, die einen Spielzustand darstellen, und ich möchte diesen Zustand schön als Tabelle rendern, die aus der Zeichenfolge generiert wird (beim Laden der Seite).

Idealerweise gebe ich den Benutzern eine Vorlage beim Posten oder sie legen ihre magische Zeichenfolge in eine benannte Klasse oder etwas Ähnliches, und die Zeichenfolge wird einfach zur Ladezeit der Seite gerendert (dekoriert?).

Kann ich das tun? Ich denke derzeit darüber nach, ein Skript zu schreiben, das die Zeichenfolgen für alle Elemente/Klassen dieses Typs parst, aber ich habe Schwierigkeiten damit, wie/wann das Skript den angezeigten (gekochten?) Beitrag ändern soll.

Danke,
Brett

1 „Gefällt mir“

Sicher, das sollte möglich sein. Sie haben eine API, um den gekochten Beitrag zu dekorieren.
Zum Beispiel: decorateCookedElement

Können Sie ein visuelles Beispiel dafür teilen, was genau Sie erreichen möchten?

1 „Gefällt mir“

Vielleicht können Sie Ihren eigenen Stil erstellen

1 „Gefällt mir“

Alles klar! Es scheint, dass decorateCookedElement das ist, was ich brauchte (laut @Arkshine-Hinweis).

Ich habe auch diesen Beitrag gefunden, der einige schöne Beispiele enthält, um nach interessanten Elementen zu filtern:
How do we fire scripts after topic HTML is rendered in DOM? - dev - Discourse Meta

Besonders hilfreich fand ich Folgendes:

$.fn.doSomething = function() {
  const targetElement = $(this).children("[data-theme-test]").length;
  if (!targetElement) return;

  // erledige deine Arbeit
  
  return this;
};

api.decorateCooked($elem => $elem.doSomething(), { onlyStream: true });

Danke!

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.