ПОСТЫ
Ук(о)ротитель ссылок под hugo
By slnt_opp
В чем проблема
Как известно ссылки часто бывают слишком длинными, например меня на идею автоматизировать линкшортингх
(врядли есть такое слово, но теперь - да) пока я смотрел стрим одно известного вертолета будучи модером в чате, и было зареквестировано скинуть ссылку на другой канал в чат, однако ютуб тупо обрезает ссылки в чате, почему сслыка вида https://www.youtube.com/channel/UCJLorkdDK41pOQyoVQbFqJQ
была бы отправлена примерно как https://www.youtube.com/channel/UCJLor...
и была бы бесполезна. Тогда(пару часов назад) я просто сгенерил пост со ссылкой внутри, но сейчас хотелось бы более автоматизированное решение.
1. Создаем шаблон(архетип) hugo
В hugo встроены такие штуки как архитипы(archetypes
), которые используются как шаблон при создании нового контента с помощью hugo new
, например hugo new posts/post_name.md
заюзает archetypes/posts.md
если он есть, или default.md
если его нет.
Я создал такой архетип:
|
|
Из чего же он состоит
- Самое главное: редирект на
url
урл прописан как рельсовый шаблон, но не обманывайтесь, здесь ничего это не будет, ибо зачем. Редиректит через 2 секунды после загрузки страницы - Какое-то вранье
- Куда редиректит
- там написано
2. Пишем скрит обработчик
2.1 Что делает сокращатели уникальными?
ID конечно, благо все уже придумано, поэтому я генерирую названия для ссылки из данного пользователем(мной) названия и uuid
|
|
2.2 Какие еще данные?
Имя для ссылки и урл берем из аргументов:
|
|
То есть вызовываться это будет ./shortcut heli https://www.youtube.com/channel/UCJLorkdDK41pOQyoVQbFqJQ
2.3 Генерируем ссылку
В первую очередь создаем страницу из архитипа с названием созданным из имени и uuid:
|
|
Вписываем данные:
|
|
И записываем файл назад:
|
|
Дальше уже дело ваше, но лично я запускаю мой скрипт deploy, который заливает новую версию сайта на сервер, а после красивенько вывожу ссылку:
|
|
По итогу весь процесс занимает пару секунд и выглядит так от начала до конца:
|
|
Спасибо за внимание, обращайся если нужны короткие ссылки, хех