Middleman和Github页面
问题描述:
我正在尝试使用Middleman创建静态网站。 git repo master
有源文件。静态文件在.gitignore
的build
文件夹中生成。对于Github页面,我有一个分支gh-pages
。我如何设置东西,使gh-pages
的build
文件夹的内容为master
。Middleman和Github页面
谢谢。
答
我找不到干净的做法。这是我一直在使用的脚本:
bundle exec middleman build
mv build /tmp/
git checkout gh-pages
git rm -rf .
cp -r /tmp/build/* .
git add .
git commit -m "Update site"
rm -rf /tmp/build
git push
git checkout master
答
我使用同样的技术Octopressuses开始,它为中间人的伟大工程。
基本上我使用两个git仓库,一个在根文件夹内,一个在build文件夹内。根存储库会推送到GitHub远程的develop
分支,并排除build
目录。 build
目录中的存储库会推送到同一GitHub远程的master
(或gh-pages
)分支。
要自动执行新的静态页面的推动,我用下面的Rakefile:
desc "deploy build directory to github pages"
task :deploy do
puts "## Deploying branch to Github Pages "
cp_r ".nojekyll", "build/.nojekyll"
cd "build" do
system "git add ."
system "git add -u"
puts "\n## Commiting: Site updated at #{Time.now.utc}"
message = "Site updated at #{Time.now.utc}"
system "git commit -m \"#{message}\""
puts "\n## Pushing generated website"
system "git push origin master"
puts "\n## Github Pages deploy complete"
end
end
答
另一个好宝石middleman-deploy 。安装并配置好所有内容后,您可以直接运行
$ middleman deploy
并且您的构建目录将被推送到GitHub页面。您可以指定您在配置中推送哪个分支。我还有一篇关于从Jekyll切换到GitHub页面的博客文章here,并且它谈到了一些关于部署的内容。
+0
非常有帮助谢谢。 – 2013-09-26 15:02:06
从那以后你知道更清洁的方法吗? – denis 2013-02-15 11:48:31