Я заинтересован в том, чтобы использовать Jekyll для размещения десятка бизнес-сайтов, которые имеют много общей информации и веб-интерфейсов. Поэтому мне любопытно, легко ли то, что я собираюсь спросить, поддерживается Джекиллом.
Если бы это была другая платформа для веб-сайтов, такая как WordPress, Magento, et c .. et c ... Я мог бы настроить шаблоны по умолчанию для своего веб-сайта следующим образом:
tpl/default/header.html
tpl/default/footer.html
tpl/default/privacy-policy.html
tpl/default/pricing.html
tpl/default/contact/map.html
tpl/default/contact/form.html
Затем для каждого предприятия, подписавшегося со мной, я создам для них папку с именем tpl/<businessname>/
. Затем платформа создаст веб-сайт, используя все файлы html в каталоге tpl/<businessname>/
. Когда шаблон не существует в каталоге tpl/<businessname>
, платформа будет использовать соответствующий шаблон в каталоге tpl/default/
.
В качестве примера, скажем, Bicycle Shop хочет от меня сайт. Я go вперед и создаю это:
tpl/bicycyle-shop/contact/map.html
Тогда в моих файлах макета я мог бы делать вызовы, подобные этому:
<?php
define('ORG','bicycle-shop');
put_tmpl('contact/form.html'); // this will use tpl/default/contact/form.html
put_tmpl('contact/map.html'); // this will use tpl/bicycle-shop/contact/map.html
function put_tmpl($tplname) {
if(file_exists('tpl/'.ORG.'/'.$tplname))
include('tpl/'.ORG'.'/'.$tplname);
else
include('tpl/default/'.explode('/',$tplname)[count(explode('/',$tplname))-1]);
}
?>
Мне любопытно, как такое поведение Достигнуто в Джекиле?
ДОПОЛНИТЕЛЬНО
Один из способов, который мне только что пришёл в голову, - это _config.yml
, который имеет переменные типа:
tmpl:
home: tpl/default/header.html
pricing: tpl/default/pricing.html
...etc...
Затем каждый бизнес имеет _config<businessname>.yml
, который переопределяет соответствующие tmpl
переменные. Это было бы Джекиллским соглашением? Или есть что-то из коробки с Джекиллом, которое делает это лучше?