Исходники этого блога

Теперь можно посмотреть все статьи на сайте в их в исходном формате. Исходники выложены в открытом доступе: https://github.com/zag/zag.ru

В том же репозитории выложил дамп своих записей из friendfeed.com, преобразованный в формат pod6. В таком виде все заметки автоматически стали частью блога.

Интересное применение нашел блоку =comment - храню в нем резервную копию заметки в исходном формате. Вдруг захочется что-то поменять в будущем - исходник будет тут же.

Структура репозитория:

   ├── README
   ├── config.js
   ├── pages
   ├── pub
   ├── www
   └── zag@friendfeed.com

Где:

Имя Назначение / содержимое
config.js Конфигурационный файл для сайта. Содержит некоторую персональную информацию об авторе, а также данные для полей описания и заголовка сайта.
pages Страницы сайта. Например: /pages/about
pub Основной контент сайта: Посты, Заметки.
www Каталог со статикой. Он нужен, чтобы публиковать на сайт дополнительные файлы. Его содержимое - корневой каталог сайта.
zag@friendfeed.com Экспортированные заметки из friendfeed

Опишу подробнее типы контента.

Пост
Запись в блоге. Содержит дату публикации, тэги, раздел описания и непосредственно содержимое записи. При выводе списка записей выводится описание, а при переходе по ссылке - открывается полное содержимое. Ссылка на Пост формируется на основе даты публикации.
Заметка
Заметка представляет собой короткую текстовую запись. Очень похожа по структуре на Пост, но при выводе списка записей отображается целиком. Чтобы отличить ее от Поста указывается атрибут :type<note> в заголовке файла. Все экспортированные из friendfeed записи - заметки.
Страница
Страница - это тот же Пост, но отличается типом и указанием статичного адреса:
:type('page') :publishUrl('/pages/about')
Раздел с кратким описанием - игнорируется. В RSS файл Страницы не попадают.

Структура репозитория условна. Файлы могут быть перемешаны и располагаться где угодно. При сборке сайта содержимое всех каталогов сканируется на наличие .pod6 файлов и они обрабатываются без каких-либо условий их размещения. Это дает возможность гибко менять структуру каталогов, а также подключать внешние источники записей.

Единственное исключение - каталог www. Его содержимое явно копируется в корневой каталог сайта.

Обновление блога происходит при любом изменении в репозитории. После появления actions стало возможным собирать блог на github и публиковать готовый docker образ на хостинге.

Вот вкратце и все про блог на данном этапе его существования.