Zum Inhalt der Seite



Animexx und FF.de Parser Animexx, Fanfics, Animexx, Fanfiction / Fanfic / FF, Fanfiction.de, Parser

Autor:  Lyndis

Schon seit ich wieder regelmäßig schreibe, geht es mir ständig richtig auf die Nerven, dass ich meine Texte einzeln für animexx und ff.de umformatieren muss.

Ich weiß, dass FF.de auch odf Dateien annimmt, aber dann muss ich jedes Mal das aktuelle Kapitel aus dem eigentlichen Dokument heraus kopieren und in ein neues Speichern und dieses Dokument dann hochladen. 

Animexx ist da schon komfortabler, aber beim copy&pasten geht trotzdem das ein oder andere verloren. Wie zum Beispiel Textzentrierungen, die ich brauche, um Textabschnitte voneinander abzutrennen und die POV anzugeben.

Es geht leider auch nicht, dass ich einfach einmal das Kapitel formatiere, weil mexx und ff.de unterschiedliche Syntax verwenden (etwas in italic zu schreiben geht auf ff.de mit [style type = "italic" ][ / style ] und auf mexx mit [ i ][ / i ]).

Zusätzlich dazu, werde ich demnächst irgendwann (ist schon länger geplant aber bisher noch nicht umgesetzt) beginnen auf ff.net und ao3 (archive of our own) zu veröffentlichen und ich glaube, die beiden haben auch ihre ganz eigene Syntax.

Muss ich dann also einen Text 4 Mal editieren? Pfft... nein, ganz sicher nicht.

Es nervt mich teilweise so sehr, dass ich das veröffentlichen auf einer Plattform aufgeschoben haben. Jüngst hat das dazu geführt, dass ich hier auf mexx vollkommen vergessen habe, 2 Kapitel hochzuladen.

Warum erzähle ich euch das jetzt? Nun, ich bin Informatikerin und so ein Problem lässt sich netterweise mit Informatik lösen. Euch erzähle ich das, weil ich das folgende Projekt mit euch teilen will:

Ich will einen Parser schreiben.

Was ist ein Parser? Um es einfach zu machen: In meinem Fall ist ein Parser ein Programm, in das ich eine ODF (Open Office oder Libre Office) Datei gebe und die mir den Inhalt davon in den jeweiligen Formatierungen ausgibt, die ich für die Seiten brauche, auf denen ich veröffentliche.


Achtung, ab hier wird es technisch. Ich merkiere die Stelle, an der es wieder weniger technisch wird. Aber für alle, die sich für sowas interessieren, kann ich empfehlen weiter zu lesen. Ich halte die Sprache so einfach wie möglich.

Ich habe sowas ähnliches schonmal mit reinen .txt Dateien gemacht, die ich zur hübscheren Darstellung in eine .html Datei umgewandelt habe. Das ging wesentlich einfacher wie das, was ich jetzt vorhabe.

Warum war das einfacher? .txt Dateien sind Plain-Text Dateien. Das heißt, es läuft kein Programm, das diesen Text in irgendeiner anderen Weise darstellt, als das, was da wirklich steht. Anders sind z.B. HTML Dateien, die Befehle beinhalten, die dem Browser sagen, wie er Textteile darstellen soll. Will ich also eine .txt Datei Parsen, gehe ich Zeile für Zeile durch, vielleicht auch Wort für Wort und übertrage die in ein HTML Format. Will ich HTML Parsen, wird das schon schwieriger, weil ich dann vielleicht nicht nur den reinen Text haben will, sondern die Formatierungen berücksichtigen muss. Wenn ich zum Beispiel eine Tabelle, weiterhin als Tabelle haben will, muss ich die ganzen < table >< / table > Befehle berücksichtigen und einen Parser schreibt man eben so, dass es für möglichst ALLE Arten eines Dateiformats funktioniert. Das heißt, ich weiß, dass in dem Dokument irgendwo eine Tabelle auftaucht, aber ich habe keine Ahnung wo bzw. in welcher Zeile genau. Das heißt, statt dem Programm zu sagen 'Hey du, in Zeile so und so fängt eine Tabelle an und in Zeile so und so hört sie wieder auf' muss ich ihm sagen 'Du, achte mal darauf, ob du irgendwo ein < table > findest und wandle alles was danach kommt um, bis du auf ein < / table > triffst.' Und das müsste ich für jede Formatierung machen, auf die ich stoße. Das ist aber auch noch vergleichsweise einfach.

