htmlファイルにspanタグやdivタグにstyleやmarignといった属性が入っています。 可読性をあげて、メンテナンスしやすくするため、cssファイルに切り出したく、記述されているstyle属性を削りたいと試行錯誤しています。
これまでgolangでいろいろと試して、以下のように実装したので自分用にまとめます。
コメントを正規表現で検索する
以下の正規表現で検索できます。
<!--[\s\S]*?-->
styleの属性値を正規表現で検索する
色を定義するcolorは残したいというのがあるので、colorは入れてません。
ポイントは「(;|")」の部分です。属性値の記述終わりにセミコロンやダブルクォートの2パターンがあるのでこのように変更しています。
margin.+?(;|")|font-.+?(;|")|margin.+?(;|")|padding.+?(;|")|line-.+?(;|")|text-.+?(;|")
style属性が空のものを検索する
style属性がダブルクォートだけで、中身が空のもの。たとえば、「style = " "」のようなものは以下で検索します。
\sstyle="\s+?"
bluemondayは見送った
golangにはbluemondayというサニタイズ用のパッケージがあります。当初はこれを使用しようと試みていました。しかし、style属性は否応無く削除されてしまうようなので、使用するのを諦めました。というのも、colorだけは残したかったので。
- 作者: Jeffrey E.F. Friedl,株式会社ロングテール,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/04/26
- メディア: 大型本
- 購入: 24人 クリック: 754回
- この商品を含むブログ (86件) を見る