mirror of
https://github.com/He4eT/oddsquat.git
synced 2026-05-05 04:47:25 +00:00
unifiy address format
This commit is contained in:
parent
e9b5e2ec92
commit
6a36004011
12 changed files with 32 additions and 29 deletions
6
src/pages/posts/2020.md
Normal file
6
src/pages/posts/2020.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
|
||||
layout: redirect
|
||||
redirectTarget: '/posts/#2020'
|
||||
|
||||
---
|
||||
91
src/pages/posts/2020/initial_post.md
Normal file
91
src/pages/posts/2020/initial_post.md
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
---
|
||||
|
||||
layout: post
|
||||
|
||||
lang: 'ru'
|
||||
date: '2020-11-08'
|
||||
|
||||
year: '2020'
|
||||
section: 'posts'
|
||||
|
||||
title: 'initial post'
|
||||
description: 'Первый пост в этом фэнзине, рассказывающий о его внутреннем устойстве'
|
||||
|
||||
---
|
||||
|
||||
# Initial Post
|
||||
|
||||
**Oddsquat** — мой маленький личный фэнзин про эксперименты, код и прочий киберпанк. Обычно такие сайты называются блогами, но в слове «фэнзин» есть приятный отголосок панк-культуры и её неотъемлемой DIY-составляющей.
|
||||
|
||||
Основные причины, побудившие меня на создание своего уютного куска интернета:
|
||||
|
||||
- Хочется писать буквы, а возвращаться в ЖЖ не хочется.
|
||||
- Фронтендер без портфолио — подозрительный фронтендер.
|
||||
- Современный веб — памятник оверинженирингу. Лендинг с двумя абзацами текста, тремя картинками и мегабайтным бандлом из модных библиотек — одновременно безумие и норма в текущих реалиях. Мне больно на это смотреть, поэтому пришлось строить себе персональный оазис.
|
||||
|
||||
В первом посте хочется рассказать, какие инструменты были использованы для создания этого сайта, какие решения были приняты и почему.
|
||||
|
||||
## Название
|
||||
|
||||
Я вырос в девяностые, поэтому квикимобиль, бэтпещера и пузиблинчики для меня не пустой звук, а образец системы нейминга. Вот, например, у меня есть <a href="https://github.com/He4eT/oddkb" target="_blank">oddkb</a>.
|
||||
|
||||
Свою квартиру с момента заселения я называю oddsquat (даже локация в Foursquare была), так пусть теперь и мой форпост в сети называется так же.
|
||||
|
||||
Назвал сайт в честь SSID домашнего Wi-Fi, потому что не смог придумать более достойного названия :)
|
||||
|
||||
## Платформа
|
||||
|
||||
Для статического сайта не нужен серверный код, поэтому WordPress и прочие CMS в качестве платформы я даже не рассматривал.
|
||||
|
||||
Про генераторы статических сайтов раньше слышал, но подробно не рассматривал. Их оказалось так много (тут есть [длинный список](https://jamstack.org/generators/)), что даже страшно.
|
||||
|
||||
Посмотрев на самые популярные решения, я понял, что как-то неправильно понимаю значение термина «генератор статических сайтов», потому что все хором предлагают мне сгенерировать Progressive Web Application из React-компонентов с импортом данных из GraphQL-сервера вместо россыпи HTML-документов.
|
||||
|
||||
Уверен, что уютный бложик — это точно не Web Application, а от Progressive в данном случае всем будет только хуже: искусственные трудности с роутингом, серверным рендерингом и сохранением позиции скрола успешно решены, когда каждая страница — это отдельный документ. Браузеры восхитительно умеют работать с HTML-документами!
|
||||
|
||||
После непродолжительных поисков был найден [Nanogen](https://doug2k1.github.io/nanogen/), который делает именно то, что нужно, и не похож на космический корабль:
|
||||
|
||||
- Умеет Markdown и HTML (ejs);
|
||||
- Имеет очень гибкую систему шаблонов;
|
||||
- Не выходит за рамки стека Node.js.
|
||||
|
||||
Да, в репозитории проекта давно не было коммитов, но хочется думать, что это по причине надёжности и закончености :)
|
||||
|
||||
## Типографика
|
||||
|
||||
Я люблю текст и не умею в дизайн. Oddsquat — проект про буквы, значит, буквы должны быть красивыми и удобными.
|
||||
|
||||
К теме типографики в вебе я подходил несколько раз, но безуспешно. Не получается структурировать и сохранить в голове все эти сакральные знания про кернинг и засечки, потому что не вижу никакой связи между теорией и практикой.
|
||||
|
||||
Очередное погружение системных знаний опять не принесло, зато принесло удобный инструмент: [Typography.js](https://github.com/KyleAMathews/typography.js).
|
||||
|
||||
Этот тулкит позволяет, покрутив ручки [интерактивного демо](http://kyleamathews.github.io/typography.js/), получить новое, но при этом гармоничное сочетание абзацев, заголовков и отступов между ними.
|
||||
Идеальный инструмент для тех, кто хочет поиграть со шрифтами, но не до конца понимает, как.
|
||||
|
||||
Авторы настолько заботливые, что даже подключают `normalize.css` при генерации своих стилей, снимая с вас ещё одну головную боль. Благодаря им весь мой дополнительный css для стилизации сайта уложился в сто строк кода и хорошо работает в любых браузерах и на любых экранах.
|
||||
|
||||
Со шрифтами всё просто:
|
||||
- **Open Sans** для текста и **Open Sans Condensed** для заголовков, потому что мне нравится слово «Open»;
|
||||
- **Fira Code** для кода, потому что лигатуры (`-->`, `!==`) — это красиво.
|
||||
|
||||
## Аналитика
|
||||
|
||||
Я долго думал, можно ли собирать аналитику просмотров, или нужно играть в идеальный веб до конца и полностью отказаться от слежки за пользователями. С одной стороны высокая идея, с другой — любопытство.
|
||||
|
||||
После непродолжительного исследования пришёл к выводу, что Метрика и Аналитика от поисковых гигантов мне точно не подходят, а вот автор [GoatCounter](https://goatcounter.com/) полностью понимает мою боль.
|
||||
|
||||
[Why I made GoatCounter](https://www.goatcounter.com/why/) — отличный пост, где создатель сервиса ответил на все вопросы, которые у меня к нему возникли. Вот, например, замечательный абзац про причины бесплатности начального тарифа:
|
||||
|
||||
> I think it’s important to make the barrier of entry for software like this low as feasible to make actual meaningful inroads to “de-Google-fi” the internet a bit, and make pervasive tracking less common. Making it freely available (for personal use) is part of that.
|
||||
|
||||
## Содержание
|
||||
|
||||
Самое главное. С формой и техническими вопросами всё ясно, но что же я буду складывать внутрь? Пока план такой:
|
||||
|
||||
- Я довольно часто изучаю штуки из разных областей и хочу описывать эти опыты. Вот, например, описал создание легковесного сайта.
|
||||
- Мне нравится настраивать инструменты и рассказывать об этом.
|
||||
- Есть несколько почтовых рассылок, которые я очень хочу начать переводить, чтобы начать читать.
|
||||
|
||||
Признаюсь, что был очарован сайтом от ребят из команды [Hundred Rabbits](https://100r.co/site/home.html) и захотел такое же, только своё.
|
||||
|
||||
Stay tuned!
|
||||
75
src/pages/posts/2020/typographic_linter.md
Normal file
75
src/pages/posts/2020/typographic_linter.md
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
---
|
||||
|
||||
layout: post
|
||||
|
||||
lang: 'ru'
|
||||
date: '2020-11-18'
|
||||
|
||||
year: '2020'
|
||||
section: 'posts'
|
||||
|
||||
title: 'typographic linter'
|
||||
description: 'Prettier для текста. Автоматизация рутинной типографики.'
|
||||
|
||||
---
|
||||
|
||||
# Типографика как code style
|
||||
|
||||
## Основы
|
||||
|
||||
Для того, чтобы тексты было удобно читать и неудобно писать, человечество придумало разные правила. С орфографией и пунктуацией всё понятно, но про типографические правила говорят редко.
|
||||
|
||||
Типографика — набор правил вёрстки текста, призванных повысить эстетику и читаемость. Именно в таком порядке, потому что люди сначала замечают текст и только потом начинают читать.
|
||||
|
||||
Про шрифты, отступы и прочие кернинги в этот раз говорить не будем, потому что мне понравилось крутить ползунки в [Typography.js](https://github.com/KyleAMathews/typography.js) и не переживать об эстетике.
|
||||
|
||||
Разговор пойдёт про висячие предлоги и прочие тире с кавычками.
|
||||
|
||||
## Проблематика
|
||||
|
||||
Сайты в интернете делятся на два типа: те, кто запаривается за подготовку текстов, и те, кто забивает. [Meduza.io](https://meduza.io/) расставляет неразрывные пробелы в текстах новостей, а [rbc.ru](https://www.rbc.ru/) — нет. Это не единственное отличие этих новостных порталов, но очень знаковое, как мне кажется.
|
||||
|
||||
### Нужно забить!
|
||||
|
||||
Я прекрасно понимаю тех, кто не запаривается. Часть не знает, часть забивает ([Вастрик](https://vas3k.ru/), например), а у остальных user-generated content, который довольно рискованно автоматически форматировать. Аргументы для каждой группы:
|
||||
|
||||
- И так всё понятно.
|
||||
- Условный Markdown со спецсимволами теряет половину обаяния.
|
||||
- Правильные автоматические кавычки-ёлочки не сделают из комментария в Facebook литературный памятник, зато случайный японский эмотикон может разрушить цивилизацию: <br>
|
||||
`Прости ^_^" Забыл купить "Доширак"` превращается в <br>
|
||||
`Прости ^_^« Мы испортили »Твой текст«`.
|
||||
- У студентов должен быть отдельный курс по расшифровке смайликов и компилированию C++ из чатов. Бонусный аргумент.
|
||||
|
||||
### Нужно запариться!
|
||||
|
||||
Википедия утверждает, что [типографика](https://ru.wikipedia.org/wiki/%D0%A2%D0%B8%D0%BF%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0) — это «свод строгих правил», но список не показывает и ссылок не даёт. Стандартом де-факто в рунете являются правила из [§ 62 «Ководства»](https://www.artlebedev.ru/kovodstvo/sections/62/). С ними или соглашаются, или [громко спорят с некоторыми](https://medium.com/@kapanaga/62-6c664105dd30).
|
||||
|
||||
Пусть мне и не нравится полное отсутствие у Лебедева обоснований или ссылок на источники, но самому погружаться в историю вопроса и читать какой-нибудь авторитетный [«Справочник издателя и автора»](https://www.artlebedev.ru/izdal/spravochnik-izdatelya-i-avtora-2017/) страшно: в нём 1010 страниц.
|
||||
|
||||
Авторы, которые хотят радовать читателей с помощью тире, обычно не пишут в блокноте (мне так кажется) или носят свои тексты из блокнота в [Типограф](https://www.artlebedev.ru/typograf/) от Артемия Лебедева, а потом назад. Про первых я ничего не знаю, а ко вторым сам отношусь, когда нужно причесать один или два текста.
|
||||
|
||||
У Типографа и аналогичных веб-сервисов есть фундаментальные проблемы:
|
||||
|
||||
- Копировать текст из редактора в браузер, а потом назад — неудобно.
|
||||
- Сервис может быть офлайн в неподходящий момент, я тоже.
|
||||
- Сервис может читать мои тексты до публикации.
|
||||
- Некоторые тексты никому нельзя показывать (по разным причинам).
|
||||
|
||||
Признаюсь, что раньше я ни разу не думал об использовании типографа вне браузера, но как только образовалась перспектива заниматься этим на постоянной основе, стало понятно, что копировать текст из редактора в браузер и назад — не самое оптимальное решение и нужно что-то с этим делать.
|
||||
|
||||
## Решение
|
||||
|
||||
Очевидный вариант — научить текстовый редактор автоматически расставлять неразрывные пробелы, исправлять мелкие опечатки, приводить кавычки к правильному виду, заменять дефисы на тире в нужных местах и многое другое. <br>
|
||||
Вот [плагин для VS Code](https://marketplace.visualstudio.com/items?itemName=rusnasonov.vscode-typograf).
|
||||
|
||||
Мне больше нравится другой подход. Мы уже давно используем линтеры для языков программирования, давайте использовать их и для контента.
|
||||
|
||||
Конечно, я не первый, кто так подумал. Плагин выше построен на основе замечательной библиотеки [typograf](https://github.com/typograf/typograf) и прямо в README.md файле этого проекта можно найти ссылки на плагины для Babel, Gulp и Grunt.
|
||||
|
||||
Библиотека очень гибко настраивается, содержит [сотню готовых правил](https://github.com/typograf/typograf/blob/dev/docs/RULES.ru.md) и позволяет легко добавлять кастомные.
|
||||
|
||||
В комплекте есть cli-утилита, которая умеет читать файлы, форматировать их и выводить результат в терминал, но почему-то не умеет файл перезаписывать. Поэтому для своих целей я написал небольшой скрипт, который, получив локаль и имя файла, изменяет его содержимое. С правилами тоже пришлось немного поиграть, потому что дефолтные принимают списки за диалоги и ломают markdown-разметку.
|
||||
|
||||
Теперь для расстановки всех хитрых значков не нужно ходить в браузер, достаточно просто запустить скрипт, посмотреть с помощью `git diff` на результат и закоммитить нужные изменения.
|
||||
|
||||
Красивые тексты лучше некрасивых.
|
||||
Loading…
Add table
Add a link
Reference in a new issue