いろいろな要素がつまっててBCH+の問題点がバレバレの例
まず、このテンプレートに含まれるrtl.htmlのテキストがアラビア文字になっているのね。
<h6 class="mb-0 "> المبيعات اليومية </h6>
こんな感じ。それが他ページとの差分として検出されるから、これ混ぜるとかなりへんちくりんなテンプレートができてしまう。
それと、virtual-reality.html。これもスタイルが全く違うものなので、はじめから外しときます。
1)全てデフォルトのまま実行する
グループコード:444/446/1014/1016の4系統に分かれる。ファイル数だと1/1/8/1で、単独ファイルが3つできる。
それぞれのテンプレートを見ると、グループコード:444のsign-up.blade.phpと、グループコード:446のsign-in.blade.phpのBase layoutが
全く同じ。2つに分ける必要がないから、階層レベル:2で1つにまとめられないか、というアイディアが浮かぶわね。
4桁のグループコードのファイルを3桁で揃えたら、これも1つのグループにまとまるのかってアイディアがでるわね。
順にやってみよう。
2)階層レベル:2でデフォルトのまま実行する
まず、sign-in.htmlとsign-up.htmlを残して、その他のファイルをゴミ箱に入れる。階層レベル:2で構造抽出を実行すると、グループコード:4になる。
なんで1桁?なんで44にならない?この時点でおかしいわ。
そのまま続行すると、コンバートできます。
でも、シンプルに1つにまとまって完璧じゃんか。って思ったらバグありでした。。。
BCH+は構造だけを比較して、一行づつ厳密に中身を比較してないから、下の2行を同じと見なしてしまう。
[sign-in.html]
<nav class="navbar navbar-expand-lg blur border-radius-xl top-0 z-index-3 shadow position-absolute my-3 py-2 start-0 end-0 mx-4">
[sign-up.html]
<nav class="navbar navbar-expand-lg blur border-radius-lg top-0 z-index-3 shadow position-absolute mt-4 py-2 start-0 end-0 mx-4">
上の2行を同じと見なすなら、…をsubviewに分離できるはず。でも、できてない。。。
1階層だと浅すぎてnavを比較する手前で終わっているわけです。
3)階層レベル:3でデフォルトのまま実行する
気を取り直して、sign-in.htmlとsign-up.htmlをゴミ箱に入れ、その他のファイルをゴミ箱から戻す。
asideタグが使われているから、「抽出に使うタグ:マイナーなタグも含める」にチェックが必要です!!
そうすると、グループコード:1014/1016と思っていたのが、実はグループコード:6141/6142/6161でした。
–抽出に使うタグ機能–
高速サーバで運用するなら、これ不要な機能だね。紛らわしいね。将来的になくします。
見た感じOK。subviewに分離しても見た感じOK。
でも、実行環境で表示テストすると問題が発覚する。
sidebarをsubviewに分離するとき、4つのキーワード(active,open,collapsed,show)を置換してます。例えば、
<a class="nav-link text-white active bg-gradient-primary" href="../pages/dashboard">
↓
<a class="nav-link text-white {{ $active_14 }} bg-gradient-primary" href="../pages/dashboard">
で、child viewが、
@section('sidenav_main')
@include('layouts.sidenav_main', ['active_14' => 'active','active_22' => '','active_30' => '','active_54' => ''])
@endsection
こうなる。
このsidebarは、'active'でフォーカスを当て、'bg-gradient-primary'で色付けしてるのね。
これも@includeで変数として渡さないと機能しない。
@section('sidenav_main')
@include('layouts.sidenav_main', ['active_14' => 'active bg-gradient-primary','active_22' => '','active_30' => '','active_54' => ''])
@endsection
こうすればいいわけだけど、今は対応できてません。
解決策としては、1.手作業で修正する、2.subviewをchild viewに分離する、の2つです。
sidebarの処理は問題が多くて、今テストで引っかかってるテンプレートの多くが、この辺りに問題がある。
根本的に一から作り直さないとダメかもね。