MathJax-Integration - BBCode Problem

  • Habe es derzeit leider nur lokal installiert, online ist mir noch zu riskant.

    Hast du es mal wie folgt getestet?

    [code=tex]Hier ein gültiger LATEX-Code[/code] [math]Hier ein gültiger LATEX-Code[/math]

  • Ich habe es nun auch mal online in meinem Produktivsystem getestet. Es scheint zu funktionieren.

    Der eine Fehler mit dem Flackern bei jedem Seitenaufruf ist nun in deiner Version sowohl online als auch lokal weg.

    Der andere Fehler, dass alle Code-BBCodes zu Math-Code werden, ist online nicht da (in zwei verschiedenen Foren), lokal aber schon (auch in einem völlig nackten WBB 4.0). Warum das so ist, kann ich mir nicht erklären.

    Auf jeden Fall geht es nun da, wo es gehen soll.

    Danke!

    Nachtrag: Das 2. Problem schien übrigens völlig unabhängig vom Math-BBCode zu sein. Scheinbar ein Bug im WCF/WBB bei lokalen Installationen (oder unter Windows). Hat man mehrere Code-BBCodes in einem Posting, so übernehmen alle den BBCode des untersten. Also bei php, c, java werden alle drei zu java.

    Edited 2 times, last by King555 (December 20, 2015 at 2:48 PM).

  • Noch eine Sache: Wenn man z.B. Matrizen in den Codetag schreibt, werden diese korrekt dargestellt. Nehme ich nun aber einen einfachen Bruch via \frac{4}{9}, dann wird dieser als Text gerendert. Kann sich jemand das erklären?

    Ist ja wirklich verhext. ;)

    Grüße

  • Hallo an alle,
    ich würde mich da gern @mythen anschließen.
    In meiner Testumgebung habe ich das Plugin ebenfalls mal installiert und ein paar Sachen festgestellt, die evtl. die Problembehandlung lenken könnten.

    • Erstelle ich ein neues Thema mit einer Formel, so wird diese korrekt (auch ohne Aktualisierung) angezeigt. Ändere ich den Beitrag oder antworte innerhalb des Themas mit einer Formel ohne die "erweiterte Bearbeitung", wird nur der TEX-Text statt der Formel dargestellt. Gehe ich über die erweiterte Bearbeitung funktioniert es.
    • \frac funktioniert mit \(\frac{}{}\)
  • Beim Absenden nach dem erneuten Bearbeiten eines Beitrags mit dem Redactor-Editor wird die Seite nicht neu geladen, wodurch das bereits geladene Skript auch nicht auf eine Änderung reagieren kann. Nun muss man irgendwie noch einen Weg finden, wie man den "Update-Prozess" einleiten könnte. Ich schaue mir das auch mal an.

    Edited once, last by WollZi (January 7, 2016 at 7:55 PM).

  • So, habe das bei mir wie folgt gelöst:
    Das Template __mathJaxJS.tpl wird beim Laden der Seite ausgeführt. Die Formeln werden dann vom Skript geparst. Hier das Template:


    Nach dem (einfachen) Bearbeiten des Beitrags wird die Seite, wie bereits geschrieben, nicht neu geladen. Folglich muss man die Formeln per Skript neu parsen lassen. Dazu benötigt man ein zusätzliches Template (hier: mathJaxBBCode.tpl), das nach jeder Bearbeitung des Beitrags ausgeliefert wird. Es liegt im selben Ordner wie das obige Template.

    Code: mathJaxBBCode.tpl
    <div class="tex2jax"> {$content} </div>
    {if !$mathJaxParsed|isset}
    <script data-relocate="true">
    //<![CDATA[
      MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
    //]]>
    </script>
    {/if}


    Schließlich fehlt noch das PHP (hier: MathJaxBBCode.class.php) für den BBCode. Welche Rolle use wcf\system\bbcode\BBCodeParser; ursprünglich spielte, hat sich mir nicht so richtig erschlossen (ist jetzt auskommentiert).

    Hoffe es hilft. Die restlichen BBCode-Einstellungen (siehe Bild) habe ich so belassen. Nun muss man nur noch das Installationspaket schnüren (obige Dateien im Anhang).
    Demnächst schaue ich mal, wie man das praktischer in den Editor (Redactor) einbauen kann (mit vordefinierten Tex-Befehlen und evtl. Vorschau).

    Update:
    Statt dem span-Tag im Template mathJaxBBCode.tpl würde ich eher ein Blockelement empfehlen, da Formeln der Form [math]$$meine Formel$$[/math] dann ein div-Tag im span-Tag enthalten, was natürlich nicht valide ist.

  • Das ist echt genial! Darauf hätte ich kommen müssen, dass man es jedes Mal via JS neu parsen muss, denn das wird da ja beim Absenden wieder durchgejagt. Ich habe es noch ein wenig umgebaut, um zu prüfen, ob MathJax überhaupt definiert ist, um NoScript-Benutzern und folglich Fehlern entgegen zu wirken.
    Klappt ohne Probleme (getestet mit WBB 4.0.* und WBB 4.1). Dankeschön.

    Besteht Interesse am Plugin mit aktuellen Stand?

    Grüße

  • Gern geschehen - am aktuellen Plugin hätte ich auch Interesse. In das Zusammenstellen der Pakete muss ich mich leider noch etwas einlesen. Ist ja nicht so ganz leicht bei der etwas dürftigen Notation von WoltLab ;) .

    Edited 2 times, last by WollZi (January 9, 2016 at 10:27 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!