我正在尝试使用Middleman创建一个静态站点。git repomaster
有源文件。静态文件build
在.gitignore
. 我有一个gh-pages
Github 页面的分支。我如何设置这样的东西,以便gh-pages
具有.build
master
谢谢。
我正在尝试使用Middleman创建一个静态站点。git repomaster
有源文件。静态文件build
在.gitignore
. 我有一个gh-pages
Github 页面的分支。我如何设置这样的东西,以便gh-pages
具有.build
master
谢谢。
看起来这个 gem 提供了一个优雅的解决方案:
我已经开始使用与Octopress 相同的技术,它对 Middleman 非常有用。
基本上我使用两个 git 存储库,一个在根文件夹中,一个在构建文件夹中。根存储库推送到develop
GitHub 远程上的分支并排除该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 页面的博客文章,其中谈到了一些关于部署的内容。
我找不到这样做的干净方法。这是我一直在使用的脚本:
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