2010-12-30 7 views
14

htmlテンプレート用にDjangoを使用する場合、どのようにhtmlマークアップの書式を作成すればよいですか?djangoテンプレートで読めるhtmlを作成する

私はコンテンツブロックを利用しようとしています。しかし、コンテンツブロックは、異なるテンプレートのインデントの異なるレベルで表示されます。誰かがhtmlを手渡した場合のようにインデントされたコンテンツブロックを表示するにはどうすればよいですか?

改行で同じ問題が発生しています。私はテンプレート内のすべてのブロックを一緒に粉砕することができます。その時点でhtmlは見た目が良くなりますが、テンプレートは維持できません。

私は、djangoテンプレートシステムでかなりのHTMLマークアップを作成する方法が問題だと思いますか?

私はこれまでの回答に驚いています。対応するCSSとJavaScriptを記述する際に、HTML形式の書式がうまくいきます。後でコンテンツを簡単に追加できるようにする。

+1

なぜHTMLレイアウトが重要なのですか? –

+1

私はむしろ、できるだけ小さな文字を持つように、HTMLを可能な限りきつく詰め込んで、正反対にしたいと思います。 –

+0

@rebus:同意 - より速く小さなダウンロードが速くなりました。 HTMLに戸惑う時間が無駄になっているようです。まず、開発に時間が掛かります。次に、空白を転送する時間が無駄になります。第三に、貴重な(無意味な)すべての空白を保存しようとすると、メンテナンスに時間が掛かります。 –

答えて

14

クリスチャンズペローン(Pyevolve)からexactly what you're looking forがあります。彼はミドルウェアを使ってHTTPResponseオブジェクトを傍受し、BeautifulSoupを通して実行します。

私はあなたのサイトが若干のパフォーマンス低下に苦しむと思います。このミドルウェアを本番サイトに展開する前に、いくつかのベンチマークを実行することをお勧めします。

0

私はあなたが結果のHTMLを気にしていることに感心しています - 私はテンプレートをきれいにして読めるように心配しています!しかし、あなたの質問に答えて、あなたはミドルウェアを見ましたか?

http://docs.djangoproject.com/en/dev/topics/http/middleware/

そしてHTMLを再フォーマットするTidyのPythonモジュールを使用します。

http://pypi.python.org/pypi/PythonTidy/

0

は、私はそのようなµTidylibとして、整然とHTMLによるテンプレートエンジンの出力を実行することをお勧めします。

1

HTMLの可読性は重要ではありません。 DjangoやRailsのようなシステムでは、HTMLは出力形式であり、ソース形式ではありません。人がHTMLを手で編集するときは、字下げとスペースが心配されるのは当然です。これはソースフォーマットであり、将来誰かがそれを編集する必要があるからです。しかし、テンプレートの出力はそれだけです:出力。ブラウザはインデントを気にしません。この時点で、HTMLを読む唯一の人はView - Sourceを見ている人です。

+0

これを行う唯一の人はおそらく、彼の目を喜ばせるために数千ドルを投資するつもりであるOPのプロジェクトマネージャーでしょう+1- –

+0

これは、テンプレートを試してデバッグするために出力を見ないことを前提としています。 –

0

あなたは、単純なロングしかし、文字列の文字列の書式設定を行うにはDjangoのテンプレートを使用している場合、あなたは.format(とPythonのトリプル引用符で囲まれた文字列を使用することができます)に関数def:

def templated_string(context_dict): 
    return '''This is an example 
of a long string across multiple lines. 
It can be used to format {something} for 
{name}'s own purposes, even though 
it looks funny in code'''.format(**context_dict) 

templated_string({'name': 'rileymat', 'something': 'whatever you want'})は分かりやすいものです。そのように生のHTMLを生成することができます...それはあなたが求める空白を正確に持っています。

関連する問題