Как запретить GitHub Pages "Автоматический генератор" удалять все, прежде чем регенерировать сайт?
Я создал замечательный сайт GitHub Pages для моего маленького проекта, и я добавил некоторые другие страницы в ветвь gh-pages
.
Моя проблема заключается в том, что каждый раз, когда я восстанавливаю веб-сайт из "Настройки = > Автоматический генератор страниц", все очищается, и мне приходится вручную восстанавливать файлы.
Есть ли способ предотвратить или обойти это?
Было бы намного лучше, если бы автоматический генератор просто перезаписывал свои вещи без удаления существующих файлов.
Ответы
Ответ 1
- Обратите внимание на ветвь
gh-pages
.
- mkdir
_layouts
- переместить
index.html
в _layouts
- edit
_layouts/index.html
замените внутренний html раздела содержимого {{content}}
- создать новый файл
index.md
- Вставить значение разметки автоматического генератора страниц в
index.md
-
добавьте следующее к index.md
---
layout: index
---
- create
_config.yml
-
включить в _config.yml
следующее:
markdown: kramdown
kramdown:
auto_ids: true
этот шаг должен соответствовать синтаксису синтаксиса github
-
добавить и зафиксировать изменения, а затем отбросить назад к github.
Теперь вы можете просто отредактировать index.md
из gh-branch в вашем браузере источника github, и он будет обновляться с помощью jekyll автоматически и не испортить ничего в вашей ветки gh.
Вы также можете сделать больше элементов, редактируемых в макете, с помощью держателя места {{page.varname}}
, а затем добавив varname:your text
в заголовок вашего index.md
.
Ответ 2
Ну, после некоторых попыток я нашел решение.
Я заметил, что единственным файлом, измененным для моего сайта, был index.html, остальная часть сгенерированного сайта была такой же. Внутри index.html был тег <section>content</section>
, который содержал html, сгенерированный из уценки.
Итак, я создал два файла header.inc
и footer.inc
, которые содержали "статическую" часть для индексной страницы. Часть содержимого должна быть сгенерирована из файла README.md
.
Я обнаружил, что API, предоставленный github, отображает утилизацию RAW в необработанном режиме на html.
Итак, последний кусочек головоломки заключался в том, чтобы получить постоянную ссылку для README.md моего проекта с содержанием RAW; который мне удалось найти здесь.
Итак, я написал этот простой bash script, который восстанавливает только index.html, не касаясь остальной части сайта:
#!/bin/sh
PG_DIR=$(dirname $0)
RAW_README_URL=https://raw.github.com/lviggiano/owner/master/README.md
GITHUB_API_URL=https://api.github.com/markdown/raw
cat $PG_DIR/header.inc
curl -s $RAW_README_URL | curl -s --data-binary @- -H 'Content-Type: text/plain' $GITHUB_API_URL
cat $PG_DIR/footer.inc
Затем я запускаю script как:
$ cd myproject
$ git checkout gh-pages
$ git pull origin gh-pages:gh-pages
$ ./bin/autogen > index.html
$ git commit -m "updated index.html from latest README.md" index.html
$ git push origin gh-pages:gh-pages
Подробнее см. подробности реализации здесь.
Я тестировал макет "Leap Day"; но я полагаю, что это работает и для других.
Ответ 3
Нет, это невозможно. GitHub стирает репозиторий gh-страниц, когда вы выполняете "генерировать". Лучше всего вы можете сделать то, что вы сейчас делаете. Другой вариант может заключаться в том, чтобы не использовать генератор страниц GitHub для изменения стилей, но чтобы найти источник стилей (они, вероятно, где-то в GitHub) и вручную изменить их, совершив изменения (замените файлы css и другие мелкие настройки)
Ответ 4
Ответ заключается в использовании Джекила. Github предоставляет информацию в этом руководстве: https://help.github.com/articles/using-jekyll-with-pages
Ответ 5
Вы можете настроить Jekyll, чтобы пропустить определенные каталоги с опцией exclude
.
(Обратите внимание, что Jekyll имеет параметр keep_files
- это файлы в каталоге destintation
.)