О проекте
Этот блог — обновлённая и самостоятельная версия блога «Заметки разработчика». Я отказался от Blogger и WordPress, потому что их шаблонизаторы не позволяли внедрять кастомные компоненты интерфейса, а типичный workflow мешал контролировать версии контента через Git.
Вместо переноса архива было принято стратегическое решение: оставить старый блог как архивную версию, а новую платформу посвятить исключительно свежим и технологически актуальным материалам. Это позволило не тратить время на рефакторинг устаревшего кода, а сосредоточиться на внедрении современного стека с нуля. Моими ключевыми требованиями были: максимальная скорость, безопасность, контроль над развертыванием и простота поддержки. Естественным выбором для выполнения этих условий стала архитектура на основе генераторов статических сайтов (Static Site Generators, SSG).
При таком подходе HTML-страницы генерируются один раз во время сборки, что полностью устраняет необходимость в серверной обработке запросов и базе данных. Среди множества генераторов (Jekyll, Hugo, Gatsby) я искал инструмент, который бы сочетал эту простоту архитектуры с полной свободой в настройке и не навязывал бы свою экосистему или язык шаблонов. Таким инструментом оказался Eleventy (11ty). Его главное отличие — агностицизм: он работает с любыми шаблонизаторами и структурами данных, не ограничивая разработчика. Благодаря этой минималистичной философии, гибкости и скорости, в отличие от «тяжелых» фреймворков, он не навязывает свою структуру, позволяя создавать архитектуру, оптимальную для конкретного проекта. Это дало возможность:
- использовать Nunjucks для компонентного и логичного построения шаблонов,
- применять Markdown для написания статей, сохранив чистоту и портируемость контента,
- легко настраивать сложные взаимосвязи: коллекции статей, теги, автоматические списки связанных материалов,
- использовать Sass для стройной и мощной системы стилей.
В результате для вас, как для читателя, это означает:
- Мгновенную загрузку страниц без серверных задержек.
- Читаемый код с качественной подсветкой синтаксиса.
- Удобную навигацию по темам и связанным материалам.
- Стабильность: статические файлы практически не подвержены сбоям, а инфраструктура обеспечивает доступность ~99,9%.
Этот подход также позволил в процессе разработки решить ряд типовых задач, результаты которых могут пригодиться и другим разработчикам.
Инструменты с открытым кодом, созданные для проекта
Результатом работы стали несколько опубликованных npm-пакетов и плагинов для Eleventy:
- eleventy-plugin-external-links – автоматически добавляет
target="_blank"иrel="noopener noreferrer"(еслиnofollowне является обязательной политикой сайта) илиrel="nofollow noopener noreferrer". - eleventy-plugin-codepen – короткий синтаксис для встраивания пенов Codepen прямо из Markdown.
- eleventy-plugin-link-preview – генерирует превью-карточки для ссылок на лету.
- plural-ru – удобное склонение русских существительных после чисел.
Это не только улучшает данный блог, но и позволяет делиться готовыми решениями с сообществом. Все пакеты доступны на GitHub и npm. Если они вам полезны — ставьте звёзды на GitHub, это лучшая благодарность. Предложения по улучшению и багрепорты, как всегда, принимаются в Issues.
Присоединяйтесь к нашему сообществу разработчиков, где уже обсуждаются эти и другие темы:
- Telegram-канал для анонсов и коротких заметок: @dev_notes_ru,
- Группа ВКонтакте для обсуждений: «Заметки разработчика»
- Канал в Дзене для широкой аудитории: «Заметки разработчика»,
- Страница на Boosty для материальной поддержки проекта: boosty.to/dev_notes
Поддержать проект
Каждое пожертвование — это сигнал о важности темы и реальный вклад в развитие. Средства помогают уделять проекту больше времени, готовить более детальные исследования и практические примеры и улучшать инфраструктуру сайта для вашего удобства.