правильный способ использовать шаблоны HTML? - PullRequest
0 голосов
/ 05 июня 2011

Я начал переносить простой сайт на Jekyll. У меня есть набор шаблонов, от которых все наследует, так что все, что мне нужно сделать, это заполнить фактический контент. Однако при перемещении содержимого я обнаружил, что некоторые из него должны изменить теги, ранее указанные шаблоном.

Например, у меня есть «основной» шаблон, который определяет все, вплоть до открывающего тега <body>. Одна из страниц моего сайта использует немного JavaScript для изменения холста html5, поэтому его открывающий тег должен выглядеть примерно так: <body onload="startDrawing();">. Теперь, кажется глупым иметь совершенно отдельный шаблон, единственным изменением которого является этот единственный тег, но одинаково глупо удалять этот тег из шаблона и заставлять каждую страницу вручную указывать открывающий тег <body>. Как правильно решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

На отдельной странице, для которой требуется специальная команда onload, добавьте строку в frontmatter YAML:


---
... your existing frontmatter ...
special_command: onload="startDrawing();"
---

Затем в шаблоне по умолчанию измените

<body>

до

<body {{ page.special_command }}>

На страницах с этим фронт-матертом YAML будет отображаться содержимое.На страницах, у которых нет этой строки "special_command" в их frontmatter, он ничего не отобразит.У вас останется дополнительный пробел в теге на этих страницах, но он все еще передает спецификации W3 в качестве допустимого кода (или, по крайней мере, он проходил валидатор, когда я только запускал этот код через него).

0 голосов
/ 05 июня 2011

Я ничего не знаю о Джекилле, но я склоняюсь к тому, чтобы иметь отдельный шаблон для одной страницы, содержащей холст.Это особый случай, и, если Jekyll не сможет объяснить его с помощью специального синтаксиса, мне будет понятнее иметь другой шаблон для этого случая.

...