• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

Suche einen BB-Code Offline-Editor

Dietlaib

Well-known member
Registriert
26 Juli 2006
Beiträge
2.080
Punkte Reaktionen
1
Moin,

nachdem ich nun endlich mal den D2ItemReader ausprobiert habe, würde ich mir gern meine Itemlisten offline anschauen können.

So wie ich das bis jetzt erkenne, kann eine Datei erzeugt werden, die direkt hier im Forum als Shop genutzt werden kann (machen ja bereits viele). Darüber hinaus würde ich damit aber auch gern meine "privaten" Items verwalten. Klar, man könnte sicher alles ins Blubb-Forum stellen, aber mir schwebt doch eher eine Offline-Lösung vor.

Google hatte ich schon befragt, doch die Ergebnisse lassen zu wünschen übrig. Vielleicht kann mir hier jemand etwas empfehlen?

Danke und Gruss,
Dietlaib
 
Ich kenne sowas auch nicht, aber es sollte sich relativ schnell ein Script schreiben lassen, dass BB-Code in HTML umwandelt. Hauptsächlich wandelt man dazu nur [] in <> um. Bei Tabellen wird's vielleicht etwas komplizierter, aber die sind auch in verschiedenen Foren nicht einheitlich. Wenn du längerfristig sowas haben brauchen kannst, könnte ich mal sowas in Python schreiben. Das würde dann allerdings ein paar Tage dauern, da ich nicht soo viel Zeit übrig habe...

edit: Das sollte sogar mit der Library sehr einfach sein: http://code.google.com/p/postmarkup/
 
Ich kenne sowas auch nicht, aber es sollte sich relativ schnell ein Script schreiben lassen, dass BB-Code in HTML umwandelt.

Der ItemReader bietet eine HTML Vorschau des Shops. Im Grunde würde es schon reichen, wenn man diese Vorschau im HTML Format abspeichern könnte, um so externe Dateien zu erzeugen, die nicht mit dem ItemReader/Shop-System verknüpft sind. Editieren könnte man dann im ItemReader selbst.

Für den Programmautor sicher eine Kleinigkeit, doch so wie es sich zur Zeit darstellt, wird das Programm wohl nicht mehr weiterentwickelt.

Wenn du längerfristig sowas haben brauchen kannst, könnte ich mal sowas in Python schreiben. Das würde dann allerdings ein paar Tage dauern, da ich nicht soo viel Zeit übrig habe...

Wirklich ein sehr großzügiges Angebot. Doch es scheint mir unangemessen, dass sich extra jemand so viel Arbeit damit macht. Es wird sicher bereits einen einfachen Editor geben, mit dem man HTML abspeichern kann. Man müsste ihn nur finden/kennen.

Gruss, Dietlaib
 
Der Quellcode ist wohl auch nicht zugänglich, oder? Ausprobieren konnte ich das Programm bisher leider nicht, da ich kein Windows habe. Wie/wo wird denn dann die HTML-Vorschau dargestellt? Wird die vielleicht irgendwo zwischengespeichert?
 
Der Quellcode ist wohl auch nicht zugänglich, oder?

Das entzieht sich meiner Kenntnis. Vermutlich wird er nicht zugänglich sein.

Wie/wo wird denn dann die HTML-Vorschau dargestellt? Wird die vielleicht irgendwo zwischengespeichert?

Ich kann nur beschreiben, wie es sich von der Bedienung her darstellt: Angenommen, man hat Items aus der Liste der verfügbaren Items einem Shop zugeordnet, dann kann man "Shop erstellen" klicken und es wird BB-Code generiert. Das sieht dann z.B. so aus:



----- Ätherische und/oder Gesockelte Items -----


Armbrust - Sockel: 4

Dämonen-Armbrust - (2h-dmg: 26-40) (dexreq: 98) (strreq: 141) (lvlreq: 63) (Armbrust-Klasse - xfast) (sox (4))
Gorgonen-Armbrust - (2h-dmg: 25-87) (dexreq: 105) (strreq: 117) (lvlreq: 50) (Armbrust-Klasse - slow) (sox (4))
Koloss-Armbrust - (2h-dmg: 32-91) (dexreq: 77) (strreq: 163) (lvlreq: 56) (Armbrust-Klasse - slow) (sox (4))

Macht man nun in diesem Bereich einen Rechtsklick, bekommt man ein Kontextfenster angezeigt, das es erlaubt, eine "Vorschau" darzustellen. Diese wird in einem Extrafenster präsentiert und sieht so aus, wie man es aus den entsprechenden Shops der Tradeforen kennt.

In diesem Extrafenster gibt es ein weiteres Menü per Rechtsklick mit der viel versprechenden Option "Quelltext anzeigen". Doch diese öffnet nur ein weiters Fenster in dem <HTML></HTML> zu lesen ist.

Gruss, Dietlaib
 
Soweit ich weiss, verwendet der Itemreader nur relativ einfache BB-Codes, die sich direkt ersetzen lassen (Zeilenumbrueche nicht vergessen).
Die GuideDB und natuerlich auch das Forum machen das mit PHP, das Prinzip sollte sich sehr leicht in andere Programmiersprachen uebersetzen lassen, die mit regulaeren Ausdruecken umgehen koennen.

