Ваш собственный статический сокращатель URL-адресов ⚡️
Генераторы статических сайтов, публикуемые на Github Pages, сегодня довольно популярны. А как насчет статического сокращателя URL-адресов (если не сказать генератора), который позволяет перенаправлять URL-адреса на основе статических файлов?
Обычно для этого разработчики настраивают сервер с редиректами (не статически). Именно здесь на помощь приходит URLZap. Он генерирует URL-адреса с использованием файлов и мастеров HTML, позволяя пользователям размещать свои собственные перенаправления URL-адресов на страницы Github.
Аналогично генераторам статических веб-сайтов, но для URL-адресов.
Держите свои (сокращенные или нет) URL-адреса при себе.
Может использоваться со страницами Github.
Нет необходимости запускать сервер или настраивать перенаправления HTTP 301.
Пример проекта: brunoluiz/_
Вы можете спросить себя: как это сделать без сервера? Что ж, ответ кроется в <meta http-equiv="refresh" /> . Он работает как код состояния HTTP 301 (перенаправление), но выполняется на стороне клиента. На сайте w3c есть немного больше объяснений.
На основе config.yml содержащего желаемый путь и URL-адрес, urlzap создаст файлы index.html , в которых используются метатеги обновления. Он не идеален как HTTP 301, но довольно близок к этому. Похожая стратегия используется и другими генераторами статических веб-сайтов, такими как Hugo.
Примером может быть:
путь: './links' # по умолчанию: './'urls: google: https://google.com инструменты: github: https://github.com
Каждый ключ на карте будет сопоставляться с маршрутами {.path param}/{key} , перенаправляясь на {value} . Это создаст следующее:
- links/ - google/ - index.html (contains redirect) - tools/ - github/ - index.html (contains redirect)
Эти файлы можно загрузить, например, на страницы Github, без необходимости использования какого-либо сервера. На brunoluiz/_ вы можете увидеть пример config.yml и проверить вывод в ветке gh-pages
Посетите раздел релизов для получения более подробной информации.
Используйте brew для его установки
brew tap brunoluiz/tap brew install urlzap
Используя предыдущий пример YAML:
путь: './links' # по умолчанию: './'urls: google: https://google.com инструменты: github: https://github.com
urls : желаемая карта URL-адресов по шаблону {key}:{redirect URL}
path : выходной путь
Чтобы сгенерировать статические файлы, запустите urlzap generate .
Скорее всего, вы в конечном итоге будете использовать Github Pages вместе с этим инструментом. Если да, то, возможно, лучший способ использовать его и воспользоваться его преимуществами — это действия Github. Перейдите по адресу brunoluiz/urlzap-github-action чтобы получить более подробную информацию о том, как его установить, включая создание и развертывание.
️ Возможно, вам придется вручную включить Github Pages в вашем репозитории! Более подробную информацию можно найти в руководстве по Github Pages.
Если действия Github не для вас, попробуйте вместо этого выполнить следующий ручной процесс.
Включите Github Pages и настройте ветку, в которой будут расположены ваши статические HTML-файлы. Более подробную информацию можно найти в руководстве по Github Pages.
Настройте свой config.yml
Зафиксируйте и нажмите на main
Оформите заказ в своей ветке Github Pages (обычно gh-pages ) и запустите git reset --hard origin/main (это сбросит HEAD до master )
Запускаем urlzap generate
Зафиксируйте и нажмите
Следующий сценарий следует описанному выше шагу:
#!/bin/bash# добавляет, фиксирует и отправляет измененияgit add config.yml git commit -m 'chore: обновить config.yml'git push -u origin main# сделать ветку gh-pages такой же, как ветка maingit checkout gh-pages git reset --hard origin/main# генерировать файлыsurlzap генерировать# добавить, зафиксировать и отправить сгенерированные файлыgit add --all git commit -m 'работа: обновить HTML-файлы'git push -u origin gh-pages --force