忍者ブログ
雇われるだけの人生から目指せ独立、社会人2年目なゲーム脳SEのブログ。更新頻度=週2~3回。
[205]  [204]  [203]  [202]  [201]  [200]  [199]  [198]  [197]  [196]  [195
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

だいぶ間が開きましたが前回の続きです。
Djangoのテンプレートの継承機能を用いて、ソースを書き直します。

template_inheritance.jpg

イメージを書いてみました。何がなにやらわかりませんが、そこはお手数ですが個々人でイマジネーションを働かせてください

あとは、Baseとなるテンプレートを拡張した各画面のテンプレートを作成して、
それを読み込んでrenderするだけですね。

TO000049.JPG

うまくいきました!

さて、テンプレートの継承機能を用いるところまでは、Djangoのリファレンスサイトを見ればあっさり終わったのですが、新たな問題が出現してきました。
現在開発にはPleiades Eclipse 3.3のPython開発用セットを用いています。この開発セットにはWTPが含まれていて、HTMLやCSSなどを編集する際にはWTPのHTMLエディタを使用することになっています。ここまではOK。
問題はこのHTMLエディタ、フォーマット機能があまりにもひどいのです。
まともにインデントを考慮してくれず、非常に汚いフォーマットにされてしまいます。

TO000050.JPG

いったいどうしてこんなフォーマットになってしまうのかを探るため、Google先生にいろいろとお尋ねしてみたのですが、満足な結果が得られず・・・
ここで腹をくくって、Eclipse WTPのサイトからWTPプラグインのソースコードを実際にダウンロードして調査してみることにしました。
Eclipse Web Tools Platform (WTP) Downloads 

さて、ソースコードをダウンロードしてきたのはよいのですが、いったいどこを見ればHTMLファイルをフォーマットしているソースを見ることが出来るのかさっぱりわかりません。
悩んでいても仕方がないので、ダウンロードしてきたソースコードフォルダ全体のsrc.zipファイルに対して、"format"という文字列が含まれていないか、サクラエディタでgrepをかけてみることにしました。

TO000048.JPG

ビンゴ!
160件もヒットしました。zipファイルといえどもファイル名だけは普通にテキストエディタで見えるんですね。
いかにもそれっぽいあたりを解凍してソースを読んでみました。
すると・・・

/**
 */
protected void formatNode(IDOMNode node,
        HTMLFormatContraints contraints) {
if (node == null)
    return;

if (node.hasChildNodes()) { // container
    formatChildNodes(node, contraints);
}
else { // leaf
    IStructuredDocumentRegion flatNode 
        = node.getStartStructuredDocumentRegion();
    if (flatNode != null) {
        String source = flatNode.getText();
        if (source != null && source.length() > 0) {
            setWidth(contraints, source);
        }
    }
}
}

・・・え?コレダケ?
ぱっと見た感じ「setWidth()」しかしていません。
要するに・・・文章の横幅の設定に合わせてテキスト全体の折り返しをしているだけ!?インデントの調整とか一切なし!?

なるほど、WTPのHTMLエディタ付属のフォーマット機能は使えねえということだけがはっきりとわかりました。

仕方がないので外部のフォーマッターを使いましょう。
問題はDjango独自のタグ・・・{{}}ですとか{##}ですとか{%%}ですとか・・・が入るので、普通のhtmlフォーマッターは使えないということです。
「django template 整形」とかで検索をかけてみましたが、やはりDjango専用のものは存在しないようです。また困りました。
どうしましょう、自作するしかないのか・・・と考えていた矢先。

急にひらめきが。

「HTMLにHTMLタグ以外のタグを埋め込む=PHP=そうだPHPのフォーマッターを使い回せるんじゃないか!」
php 整形 - Google 検索 
PHPスクリプトの基本構造/PHP入門 

さすがは歴史のあるPHP、たくさんフォーマッターが見つかりました。
あとはこの中から改造が容易そうな奴を選んで、PHPタグを判定しているところをDjangoテンプレートのタグに変更してやればよいのです。楽勝楽勝。

とりあえず本日はここまで。
集中力が続かないなぁ・・・寺に行って座禅して修行かなぁ・・・

 

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
06 2017/07 08
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
ブログ内検索
最新コメント
[11/13 DSLR-A850]
[08/29 逆援助交際]
[08/23 クンニ]
[08/22 熟女]
[08/19 痴漢]
はてなブックマーク
プロフィール
HN:
akisute
性別:
男性
職業:
システムエンジニア
趣味:
ゲーム・東方・ニコ動。あと散歩。
バーコード
推奨環境

横幅900px以上、Firefox 3, Safari 3, Opera 9.5, Chrome 0.2以上。IE7ギリギリ対応。IE6未対応。

忍者ブログ [PR]