Уважаемые разработчики.
Сегодня мне сообщили, что некоторые html-шаблоны, которые я включал в
ЖЖ-расширение для Firefox, перестали работать как должно. Я попробовал разобраться и наткнулся на странность: кажется, ЖЖ-скрипты, удалявшие раньше из постов и комментариев пользователей нежелательные теги, JavaScript и определённые стилистические правила, стали вести себя непонятно, а именно: по какому-то непостижимому принципу из html-тегов в комментариях вычищаются атрибуты стиля с определёнными CSS-правилами, причём почти такие же правила с другими значениями почему-то остаются. Ниже можно увидеть наглядный пример этой странности - скриншот моего ответа пользователю, сообщившему мне о проблеме (приходится постить скриншот комментария, потому что в постах этой проблемы нет).
Чтобы быть уверенным, что проблема не на клиентской стороне, вот код комментария из страницы, как она возвращается сервером ЖЖ:
Очень странно. В посте такая цитата выглядит, как должно. И если отвечать на Ваш комментарий на отдельной странице, он тоже выглядит нормально. Но как только он попадает в поток комментариев, вся информация о стилях в подблоках оказывается удалённой. Думаю, это может быть какая-то новая защита в ЖЖ, от стилистических злоупотреблений. Я напишу в суппорт, надеюсь, объяснят. Спасибо за сообщение.
Вот, поэкспериментировал:
Обычный блок с правым выравниванием не работает, стиль просто удаляется из кода:
div style="text-align: right; border: 1px solid black;"
Хотя с центральным выравниванием стиль сохраняется:
div style="text-align: center; border: 1px solid black;"
Удаляется стиль, если есть внутренние поля с уточнением их стороны:
div style="padding-left: 20px; border: 1px solid black;"
А если поставить общее значение полей, без указания стороны, стиль сохраняется:
div style="padding: 20px; border: 1px solid black;
Если писать это в посте, всё работает.
Ну ваще...
Пожалуйста, если html-фильтры Живого Журнала в последнее время претерпели какие-то изменения и добавились новые запрещающие правила, сообщите об этом подробнее.
UPD 1.
Можно сравнить, один и тот же код в посте и в первом комментарии здесь ниже:
Повторение эксперимента.
Стиль блока сохранён:
div style="text-align: right; border: 1px solid black;"
Стиль блока сохранён:
div style="text-align: center; border: 1px solid black;"
Стиль блока сохранён:
div style="padding-left: 20px; border: 1px solid black;"
Стиль блока сохранён:
div style="padding: 20px; border: 1px solid black;"
UPD 2.
Ещё один вопрос. Никто не знает, где теперь можно посмотреть действующий код Живого Журнала? Раньше он был доступен на
http://code.sixapart.com/trac/livejournal, но теперь, после продажи сервиса, эти адреса выдают только ошибки. На сайте СУПа никаких ссылок на код не нашёл; может быть, плохо искал.
Хотелось проверить подозрение: похоже, что после недавних шалостей с комментариями (пользователи постили в них огромные картинки, закрывающие весь экран), в модуль cleanhtml.pl или ещё куда-то добавили код, который тупо вычищает весь CSS со словами left и right (потому что упомянутая зловредность наверняка использовала свойство position вместе с top, right, bottom и left). Если так, то это, кажется, слишком варварское решение проблемы.