我将Jekyll与自定义Coderay一起使用,因此我必须在GitHub上维护2个分支
master; The generated HTML site
source; Markdown files, etc
在source
分支上,我有一个_includes
文件夹,我忽略它,因为它只包含一些硬链接。我有一个脚本来管理2个分支,但似乎应该有比我想出的更好的东西。
# Start on "source" branch
jekyll /tmp
git checkout master
git stash -u # _includes
rm -r * # keeps ".git"
cp -r /tmp/* .
git add -A
git commit
git push origin master
git checkout source
git stash apply
答案 0 :(得分:1)
对我来说更好的选择是完全摆脱硬链接。我这样做是通过制作一个允许在repo之外渲染文件的插件。
module Jekyll
class IncludeTag < Liquid::Tag
def initialize(tag_name, file, tokens)
super
@file = file.strip
end
def render(context)
File.read(@file)
end
end
end
Liquid::Template.register_tag('render_partial', Jekyll::IncludeTag)
如果您想保留硬链接,此选项将起作用。
#!/bin/sh
# Initial setup, configure excludes
cat > .git/info/exclude <<EOF
_includes
_site
EOF
# Commit source branch
git checkout source
git add -A
git commit -m 'new post'
git push origin source
# Commit master branch
jekyll
git checkout master
git rm -r .
cp -r _site/* .
git add -A
git commit -m 'new post'
git push origin master