Sollte in <10 Minuten machbar sein.

Vorsicht mit dem postmarkup, das hat nicht die PlanetDiablo-spezifischen codes , [set], [anker] und [sprung] (der Rest duerfte nicht benoetigt werden).
 
Hier habe ich eine Implementierung in Java gefunden, die eigentlich ausreichen sollte. Ich habe jetzt allerdings keine Lust das in ein Jar zu packen...

Dieses Programm wandelt eine als Argument übergebene Datei mit BBCode in die HTML-Datei "html.html" um. :)

Code:
import java.util.*;
import java.io.*;

class BBConverter {
    public static void main(String[] args) throws Exception {
        String file = args[0];
        String bbcode = read(file);
        String html = bbcode(bbcode);
        BufferedWriter out = new BufferedWriter(new FileWriter("html.html"));
        out.write(html);
        out.close();
    }

    public static String read(String file) {
        try {
            File f = new File(file);
            Scanner scan = new Scanner(f);  
            scan.useDelimiter("\\Z");  
            String content = scan.next();
            return content;
        } catch(FileNotFoundException e) {
            System.out.println("Datei nicht gefunden.");
            return "";
        }
    }

    /**
     * Converts bbcode to html.
     * Source: http://fyhao.com/2010/06/computer-and-it/java/simple-java-bbcode-implementation/
     */
    public static String bbcode(String text) {
        String html = "<html><body bgcolor=\"#000000\">" + text + "</body></html>";

        Map<String,String> bbMap = new HashMap<String , String>();

        bbMap.put("((\r\n|\r|\n|\n\r))", "<br/>$1");
        bbMap.put("\\[[bB]\\]", "<b>");
        bbMap.put("\\[/[bB]\\]", "</b>");
        bbMap.put("\\[[sS][iI][zZ][eE]\\=(.+?)\\]", "<font size=\"$1\">");
        bbMap.put("\\[/[sS][iI][zZ][eE]\\]", "</font>");
        bbMap.put("\\[[iI]\\](.+?)\\[/[iI]\\]",
            "<span style='font-style:italic;'>$1</span>");
        bbMap.put("\\[[uU]\\](.+?)\\[/[uU]\\]",
            "<span style='text-decoration:underline;'>$1</span>");
        bbMap.put("\\[[cC][eE][nN][tT][eE][rR]\\]", "<div align='center'>");
        bbMap.put("(.+?)\\[/[cC][eE][nN][tT][eE][rR]\\]", "</div>");
        bbMap.put("\\[[iI][mM][gG]\\](.+?)\\[/[iI][mM][gG]\\]",
            "<img src='$1' />");
        bbMap.put("\\[[iI][mM][gG]=(.+?),(.+?)\\](.+?)\\[/[iI][mM][gG]\\]",
            "<img width='$1' height='$2' src='$3' />");
        bbMap.put("\\[[cC][oO][lL][oO][rR]=(.+?)\\]",
            "<span style='color:$1;'>");
        bbMap.put("\\[/[cC][oO][lL][oO][rR]\\]", "</span>");
        bbMap.put("\\[[qQ][uU][oO][tT][eE]\\]", "<blockquote>");
        bbMap.put("\\[/[qQ][uU][oO][tT][eE]\\]", "</blockquote>");
        bbMap.put("\\[[aA][nN][kK][eE][rR]=(.+?)\\]", "<a name=\"$1\">");
        bbMap.put("\\[/[aA][nN][kK][eE][rR]\\]", "</a>");
        bbMap.put("\\[[uU][nN][iI][qQ][uU][eE]\\](.+?)\\[/[uU][nN][iI][qQ][uU][eE]\\]",
            "<a rel=\"nofollow\" href=\"http://planetdiablo.eu/spiel/expansion/itemdb/uniquesearch.php?text=$1\" target=\"_blank\"><font color=\"#908858\"><u>$1</u></font></a>");
        bbMap.put("\\[[hH][iI][gG][hH][lL][iI][gG][hH][tT]\\]",
            "<span class=\"highlight\">");
        bbMap.put("\\[/[hH][iI][gG][hH][lL][iI][gG][hH][tT]\\]", "</span>");
        bbMap.put("\\[[sS][eE][tT]\\](.+?)\\[/[sS][eE][tT]\\]",
            "<a rel=\"nofollow\" href=\"http://planetdiablo.eu/spiel/expansion/itemdb/setsearch.php?text=$1\" target=\"_blank\"><font color=\"#00C400\"><u>$1</u></font></a>");
        bbMap.put("\\[[uU][rR][lL]=(.+?)\\](.+?)\\[/[uU][rR][lL]\\]",
            "<a href='$1'>$2</a>");
        for (Map.Entry entry: bbMap.entrySet()) {
            html = html.replaceAll(entry.getKey().toString(), entry.getValue().toString());
        }

        return html;
    }
}
 
Zurück
Oben