Сообщение от x-yuri
|
In addition, the HTML5 specification enables embedding SVG in HTML, where before it was only supported with XHTML.
|
Ну я про это и говорю. В HTML5 тоже есть пространства имен, как и в XHTML, что позволяет вставлять SVG.
Сообщение от x-yuri
|
писать для них свой dtd?
|
DTD можно и не писать. Тем более что все кладут на валидатор W3C. А если писать, то уж лучше XML-схему. Вообще, при таком раскладе валидация становится средством тестирования страниц. Другие тесты можно даже и не писать. Таким образом твой вопрос должен был звучать так: "Писать для них свои тесты?".
Сообщение от x-yuri
|
как модули могут предотвратить необходимость изменения скриптов при изменении разметки
|
Собственно:
Сообщение от x-yuri
|
Привязываться только к своим тегам
|
... и атрибутам.
Постараюсь объяснить что же это нам даст.
Что нужно верстаку? Править html-код. Что конкретно в коде ему нужно править? По пунктам:
1. Добавлять/удалять узлы.
2. Править атрибуты.
3. Править стили (как CSS, так и классы).
4. Изменять структуру дерева.
Это что касается поддержки и развития. Когда html только создается - проблем нет.
Действия первых трех пунктов не приведут к падению скриптов. Для этого верстало должен помнить всего лишь одно правило: не изменять сущности из пространств имен. Это касается имен тегов, имен атрибутов и их значений. В принципе, ему это и не надо.
Посмотрим на код:
<div ns:parent="name">
<p>Paragraph</p>
<ns:item class="item-1">text</ns:item>
<ns:item class="item-2">text</ns:item>
<div class="nbsp"> </div>
</div>
Верстак может без проблем поменять имя корневого тега, так как оно не относится к пространству имен. Атрибут ns: parent его вообще не должен интересовать. Точно так же он может менять атрибуты class не задумываясь о том, к чему принадлежат эти классы. Можно добавить любые теги или убрать те, которые не принадлежат к пространству имен. Другими словами: он видит с чем ему можно работать, а с чем нет. Так мы полностью отделили верстальщика от JS-ника.
Что касается четвертого пункта. Структура данных - по природе своей древовидная и от этого никуда не деться. Мы должны учитывать это. Если структура изменяется, изменяется и логическое значение узлов. Так же и тут: если вынести ns:item за ns: parent, то он уже не будет ребёнком parent-а. Но скрипт и не упадет от этого. Он просто не обработает его.
БЭМ вообще придуман для CSS (хотя и файловую структуру это коснулось тоже). Стиль наименования классов + логическое разделение, я бы сказал. К XHTML отношения вообще не имеет.
Сообщение от x-yuri
|
ничего не мешает это реализовать без них
|
Собственно, чем сейчас все и занимаются. Архитектура сегодняшнего
веб-приложения:
данные - куча говна
логика - стая мух, облепивших говно со всех сторон
представление - где-то между говном и мухами
А потом задумываемся - почему серверных разработчиков ставят на уровень выше клиентских? И правильно делают.