Как использовать HTML5 Boilerplate в ZPT?
Я пытаюсь обновить одно из наших старых приложений на основе ZPT, и я хотел бы реализовать следующую передовую методику HTML5 Boilerplate для добавления условных классов IE в <html>
,
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
Так как я использовал эту технику на многих сайтах, не относящихся к ZPT, я не особо задумывался о ней, однако, когда я приступил к ее реализации, я столкнулся с несколькими проблемами.
- ZPT удаляет комментарии HTML, поэтому в отображаемом источнике отсутствуют условные комментарии.
- Мы используем макрос всей страницы, чтобы определить шаблон страницы для повторного использования, и это определение происходит в
<html>
элемент вроде так,<html metal:define-macro="page">
, Даже когда я получаю условные комментарии, кажется, что моим следующим препятствием будет правильное определение макроса страницы.
Кто-нибудь может пролить свет на любой из этих вопросов?
1 ответ
Это странно, zpt не удаляет комментарии. Может быть, это конкретная реализация zpt, кто это делает? В любом случае, вы пытались использовать tal:replace="strucutre string:...."
<metal:macro metal:define-macro="page">
<tal:doctype tal:replace="structure string:<!DOCTYPE html">" />
<!-- If the comments are eaten, you can generate them using the same trick that
tal:doctype above -->
</metal:macro>