Denn dann gibt es ODF Dateien... Das ODF Format ist ein Sammelsurium von verschiedenen Dateien, die (meiner Meinung nach) auf ziemlich übertriebene Art und Weise ziemlich unlogisch zusammenhängen. Ihr wollt wissen, wie das aussieht? Macht mal einen Rechtsklick auf eine ODF Datei und wählt dann unter 'Öffnen mit' irgendein ZIP Programm aus (7zip oder WinRaR oder so). Dann seht ihr alle Dateien, die so eine simple ODF Datei eigentlich enthält.

In der content.xml steht der Inhalt der Datei inkl. einem Haufen unnötiger Formatierungsbefehle. Warum unnötig? Wenn ihr an 4 verschiedenen Stellen im Dokument irgendwas italic macht, hat diese Datei 4 verschiedene Befehle dafür, obwohl in jedem Befehl exakt das gleiche drin steht. Sowas sieht zum Beispiel so aus:

-<style:style style:name="P12" style:parent-style-name="Standard" style:family="paragraph">

<style:paragraph-properties style:justify-single-word="false" fo:text-align="justify"/>

<style:text-properties officeooo:paragraph-rsid="00e2d7e6" officeooo:rsid="01da2dd7" style:font-style-complex="italic" style:font-style-asian="italic" fo:font-style="italic"/>

</style:style>

Lasst euch nicht zu sehr verwirren, alles was wir brauchen ist das, wo 'italic' steht.

Das ist ein abgeschlossener style Befehl, der einem Textabschnitt sagt, wie er auszusehen hat. Wer ein bisschen was damit anfangen kann, wird sich jetzt vielleicht fragen 'Hä? Wie jetzt? Aber da ist doch gar kein Text!'. Richtig!

Der dazu passende Text kommt nämlich viiiiel weiter unten:

<text:p text:style-name="P12">Ich habe dir vertraut.</text:p>

<text:p text:style-name="P12"/>

Der Textschnippsel 'Ich habe dir vertraut', wäre jetzt italic, also schräg geschrieben. Der Name 'P12' verweist auf den oben angegebenen Style Befehl.

Jetzt ist ODF leider nicht sonderlich intelligent in der Erstellung dieser Befehle. Gefühlt jede Zeile hat einen anderen Stylebefehl, obwohl ich außer 'center', 'Überschrift 1', 'Überschrift 2' (ganz selten auch 'Überschrift 3') und 'italic' oder 'bold' keinerlei Stylebefehle verwende. Man sollte jetzt also eigentlich annehmen können, dass ODF auch nur maximal 6 Stylebefehle erstellt. Falsch. Die Befehle gehen von P1 bis P37 in diesem Dokument und ich habe nochmal Befehle die mit T beginnen und von T1 bis T14 gehen. Und gefühlt in 90% aller Fäller steht in den Befehlen das gleiche! In weiteren 9% (hauptsächlich in den T Befehlen) steht Zeug drin, die ich zum Parsen gar nicht benötige. Das zumindest ist gut, den Kram kann ich dann nämlich ignorieren.

