Add redirect generator to make Netlify's CDN redirect to the right places.

Netlify will redirect with a 301 status to the right places without the
need of a custom javascript file.

The current redirects.js is not removed so production can keep working
as it is for now.

Signed-off-by: David Calavera <david.calavera@gmail.com>
reviewable/pr2106/r2^2
David Calavera 2017-01-17 08:41:49 -08:00 committed by Andrew Chen
parent d268a3eaf4
commit e64c482469
4 changed files with 29 additions and 3 deletions

1
.gitignore vendored
View File

@ -24,3 +24,4 @@ Session.vim
tags
kubernetes.github.io.iml
_redirects

View File

@ -1,4 +1,4 @@
.PHONY: all build build-preview help serve
.PHONY: all build build-preview generate-redirects help serve
help: ## Show this help.
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
@ -11,5 +11,8 @@ build: ## Build site with production settings and put deliverables in _site.
build-preview: ## Build site with drafts and future posts enabled.
jekyll build --drafts --future
generate-redirects: ## Generate a redirects file and copy it into the _site directory.
mkdir -p _site && REDIRECTS_PATH=_site/_redirects ruby redirects.rb
serve: ## Boot the development server.
jekyll serve

View File

@ -1,6 +1,6 @@
[build]
command = "make build"
command = "make build generate-redirects"
publish = "_site"
[context.deploy-preview]
command = "make build-preview"
command = "make build-preview generate-redirects"

22
redirects.rb Normal file
View File

@ -0,0 +1,22 @@
REPO_TMPL = "https://github.com/kubernetes/kubernetes/tree/%s/%s/:splat"
fixed_redirects = """# 301 redirects (301 is the default status when no other one is provided for each line)
/third_party/swagger-ui /kubernetes/third_party/swagger-ui/
/resource-quota /docs/admin/resourcequota/
/horizontal-pod-autoscaler /docs/user-guide/horizontal-pod-autoscaling/
/docs/user-guide/overview /docs/whatisk8s/
/docs/roadmap https://github.com/kubernetes/kubernetes/milestones/
/api-ref https://github.com/kubernetes/kubernetes/milestones/
"""
branch_redirects = ["examples" , "cluster", "docs/devel", "docs/design"]
branch_redirects.each do |name|
dest = REPO_TMPL % [ENV.fetch("HEAD", "master"), name]
rule = "\n/#{name}/* #{dest}"
fixed_redirects << rule
end
output = ENV["DEBUG"] ? STDOUT : File.open(ENV.fetch("REDIRECTS_PATH", "_redirects"), "w+")
output.puts fixed_redirects