Ответ 1
Страницы Github допускают только статический контент, поэтому вам нужно будет использовать что-то вроде firebase, чтобы получить базу данных.
Возможно ли хранить некоторые данные на вашей личной странице github?
Например, кнопка, запускающая счетчик. Когда вы нажимаете на кнопку, счетчик увеличивается на 1. Когда другой пользователь посещает эту страницу и нажимает кнопку, счетчик увеличивается на 1 раз.
Таким образом, это будет сумма всех кликов по всем посетителям, которые будут отображаться на странице.
Страницы Github допускают только статический контент, поэтому вам нужно будет использовать что-то вроде firebase, чтобы получить базу данных.
Принятый ответ о Firebase - хороший, быстрый ответ, но я хочу написать более длинный и более полный ответ для всех, кто исследует эту тему, поскольку Firebase - один из нескольких способов достижения такой функциональности.
В качестве фона базы данных/хранилища данных, такие как mysql, postgres, redis, mongodb и т.д., являются наиболее распространенным способом хранения данных посетителя таким образом, что следующий посетитель и видеть или получать к нему доступ. Системы управления контентом, такие как Django, Wordpress и Drupal, созданы для чтения и записи в базу данных. Эти службы, как правило, являются серверными технологиями, то есть администратор сервера устанавливает их и блоки кода, которые пользователи веб-сайта не могут видеть, обмениваются данными с базой данных. Эта база кода на стороне сервера также создает визуализированный html, который пользователь увидит. Таким образом, Github Pages не используется с этими технологиями, потому что они поддерживают только статические html, css и javascript, то есть они позволяют только код на стороне клиента.
Подробнее об этой теме см. Как подключить html-страницы к базе данных mysql?
Если вы хотите настроить хранилище данных только для чтения, у вас есть много вариантов на страницах Github. Вы можете поместить json файл в свое репо, запросить документ на диске, загрузить файл sqlite.db в свое репо и запросить его и т.д. В этом воображаемом примере вам должно быть хорошо, если пользователь веб-сайта увидит любые данные в вашем datastore, поскольку установка не обеспечит способ сделать некоторые данные невидимыми для пользователя.
Как только вы подумываете о записи в свою базу данных, безопасность является проблемой. Если вы настроили какую-то внешнюю базу данных и установили учетные данные доступа к БД в свой клиентский код, любой пользователь мог бы видеть эти учетные данные и компрометировать вашу базу данных (вводить данные, принимать их, удалять и т.д.). По этой причине, вам нужна настройка, которая передает данные от передней части к задней части и наоборот, не позволяя веб-трафику видеть под капотом. Насколько я понимаю, это уровень функциональности, который не могут дать вам страницы Github.
Подробнее о защите базы данных на стороне клиента см. этот поток: https://softwareengineering.stackexchange.com/questions/180012/is-there-any-reason-not-to-go-directly-from-client-side-javascript-to-a-database
Одним из возможных способов решения проблемы является использование вашей статической стороны для связи с сторонней службой. Например, вы можете разместить форму Google на странице html. Эта форма может ссылаться на лист Google. Этот лист можно опубликовать в Интернете и настроить на автоматическое обновление. Ваш сайт Github-страниц может ссылаться на общедоступную версию этой страницы и обновлять (при задержке) при внесении изменений. Этот тип настройки неуклюжий (я полагаю, что листы Google становятся медленными, если они становятся слишком большими) и должны использоваться с осторожностью, так как плохо разработанная форма такого рода может быть спам-магнитом. Не говоря уже о том, что любой, кто смотрит на ваш код на стороне клиента, сможет найти общедоступную версию вашего листинга Google, которая будет включать время отправки и пользовательские данные, если вы его соберете. Однако, если использовать внимательно, он может работать для упомянутого выше варианта использования.
В зависимости от ваших потребностей, вы можете попробовать GithubDB
Из их документов:
Когда-нибудь вы хотели использовать Github в качестве вашей личной базы данных, теперь вы можете.
Почему я хочу использовать Github в качестве базы данных?
Хороший вопрос. Разработчики имеют много вариантов различных баз данных, GithubDB, однако, использует все функции, которые вы полюбили из Github.
Ведение журнала (С помощью Github вы можете быстро просмотреть свои коммиты и увидеть пишите и обновляйте по вашему запросу).
Визуализация (Github предлагает удивительные инструменты для визуализации входящего количество операций чтения/записи).
Стойкость (с помощью Github вы можете выполнить откат к ранним этапам ваших данных и посмотрим как оно развивалось).
Безопасность (Используя Github, ваша база данных наследует те же стандарты от Github).
Доступность (Github, как известно, не работает, но, если честно, это достаточно хорошо, если вы не Facebook).
Использование Github HTTP REST API: https://developer.github.com/v3/ Можно зафиксировать/обновить файл json или файл sqllite в репозитории страниц github через браузер js.