Jetzt hat tatsächlich jede Zeile andere Befehle. Das ist schon allein deshalb bescheuert, weil ich dann zum Parsen immer den Text suchen muss. Ich muss dem Programm also beibringen, wie es den PlainText findet (müsste ich bei HTML auch). Das Programm muss also Zeile für Zeile durchgehen und das als Text interpretieren, was zwischen > < steht. Warum? Weil der anfang eines Befehls mit > endet und das ende eines Befehls mit < Anfängt. Jedes Mal, wenn das Programm also auf ein > trifft, müsste es testen, ob danach noch ein Buchstabe kommt, weil es sonst viel zu viele Leerzeilen mit rein nehmen würde. Das ist aufwendig und unschön, wäre aber nicht zu vermeiden.

Achtung, ab hier wird es NOCH technischer

Zusätzlich dazu müsste ich die Formatierungen irgendwie rausfinden. Dazu gibt es mehrere Möglichkeiten, aber ich finde die hier am einfachsten umzusetzen:

Die Formatierungsbefehle der Datei stehen am Anfang. Ich müsste also durch die anfänglichen Zeilen gehen (ich weiß nicht wie viele es sind, deshalb müsste ich mir noch einen Stopp-Befehl ausdenken. In dem Fall von ODF muss das Programm aufhören wenn es auf den Befehl < office:body > trifft) und dem Programm sagen, dass es sich die Namen der Befehle merken soll (wie z.B. P12) die Formatierungen enthalten. Das ist nicht so trivial, wie es sich anhört. Warum? Ein Programm kann in dem Sinn nichts 'sehen'. Wenn wir auf so einen Programm Schnippsel schauen und ein wenig geübt darin sind, sowas zu lesen, sehen wir schnell 'ok, da steht italic, ein bisschen weiter oben steht style:Name=P12, das wird der Name des Befehls sein'. Einem Programm muss man das erst beibringen. Ich könnte natürlich hingehen und jeden der über 40 Befehle speichern lassen und dann bei jeder Zeile mit dem Namen überprüfen lassen, ob das ein Befehl ist, der eine relevante Formatierung enthält, aber das ist ultra aufwendig und unschön. Was ich also machen muss, ist dem Programm zu sagen, dass es sich merken soll, wenn es auf ein Element stößt, dass 'style:Name' beinhaltet, den Namen erstmal speichern soll und dann bis zum nächsten </style:style> schauen soll, ob es eine relevante formatierung findet. Wenn ja, soll es sich den Namen merken und zusätzlich die entsprechende Formatierung dafür speichern. Jetzt kann so ein Befehl aber mehrere Formatierungen enthalten. Deshalb muss das Programm diesem Namen auch ja jede Formatierung zuordnen können. Das ist meiner Meinung nach der einfachste Weg. 

Das ist alles machbar aber nervig. Das könnte einfacher gehen! Aber das ist eben das Problem, mit einem WYSIWYG Editor. Die bauen alle so einen Murks.

Ab hier wird es wieder untechnischer


Wenn ich mich jetzt so darüber aufrege, was das ODF Format macht, warum benutze ich nicht was sinnvolleres? Markdown würde sich unglaublich anbieten. Dafür wäre es super simpel einen Parser zu schreiben. Warum mache ich es nicht einfach so?

Abreitsumgebungen sind wichtig. Und ich stehe auf schnörkel und fancy Schriftarten wenn ich schreibe, weil mir das mehr Spaß macht. Für Sachtexte (wie diesen hier gerade) würde ich immer zu markdown oder LaTeX greifen, aber nicht für kreatives Schreiben. Ich habe Stunden damit verbracht mir eine Vorlage in LibreOffice zu basteln, die mir gefällt und mir Spaß macht. Markdown Editoren kann man auch bis zu einem gewissen Grad anpassen, aber einfach nicht so sehr. Das heißt, um mir ein bis zweimal die Woche zu ersparen, meine Texte umzuformatieren, müsste ich einen großen Teil meines Wohlbefindens mit meiner Arbeitsumgebung einbüßen. Das will ich nicht.

Deshalb will ich diesen Parser schreiben. Es gibt aber noch mehr Probleme, die ich mit dem Parser habe, als das oben beschriebene. Das ist einfach nur umständlich und aufwendig, aber an sich kein Problem. 

