Wie kann ich den Markdown vom wmd-Markdown-Editor abfangen und ändern, bevor er veröffentlicht wird?

StackOverflow https://stackoverflow.com/questions/1561012

  •  21-09-2019
  •  | 
  •  

Frage

Ich starte eine Stack Exchange-Site und möchte in der Lage sein, den Fragetext abzufangen, bevor und nachdem das Markdown-Skript ihn erreicht.

Ich möchte eintreten können [custom-tag]stuff to be altered[/custom-tag] im Fragefenster ein, und lassen Sie dann die zu ändernden Inhalte entfernen (da die Standard-Markdown-Engine sie nicht interpretieren kann), speichern Sie sie und ersetzen Sie dann die Tags in der Ausgabe durch die zu ändernden Inhalte, nachdem sie geändert wurden von meiner eigenen (serverseitigen) Engine verarbeitet.

Ich scheitere beim ersten Schritt;Ich kann das Markdown-Javascript nicht finden.Ist es irgendwo versteckt? /content/js/master.js?

Bearbeiten:Ich werde versuchen, dies anhand eines Beispiels etwas klarer zu machen, was ich erreichen möchte.

Ich betreibe eine Poker-orientierte SE-Site.Die Spieler besprechen Pokerhände, aber anstatt das reine Textprotokoll dessen einzugeben, was in einer Hand passiert ist, verwenden sie einen Konverter, um es besser lesbar zu machen.

Anstatt dies also in einem Forum zu posten:

PokerStars Game #29112867044:  Omaha Pot Limit ($100/$200) - 2009/06/07 19:51:27 ET
Table 'Thomsen' 9-max Seat #2 is the button
Seat 2: Mary & Joey ($14729 in chips) 
Seat 4: William ($28306 in chips) 
Mary & Joey: posts small blind $100
William: posts big blind $200
*** HOLE CARDS ***
Mary & Joey: raises $400 to $600
William: calls $400
*** FLOP *** [6d Td 3c]
William: checks 
Mary & Joey: checks 
*** TURN *** [6d Td 3c] [Kc]
William: checks 
Mary & Joey: checks 
*** RIVER *** [6d Td 3c Kc] [7d]
William: bets $600
Mary & Joey: folds 
Uncalled bet ($600) returned to William
William collected $1198 from pot
William: doesn't show hand 
*** SUMMARY ***
Total pot $1200 | Rake $2 
Board [6d Td 3c Kc 7d]
Seat 2: Mary & Joey (button) (small blind) folded on the River
Seat 4: William (big blind) collected ($1198)

Sie gehen zunächst auf die Website eines Drittanbieters und konvertieren sie in diese:

PokerStars Pot-Limit Omaha, $200,00 BB (2 Spieler)
SB ($14729)
BB (28.306 $)

Preflop:
SB setzt 600 $, BB callt 400 $

Flop: ($1200) 6, 10, 3 (2 Spieler)
BB prüft, SB prüft

Drehen:($1200) K (2 Spieler)
BB prüft, SB prüft

Fluss: ($1200) 7 (2 Spieler)
BB setzt 600 $, 1-fach

Gesamttopf: $1200 | Rechen: $2

Ich möchte den Schritt weglassen, bei dem der Benutzer zu einer Website eines Drittanbieters gehen, dort etwas einfügen, die HTML-Ausgabe auswählen und dann das Ergebnis kopieren und in die Frage einfügen muss.Stattdessen möchte ich, dass sie den rohen Handtest einfach mit [hand][/hand]-Tags umschließen können und die Konvertierung automatisch durchgeführt wird.

Bearbeiten 2:

Bei weiteren Untersuchungen sieht es so aus, als ob dies nicht möglich ist (ohne viel Hacky-JS).Man müsste zunächst die domänenübergreifenden Ajax-Probleme umgehen, um einen externen Dienst für die Konvertierung zu nutzen.

Wenn Sie es dann schaffen, die WMD-Vorschau zu überschreiben, müssen Sie immer noch herausfinden, was zu tun ist, wenn die eigentliche Antwort normal gerendert wird.Eine Möglichkeit wäre, JS jedes Mal, wenn eine Frage oder Antwort gerendert wird, nach dem Tag suchen zu lassen und das DOM mit einer konvertierten Version zu aktualisieren – was einem Leistungs-POV schadet.

Ich denke, ich muss warten und hoffen, dass SE uns eine andere Möglichkeit bietet, dies zu überschreiben.

War es hilfreich?

Lösung

WMD füllt das Vorschauelement während der Eingabe automatisch aus, oder?Dafür muss es irgendwo einen Konverter geben.Dieser Konverter ist Showdown (was Sie könnten erhalten Sie hier).Hier ist seine Verwendung (aus der Quelldatei entnommen):

// Showdown usage:

var text = "Markdown *rocks*.";

var converter = new Showdown.converter();
var html = converter.makeHtml(text);

Das bedeutet, dass Sie einfach nicht das bereitgestellte Vorschauelement verwenden können, sondern Ihr eigenes Element, das Sie selbst ausfüllen.Darüber hinaus müssen Sie sich das anhören keypress Ereignis im Textbereich selbst erstellen und den Text analysieren, gefolgt vom Aufrufen von Showdown.Wenn die Ausgabe Ihren Wünschen entspricht, werfen Sie sie in Ihr eigenes Vorschauelement.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top