Skip to content

Commit

Permalink
Add redirect generator to make Netlify's CDN redirect to the right pl…
Browse files Browse the repository at this point in the history
…aces.

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>
  • Loading branch information
calavera authored and chenopis committed Feb 3, 2017
1 parent d268a3e commit e64c482
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ Session.vim
tags

kubernetes.github.io.iml
_redirects
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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
4 changes: 2 additions & 2 deletions netlify.toml
Original file line number Diff line number Diff line change
@@ -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 changes: 22 additions & 0 deletions redirects.rb
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit e64c482

Please sign in to comment.