Ich will den Parser in Javascript schreiben und das ganze in einer HTML Datei ausführen lassen. Warum? Weil das die einfachste Möglichkeit ist, das Programm nachher zu bedienen und vor allem weiter zu geben. Denn ich will euch dieses Programm auch zugänglich machen.

Ich will, dass ihr das ohne Probleme bedienen könnt, ohne irgendwas zusätzlich installieren zu müssen. Ich will euch eine ZIP Datei zukommen lassen können, die ihr einfach nur entpacken müsst. Dann könnt ihr die HTML Datei öffnen und direkt loslegen. 

Es ist kein Problem eine ODF Datei in Javascript einzulesen. Es ist aber ein Problem, das Teil dann in ein ZIP umzuwandeln, damit ich an die content.xml komme. (Ich will den Zwischenschritt nicht machen müssen, das ODF als ZIP zu speichern. Das ist aufwendig)

Ich habe einen Workaround gefunden, mit dem ich aber noch nicht ganz zufrieden bin. Es ist aber ein Anfang. Man kann eine ODF Datei als HTML abspeichern. Wenn man das macht, bekommt man sogar einigermaßen sauberes HTML raus. Aber das ist ein Zwischenschritt, der mich momentan noch sehr nervt. Ich denke aber, ich werde den Parser erst einmal dafür schreiben.

Sollte irgendwer, der hier drüber stolpert, wissen, wie man mit Javascript (oder einer JS Library) an die content.xml kommt, bitte ich darum, mir Bescheid zu geben. Vielleicht ist es ja gar nicht so schwer und ich denke einfach verkehrt.     - Problem ist vorläufig gelöst. Danke an  Galileo 

 

Wer es bis hierher geschafft hat, dem gratuliere ich. 

In jedem Fall werde ich euch mit dem Projekt auf dem Laufenden halten. Ich hoffe, der Artikel war nicht zu verwirrend geschrieben. Ich hab das gerade einfach so runter getippt, weil ich mal meine Gedanken dazu niederschreiben wollte.

Auf bald! 

Lyn

Avatar
Datum: 12.11.2016 14:39
Ich konnte dir auch als Laie folgen, allerdings fällt mir nicht wirklich jemand ein, der auf deine Frage zugeschnitten ist. Vielleicht können SmilingMana oder abgemeldet etwas im entfernten Sinne damit anfangen?
 
Ich schreibe stets im .rtf und nutze einzig die Animexx-Formatierungen im Fließtext. Für andere Plattformen würde ich mit suchen/ersetzen arbeiten bzw. gleich die Chance nutzen, es noch einmal Korrektur zu lesen. :-P
Ich bin trotzdem gespannt, wie es weitergeht!
 
Viele Grüße, Morgi
I like movies, good clothes, fast cars... and you. What else do you need to know?
Avatar
Datum: 12.11.2016 15:25
abgemeldet

Ich will in meinem Text keine Formatierungsbefehle haben. Da sind wir wieder bei der komfortablen Arbeitsumgebung, die mir sehr wichtig ist.
Wie gesagt, wenn mir das nicht so wichtig wäre, würde ich einfach in Markdown schreiben und den Parser dann da drüber laufen lassen.
Und dann kann ich auch leider nicht mehr mit Suchen&Ersetzen arbeiten. Und selbst das wäre mir noch zu viel Aufwand. (jaaa ich bin faul)
Ich mag repetitives Arbeiten nicht. Wobei ich mir da dann auch wahrscheinlich ein kleines Script schreiben würde (oder ein Makro oder so), das mir das automatisch macht.

Auch an dich danke, für deine Gedanken dazu und die Mühe alles zu lesen^^
Avatar
Datum: 12.11.2016 15:25
Direkt helfen kann ich bei dem Projekt nicht, ich bin in keinster Weise ein Programmierer.
Ich habe den Text aber komplett gelesen, konnte den Erklärungen wunderbar folgen und habe durchaus was daraus gelernt, danke dafür. :)

