我创建了一个精彩的GitHub页面website for my little project,并在gh-pages
分支中添加了一些其他页面。
我的问题是,每当我从'Settings => Automatic Page Generator'重新生成网站时,一切都被清理干净,我必须手动恢复文件。
有没有办法预防或解决这个问题?
如果自动生成器只是在不删除现有文件的情况下覆盖他的东西,情况会好得多。
答案 0 :(得分:36)
gh-pages
分行。_layouts
index.html
移至_layouts
_layouts/index.html
用{{content}}
index.md
index.md
将以下内容添加到index.md
---
layout: index
---
_config.yml
在_config.yml
中包含以下内容:
markdown: kramdown
kramdown:
auto_ids: true
这一步是为了匹配github的降价语法
添加&提交更改,然后将分支推回到github。
现在,您只需从gh-branch in your github source browser编辑index.md
即可自动使用jekyll进行更新,而不会弄乱您的gh-branch中的任何内容。
您还可以使用占位符{{page.varname}}
在布局中制作更多可修改的项目,然后将varname:your text
添加到index.md
的标题中。
答案 1 :(得分:2)
好吧,经过一些尝试,我找到了解决方案。
我注意到我的网站唯一更改的文件是index.html,生成的网站的其余部分是相同的。在index.html内部有一个<section>content</section>
标记,其中包含从降价处生成的html。
所以我创建了两个文件header.inc
和footer.inc
,其中包含索引页面的“静态”部分。内容部分应该是从README.md
文件生成的。
我发现github提供了一个API到render a RAW markdown in raw mode到html 所以,最后一个难题是获得我的项目的README.md的永久链接,包含RAW内容;我偶然发现here。
所以我写了这个simple 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
然后我只需启动脚本:
$ 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
查看实施细节here。
我测试了“闰日”布局;但我认为它也适用于其他人。
答案 2 :(得分:0)
不,不可能。当你执行“生成”时,GitHub会擦除gh页面存储库。你能做的就是你现在正在做的事情。另一种选择可能不是使用GitHub页面生成器来改变样式,而是找到样式的来源(它们可能在某个地方的GitHub上)并通过提交更改手动更改它们(替换css文件和其他小调整)< / p>
答案 3 :(得分:0)
您可以configure Jekyll使用exclude
选项跳过某些目录。
(请注意,Jekyll有keep_files
选项 - 适用于destintation
目录中的文件。)