Маркдауним YAML для Jekyll

Пока я всё ни­как не до­пи­шу ка­кой-либо из длин­ных по­стов, по­про­бую вы­ло­жить несколь­ко мел­ких за­ме­ток. Нач­ну с неболь­шо­го трю­ка для Jekyll.

Для на­строй­ки ме­та­дан­ных (за­го­ло­вок, лей­а­ут, дата, всё та­кое) в Jekyll ис­поль­зу­ет­ся «YAML front mat­ter» —опи­са­ние всех этих дан­ных в спе­ци­аль­но оформ­лен­ном коде, ко­то­рый обя­за­тель­но дол­жен идти в на­ча­ле фай­ла. Jekyll в прин­ци­пе «ви­дит» толь­ко те стра­ни­цы, у ко­то­рых этот за­го­ло­вок есть, по­это­му YAML front mat­ter —до­воль­но важ­ная часть.

Обыч­но та­кой за­го­ло­вок вы­гля­дит при­мер­но так:

---
layout: docs
title: Resources
prev_section: sites
---

Ка­за­лось бы, всё ок. Но! Раз я ис­поль­зую Jekyll на Гит­ха­бе, мой пер­фек­ци­о­низм тре­бу­ет, что­бы ис­ход­ник стра­ни­цы с та­ким за­го­лов­ком вы­гля­дел иде­аль­но. А Гит­хаб по умол­ча­нию по­ка­зы­ва­ет не ис­ход­ный код .md-фай­лов, а сра­зу рен­де­рит их. Вот, на­при­мер, как вы­гля­дит код выше, отрен­де­рен­ный в марк­дауне:

Плохой код

Не очень чи­та­е­мо, прав­да? И по­след­няя строч­ка, вне­зап­но, ста­но­вит­ся за­го­лов­ком (если знать син­так­сис марк­дау­на, то, ко­неч­но, не вне­зап­но) —это вряд ли то, чего мы хо­тели.

Всё это дело лег­ко ис­пра­вить: до­ста­точ­но из­ме­нить стиль на­пи­са­ния YAML-за­го­лов­ков. Нуж­но про­сто до­ба­вить воды, то есть пу­стых строк. Вот так:

---

layout: docs

title: Resources

prev_section: sites

---

Та­кой YAML-за­го­ло­вок бу­дет уже вы­гля­деть при­ем­лемо:

Хороший код

Вме­сто за­го­лов­ка мы по­лу­ча­ем хо­ро­шо от­де­лён­ный от ос­нов­но­го кон­тен­та по­ста YAML-за­го­ло­вок, каж­дая стро­ка ко­то­ро­го пре­вра­ща­ет­ся в па­раграф.

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

Я лишь жа­лею, что син­так­сис YAML слиш­ком строг, и нель­зя до­ба­вить в на­ча­ло каж­дой стро­ки или от­сту­пов, что­бы весь этот блок вы­гля­дел как ку­сок кода, или де­фи­сов, что­бы он вы­гля­дел как спи­сок. И, если кто при­ду­ма­ет как ещё мож­но улуч­шить чи­та­е­мость кода YAML-за­го­лов­ков, не стес­няй­тесь, пи­ши­те issues.