Является ли условный шаблон переопределением частью структуры Jekyll? - PullRequest
1 голос
/ 07 апреля 2020

Я заинтересован в том, чтобы использовать 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 переменные. Это было бы Джекиллским соглашением? Или есть что-то из коробки с Джекиллом, которое делает это лучше?

1 Ответ

0 голосов
/ 08 апреля 2020

Есть темы ... вы просто устанавливаете тему как драгоценный камень в вашей конфигурации. Когда вам нужно переопределить файл темы, вы просто помещаете этот файл в каталог _layouts или _includes.

Super simple.

...