2012-01-11 4 views
1

Sinatraを使用してERBテンプレートにHTML空白を取り除く方法はありますか?ERBテンプレートのHTML空白を取り除くにはどうすればよいですか?

スリムエンジンはすぐに使えますが、私はどのようにERBが同じことをするのか分かりません。

+0

ストリップ用の空白と難読化は同じではありません。そして、 "dinamically"は言葉ではありません。あなたは "動的"を意味しましたか? –

+0

質問: –

+0

質問を簡略化しました。 @David。 SOのタイトルは質問として表現する必要があります。「ERBテンプレートのHTML空白を削除するにはどうすればよいですか?良いでしょう。 –

答えて

0

は、(私の作品)の可能な解決策は、(シナトラの観点からミドルウェア)カスタムクラスを作成し、それを使用することです。カスタムクラスは正規表現を使用してコンテンツを尊重してすべての空白を削除します:

1

gzip圧縮にはRack::Deflaterミドルウェアを使用してください(通常のHTTP処理)。正規表現以下http://www.sinatrarb.com/intro#Rack%20Middleware

+0

多分 "compress"は良い単語ではありません。空白を削除することを意味します。 –

+0

私は問題をよりよく説明するために "難読化"に切り替えました –

+2

HTMLを難読化するGZIP圧縮は空白を取り除くよりもはるかに進んでいきます。マークアップを読みにくくすることを目的としている場合は、自分のことを冗談にしています。私がしなければならないのは、マークアップを整理することです(またはその点についてはDOMインスペクタを使用します)。 – d11wtq

2

使用してHTMLから空白を取り除くために:ミドルウェアを使用する方法

。これは、HTMLの性質上、正規表現には適していないため、好ましい方法ではありません。しかし、それはうまくいく。シナトラは、あなたがあなた自身のミドルウェアを作成することができます

(?<=[^])\t{2,}|(?<=[>])\s{2,}(?=[<])|(?<=[>])\s{2,11}(?=[<])|(?=[\n])\s{2,} 
+0

Sinatraで正規表現をどこに置く必要がありますかアプリ? –

+0

私はRubyやSinatraアプリのユーザーではありません。しかし、HTML出力を出力する直前に正規表現を使用できる場合は、上記のパターンを使用して一致するサブストリングを削除してください。これは、C#で書かれたCMS製品でうまく動作します。しかし、上記のパターンはもちろんC#固有のものではありません。 –

+0

良い仕事!最初の '(?<= [^])'はルビのエラーを引き起こす可能性があります。私は '(?<= [\ ^])'を使用しています。 – Jokester

関連する問題