Ich selbst lade nur auf Animexx hoch und schreibe die [u]Animexx-Formatierungen[/u] immer direkt in den Text rein, weil mir das so in Fleisch und Blut übergegangen ist und ich das in keinster Weise als störend empfinde.
Wenn ich meine Texte auf mehreren Plattformen hochladen würde, würde ich ebenfalls die bereits erwähnte Ersetzen-Funktion nutzen und mir einfach merken, welche Formatierungen in meinem Kapitel gerade eine Rolle gespielt haben. Dann sind das pro benutzter Formatierung nur zwei simple Anweisungen - durchaus überschaubar bei den wenigen Formatierungen, die ich immer benutze.
[i] ersetzen mit [style type = "italic"]
[/i] ersetzen mit [/ style]
usw.
Das wäre pro Hochlade-Plattform ein Aufwand von vielleicht einer Minute, das halte ich für vertretbar.

Was ich generell für empfehlenswert halte:
> aber dann muss ich jedes Mal das aktuelle Kapitel aus dem eigentlichen Dokument heraus kopieren und in ein neues Speichern und dieses Dokument dann hochladen.

Wenn eine Geschichte kapitelweise im Internet hochgeladen wird, bietet es sich an, diese Geschichte in einen Ordner zu packen und dort pro Kapitel ein gesondertes Textdokument anzulegen. Das ist übersichtlicher, gerade mit solchen Formatierungsproblemen, und erleichtert das Kopieren.
Ich hatte ursprünglich all meine Sachen auch in einem langen, zusammenhängenden Dokument, bin davon aber abgekommen. Es ist zu unübersichtlich und umständlich, das mit dem Ordner und pro Kapitel ein Dokument macht sich viel besser.

Nichtsdestotrotz ist das ein spannendes Projekt und ich würde schon gern wissen, wie es damit weitergeht. :D
Avatar
Datum: 12.11.2016 15:38
SmilingMana

Ich hätte nie gedacht, dass ich so viel Rückmeldung auf den Text bekomme (geschweige denn überhaupt welche). Das ist echt Hammer^^

Jeder Mensch hat seinen eigenen Workflow und ich bin ein Mensch, der bleibt bei seinem, statt sich einer Plattform anzupassen. Vielleicht ist das Informatiker Philosophie? Plattformen sind dafür da, um den Workflow angenehmer zu machen. Nicht dazu, dass man sich dem Workflow der Plattform anpassen muss. (Das ist natürlich utopisch und fast nicht umsetzbar. Sowas wie der heilige Gral der Informatik XD)
Man kann es nicht jedem Recht machen, das lernt man als Programmierer sehr schnell und das weiß ich auch.

Deshalb verlange ich ja auch nciht, dass sich die Plattformen anpassen, sondern habe für mich eine Lösung gefunden, die funktioniert.

Wenn ich schon mit einem WYSIWYG Editor schreibe, will ich keine Formatierungen da drin haben, dann kann ich, wie gesagt, auch gleich Markdown nehmen.
Und obwohl Suchen&Ersetzen nur eine Minute dauert, ist es dennoch nervig (für mich). Ich mag repetitives Arbeiten nicht.

Zu dem Dokumenten splitten:
Ist definitiv nicht meine Art zu Arbeiten. Ich persönlich halte das für viel unübersichtlicher.
Meine Dokumentenvorlage hat ein Inhaltsverzeichnis, das automatisch erstellt wird und verlinkungen enthält. Damit ist es für mich perfekt übersichtlich. Ich kann sogar innerhalb der Kapitel zu den einzelnen POVs springen, weil die für mich auch in dem Inhaltsverzeichnis angegeben werden.
Stattdessen habe ich Ordner für verschiedene Fandoms oder größere Geschichten mit mehreren Teilen.
Ich habe selbst das kopieren meiner Texte in eine OwnCloud mithilfe des Windows Aktenkoffers nahezu vollständig automatisiert.
Ich habe derzeit einen Ordner für 'Eigene Geschichten', einen Ordner für 'Circula' (nur auf FF.de in einem gesonderten Projektaccount zu finden), einen für 'Inuyasha' und einen für 'Beyblade'. Und Beyblade ist nochmal unterteilt in die Hauptstory und den Fanservice. Und jeweils in die englische Version, die ich nebenbei von allem am Schreiben bin.
Da dann für jede einzelne Story noch einen Ordner anzulegen wird mir zu unübersichtlich und zu mühselig.

