はじめに
Pechkinを介して送信される電子メールニュースレターには、ほとんどの場合、レターのhtmlバージョンとプレーンテキストバージョンの両方が含まれています。 HTMLバージョンなしでニュースレターを送信できますが、プレーンテキストなしで送信すると、セキュリティ上の理由から後悔することなくメールクライアントがHTMLバージョンの文字を切り取った購読者を失うリスクがあります。 これは特に、メール管理者が自分の病棟をスパムやウイルスから保護することに関心を持つ企業アカウントに当てはまります。
タスクを設定します
だから、手紙のプレーンテキスト版が必要です、それは事実です。 しかし、あなたがニュースレターのhtmlバージョンを作成するのに多くの時間を費やした場合、自分自身でそれを書くことを強制することはどれほど難しいかです。 明らかに、Pechkinはこの負荷を取り除き、クライアント用に文字のテキストバージョンを自動的に生成する必要があります。 しかし、それを行う方法は?
私たちはたくさん試しました:
- さまざまな正規表現
- さまざまなhtml解析ライブラリの束
すべてが曲がっていて場違いでした。世代のクラスは目の前で増えていました。 しかし、次のことを可能にするシンプルで美しいソリューションが必要でした。
- 見出しと小見出しを強調表示する
- リンクを選択して正確に表示する
- ハイフネーションの数を監視し、読みやすいようにテキストでブロックをきちんと配置します
- それをすべて速くする
Lynxソリューション
そして、ここで、私たちにとって予想外に、インターネットの出現の夜明けに現れた、前世紀の90年代の技術の助けを借りて解決策が浮上しました。 テキストブラウザ! もちろん、私たちは彼にhtmlコードをフィードし、出力では、すべてのリンク、ヘッダーなどを含む、見事に表示されたテキストバージョンを取得しています。 Lynxはベースとして採用され、すぐに動作し、開発者の1人が以前にSEOの目的でそれを使用していました。
私たちのニュースレターでロシア語を認識するために少し調整する必要がありました。 Debianのlynx.cfgの設定(PechkinaのすべてのメーリングリストのエンコーディングはUTF-8です):
LOCALE_CHARSET:FALSE ASSUME_CHARSET:utf-8 CHARACTER_SET:utf-8 MAKE_PSEUDO_ALTS_FOR_INLINES:FALSE
そして、ほら、簡単なコマンドで:
lynx -dump
手紙の美しいテキスト版を取得します。
その結果、大規模な生成クラスの代わりに、ニュースレターを作成するたびにPechkinが使用する最も単純な関数を実装しました。
この自動コンバーターは、 Pechkinのアカウントを持っていない場合でも、 Pechkin。Laboratoriesで連続して利用できます。
デモへのリンク: labs.pechkin-mail.ru/html2text