Если ты собрался сделать небольшой сайт или завести блог, не спеши строить в голове схему из десятка разных технологий. Возможно, всё, что тебе нужно, — это местечко для статических страниц с доступом по FTP. Специальная CMS будет делать всю работу на твоем компьютере, а ты сможешь создавать и редактировать посты как обычные текстовые файлы, лежащие диске.

Как человеку, который застал примитивный веб-дизайн девяностых, мне странно видеть, что теперь для любого сайта ставят полноценный движок. WordPress, Drupal, Joomla и прочие популярные CMS рассчитаны на тысячи страниц и поддержку ресурса силами целой команды. Но зачастую их используют, чтобы сделать персональный блог или даже сайт-визитку. Стоит ли городить огород, если всё, что нам нужно — это публиковать статический контент?

Если избавиться от движка и класть на сервер только HTML, то это значительно снизит потребление ресурсов, сделает сайт быстрее, ну и, конечно, упростит (вернее, упразднит) настройку и обновление серверного софта. Можно будет спокойно переходить на хостинг попроще и экономить деньги, а в случае чего в момент мигрировать на другую площадку. Ну и, конечно, такой сайт невозможно будет взломать, ведь взламывать в нем нечего.

Если ты вдруг подумал, что я предлагаю тебе уподобиться пещерным людям и вручную делать каждый .html, то ты ошибаешься. Современный способ иной: запустить CMS на локальной машине, а на сервер выкладывать только статические файлы. Это оставляет возможность пользоваться шаблонизатором: если тебе понадобится поменять что-то в теме, то править каждую страницу не придется.

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

В 2013 году в «Хакере» уже публиковалась подборка статических блогогенераторов, статья называлась «Просто пиши». Однако с тех пор прошло много времени и не все перечисленные проекты до сих пор поддерживаются. К тому же в этом классе программ появились новые лидеры. Среди движков на Node.js популярен Hexo, а поклонникам Ruby рекомендую глянуть на Jekyll.

Здесь же мы рассмотрим работу с движком Lektor, который написан на Python и сочетает в себе простоту, удобство и расширяемость, а также обладает вебовой админкой. Запустив локальный сервер, ты сможешь просматривать и редактировать сайт так, будто ты работаешь с полноценной CMS. Закончив редактировать, ты одной командой сможешь синхронизировать изменения с копией на сервере.

Lektor — это новый проект Армина Ронахера, автора популярного минималистичного веб-фреймворка Flask и языка шаблонов Jinja2. Собственно, в Lektor, как и во Flask, используются шаблоны Jinja, и именно в них — вся сила «Лектора».

 

Ставим Lektor

Команда установки Lektor написана прямо на главной странице сайта. Если у тебя macOS или Linux, то ты можешь просто скопировать ее в командную строку и запустить:

curl -sf https://www.getlektor.com/install.sh | sh

Аналогичная команда есть и для Windows, она заметно длиннее.

Девиз Lektor: «Реализовать идеи просто, как пожарить яйцо», отсюда и яичница на главной странице
Девиз Lektor: «Реализовать идеи просто, как пожарить яйцо», отсюда и яичница на главной странице

Ещё тебе нужно убедиться, что в системе есть Python 2.x и библиотека Imagemagick. В Ubuntu все зависимости ставятся одной командой:

sudo apt-get install python-dev libssl-dev libffi-dev imagemagick

В Windows и macOS для установки Imagemagick тебе сначала понадобится поставить пакетный менеджер — Chocolatey или Homebrew соответственно. Кстати, для macOS у Lektor есть десктопное приложение, которое само установит тебе утилиты командной строки — нужно лишь выбрать пункт меню Install Shell Command.

Если же ты собираешься модифицировать сам Lektor, то разработчики рекомендуют ставить версию с GitHub и создать виртуальное окружение (в других случаях оно не нужно). Руководство ты найдешь на странице проекта.

 

Разбираем простой проект

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

lektor quickstart

Тебе зададут несколько вопросов: как будет называться проект, как написать твое имя, какой каталог использовать и создать ли шаблон для блога.


В последнем случае к тестовому проекту будет добавлена страница с постами и шаблон для них. Рекомендую согласиться — лишние примеры не повредят.

WWW

Сайт getlektor.com — отличное пособие по Lektor сразу в двух смыслах: во-первых, там есть документация, во-вторых, этот сайт сам сделан на Lektor и в нем использованы некоторые неочевидные трюки. Так что в его исходниках всегда можно что-нибудь подсмотреть.

Чтобы глянуть, на то, что у тебя вышло, пиши lektor server. Запустится локальный сервер, при помощи которого можно тестировать сайты. Обычно он доступен по адресу http://127.0.0.1:5000/.

Вот, как будет выглядеть тестовая страница.


Обрати внимание на карандаш в правом верхнем углу — это ссылка на редактирование страницы в админке.



Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


11 комментарий

  1. Аватар

    http://android-tools.ru

    08.08.2017 at 14:02

    А рекламу от гугла она умеет?

  2. Аватар

    pancho

    08.08.2017 at 18:10

    Для сайтов визиток наверное подойдёт, но напильником пилить нужно много

  3. Андрей Письменный

    Андрей Письменный

    08.08.2017 at 18:51

    Для сайтов-визиток вообще ничего особенно делать не нужно. Для проектов масштаба условной домашней странички или блога — штатными инструментами без всяких напильников (если под напильником подразумевается необходимость лезть внутрь движка). Для чего-то более стложного/странного — по ситуации.

  4. Аватар

    pancho

    08.08.2017 at 22:57

    Под напильником я подразумевал доработку стилей. Приведённые на картинках примеры застряли в эпохе доткомов.
    Про условную домашнюю страничку соглашусь… но я бы не стал такую никому показывать 🙂 только для себя

    Подумалось об обучающей пользе инструмента… в школе для не сильно искушённой информатички или в университете когда делаешь курсовую в последнюю ночь.

  5. Аватар

    jura12

    08.08.2017 at 23:15

    вообще-то сохраняешь файл в либреофисе в виде хтмл вот и сайт готов. Dreamweaver раньше такое делал.

  6. Аватар

    jura12

    08.08.2017 at 23:31

    попробовал в manjaro linux. работает. понравилось. сайт для роутера или для технического сайта пойдет.

  7. Аватар

    Themistocles

    16.08.2017 at 20:57

    Очень мило, спасибо за примеры, надо будет погонять.

  8. Аватар

    bars

    13.10.2017 at 21:13

    В блоке [fields.picture] наверное не name=string, а type=string…

  9. Аватар

    jean

    28.11.2017 at 12:23

    Андрей, спасибо!
    Статья просто супер!

  10. Аватар

    jean

    27.12.2017 at 11:52

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

    Единственное обременение — придется поучить язык шаблонов Jinga.

    И круто, что из коробки есть rsync — очень удобно, т.к. позволит заливать дельты изменений на боевой статический сервер. Соответственно экономия трафика.

Оставить мнение

Check Also

Хроники битвы при Denuvo. Как «непробиваемая» игровая защита EA Origin оказалась пробиваемой

Защита от пиратства Denuvo пришла на смену SecuROM и связана с одним действующим лицом – Р…