bem / html-differ

Сompares two HTML
http://bem.info/tools/testing/html-differ/
MIT License
212 stars 45 forks source link

Сравнение <noscript> c учетом порядка элементов #136

Open kompolom opened 8 years ago

kompolom commented 8 years ago

Diff: https://github.com/bem/bem-forum-content-ru/issues/829 Описание: https://github.com/bem/bem-forum-content-ru/issues/865

Воспроизводится только на noscript

eGavr commented 8 years ago

Отправь реальный пример HTML, пожалуйста.

kompolom commented 8 years ago

https://github.com/appwilio/ap-components/blob/master/common.blocks/image/image.tmpl-specs/50-semantic-lazy.html Так пойдет? В качестве шаблонизаторов используются bh.php (4.1) и bh.js

eGavr commented 8 years ago

Тулза ничего не знает про шаблонизаторы, они ей неинтересны, она просто сравнивает два HTML. Чтобы воспроизвести багу, мне нужны два HTML, которые по твоему сравниваются неправильно.

kompolom commented 8 years ago

Ок. как их получить?

kompolom commented 8 years ago

Я же не генерю их руками. Они создаются enb-tmpl-specs и нигде не сохраняются

eGavr commented 8 years ago

https://github.com/enb-bem/enb-bem-tmpl-specs/#Сохранение-результатов

kompolom commented 8 years ago
<span class="image image_load_lazy image_lazy_scroll scrollspy i-bem" role="img" data-bem='{"image":{"url":"/image.jpg"},"scrollspy":{"offset":"-30"}}'><span class="image__container"><img class="image image__img" alt="alt" title="title" role="img"/><span class="image__spin"></span></span>
<noscript
class="image__fallback"><img class="image" src="/image.jpg" alt="alt" role="img" /></noscript>
    </span>

Вот что в desktop.tmpl-specs/image/30-lazy.BH.js.html Форматирование сохранил.

eGavr commented 8 years ago

А второй HTML где ? :) Ты выше уже его кидал? Та забудь ты про шаблонизаторы :)

В этом issue мне от тебя нужно просто два HTML, которые должны считаться равными, но инструмент все равно показывает дифф :)

kompolom commented 8 years ago

@eGavr ссылку на эталон я скинул выше. В предыдущем коменте второй файл. фу, сам запутался в этих файлах... Сейчас скину оба вместе..

kompolom commented 8 years ago

1)

<span class="image image_load_lazy image_lazy_scroll scrollspy i-bem" role="img" data-bem='{"image":{"url":"/image.jpg"},"scrollspy":{"offset":"-30"}}'><span class="image__container"><img class="image image__img" alt="alt" title="title" role="img"/><span class="image__spin"></span></span>
<noscript
class="image__fallback"><img class="image" src="/image.jpg" alt="alt" role="img" /></noscript>
    </span>

2)

<span class="image image_load_lazy image_lazy_scroll scrollspy i-bem"
    role="img"
    data-bem="{&quot;image&quot;:{&quot;url&quot;:&quot;/image.jpg&quot;},&quot;scrollspy&quot;:{&quot;offset&quot;:&quot;-30&quot;}}">
    <span class="image__container">
        <img class="image image__img" role="img" alt="alt" title="title"/>
        <span class="image__spin">
        </span>
    </span>
    <noscript class="image__fallback">
        <img class="image" role="img" src="/image.jpg" alt="alt"/>
    </noscript>
</span>

upd: Diff 2016-02-13 17 21 02

eGavr commented 8 years ago

Спасибо, будем смотреть ;)

eGavr commented 8 years ago

@kompolom , парсер, который используется в html-differ считает содержимое тега noscript обычным текстом, а не HTML-кодом, поэтому этот участок сравнивается как обычный текст, как следствие получаем дифф.

Завел issue в parse5, можешь присоединяться к обсуждению или просто плюсануть в issue :)