layout | post | ||||
---|---|---|---|---|---|
post |
|
Uhfun-Jekyll — это набор шаблонов, основанных на фреймворке Jekyll, который используется на сайте UhfunBlog. Поскольку GitHub Pages не поддерживает некоторые плагины, для использования этих плагинов необходимо сгенерировать сайт локально и затем отправить статические файлы на GitHub. Для автоматической отправки скомпилированных статических файлов на ветку gh-pages я выбрал использование Codeship для непрерывной интеграции.
git clone -b master https://github.com/uhfun/Uhfun-Jekyll.git
brew install ruby
gem install bundler
gem install jekyll
Установка Jekyll см. официальный сайт Jekyll на русском
jekyll server
# Серверный адрес: http://127.0.0.1:4000/
# Сервер запущен... нажмите ctrl-c для остановки.
```## Добавление статьи
Для локальной отладки можно добавить xxx.md в папку _posts.
## Непрерывная интеграция
1. Перейдите на [официальный сайт Codeship](https://codeship.com) и зарегистрируйтесь с помощью аккаунта GitHub.
2. Создайте Organization.
3. Создайте проект (New Project), выбрав репозиторий с блогом.
4. В разделе Deploy добавьте пользовательский скрипт для **ветки master**:
```bash
echo 'Добавление статей из ветки _posts' && cd .. && git clone -b _posts git@github.com:${CI_REPO_NAME}.git _posts && ls _posts && mv _posts/*.md clone/_posts
echo 'Скачивание статических ресурсов из GitHub Pages' && cd clone && git clone -b ${GH_PAGES_BRANCH} git@github.com:${CI_REPO_NAME}.git _site
echo 'Удаление всех файлов, кроме .git' && rm -rf _site/**/* || exit 0
echo 'Пересборка статических файлов' && bundle install && bundle exec jekyll build
cd _site && echo 'Настройка пользовательского домена' && echo ${CUSTOM_DOAMIN} > CNAME
git config --global user.email ${GH_USER_EMAIL}
git config --global user.name ${GH_USER_NAME}
git add .
git commit -m "Commit ${CI_COMMIT_ID} ${CI_COMMIT_MESSAGE} to branch ${GH_PAGES_BRANCH}" && git push origin ${GH_PAGES_BRANCH}
GH_PAGES_BRANCH=gh-pages
CUSTOM_DOAMIN=uhfun.cn
GH_USER_EMAIL=2512500628@qq.com
GH_USER_NAME=uhfun
GH_PAGES_REPOSITORY=Uhfun-Jekyll
Если выбор сделан в пользу сохранения статьи в отдельной ветке, можно создать ветку _posts. В разделе Build Triggers добавьте новый скрипт для ветки _posts.````bash cd .. && echo 'Скачивание исходных файлов GitHub Pages' && git clone -b master git@github.com:${CI_REPO_NAME}.git _source && cd _source echo 'Добавление статей из ветки _posts' && mv ../clone/* _posts echo 'Скачивание статических ресурсов GitHub Pages' && git clone -b ${GH_PAGES_BRANCH} git@github.com:${CI_REPO_NAME}.git _site echo 'Удаление всех файлов, кроме .git' && rm -rf _site/**/* || exit 0 echo 'Пересборка статических файлов' && bundle install && bundle exec jekyll build cd _site && echo 'Настройка пользовательского домена' && echo ${CUSTOM_DOMAIN} > CNAME git config --global user.email ${GH_USER_EMAIL} git config --global user.name ${GH_USER_NAME} git add . git commit -m "Commit ${CI_COMMIT_ID} ${CI_COMMIT_MESSAGE} to branch ${GH_PAGES_BRANCH}" && git push origin ${GH_PAGES_BRANCH}
## Авторские права
Copyright (c) 2020 uhfun
Разрешено в соответствии с лицензией Apache License, Version 2.0 ("Лицензия"); вы не можете использовать этот файл, если не будете соблюдать условия Лицензии. Вы можете получить копию Лицензии по адресу
http://www.apache.org/licenses/LICENSE-2.0
Если это не требуется применимым законом или не было достигнуто письменным соглашением, программное обеспечение, распространяемое в соответствии с Лицензией, распространяется на условиях "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, как явных, так и подразумеваемых. См. Лицензию для определения языка, регулирующего права и условия использования и распространения в соответствии с Лицензией.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )