BCH+の使い方 その2

コンバート

ここが最も使うとこです。

 

1)フォルダを選択して分析する
コンバート対象のフォルダをドロップダインから選択し、ファイル情報を取得するボタンをクリックします。
で、フレームワークを選択し、Doctype分析、Html分析、Head分析を進めます。

 

※このドロップダウンにリストされるのは、自分の個人フォルダ、自分が管理者のフロジェクト、そしてコンバート権限が付与されたプロジェクトです。

 

ここでは、あまり問題が発生しません。特に、今収録してあるテンプレートはテスト済みなので大丈夫です。

 
それぞれの分析結果は、右のメッセージウィンドウで確認できます。

ただし、Head分析の共通率が極端に低い場合は注意が必要です。関連性がない、あるいは全く異なる構造のファイルが混じっている可能性があります。そのままでもコンバートできますが、child viewに出力されるソースコードが増加します。もし、必要がないものならば、外した方がいいでしょう。

 

Head分析を終えた時点で、ここまでのコンバート結果を確認できます。まだ中途半端ですが。
例えば、Laravelでいえば、リンクのxxx.blade.phpをクリックすることでコンバート結果が見れますし、Orig.をクリックすればオリジナルのソースコードを確認できます。

 

なお、Laravelのアセットはpublicディレクトリの直下に配置しasset()関数で、Djangoのアセットはstaticディレクトリの直下に配置し{% static %}タグで読み込むように書き換えてあります。

 

※ユーザ管理でコピー権限を付与したユーザには、コンバート結果へのリンクが表示されますが、権限がないユーザには非表示です。
なんで、結果を確認することも、コピー&ペーストもできません。

 

2)body構造抽出
ここでhtmlファイルを構成する構造を抽出します。その際に変更できるオプションは、以下の3つです。
・階層レベル
・自動調整
・抽出に使うタグ

 

階層レベル

いろいろなソースコードを見たんですけど、最深部まで全ての構造を抜き取る必要はなさそうです。時間もかかるしね。
Laravelのドキュメントを読むと、要は、共通部分と差分を見つけ切り分ければいいかと。

 

自動調整

デフォルトはOnです。これは、差分があるらしきところを判断し、それ以降の構造を切り捨てる機能です。これも時短のため。
offにすると抽出した構造をそのまま使います。場合によっては、offにしないとうまくコンバートできません。自分でテストしたサンプルについて、それぞれ結果を残しているので、それを参考にしてください。

 

※開発環境が遅くって(Win8.1 AMD A4-5000 1.50 GHz 6GB RAM)、フルで構造を抽出すると「死んでる?」くらい時間かかるんです。庭で雑草刈って、戻ってきてもまだ終わってないとか。。。

 

抽出に使うタグ

これも似た類の機能です。全てのタグを使って構造抽出すると時間がかかります。マイナータグを省略することで、少しでも処理時間を速めようかと。

 

※自動調整と抽出に使うタグの機能については、高速サーバで処理できるなら、問題ない範囲で収まるかと思ってます。将来的にはなくしてもいい機能と思ってます。

 

3)テンプレートへ変換する
ここでは4つのオプションを選択できます。

 
・Header:Base/Sub
・Navbar:Base/Sub
・Sidebar:Sub/Child
・Footer:Base/Sub

 

 

それぞれのパーツをどこに出力するか。これによって出来上がるテンプレートのかたちが変わります。
はじめは決め打ちで、sidebarだけをsubviewに出力してましたが、例えば、チームやクライアントのコーディングルールによってスタイルが指定される場合があるかと思い、選択できるように変更しました。

いろいろ試してみてください。

 

subviewの名前はidまたはclassから取っています。例えば、

<footer id="footer" class="footer">

ならfooter.blade.php、

<nav class="breadcrumbs">

ならbreadcrumbs.blade.phpのように。適宜自分でわかりやすいように変更してください。

 

※インデントずれがあったらごめんなさい。オリジナルのインデントがズレてるのがあって、自分でインデントを振り直してます。
これも遅さの原因の1つと思ってます。将来的には、オリジナルを使う/BCH+のインデントを使うの選択があってもいいかと思います。
どうしてもうまくいかなかったものは、VSCのフォーマッタでインデントし直したソースコードを収録しています。

 

4)分析結果のリセット
コンバート結果をリセットし、もう一回はじめからやり直せます。階層レベルや自動調整、抽出に使うタグ、sibviewへの分離を変更することで、
出来上がるテンプレートも変化するので、自分好みのものができるまで何度でも繰り返し試せます。

 

※ファイル管理でファイルをゴミ箱に出し入れすると、同じくリセットがかかります。
比較するソースコードが変わることで共通率なども変化するからです。