Aber jeder arbeitet wie gesagt anders^^
Wenn das für dich Funktioniert, dann ist das großartig!
Für mich tut es das leider nicht.

Ich freue mich, dass du das Projekt dennoch spannend findest udn bedanke mich für die Aufmerksamkeit, die du dem Artikel gewidmet hast!
Avatar
Datum: 12.11.2016 16:17
Shizana

Schön, dass wir uns verstehen^^

Ich hab bereits ein Kapitel auf FF.net oben. Da ich das aber erst auf englisch übersetzt habe, dauert es, bis ich das nächste da hochladen werde. Ehrlich gesagt habe ich auch keine Ahnung mehr, wie das da funktioniert hat. Man hat da irgendwelche Dokumente als Kapitel hochgeladen oder so.
Es war merkwürdig...
Allgemein gefällt mir die Plattform eh nicht, aber was soll man machen? Es ist die größte FF Seite die ich kenne. Die Chance da auf eine größere Leserschaft und auf eine noch einigermaßen aktive Community zu treffen (was im Bereich Beyblade sowohl auf mexx, als auch auf FF.de schwierig ist, das ist hier ein ausgestorbenes Fandom (nicht, dass ich gar keine Interaktion habe^^ 3-4 Kommischreiber pro Kapitel reichen mir)) will ich mir nicht entgehen lassen.
Avatar
Datum: 12.11.2016 19:46
Ich hab mal das ganze Technische weggelassen :'D, finde dein Projekt aber auch gut. Animexx ist ja zum Glück mittlerweile soweit, dass es - wenn ich in Word etwas in kursiv habe und rüber kopiere - das so übernimmt (gab vor zwei Jahren oder so mal ein Update der Textbox, bei der aber leider das Zentrieren flöten gegangen ist). Deshalb lade ich eigentlich hauptsächlich nur noch hier auf Animexx rum, dann noch ff.de. Auf ao3 und ff.net bin ich nicht (wirklich) aktiv, da kommt leider irgendwie nix bei rum. Drücke dir also die Daumen für den Parser.
 
Vielleicht kann dir der  Galileo oder der Haga einen Tipp bezüglich Programmieren geben?
There have always been ghosts in the machine, random segments of code that have grouped together to form unexpected protocols. Unanticipated, these free radicals engender questions of free will, creativity, and even the nature of what we might call soul ...
------------
Dr. Alfred J. Lanning
Avatar
Datum: 13.11.2016 12:14
Ich kann nichts zum Programmieren sagen, aber zu ff.net und ao3.

Auf ff.net kannst du Dokumente hochladen - es gibt zwar eine Copy&Past-Funktion, aber die habe ich noch nie benutzt - und dann kannst du das Dokument bearbeiten.
Eine einfache Leerzeile wird i.d.R. zu einer Doppelten und ein Zeilenumbruch wird zu eine Leerzeile. Das formatieren kann man dann so machen, wie in einem Textprogramm (Word, Open Office). Wobei Formatierung (Fett, Kursiv etc.) auch übernommen werden - zumindest bei Word-Dateien und wenn man es als "Story"-Format hochläd. (Es gibt noch eine DocX Formatierung, bei der scheinbar Formatierungen wie "Fett" nicht übernommen werden, aber Formatierung wie "Zentriert" schon.)

