Прокачиваем бложек
Сегодня сделал несколько важных первых изменений во внешнем виде бложичка: подправил кое-что по типографике и включил рендеринг математических формул, как вот такая, например: Кому интересно в подробностях — добро пожаловать под кат!
На заметку: этот блог работает на статическом генераторе Hexo с замечательной бесплатной темой Tranquilpeak. Такую комбинацию я выбрал исключительно потому, что хотел собрать нечто достаточно функциональное в короткое время и с возможностью допиливать по мере необходимости. Статических генератор Hexo работает на Node.js, а значит, мне не составит труда разобраться в его работе и допилить то, что требуется, а тема мне просто понравилась своим внешним видом и функциональностью. Однако, и над ней пришлось немного поработать.
Содержание
Трудности перевода
Первое, что можно заметить в оригинальной теме — слабая поддержка русского языка. Например, шрифты основного текста не содержат кириллического набора, так что русский текст выглядит какашечкой:
Очень быстро получилось найти место в SCSS темы, где импортируются шрифты, выглядело оно примерно таким образом:
Очевидно, шрифты подключаются через сервис Google Fonts, в данном случае используется шрифт Merriweather, у которого есть подключаемый кириллический набор — ура!
Если кто-то не знает, то исходный текст для подключения гугель-шрифта через @font-face
можно получить, просто пройдя по ссылке, которую сервис предлагает для импорта через тег link
.
Прекрасно, теперь у нас есть поддержка кириллических символов, но текст все еще выглядит как-то не очень:
Ну, мне короче, не нравилось. Так что я убавил насыщенность шрифта до 100 для основного текста (соответствует начертанию Light) и расширил ширину блока основного контента с
750px
до 900px
. Последнее я сделал потому, что примерная длина строки, комфортной для чтения, в русском и английском языке различается: в английском языке это 7-9 слов, в русском — 8-12.
Теперь текст выглядит так, как он выглядит. Решил пока не менять гарнитуру для основного текста — она пока меня вполне устраивает, плюс, пришлось бы (по-хорошему) подбирать новые шрифтовые пары. Возможно, в будущем я поменяю стили еще раз, если захочется, или если кто-нибудь, сведущий в типографике, скажет мне, что я мудак и все делаю не так. Посмотрим.
Фильтр для типографики
Еще одна вещь, которая меня не устраивала — общая неопрятность текста. В моем бложике собрались все мыслимые грешки веб-типографики:
- дефис вместо длинного тире;
- немецкие кавычки-лапки вместо французских «елочек»;
- обычные пробелы с предлогами, союзами и тире;
ну и всякое такое разное.
Все эти проблемы обычно решаются автоматическими тулзами, которые пробегаются по тексту и исправляют все неправильные знаки, на правильные — типограф студии Лебедева — отличный пример такой тулзы.
Однако каждый раз прогонять текст через веб-интерфейс ручками — это отстой и говно, у меня же есть статический генератор, который должен делать это за меня! Нужно только написать фильтр, который будет проходить по текстам моих постов и наводить красоту. Поскольку я использую генератор, написанный на JavaScript, я могу использовать любую готовую библиотечку-типограф из npm
— Typograf отлично для этого подошел.
Установив эту библиотечку в Tranquilpeak я без труда написал нужный фильтр:
Затем сконфигурировал всю эту муть в _config.yml
:
Теперь я даже могу замутить «висячую пунктуацию», как на Medium, если время будет! Крутатенюшки!
Тег для математики
Цель простая — сделать так, чтобы разметка на языке TeX вида:
|
|
превращалась в читаемую формулу вида:
и желательно, без лишнего участия с моей стороны. Инлайновые формулы, вроде тоже, желательно должны работать.
Это можно реализовать с помощью дополнительного тега, регистрацию которых в Hexo несложно сделать. Единственное условие — к теме добавится еще одна новая зависимость: библиотека KaTeX, разработанная Khan Academy, которая будет преобразовывать разметку на языке TeX в читабельные формулы.
Теги объявляются в соответствующей папочке нашей темы:
Наш тег отправляет одним необязательным параметром режим отображения: если передать значение true
, то формула будет отрендерена с центрированием и как блок, если false
или ничего — то прямо в строке.
Теперь TeXовые формулы будут на стадии генерации превращены в HTML-разметку. Осталост только подключить стили (ссылка на них идет в комплекте с KaTeX), и можно пользоваться.