Middleman和Github页面

问题描述:

我正在尝试使用Middleman创建静态网站。 git repo master有源文件。静态文件在.gitignorebuild文件夹中生成。对于Github页面,我有一个分支gh-pages。我如何设置东西,使gh-pagesbuild文件夹的内容为masterMiddleman和Github页面

谢谢。

貌似这个宝石提供了一个完美的解决方案:

middleman-gh-pages

我找不到干净的做法。这是我一直在使用的脚本:

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 
+0

从那以后你知道更清洁的方法吗? – denis 2013-02-15 11:48:31

我使用同样的技术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