Und wenn du möchtest, dass deine Kapitel, die du ja scheinbar in einer Datei schreibst, als einzelne Kapitel hochgeladen werden, musst du die Kapitel entweder in eine eigene Datei speichern und hochladen oder die ganze Datei hochladen und den überflüssigen Text löschen oder Copy&Past nutzen (oder alle Kapitel als ein Kapitel hochladen).

Auf ao3 kann man nur Copy&Past nutzen, dafür hat man die Wahl zwischen HTML (Plain text with limited HTML) und Rich Text (Type or paste formatted text.), bei dem man die Formatierungen dann wie bei einem Schreibprogramm einfügen kann. Und es gibt eine Begrenzung bezüglich der Länge der Kapitel (500000 characters).
Auch auf ao3 muss man die Leerzeilen/Zeilenumbrüche noch mal nachbearbeiten, war zumindest bei mir bis jetzt immer so.
Avatar
Datum: 13.11.2016 12:27
Naoki_Ichigo

Vielen Lieben Dank für die Infos^^
Zumindest ff.net klingt etwas nervig.
Muss mal drüber nachdenken was ich da mache.
A03 klingt machbar.
Aber eins nach dem anderen^^
Erstmal FF.de und mexx
Avatar
Datum: 13.11.2016 12:59
Hab ich das als Kurzversion richtig verstanden: du willst ODF-Dateien per Javascript im Browser darstellen?
Ja mata,
Tobias/Galileo
Avatar
Datum: 13.11.2016 13:09
 Galileo

Nein. Wenn allein das mein Ziel wäre, würde ich die Datei als HTML abspeichern und fertig.
Das funktioniert erstaunlich gut.

Ich will per Javascript an die content.xml der ODF-Datei, ohne, dass ich die Datei als .zip abspeichern muss.
Wenn ich den Zwischenschritt mit dem .zip mache, kann ich auch gleich entpacken und die content.xml aus dem Ordner raus nehmen. Was ehrlich gesagt eigentlich gar keine so schlechte Idee ist. *grübel*
Ist immer wieder erstaunlich, wie einen einfache Fragen auf Antworten stoßen, die man vorher nicht gesehen hat. Danke dafür^^

Aber! Für den Komfort und um diesen Zwischenschritt zu sparen, suche ich eben nach einer Methode, die ODF Datei mit Javascript (bzw. jquery oder einer anderen library), oder vielleicht sogar der input methode von HTML5 'einzulesen' und von da aus an die content.xml zu kommen.

Nach einiger Zeit suchen im Internet scheint niemand bisher bescheuert genug gewesen zu sein, das zu versuchen oder aber es ist schlichtweg nicht möglich. Beides sehr wahrscheinlich^^
Avatar
Datum: 13.11.2016 13:17
Ok jetzt habe ich es einerseits besser verstanden, aber was wäre denn dein "Endziel"? Also, warum willst du die content.xml?
 
Dann noch mal direkt zur Frage, soweit ich weiß sind opendocument-Dateien eben zip-Archive, egal ob von libreoffice oder microsoft. Das heißt die Datei heißt zwar nicht .zip, ist aber ein zip. Das heißt, dass ein Javascript das ein zip entpacken kann auch eine odf-Datei einpacken können müsste. Höchstens musst du rauspatchen, dass die Datei-Endung überprüft wird.
 
Ich habe jetzt keine da, aber versuch es mal z.B. damit: https://gildas-lormeau.github.io/zip.js/
 
Grundsätzlich gibt es solche ähnlichen Projekte schon, z.B. http://webodf.org/
 
Die Frage ist wie gesagt, was du eigentlich am Schluss willst.
 
Ja mata,
Tobias/Galileo
Avatar
Datum: 13.11.2016 13:25
 Galileo

