4

任意の HTML ファイル (ブログ投稿など) のプレーン テキスト表現が必要です。HTML から txt へのコンバーターは数多くあります。ただし、段落内のテキスト (「p要素」と読む) は、プレーン テキスト ビューで (一定の列数まで) 両端揃えにする必要があり、可能であれば、より読みやすい結果を得るためにハイフンを使用する必要があります。また、結果のテキスト ファイルは UTF-8 または UTF-16 である必要があります。

XSLT を使用して実行できる単純なプレーン テキストの会話は、ほとんど些細なことです。しかし、テキストの正当化はその可能性を超えています (XSLT はチューリング完全ですが、現実に十分近いため、完全には当てはまりません)。

FOPと XSL-FO も機能しません。要求どおりに動作しますが、FOP のプレーン テキスト出力はひどいものです (開発者は、そのような使用を意図していないと述べています)。

HTML -> XSLT -> Roff も試してみましたが、groff に行き詰まっており、その Unicode サポートは最適とはほど遠いものです。省略記号 ("...") のような文字や印刷上正しい引用符があるため、XSLT スタイルシートで groff に何十もの Unicode 文字のエスケープ シーケンスを伝えるのは非常に面倒です。

別の方法として、TeX に変換してプレーン テキストとして出力することもできますが、(La)TeX でこれを試したことはありません。

おそらく、本当に単純なことを見逃しているのでしょう。どうすれば上記を達成できるのでしょうか?ところで、解決策は、PHP、Python、Perl、XSLT、またはまともな Linux ディストリビューションにあるプログラムを使用して、root 権限なしでインストールできることが望ましいです。

4

3 に答える 3

4

Pythonを試してください。BeautifulSoupを使用してHTMLを解析します。textwrapモジュールを使用すると、テキストをフォーマットできます。

ただし、欠落している機能は2つあります。テキストを正当化するには、各行にスペースを追加する必要がありますが、それは大きな問題ではありません(このコード例を参照してください)。

ハイフンについては、このプロジェクトを試してください。

于 2009-10-30T09:12:38.623 に答える
2

Emacs に慣れている場合は、HTML ファイルをEmacs-W3M (つまりM-x w3m-find-file foo.html) で開き、レンダリングされたページをプレーン テキスト ファイルとして保存してから呼び出すM-x set-justification-fullことができます。

ジョブを実行する小さな関数を作成することもできます。

(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")
于 2009-11-10T16:04:49.393 に答える
0

Linksまたはlynxは試してみる価値があるかもしれません-dump。スイッチを参照してください。エンコーディング部分は、 iconvなどを使用して個別に簡単に解決できます。

于 2009-10-30T09:16:30.817 に答える