Frage

Ich brauche eine Klartextdarstellung einer beliebigen HTML-Datei (zum Beispiel einer Blog-Post). Bisher ist das kein Problem, es gibt Dutzende von HTML-Konverter txt. Allerdings sollte der Text in den Absätzen (sprich: „p Elemente“) im Klartext gerechtfertigt werden (auf eine bestimmte Menge von Spalten) und, wenn möglich, Bindestrichen einem besseren lesbares Ergebnis zu geben. Außerdem muss die Textdatei sein UTF-8 oder UTF-16.

Einfacher Klartext Gespräch, das ich mit XSLT tun, das ist in der Nähe zu trivial. Aber die Rechtfertigung von Text über seine Möglichkeiten ist (nicht ganz richtig, weil XSLT Turing abgeschlossen ist, aber nahe genug an der Realität).

FOP und XSL-FO auch nicht arbeiten. Sie tun wie gewünscht, aber FOP der Klartextausgabe ist schrecklich (die Entwickler sagen, dass es nicht für eine solche Verwendung bestimmt ist).

ich auch mit HTML experimentiert -> XSLT -> Roff, aber ich bin fest mit groff und seiner Unicode-Unterstützung ist bei weitem nicht optimal. Da gibt es Zeichen wie Ellipsen ( „...“) und typografisch korrekte quotaion Marken sind, ist es recht umständlich ist groff im XSLT-Stylesheet für Dutzende von Unicode-Zeichen der Escape-Sequenzen zu erzählen.

Eine weitere Möglichkeit, Umwandlung in TeX und Ausgabe als Klartext sein könnte, aber ich habe nie versucht, diese vor mit (La) TeX.

Vielleicht habe ich etwas wirklich einfach verpasst. Hat jemand eine Idee, wie ich die oben erreichen könnte? Durch die Art und Weise: Es sollte eine Lösung vorzugsweise ohne Root-Rechten arbeiten zu installieren, mit PHP, Python, Perl, XSLT oder jede in einer halbwegs anständigen Linux-Distribution gefunden Programm

.
War es hilfreich?

Lösung

Python Versuchen. Verwenden Sie BeautifulSoup die HTML zu analysieren. Die TextWrap Modul können Sie den Text zu formatieren.

Es gibt zwei Funktionen fehlen, though. Um den Text zu rechtfertigen, müssen Sie Leerzeichen um jede Zeile hinzufügen, aber das sollte kein großes Problem (siehe In diesem Codebeispiel ).

Für hyphenation, versuchen dieses Projekt .

Andere Tipps

Wenn Sie mit Emacs vertraut sind, können Sie die HTML-Datei öffnen in Emacs-W3M ( dh M-x w3m-find-file foo.html), die gerenderte Seite als Textdatei speichern und dann M-x set-justification-full auf es nennen.

Sie können sogar eine kleine Funktion schreiben, um den Job zu tun:

(defun my-html-to-justifed-text (html-file text-file)
  "Convert HTML-FILE to plain TEXT-FILE."
  (find-file html-file)
  (w3m-rendering-buffer)
  (set-justification-full (point-min) (point-max))
  (write-file text-file))

(my-html-to-justifed-text "~/tmp/2.html" "~/tmp/2.txt")

Weblinks oder lynx einen Versuch wert sein könnte, finden Sie in der -dump Schalter. Die Codierung Teil können Sie dann leicht lösen separat mit iconv oder etwas ähnliches.

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