Лента блога в YAML формате

Вместо ручного редактирования rss.xml ленты блога в формате RSS, теперь редактирую ленту в формате YAML. В файле index.yaml содержится вся лента блога, при изменении этого файла происходит публикация последних 10 записей в rss.xml и остальных записей в archive.xml.

YAML это удобный для чтения и написания формат структурированных данных, который можно преобразовать в тот же XML, либо обрабатывать напрямую.

Лента на YAML по отношению к ленте в RSS формате, это как Markdown по отношению к HTML, печатать текст в этом формате гораздо удобнее, чем на более машинном XML.

Сравнительный пример одной и той же записи:

В XML формате:

<item>
  <pubDate>Mon, 30 Jul 2012 23:18:42 +0400</pubDate>
  <title>Подставка для рук в CatBoard</title>
  <description><![CDATA[<p>Так как блоки клавиатуры расположены с некоторым расстоянием друг от друга, и на небольшом нетбуке руки вываливаются за нетбуковскую подставку для рук, то было решено сделать подставку в самой клавиатуре...</p>
  <p><img src=»http://ibnteo.klava.org/keyboard/catboard44_s.jpg»/></p>]]></description>
  <link>http://ibnteo.klava.org/keyboard/catboard44</link>
  <guid isPermaLink=»true»>http://ibnteo.klava.org/keyboard/catboard44</guid>
  <category>keyboard</category>
  <category>catboard</category>
  <category>fablab</category>
</item>

В YAML формате:

-
  date: 30.07.2012 23:18:42
  title: Подставка для рук в CatBoard
  description: |
    <p>Так как блоки клавиатуры расположены с некоторым расстоянием друг от друга, и на небольшом нетбуке руки вываливаются за нетбуковскую подставку для рук, то было решено сделать подставку в самой клавиатуре...</p>
    <p><img src=»http://ibnteo.klava.org/keyboard/catboard44_s.jpg»/></p>
  link: keyboard/catboard44
  category: keyboard, catboard, fablab

Здесь не полностью автоматическое преобразование, мой скрипт после получения через библиотеку данных в виде массива, преобразовывает дату из свободного формата в необходимый для RSS формат RFC-2822, добавляет тег <guid>, сам разбивает теги, перечисленные через запятую.

Обработчиков YAML формата достаточно много, для многих языков программирования, список есть на официальном сайте — yaml.org в блоке Projects.

П.С.: список тегов можно поместить в квадратные скобки, и тогда они будут автоматически укладываться в массив:

  category: [keyboard, catboard, fablab]

24 сентября 2012

yaml blog