Am Schluss will ich ein Programm haben, das mir den Text der ODF Datei ausgibt, in dem Textformattierungen nach meinen Vorgaben markiert sind.
Zum Beispiel will ich letztendlich 2 Verschiedene .txt dateien bekommen. In der einen Datei sind alle 'italic' Formattierungen in [ i ]text text text[ / i ] umgewandelt und in der anderen sind alle 'italic' formatierungen in [style type="italic"]text text text[/style] umgewandelt.

Wahrscheinlich bleibt es nicht bei 2 verschiedenen Dateien. Es werden evtl. 4 verschiedene, die alle unterschiedliche Formattierungsbefehle haben.

Das ist einfach nur um mir Arbeit zu sparen und gleichzeitig ein wenig Erfahrung zu sammeln.

Vielen Dank schonmal für deine Hilfe^^
Ich schaue mir die Links mal an.
Avatar
Datum: 13.11.2016 13:32
 Galileo

Wow, ich bin begeistert von der zip.js library die du gefunden hast *verneig*
Bin bisher noch nicht auf die Idee gekommen, nach einer library mit der Funktionalität zu suchen.

Vielen lieben Dank für die Hilfe^^

Ich werde mal sehen, ob ich damit umsetzen kann, was ich brauche.
Avatar
Datum: 13.11.2016 13:32
Hmm, weil du Markdown erwähnt hast, vielleicht wäre es alternativ gar nicht so doof dir einen odf -> markdown converter zu suchen (sowas scheint es zu geben) und dann die Animexx- und FF.de Formatierungen aus dem markdown-File ableiten. Das geht dann ja ziemlich simpel.
Ja mata,
Tobias/Galileo
Avatar
Datum: 13.11.2016 13:34
 Galileo

Ginge es, ja. Wenn es nen ordentlichen converter gäbe.
Der beste bekannte ist Pandoc (ist ein commandozeilen tool für windows und linux)
Der kann von ODF nach Markdown konvertieren, aber bei einem Test hat er die 'italic' befehle mehr oder minder nur zufällig erkannt.
Avatar
Datum: 13.11.2016 14:00
Ich sehe dein Problem, aber du meinest ja selbst, dass Informatiker faul sind – wo ich dir vollkommen zustimme.

Die Lösung erscheint mir unglaublich simpel, weil ich vor diesem Problem auch schon stand: benutzte ff.de einfach nicht. Die Seite ist meiner Meinung nach Krätze. Vor ein paar Jahren wurde ein neues Layout eingeführt, alles sollte praktischer werden... und im Prinzip hat sich nichts geändert. Der komplette Vorgang des Hochstellens von Fanfictions auf ff.de ist hundsmiserabel.
Fff.net war früher (also vor 10 Jahren oder so) auch unglaublich kompliziert und sehr verworren, aber mittlerweile funktioniert der Upload von Dokumenten sehr gut. Ich musste schon ewig nichts mehr nachträglich editieren, sogar Zentrierung wird übernommen wenn mich recht erinnere.

Zu AO3 kann ich nichts sagen, weil ich die Seite nicht benutze, aber mir erscheint es einfacher, einfach die Seite die nicht gut funktioniert zu meiden, als mir selbst die Arbeit zu machen, ihre Fehler zu verbessern.

Vllt bin ich aber auch nur massiv zu faul xD
The people who are crazy enough to think they can change the world, are the ones who do. ~ Apple Inc.
Avatar
Datum: 13.11.2016 14:06
Karu

Da ich die meiste Faninteraktion derzeit auf FF.de habe, ist die Plattform zu umgehen keine Option^^
Außerdem veröffentliche ich sowohl auf mexx als auch auf ff.de seit über 10 Jahren.
Irgendwie würde es mir in der Seele weh tun, eine der Seiten zu verlassen. Was ff.net und ao3 angeht, werde ich mal sehen, was ich tue^^

Und ich tu mir selbst ja nur gutes, wenn ich ein bisschen programmieren übe ;)
Von dem her profitiere ich doppelt davon und dafür mache ich mir gerne die Arbeit.


Zum Weblog