Переезд заметок с Tilda на Github
Июль 2018
Написание заметок помогает структурировать мысли в голове и дает возможность донести свою точку зрения окружающим.
Созидательный процесс намного продуктивней, если используются удобные инструменты, но найти удобный инструмент для
написания небольших заметок и размещения их в сети оказалось непросто.
### Шаг первый – Jekyll [Jekyll](https://jekyllrb.com/) – это генератор статических сайтов, который превращает [Markdown](https://en.wikipedia.org/wiki/Markdown) в HTML-страницы. Прямо сейчас вы читаете текст, написанный с помощью Markdown. Когда я пишу в Markdown, хочется **скорее закончить заметку**. Меня раздражает отсутствие быстрой обратной связи о том, как заметка будет выглядеть в конечном итоге. У Jekyll есть хорошие фичи: категории, черновики, тысячи тем оформления, но эти фичи для решение моей задачи – написания заметок – не нужны! Не вижу смысла использовать кухонным комбайн там, где отлично справится обычная тёрка. После использования Jekyll у меня появилось основное требование к инструменту для заметок – наличие быстрой обратной связи о конечном виде заметки.
Шаг второй – Tilda
Tilda – это платформа для создания веб-сайтов с помощью готовых блоков. Tilda
позволяет сразу видеть результат своего труда. Похоже на идеальный инструмент для меня! Кроме готовых блоков в Tilda
есть готовые шаблоны, в том числе и для блогов. К сожалению, все шаблоны блогов сделаны "современно" и как под
копирку: огромная картинка и шрифт в заголовке, огромное расстояние между текстом и заголовком.
Мне не нравятся современные сайты, в которых самой статье или заметке уделяется меньше
внимания, чем заголовку, поэтому пришлось создавать шаблон под свои нужды. Мой шаблон выглядит очень просто, в нем
всего 4 основные сущности: заголовок, дата публикации, обычный текст и код:
Скриншот выше – это окно создания новой заметки. Как видно, даже здесь обратная связь о
результате не полностью правдива: сверху есть кнопки "Отменить", "Предпросмотр" и прочие, а снизу – список доступных
блоков, которых в итоговом сайте не будет, надпись "Header" будет заменена реальным header'ом, а надпись "Footer" –
реальным footer'ом. Чтобы увидеть конечный результат, все равно нужно нажимать "Предпросмотр":
Так как в Tilda все построено на блоках, то для добавления нового абзаца нужно не просто
нажать "Enter", а скопировать блок "Обычный текст" с помощью специальной кнопки, удалить все содержимое из копии и
только после этого продолжать писать. Такой UX выбивает из потока и заставляет бороться с инструментом вместо
создания контента. А чтобы нормально отформатировать контент внутри абзаца, нужно открывать специальный редактор, что
еще сильнее выбивает из потока:
Tilda упрощает создание довольно сложных сайтов, предоставляет автоматическое
подключение аналитики, много готовых шаблонов и стоит 700₽ в месяц для одного сайта. Сайт с заметками не сложный, мне
не нужна статистика и сотни готовых шаблонов, поэтому платить 700₽ в месяц за неиспользуемый функционал глупо. Кроме
того, Tilda не смогла в полной мере справиться с предоставлением быстрой обратной связи. Самое время писать свое
решение!
Шаг третий – Github
Программист не должен стесняться самостоятельно писать ПО для решения своих проблем. Сейчас большая часть
индустрии разработки ПО называет собственные решения "велосипедами" и негативно относится к людям, которые их
создают. Для решения моей текущей проблемы свой "велосипед" оказался намного удобней существующих решений. Вообще, я
считаю, что собственные решения недооценивают и обязательно напишу отдельную заметку, раскрывающую эту тему.
Мое решение – это WYSIWYG редактор заметок. Он не
поддерживает большое количество шаблонов, тем, тегов и категорий, он не собирает статистику о посетителях.
Единственное, что он поддерживает – это создание заметок в терминах конечного результата.
Слова и скриншоты не смогут до конца продемонстрировать прелесть такого подхода, поэтому предлагаю сравнить статью
"Один инбокс для всего-всего" в режиме чтения и в режиме
редактирования. Визуально нет никакой разницы между этими режимами! Сейчас режим редактирования не
приспособлен для использования на мобильных устройствах с тачскрином: контекстное меню открывается с помощью
нажатия на правую кнопку мыши. Чтобы создать новую заметку, достаточно открыть ссылку https://telichk.in/edit.html и
удалить все содержимое, используя cmd + A и клавишу Delete.
Сохраняются заметки просто:
- Нажимаем правую кнопку мыши и выбираем "Save as HTML"
- Вписываем в появившемся окне slug заметки и нажимаем "ОК"
- Копируем HTML в папку /posts
- Добавляем новый пост на главную в файле template-index.js
- Коммитим и пушим изменения в master
Мой сайт для заметок не использует никаких внешних зависимостей, не нуждается в node, npm, babel, с ним не надо
делать browserify и подключать одним файлом. Для рендеринга на стороне клиента написано свое
решение в 80 строк кода, роутинг на стороне клиента занял
25 строк. Вместо чуть более ста строк кода можно было использовать React
и React-router, установить все это дело через npm и
собрать с помощью Webpack, но боюсь, что сейчас я бы не
заканчивал эту заметку, а продолжал бороться с чужими инструментами и абстракциями, покорно ожидая, пока Webpack
соберет мой проект.