Обновлённый Jekyll

Недав­но Jekyll стал со­всем боль­шим —была вы­пу­ще­на вер­сия «1.0».

В чен­дж­ло­ге до­воль­но мно­го из­ме­не­ний: есть как но­вые фичи, так и вся­че­ские ис­прав­ле­ния. О том, что кри­тич­но знать про это об­нов­ле­ние, мож­но про­чи­тать в этой ста­тье.

Я пе­ре­вёл свой сайт на эту вер­сию. Ну, как пе­ре­вёл, —всё и так ра­бо­та­ло, но зато по­яви­лась воз­мож­ность мно­гое сде­лать оп­ти­маль­нее. На­пи­шу немно­го о том, что же лич­но для меня ин­те­рес­но­го по­яви­лось в Jekyll 1.0.

page.path

Это одна из тех ве­щей, ко­то­рых я ждал от но­вой вер­сии Дже­ки­ла, —я даже в своё вре­мя по­пи­нал лиш­ний раз раз­ра­бот­чи­ков ком­мен­та­ри­я­ми к со­от­вет­ству­ю­ще­му ишью.

У ста­рой вер­сии Дже­ки­ла была одна про­бле­ма —в ин­фор­ма­ции о по­стах и стра­ни­цах от­сут­ство­ва­ла пе­ре­мен­ная с пу­тём к ис­ход­ни­ку. По­че­му это важ­но: для бло­га или сай­та, вы­ло­жен­но­го на Гит­хаб, очень по­лез­ным мо­жет быть предо­став­ле­ние быст­рой воз­мож­но­сти что-то по­пра­вить (форк­нуть). Для это­го мож­но на стра­ни­це раз­ме­стить ссыл­ку либо на­пря­мую на Гит­хаб, либо, на­при­мер, на prose.io или дру­гой по­доб­ный сер­вис. В этой ссыл­ке про­пи­сы­ва­ет­ся путь к ис­ход­ни­ку стра­ни­цы, ко­то­рую нуж­но от­ре­дак­ти­ро­вать; рань­ше в от­сут­ствие со­от­вет­ству­ю­щей пе­ре­мен­ной при­хо­ди­лось та­ки­ми-то ха­ка­ми этот урл со­би­рать вручную.

Те­перь же всё про­сто: в дан­ных стра­ниц и по­стов ста­ла до­ступ­на пе­ре­мен­ная path, в ко­то­рую кла­дёт­ся от­но­си­тель­ный путь к ис­ход­ни­ку. Ура :)

Абсолютные пермалинки

Пер­ма­лин­ки, за­да­ва­е­мые по­стам в YAML-за­го­лов­ках, рань­ше были от­но­си­тель­ны­ми. При этом не было воз­мож­но­сти ука­зать пер­ма­линк уров­нем выше —нель­зя было ис­поль­зо­вать ../ (ну, или я так и не смог най­ти спо­соб, как это мож­но было сде­лать). В но­вой вер­сии Дже­ки­ла те­перь мож­но ис­поль­зо­вать и аб­со­лют­ные урлы. Точ­нее, в 1.0 аб­со­лют­ные урлы надо спе­ци­аль­но вклю­чать в кон­фи­ге ди­рек­ти­вой rel­a­tive_perma­links: false, а с 1.1 это бу­дет ра­бо­тать по умол­ча­нию. Это зна­чит, что, если сей­час вы ис­поль­зу­е­те от­но­си­тель­ные урлы (и не со­би­ра­е­тесь их пе­ре­де­лы­вать на аб­со­лют­ные), надо явно ука­зать rel­a­tive_perma­links: true, что­бы в 1.1 ни­че­го не сло­малось.

Аб­со­лют­ные урлы поз­во­ли­ли мне чуть упро­стить фай­ло­вую струк­ту­ру ре­по­зи­то­рия —вы­не­сти все ин­декс­ные стра­ни­цы в от­дель­ную пап­ку, на­пример.

Изменившийся синтаксис CLI

В но­вом Дже­ки­ле из­ме­нил­ся и фор­мат вы­зо­ва из ко­манд­ной стро­ки, в том чис­ле по­яви­лась воз­мож­ность ис­поль­зо­вать до­пол­ни­тель­ные кон­фиги.

На­при­мер, те­перь, что­бы за­пу­стить сер­вер Дже­ки­ла, ис­поль­зуя и де­фолт­ный кон­фиг _con­fig.yml, и до­пол­ни­тель­ный, ска­жем, _con­fig-dev.yml, нуж­но за­пус­кать его так:

jekyll serve --config _config.yml,_config-dev.yml

Та­ким об­ра­зом, мож­но до­воль­но про­сто на­стро­ить раз­ра­бот­че­ское окру­же­ние, в ко­то­ром, на­при­мер, ме­нять аб­со­лют­ные урлы на ло­каль­ные, вклю­чать отоб­ра­же­ние чер­но­ви­ков и во­об­ще из­ме­нять что угод­но неза­ви­си­мо от про­дакшн-версии.

Сто­ит за­ме­тить, что в Jekyll 1.0 был объ­яв­лен ещё один ключ за­пус­ка: --baseurl, с по­мо­щью ко­то­ро­го мож­но было бы ме­нять пе­ре­мен­ную baseurl, но, во-пер­вых, у меня не по­лу­чи­лось ей вос­поль­зо­вать­ся: Дже­килл во­об­ще от­ка­зы­вал­ся что-либо ге­не­рить с этой из­ме­нён­ной пе­ре­мен­ной, во-вто­рых, всё то же са­мое мож­но сде­лать, ис­поль­зуя до­пол­ни­тель­ный кон­фиг, так что я пока не вижу смыс­ла в клю­че --baseurl.

Черновики

В но­вом Дже­ки­ле по­яви­лась воз­мож­ность ис­поль­зо­вать чер­но­ви­ки. Если со­здать пап­ку _drafts, то по умол­ча­нию её со­дер­жи­мое бу­дет иг­но­ри­ро­вать­ся, но, если за­пу­стить Дже­кил с клю­чом --drafts, со­дер­жи­мое этой пап­ки бу­дет рас­по­зна­но по­чти ана­ло­гич­но со­дер­жи­мо­му _posts. По­лез­ное ис­клю­че­ние: в та­ких по­стах не нуж­но ука­зы­вать дату, та­ким об­ра­зом для пуб­ли­ка­ции нуж­но бу­дет все­го лишь пе­ре­ме­стить и пе­ре­име­но­вать файл со ста­тьёй.

Я сам пока та­кие чер­но­ви­ки не ис­поль­зую, но, воз­мож­но, начну.

Остальное

В чен­дж­ло­ге мож­но про­чи­тать обо всём, что ещё по­ме­ня­лось, там до­воль­но мно­го все­го, но боль­ше ни­че­го осо­бо кри­тич­ного.

В об­щем, я пе­ре­шёл на но­вый Дже­кил, всё ра­бо­та­ет, всем ре­ко­мендую.