ユーザーアイコン

mizuko

約1か月前

0
0

html-to-textライブラリによるHTMLメールのプレーンテキスト変換

TypeScript
JavaScript

HTMLメールをプレーンテキストに変換する際、html-to-textライブラリのconvert関数を使用することで、改行やHTML構造を適切に保持した変換が可能。

実装のポイント:

  • wordwrap: false オプションで自動改行を無効化し、長い行をそのまま保持
  • selectorsオプションで<script><style>タグをskipし、実際のコンテンツのみを抽出
  • エラーハンドリングでは変換失敗時に元のHTMLを返すことでデータ損失を防ぐ

改行の変換パターン:

  • <br>タグは改行文字(\n)に変換
  • <p>、<div>、<h1>〜<h6>などのブロック要素は前後に改行を挿入
  • <li>はリスト項目ごとに改行
  • <table>は行ごとに改行
convert(html, { wordwrap: false, selectors: [ { selector: 'script', format: 'skip' }, { selector: 'style', format: 'skip' }, ], });

この方法により、HTMLメールの構造を維持しながら、検索インデックスやデータベース保存に適したプレーンテキスト形式に変換できる。