10

我正在尝试使用Middleman创建一个静态站点。git repomaster有源文件。静态文件build.gitignore. 我有一个gh-pagesGithub 页面的分支。我如何设置这样的东西,以便gh-pages具有.buildmaster

谢谢。

4

4 回答 4

8

看起来这个 gem 提供了一个优雅的解决方案:

中间人-gh-pages

于 2013-01-17T03:03:13.457 回答
6

我已经开始使用与Octopress 相同的技术,它对 Middleman 非常有用。

基本上我使用两个 git 存储库,一个在根文件夹中,一个在构建文件夹中。根存储库推送到developGitHub 远程上的分支并排除该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
于 2012-10-13T22:00:20.583 回答
2

另一个好的宝石是middleman-deploy。安装并配置所有内容后,您可以简单地运行

$ middleman deploy 

并且您的构建目录将被推送到 GitHub 页面。您可以在配置中指定推送到哪个分支。我在这里也有一篇关于从 Jekyll 页面切换到 GitHub 页面的博客文章,其中谈到了一些关于部署的内容。

于 2013-09-01T00:25:43.913 回答
0

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

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
于 2012-08-14T06:38:24.243 回答