Make the home page into reusable and translatable blocks (#10071)

* Make navigation and UI strings i18n friendly

This commit

* Extracts most UI strings into i18n bundles so they can be translated
* Makes a proper Hugo menu out of the hardcoded menu that is shown on smaller screens
* Changes the language selector logic to navigate to the current page in the other language if possible (e.g. the translation). If not possible, it takes you to the home page for that language.

For testing, this commit also adds Norwegian as a new language. This is turned off.

* Make the home page into reusable and translatable blocks

This commit adds a set of block type shortcodes that is then used to build the home page.

* These shortcodes gets common image resources from a new headless bundle. These resources can be inherited or overridden by translations.
* The hardcoded case studies section on the home page is replaced with a query and a loop.
* The hardcoded feature list on the home page is replaed qith a query and a loop.
This commit is contained in:
Bjørn Erik Pedersen 2018-09-14 23:47:24 +02:00 committed by k8s-ci-robot
parent 0df6621652
commit 1b5ff98a44
49 changed files with 501 additions and 2181 deletions

View File

@ -1126,7 +1126,6 @@ $feature-box-div-margin-bottom: 40px
#video
width: 100%
position: relative
background-image: url(/images/kub_video_banner_homepage.jpg)
background-position: center center
background-size: cover
@ -1721,35 +1720,25 @@ $feature-box-div-margin-bottom: 40px
text-align: center
margin-bottom: 30px
img
padding-bottom: 1rem;
div
position: relative
display: inline-block
vertical-align: top
width: 100%
min-height: 230px
padding: 125px 10px 15px
margin-bottom: 30px
margin-bottom: 60px
padding-right: 1rem;
background-position: top center
background-repeat: no-repeat
div:nth-child(1)
background-image: url(/images/community_logos/pearson_logo.png)
div:nth-child(2)
background-image: url(/images/community_logos/box_logo.png)
div:nth-child(3)
background-image: url(/images/community_logos/ebay_logo.png)
div:nth-child(4)
background-image: url(/images/community_logos/wikimedia_foundation_logo.png)
p
font-size: 20px
a
position: absolute
bottom: 0
bottom: -30px;
left: 50%
transform: translateX(-50%)
color: $blue

View File

@ -138,7 +138,6 @@ $video-section-height: 550px
#video
height: $video-section-height
position: relative
background-image: url(../images/kub_video_banner_homepage.jpg)
background-position: center center
background-size: cover

View File

@ -22,6 +22,9 @@ pygmentsStyle = "emacs"
# Enable Git variables like commit, lastmod
enableGitInfo = true
# This is currently used for testing.
disableLanguages = ["no"]
[blackfriday]
hrefTargetBlank = true
fractions = false
@ -133,4 +136,12 @@ description = "Production-Grade Container Orchestration"
languageName = "Chinese"
weight = 2
contentDir = "content/cn"
[languages.no]
title = "Kubernetes"
description = "Production-Grade Container Orchestration"
languageName ="Norsk"
weight = 3
contentDir = "content/no"
# A list of language codes to look for untranslated content, ordered from left to right.
language_alternatives = ["en"]

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,3 @@
---
headless: true
---

View File

@ -6,178 +6,57 @@ cid: home
{{< deprecationwarning >}}
<!-- OCEAN NODES -->
<section id="oceanNodes">
<main>
<div class="image-wrapper"><img src="images/flower.png"></div>
<div class="content">
<h3><a href="/docs/concepts/overview/what-is-kubernetes/">Kubernetes</a> is an open-source system for automating deployment, scaling, and management of containerized applications.</h3>
<p>It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds
upon <a href="http://queue.acm.org/detail.cfm?id=2898444">15 years of experience of running production workloads at Google</a>,
combined with best-of-breed ideas and practices from the community.</p>
</div>
</main>
<main>
<div class="image-wrapper"><img src="images/scalable.png"></div>
<div class="content">
<h4>Planet Scale</h4>
<p>Designed on the same principles that allows Google to run billions of containers a week, Kubernetes can scale without increasing your ops team.</p>
</div>
</main>
<main>
<div class="image-wrapper"><img src="images/blocks.png"></div>
<div class="content">
<h4>Never Outgrow</h4>
<p>Whether testing locally or running a global enterprise, Kubernetes flexibility grows with you to deliver your applications consistently and easily no matter how complex your need is.</p>
</div>
</main>
<main>
<div class="image-wrapper"><img src="images/suitcase.png"></div>
<div class="content">
<h4>Run Anywhere</h4>
<p>Kubernetes is open source giving you the freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, letting you effortlessly move workloads to where it matters to you.</p>
</div>
</main>
</section>
{{< blocks/section id="oceanNodes" >}}
{{% blocks/feature image="flower" %}}
### [Kubernetes]({{< relref "/docs/concepts/overview/what-is-kubernetes" >}}) is an open-source system for automating deployment, scaling, and management of containerized applications.
<section id="video">
<div class="light-text">
<h2>The Challenges of Migrating 150+ Microservices to Kubernetes</h2>
It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon [15 years of experience of running production workloads at Google](http://queue.acm.org/detail.cfm?id=2898444), combined with best-of-breed ideas and practices from the community.
{{% /blocks/feature %}}
{{% blocks/feature image="scalable" %}}
#### Planet Scale
Designed on the same principles that allows Google to run billions of containers a week, Kubernetes can scale without increasing your ops team.
{{% /blocks/feature %}}
{{% blocks/feature image="blocks" %}}
#### Never Outgrow
Whether testing locally or running a global enterprise, Kubernetes flexibility grows with you to deliver your applications consistently and easily no matter how complex your need is.
{{% /blocks/feature %}}
{{% blocks/feature image="suitcase" %}}
#### Run Anywhere
Kubernetes is open source giving you the freedom to take advantage of on-premises, hybrid, or public cloud infrastructure, letting you effortlessly move workloads to where it matters to you.
{{% /blocks/feature %}}
{{< /blocks/section >}}
{{< blocks/section id="video" background-image="kub_video_banner_homepage" >}}
<div class="light-text">
<h2>The Challenges of Migrating 150+ Microservices to Kubernetes</h2>
<p>By Sarah Wells, Technical Director for Operations and Reliability, Financial Times</p>
<button id="desktopShowVideoButton" onclick="kub.showVideo()">Watch Video</button>
<br>
<br>
<br>
<a href="https://events.linuxfoundation.cn/events/kubecon-cloudnativecon-china-2018/" button id= "desktopKCButton">Attend KubeCon in Shanghai on Nov. 13-15, 2018</a>
<a href="https://www.lfasiallc.com/events/kubecon-cloudnativecon-china-2018/" button id="desktopKCButton">Attend KubeCon in Shanghai on Nov. 13-15, 2018</a>
<br>
<br>
<br>
<br>
<a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/" button id= "desktopKCButton">Attend KubeCon in Seattle on Dec. 11-13, 2018</a>
</div>
<button id="mobileShowVideoButton" onclick="kub.showVideo()"></button>
</section>
<section id="features">
<main>
<h3 class="center">Kubernetes Features</h3>
<div class="feature-box">
<div>
<h4><a href="/docs/concepts/configuration/manage-compute-resources-container/">Automatic binpacking</a></h4>
<p>Automatically places containers based on their resource requirements and other constraints, while not
sacrificing availability. Mix critical and best-effort workloads in order to drive up utilization and save even more resources.</p>
</div>
<div>
<h4><a href="/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller">Self-healing</a></h4>
<p>Restarts containers that fail, replaces and reschedules containers when nodes die, kills containers
that don't respond to your user-defined health check, and doesn't advertise them to clients until they are ready to serve.</p>
</div>
</div>
<div class="feature-box">
<div>
<h4><a href="/docs/tasks/run-application/horizontal-pod-autoscale/">Horizontal scaling</a></h4>
<p>Scale your application up and down with a simple command, with a UI, or automatically based on CPU usage.</p>
</div>
<div>
<h4><a href="/docs/concepts/services-networking/service/">Service discovery and load balancing</a></h4>
<p>No need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives
containers their own IP addresses and a single DNS name for a set of containers, and can load-balance across them.</p>
</div>
</div>
<div class="feature-box">
<div>
<h4><a href="/docs/concepts/workloads/controllers/deployment/#what-is-a-deployment">Automated rollouts and rollbacks</a></h4>
<p>Kubernetes progressively rolls out changes to your application or its configuration, while monitoring
application health to ensure it doesn't kill all your instances at the same time. If something goes
wrong, Kubernetes will rollback the change for you. Take advantage of a growing ecosystem of deployment solutions.</p>
</div>
<div>
<h4><a href="/docs/concepts/configuration/secret/">Secret</a> and <a href="/docs/tasks/configure-pod-container/configure-pod-configmap/">configuration</a> management</h4>
<p>Deploy and update secrets and application configuration without rebuilding your image and without
exposing secrets in your stack configuration.</p>
</div>
</div>
<div class="feature-box">
<div>
<h4><a href="/docs/concepts/storage/persistent-volumes/">Storage orchestration</a></h4>
<p>Automatically mount the storage system of your choice, whether from local storage, a public cloud provider
such as <a href="https://cloud.google.com/storage/">GCP</a> or <a href="https://aws.amazon.com/products/storage/">AWS</a>, or a network storage system such as NFS, iSCSI,
Gluster, Ceph, Cinder, or Flocker.</p>
</div>
<div>
<h4><a href="/docs/concepts/workloads/controllers/jobs-run-to-completion/">Batch execution</a></h4>
<p>In addition to services, Kubernetes can manage your batch and CI workloads, replacing containers that fail, if desired.</p>
</div>
</div>
</main>
</section>
<section id="talkToUs">
<main>
<h3>Case Studies</h3>
<div id="caseStudiesWrapper">
<div>
<p>Sling TV: Marrying Kubernetes and AI to Enable Proper Web Scale</p>
<a href="/case-studies/slingtv">Read more</a>
</div>
<div>
<p>Using OpenTracing to Help Pinpoint the Bottlenecks</p>
<a href="/case-studies/workiva">Read more</a>
</div>
<div>
<p>Pinning Its Past, Present, and Future on Cloud Native</p>
<a href="/case-studies/pinterest">Read more</a>
</div>
<div>
<p>Reinventing the Worlds Largest Education Company With Kubernetes</p>
<a href="/case-studies/pearson">Read more</a>
</div>
</div>
<!--<div id="bigSocial">-->
<!--&lt;!&ndash;<div>&ndash;&gt;-->
<!--&lt;!&ndash;<a href="https://youtu.be/OLwzSHBtxhI">Watch the video</a>&ndash;&gt;-->
<!--&lt;!&ndash;<p>Creating Next Generation Kubernetes Infrastructure at Viacom</p>&ndash;&gt;-->
<!--&lt;!&ndash;</div>&ndash;&gt;-->
<!--<div>-->
<!--<p>Using Kubernetes to reinvent the world's largest educational company</p>-->
<!--<a href="/case-studies/pearson/">Read more</a>-->
<!--</div>-->
<!--<div>-->
<!--<p>Kubernetes at Box: Microservices at Maximum Velocity</p>-->
<!--<a href="https://blog.box.com/blog/kubernetes-box-microservices-maximum-velocity/">Read more</a>-->
<!--</div>-->
<!--<div>-->
<!--<p>Inside eBay's shift to Kubernetes and containers atop OpenStack</p>-->
<!--<a href="http://www.nextplatform.com/2015/11/12/inside-ebays-shift-to-kubernetes-and-containers-atop-openstack/">Read the story</a>-->
<!--</div>-->
<!--<div>-->
<!--<p>Migrating from a homegrown 'cluster' to Kubernetes</p>-->
<!--<a href="https://www.youtube.com/watch?v=6XGUTu3WhBw">Watch the video</a>-->
<!--</div>-->
<!--</div>-->
<h5 style="text-align: center"><a href="/case-studies/" style="color: #3371E3; font-weight: 400">View all case studies</a></h5>
</main>
</section>
<section id="cncf">
<main>
<center>
<p style="font-size: 20px">We are a <a href="https://cncf.io/">CNCF</a> graduated project</p>
</center>
</main>
</section>
<a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/" button id="desktopKCButton">Attend KubeCon in Seattle on Dec. 11-13, 2018</a>
</div>
<div id="videoPlayer">
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>
<button id="closeButton"></button>
</div>
{{< /blocks/section >}}
{{< blocks/kubernetes-features >}}
{{< blocks/case-studies >}}

View File

@ -1,3 +1,10 @@
---
title: Blog
title: Kubernetes Blog
linkTitle: Blog
menu:
main:
title: "Blog"
weight: 40
post: >
<p>Read the latest news for Kubernetes and the containers space in general, and get technical how-tos hot off the presses.</p>
---

View File

@ -1,5 +1,6 @@
---
title: Case Studies
linkTitle: Case Studies
bigheader: Kubernetes User Case Studies
abstract: A collection of users running Kubernetes in production.
layout: basic

View File

@ -1,6 +1,12 @@
---
title: "Community"
weight: 80
menu:
main:
title: "Community"
weight: 30
post: >
<p>If you need help, you can connect with other Kubernetes users and the Kubernetes authors, attend community events, and watch video presentations from around the web.</p>
---
This section of the Kubernetes documentation surfaces key topics imported from the [kubernetes/community](https://github.com/kubernetes/community) repo. It is the starting point for becoming a contributor -- improving docs, improving code, giving talks etc.

View File

@ -2,6 +2,10 @@
title: Managing Compute Resources for Containers
content_template: templates/concept
weight: 20
feature:
title: Automatic binpacking
description: >
Automatically places containers based on their resource requirements and other constraints, while not sacrificing availability. Mix critical and best-effort workloads in order to drive up utilization and save even more resources.
---
{{% capture overview %}}

View File

@ -3,6 +3,10 @@ reviewers:
- mikedanese
title: Secrets
content_template: templates/concept
feature:
title: Secret and configuration management
description: >
Deploy and update secrets and application configuration without rebuilding your image and without exposing secrets in your stack configuration.
weight: 50
---

View File

@ -2,6 +2,11 @@
reviewers:
- bprashanth
title: Services
feature:
title: Service discovery and load balancing
description: >
No need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives containers their own IP addresses and a single DNS name for a set of containers, and can load-balance across them.
content_template: templates/concept
weight: 10
---

View File

@ -5,6 +5,11 @@ reviewers:
- thockin
- msau42
title: Persistent Volumes
feature:
title: Storage orchestration
description: >
Automatically mount the storage system of your choice, whether from local storage, a public cloud provider such as <a href="https://cloud.google.com/storage/">GCP</a> or <a href="https://aws.amazon.com/products/storage/">AWS</a>, or a network storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, or Flocker.
content_template: templates/concept
weight: 20
---

View File

@ -3,6 +3,11 @@ reviewers:
- bgrant0607
- janetkuo
title: Deployments
feature:
title: Automated rollouts and rollbacks
description: >
Kubernetes progressively rolls out changes to your application or its configuration, while monitoring application health to ensure it doesn't kill all your instances at the same time. If something goes wrong, Kubernetes will rollback the change for you. Take advantage of a growing ecosystem of deployment solutions.
content_template: templates/concept
weight: 30
---

View File

@ -4,6 +4,10 @@ reviewers:
- soltysh
title: Jobs - Run to Completion
content_template: templates/concept
feature:
title: Batch execution
description: >
In addition to services, Kubernetes can manage your batch and CI workloads, replacing containers that fail, if desired.
weight: 70
---

View File

@ -3,6 +3,12 @@ reviewers:
- bprashanth
- janetkuo
title: ReplicationController
feature:
title: Self-healing
anchor: How a ReplicationController Works
description: >
Restarts containers that fail, replaces and reschedules containers when nodes die, kills containers that don't respond to your user-defined health check, and doesn't advertise them to clients until they are ready to serve.
content_template: templates/concept
weight: 20
---

View File

@ -8,7 +8,13 @@ cid: userJourneys
css: /css/style_user_journeys.css
js: /js/user-journeys/home.js, https://use.fontawesome.com/4bcc658a89.js
display_browse_numbers: true
linkTitle: "Home"
linkTitle: Documentation
main_menu: true
weight: 10
menu:
main:
title: "Documentation"
weight: 20
post: >
<p>Learn how to use Kubernetes with the use of walkthroughs, samples, and reference documentation. You can even <a href="/editdocs/" data-auto-burger-exclude>help contribute to the docs</a>!</p>
---

View File

@ -4,6 +4,11 @@ reviewers:
- jszczepkowski
- directxman12
title: Horizontal Pod Autoscaler
feature:
title: Horizontal scaling
description: >
Scale your application up and down with a simple command, with a UI, or automatically based on CPU usage.
content_template: templates/concept
weight: 90
---

View File

@ -2,6 +2,12 @@
title: Hello Minikube
content_template: templates/tutorial
weight: 5
menu:
main:
title: "Get Started"
weight: 10
post: >
<p>Ready to get your hands dirty? Build a simple Kubernetes cluster that runs "Hello World" for Node.js.</p>
---
{{% capture overview %}}

View File

@ -10,8 +10,6 @@ weight: 10
<body>
<link href="./public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">

View File

@ -0,0 +1,3 @@
---
headless: true
---

63
content/no/_index.html Normal file
View File

@ -0,0 +1,63 @@
---
title: "Produksjonsklar kontainer-orkestrering"
abstract: "Automatisert kontainer-deployment og -administrasjon"
cid: home
---
{{< deprecationwarning >}}
{{< blocks/section id="oceanNodes" >}}
{{% blocks/feature image="flower" %}}
### Kubernetes
Litt tekst om Kubernetes.
{{% /blocks/feature %}}
{{% blocks/feature image="scalable" %}}
#### Skalberbar
Litt tekst om skalerberhet.
{{% /blocks/feature %}}
{{% blocks/feature image="blocks" %}}
#### Vokser med deg
Litt tekst.
{{% /blocks/feature %}}
{{% blocks/feature image="suitcase" %}}
#### Kjør overalt
Litt tekst.
{{% /blocks/feature %}}
{{< /blocks/section >}}
{{< blocks/section id="video" background-image="kub_video_banner_homepage" >}}
<div class="light-text">
<h2>Om å flytte 150+ microservicer til Kubernetes</h2>
<p>Av Sarah Wells, teknisk direktør for Operations and Reliability, Financial Times</p>
<button id="desktopShowVideoButton" onclick="kub.showVideo()">Se video</button>
<br>
<br>
<br>
<a href="https://www.lfasiallc.com/events/kubecon-cloudnativecon-china-2018/" button id="desktopKCButton">KubeCon i Shanghai 13.-15. november, 2018</a>
<br>
<br>
<br>
<br>
<a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/" button id="desktopKCButton">KubeCon i Seattle 11.-13. desember, 2018</a>
</div>
<div id="videoPlayer">
<iframe data-url="https://www.youtube.com/embed/H06qrNmGqyE?autoplay=1" frameborder="0" allowfullscreen></iframe>
<button id="closeButton"></button>
</div>
{{< /blocks/section >}}
{{< blocks/kubernetes-features >}}
{{< blocks/case-studies >}}

View File

@ -0,0 +1,4 @@
---
title: Eksempler på Kubernetes-bruk
---

64
i18n/en.toml Normal file
View File

@ -0,0 +1,64 @@
# i18n strings for the English (main) site.
[main_read_about]
other = "Read about"
[main_read_more]
other = "Read more"
[main_github_invite]
other = "Interested in hacking on the core Kubernetes code base?"
[main_github_view_on]
other = "View On Github"
[main_github_create_an_issue]
other = "Create an Issue"
[main_community_explore]
other = "Explore the community"
[main_kubernetes_features]
other = "Kubernetes Features"
[main_cncf_project]
other = """We are a <a href="https://cncf.io/">CNCF</a> graduated project</p>"""
[main_contribute]
other = "Contribute"
[main_edit_this_page]
other = "Edit This Page"
[main_page_history]
other ="Page History"
[main_page_last_modified_on]
other = "Page last modified on"
[main_by]
other = "by"
[main_documentation_license]
other = """The Kubernetes Authors | Documentation Distributed under <a href="https://git.k8s.io/website/LICENSE" class="light-text">CC BY 4.0</a>"""
[main_copyright_notice]
other = """The Linux Foundation &reg;. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our <a href="https://www.linuxfoundation.org/trademark-usage" class="light-text">Trademark Usage page</a>"""
# Community links
[community_twitter_name]
other = "Twitter"
[community_github_name]
other = "GitHub"
[community_slack_name]
other = "Slack"
[community_stack_overflow_name]
other = "Stack Overflow"
[community_forum_name]
other = "Forum"
[community_events_calendar]
other = "Events Calendar"
# UI elements
[ui_search_placeholder]
other = "Search"

64
i18n/no.toml Normal file
View File

@ -0,0 +1,64 @@
# i18n strings for the Norwegian translation.
[main_read_about]
other = "Les om"
[main_read_more]
other = "Les mer"
[main_github_invite]
other = "Interessert kode i Kubernetes?"
[main_github_view_on]
other = "Åpne på Github"
[main_github_create_an_issue]
other = "Opprett en issue"
[main_community_explore]
other = "Utforsk folkene bak Kubernetes"
[main_kubernetes_features]
other = "Egenskaper i Kubernetes"
[main_cncf_project]
other = """Vi er et <a href="https://cncf.io/">CNCF</a>-prosjekt</p>"""
[main_contribute]
other = "Bidra"
[main_edit_this_page]
other = "Endre denne siden"
[main_page_history]
other ="Side-historikk"
[main_page_last_modified_on]
other = "Side sist endret"
[main_by]
other = "av"
[main_documentation_license]
other = """Kubernetes-forfatterene | Dokumentasjonen er utgitt med <a href="https://git.k8s.io/website/LICENSE" class="light-text">CC BY 4.0-lisens</a>"""
[main_copyright_notice]
other = """The Linux Foundation &reg;. Alle retter er reservert. The Linux Foundation har registrerte varemerker. For en oversikt, se <a href="https://www.linuxfoundation.org/trademark-usage" class="light-text">Bruk av varemerker</a>"""
# Community links
[community_twitter_name]
other = "Twitter"
[community_github_name]
other = "GitHub"
[community_slack_name]
other = "Slack"
[community_stack_overflow_name]
other = "Stack Overflow"
[community_forum_name]
other = "Forum"
[community_events_calendar]
other = "Kalender"
# UI elements
[ui_search_placeholder]
other = "Søk"

View File

@ -4,7 +4,7 @@
{{ partial "head.html" . }}
</head>
<body>
{{ partialCached "header.html" . "default" }}
{{ partial "header.html" . }}
{{ block "hero" . }}
<!-- HERO -->
<section id="hero" class="light-text">

View File

@ -7,9 +7,9 @@
<link rel="stylesheet" type="text/css" href="{{ "css/blog.css" | relURL }}">
</head>
<body>
{{ partialCached "header.html" . "blog" }}
{{ partial "header.html" . }}
<section id="hero" class="light-text no-sub">
<h1>Kubernetes Blog</h1>
<h1>{{ .Title }}</h1>
</section>
<div class="container-fluid" style="padding-top: 2em">
<div class="row">

View File

@ -4,7 +4,7 @@
{{ partial "head.html" . }}
</head>
<body>
{{ partialCached "header.html" . "default" }}
{{ partial "header.html" . }}
{{ block "main" . }}{{ end }}
{{ partialCached "footer.html" . }}
{{ partialCached "footer-scripts.html" . }}

View File

@ -4,7 +4,7 @@
{{ partial "head.html" . }}
</head>
<body>
{{ partialCached "header.html" . "docs" }}
{{ partial "header.html" . }}
{{ block "hero" . }}
<!-- HERO -->
<section id="hero" class="light-text no-sub">
@ -30,23 +30,42 @@
"title" : "{{ .Title }}",
"permalink" : "{{ .Permalink }}"
};
(function(d,c,j){if(!document.getElementById(j)){var pd=d.createElement(c),s;pd.id=j;pd.src=('https:'==document.location.protocol)?'https://polldaddy.com/js/rating/rating.js':'http://i0.poll.fm/js/rating/rating.js';s=document.getElementsByTagName(c)[0];s.parentNode.insertBefore(pd,s);}}(document,'script','pd-rating-js'));
</script>
<a href="https://github.com/kubernetes/website/issues/new?title=Issue%20with%20k8s.io/{{ .URL }}%20%5BFile:%20/content/en/{{ .File.Path }}%5D" class="button issue" target="_blank">Report a problem</a>
<a href="" onclick="window.open('https://github.com/kubernetes/website/issues/new?title=Issue%20with%20' +
'k8s.io'+window.location.pathname)" class="button issue">{{ T "main_github_create_an_issue" }}</a>
{{ end }}
{{ end }}
{{ if not .Params.noedit }}
<a href="https://github.com/kubernetes/website/edit/master/content/en/{{ .File.Path }}" class="button issue" target="_blank">Edit on Github</a>
<a href="{{ printf "%s#%s" ("docs/editdocs" | relURL) .Path | safeURL }}" class="button issue">{{ T "main_edit_this_page" }}</a>
{{ end }}
</div>
{{ if not .Params.showcommit }}
{{ if $.GitInfo }}
<div id="lastedit" class="lastedit issue-button-container">
{{ .GitInfo.AuthorDate.Format "Page last modified on January 02, 2006 at 3:04 PM PST" }} by <a href="https://github.com/kubernetes/website/commit/{{ .GitInfo.Hash }}/">{{ .GitInfo.Subject }}</a> (<a href="https://github.com/kubernetes/website/commits/master/content/en/{{ .File.Path }}">Page history</a>)
{{ T "main_page_last_modified_on" }} {{ .GitInfo.AuthorDate.Format "January 02, 2006 at 3:04 PM PST" }} {{ T "main_by" }} <a href="https://github.com/kubernetes/website/commit/{{ .GitInfo.Hash }}/">{{ .GitInfo.Subject }}</a> (<a href="https://github.com/kubernetes/website/commits/master/content/en/{{ .File.Path }}">{{ T "main_page_history" }}</a>)
</div>
{{ end }}
{{ end }}
</div>
{{ partialCached "footer.html" . }}
{{ partialCached "footer-scripts.html" . }}
<script language="application/javascript">
// This script turns in-page headers into clickable and shareable
(function addHeadingLinks(){
var article = document.getElementById('docsContent');
var headings = article.querySelectorAll('h1, h2, h3, h4, h5, h6');
headings.forEach(function(heading){
if(heading.id){
var a = document.createElement('a');
a.innerHTML = heading.innerHTML;
a.href = '#'+heading.id;
a.classList.add('inpage_heading');
heading.innerHTML = '';
heading.appendChild(a);
}
});
})();
</script>
</body>
</html>

View File

@ -1,5 +1,12 @@
{{ define "main" }}
{{ .Content }}
<section id="cncf">
<main>
<center>
<p style="font-size: 20px">{{ T "main_cncf_project" | safeHTML }}
</center>
</main>
</section>
{{ end }}

View File

@ -16,6 +16,6 @@
{{ end }}
</ul>
<form id="searchBox" action="/docs/search/">
<input type="text" id="search" name="q" placeholder="Search" aria-label="Search">
<input type="text" id="search" name="q" placeholder="{{ T "ui_search_placeholder" }}" aria-label="Search">
</form>
</div>

View File

@ -9,25 +9,26 @@
</nav>
<div class="social">
<div>
<a href="https://twitter.com/kubernetesio" class="twitter"><span>twitter</span></a>
<a href="https://github.com/kubernetes/kubernetes" class="github"><span>Github</span></a>
<a href="https://twitter.com/kubernetesio" class="twitter"><span>{{ T "community_twitter_name" }}</span></a>
<a href="https://github.com/kubernetes/kubernetes" class="github"><span>{{ T "community_github_name" }}</span></a>
<a href="http://slack.k8s.io/" class="slack"><span>Slack</span></a>
</div>
<div>
<a href="http://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>Stack Overflow</span></a>
<a href="https://discuss.kubernetes.io" class="mailing-list"><span>Forum</span></a>
<a href="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com" class="calendar"><span>Events Calendar</span></a>
<a href="http://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>
<a href="http://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>{{ T "community_stack_overflow_name" }}</span></a>
<a href="https://discuss.kubernetes.io" class="mailing-list"><span>{{ T "community_forum_name" }}</span></a>
<a href="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com" class="calendar"><span>{{ T "community_events_calendar" }}</span></a>
</div>
<div>
<a href="/docs/setup/pick-right-solution/" class="button">Get Kubernetes</a>
<a href="https://git.k8s.io/community/contributors/guide" class="button">Contribute</a>
{{ with .Site.GetPage "page" "/docs/setup/pick-right-solution/" }}<a href="{{ .RelPermalink }}" class="button">{{ .LinkTitle }}</a>{{ end }}
<a href="https://git.k8s.io/community/contributors/guide" class="button">{{ T "main_contribute" }}</a>
</div>
</div>
<div id="miceType" class="center">
&copy; {{ now.Year }} The Kubernetes Authors | Documentation Distributed under <a href="https://git.k8s.io/website/LICENSE" class="light-text">CC BY 4.0</a>
&copy; {{ now.Year }} {{ T "main_documentation_license" | safeHTML }}</a>
</div>
<div id="miceType" class="center">
Copyright &copy; {{ now.Year }} The Linux Foundation&reg;. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our <a href="https://www.linuxfoundation.org/trademark-usage" class="light-text">Trademark Usage page</a>
Copyright &copy; {{ now.Year }} {{ T "main_copyright_notice" | safeHTML }}
</div>
<div id="miceType" class="center">
ICP license: 京ICP备17074266号-3

View File

@ -1,21 +1,22 @@
<div id="cellophane" onclick="kub.toggleMenu()"></div>
<header>
<a href="/" class="logo"></a>
<a href="{{ .Site.Home.RelPermalink }}" class="logo"></a>
<div class="nav-buttons" data-auto-burger="primary">
<ul class="global-nav">
{{ $sections := slice "docs" "blog" "partners" "community" "case-studies" }}
{{ $sections := slice "docs/home" "blog" "partners" "community" "case-studies" }}
{{ range $sections }}
{{ with $.Site.GetPage "section" . }}<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>{{ end }}
{{ with $.Site.GetPage "section" . }}<li><a href="{{ .RelPermalink }}"{{ if eq .Section $.Section }} class="active"{{ end}}>{{ .LinkTitle }}</a></li>{{ end }}
{{ end }}
{{ $home := .Site.Home }}
{{/* Link directly to documentation etc., if possible. */}}
{{ $langPage := cond (gt (len .Translations) 0) . .Site.Home }}
<li>
<a href="#">
{{ $home.Language.LanguageName }} <span class="ui-icon ui-icon-carat-1-s"></span>
{{ $langPage.Language.LanguageName }} <span class="ui-icon ui-icon-carat-1-s"></span>
</a>
<ul>
{{ range $home.Translations }}
{{ range $langPage.Translations }}
<li><a href="{{ .RelPermalink }}">{{ .Language.LanguageName }}</a></li>
{{ end }}
</ul>
@ -32,45 +33,37 @@
</ul>
</li>
</ul>
<!-- <a href="/docs/home" class="button" id="viewDocs" data-auto-burger-exclude>View Documentation</a> -->
<a href="/docs/tutorials/kubernetes-basics/" class="button" id="tryKubernetes" data-auto-burger-exclude>Try Kubernetes</a>
{{ with .Site.GetPage "section" "docs/tutorials/kubernetes-basics" }}
<a href="{{ .RelPermalink }}" class="button" id="tryKubernetes" data-auto-burger-exclude>{{ .LinkTitle }}</a>
{{ end }}
<button id="hamburger" onclick="kub.toggleMenu()" data-auto-burger-exclude><div></div></button>
</div>
<nav id="mainNav">
<main data-auto-burger="primary">
<div class="nav-box">
<h3><a href="/docs/tutorials/stateless-application/hello-minikube/">Get Started</a></h3>
<p>Ready to get your hands dirty? Build a simple Kubernetes cluster that runs "Hello World" for Node.js.</p>
</div>
<div class="nav-box">
<h3><a href="/docs/home/">Documentation</a></h3>
<p>Learn how to use Kubernetes with the use of walkthroughs, samples, and reference documentation. You can even <a href="/editdocs/" data-auto-burger-exclude>help contribute to the docs</a>!</p>
</div>
<div class="nav-box">
<h3><a href="/community/">Community</a></h3>
<p>If you need help, you can connect with other Kubernetes users and the Kubernetes authors, attend community events, and watch video presentations from around the web.</p>
</div>
<div class="nav-box">
<h3><a href="/blog/">Blog</a></h3>
<p>Read the latest news for Kubernetes and the containers space in general, and get technical how-tos hot off the presses.</p>
{{ range .Site.Menus.main }}
<div class="nav-box">
<h3><a href="{{ .URL }}">{{ .Title }}</a></h3>
{{ .Post }}
</div>
{{ end }}
</main>
<main data-auto-burger="primary">
<div class="left">
<h5 class="github-invite">Interested in hacking on the core Kubernetes code base?</h5>
<a href="https://github.com/kubernetes/kubernetes" class="button" data-auto-burger-exclude>View On Github</a>
<h5 class="github-invite">{{ T "main_github_invite" }}</h5>
<a href="https://github.com/kubernetes/kubernetes" class="button" data-auto-burger-exclude>{{ T "main_github_view_on" }}</a>
</div>
<div class="right">
<h5 class="github-invite">Explore the community</h5>
<h5 class="github-invite">{{ T "main_community_explore" }}</h5>
<div class="social">
<a href="https://twitter.com/kubernetesio" class="twitter"><span>Twitter</span></a>
<a href="https://github.com/kubernetes/kubernetes" class="github"><span>Github</span></a>
<a href="http://slack.k8s.io/" class="slack"><span>Slack</span></a>
<a href="https://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>Stack Overflow</span></a>
<a href="https://discuss.kubernetes.io" class="mailing-list"><span>Forum</span></a>
<a href="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com" class="calendar"><span>Events Calendar</span></a>
<a href="https://twitter.com/kubernetesio" class="twitter"><span>{{ T "community_twitter_name" }}</span></a>
<a href="https://github.com/kubernetes/kubernetes" class="github"><span>{{ T "community_github_name" }}</span></a>
<a href="http://slack.k8s.io/" class="slack"><span>{{ T "community_slack_name" }} Slack</span></a>
<a href="https://stackoverflow.com/questions/tagged/kubernetes" class="stack-overflow"><span>{{ T "community_stack_overflow_name" }}</span></a>
<a href="https://discuss.kubernetes.io" class="mailing-list"><span>{{ T "community_forum_name" }}</span></a>
<a href="https://calendar.google.com/calendar/embed?src=nt2tcnbtbied3l6gi2h29slvc0%40group.calendar.google.com" class="calendar"><span>{{ T "community_events_calendar" }}</span></a>
</div>
</div>
<div class="clear" style="clear: both"></div>

View File

@ -0,0 +1,15 @@
{{/* This file contains some common template definitions used in the blocks shortcodes.
The reasoning behind the long and hard-to-remember template names is that these templates are global. */}}
{{ define "shortcodes-blocks_getimage" }}
{{- $cr := .ctx.Site.GetPage "/_common-resources" -}}
{{- with $cr -}}
{{- $image := $cr.Resources.GetMatch (printf "images/**%s*" $.name ) -}}
{{- with $image -}}
{{- $.ctx.Scratch.Set $.target $image -}}
{{- else -}}
{{- errorf "Image matching %q not found _common-resources" $.name -}}
{{- end -}}
{{- else -}}
{{ errorf "[%s] No resource bundle found. Create an empty headless bundle; create content/%s/_common-resources/index.md with \"headless: true\" in front matter. See https://gohugo.io/content-management/page-bundles/#headless-bundle" $.ctx.Page.Lang $.ctx.Page.Lang }}
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,22 @@
{{ $caseStudiesSection := .Site.GetPage "case-studies" }}
{{ if not $caseStudiesSection }}
{{ errorf "[%s] No case-studies section found. Create content/%s/case-studies/_index.md" $.Page.Lang $.Page.Lang }}
{{ else }}
{{ $caseStudiesPages := where $caseStudiesSection.Pages "Params.featured" true | first 4 }}
<section id="talkToUs">
<main>
<h3>{{ $caseStudiesSection.Title }}</h3>
<div id="caseStudiesWrapper">
{{ range $caseStudiesPages }}
{{ $logo := .Resources.GetMatch "**logo*.png" }}
<div>
{{ with $logo }}<img src="{{ .RelPermalink }}">{{ end }}
<p>"{{ .Params.quote | truncate 100 }}"</p>
<a href="{{ .RelPermalink }}">{{ T "main_read_more" }}</a>
</div>
{{ end }}
</div>
<h5 style="text-align: center"><a href="/case-studies/" style="color: #3371E3; font-weight: 400">{{ $caseStudiesSection.LinkTitle }}</a></h5>
</main>
</section>
{{ end }}

View File

@ -0,0 +1,15 @@
{{/*
This shortcode renders a main feature as seen on the top of the Kubernetes home page.
It can be given a "image" parameter with a name partially matching a file in the images folder of the _common-resources bundle.
*/}}
{{- $imageName := $.Get "image" | default "flower" -}}
{{ if $imageName }}{{- template "shortcodes-blocks_getimage" (dict "name" $imageName "ctx" . "target" "feature-image") -}}{{ end }}
{{- $image := $.Scratch.Get "feature-image" -}}
<main>
{{ with $image }}<div class="image-wrapper"><img src="{{ .RelPermalink }}" alt="{{ .Title }}"></div>{{ end }}
<div class="content">
{{ $.Inner }}
</div>
</main>

View File

@ -0,0 +1,36 @@
{{/*
This shortcode lists pages that have a "feature" section configured in front matter.
This creates a set of feature boxes as seen on the home page.
See /content/en/docs/concepts/services-networking/service.md for an example:
feature:
title: Service discovery and load balancing
description: >
No need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives containers their own IP addresses and a single DNS name for a set of containers, and can load-balance across them.
Note that markdown can be used in the description.
*/}}
<section id="features">
<main>
<h3 class="center">{{ T "main_kubernetes_features" }}</h3>
{{ $pages := where .Site.Pages ".Params.feature" "!=" nil }}
{{range $i, $p := $pages }}
{{ if and (gt $i 0) (modBool $i 2) }}</div>{{ end }}
{{ if modBool $i 2 }}
<div class="feature-box">
{{ end }}
<div>
{{ with .Params.feature }}
<h4><a href="{{ $p.RelPermalink}}{{ with .anchor }}#{{ . | anchorize }}{{ end }}">{{ .title }}</a></h4>
{{ $description := .description | default $p.Params.description }}
{{ $description | markdownify }}
{{ end }}
</div>
{{ end }}
</main>
</section>

View File

@ -0,0 +1,11 @@
{{- $class := .Get "class" -}}
{{- $style := .Get "style" -}}
{{- $id := .Get "id" | default (printf "section-%d" .Ordinal) -}}
{{- $bg := .Get "background-image" -}}
{{- if $bg -}}
{{ template "shortcodes-blocks_getimage" (dict "name" $bg "ctx" . "target" "bg") }}
{{- end -}}
{{- $image := $.Scratch.Get "bg" -}}
<section id="{{ $id }}"{{ with $class }} class="{{ . }}"{{ end }} style="{{ with $image }}background-image: url({{ .Permalink }}); {{ end }}{{ with $style }}{{ . | safeCSS }}{{ end }}">
{{ $.Inner }}
</section>

View File

@ -1 +0,0 @@
{"Target":"css/styles.css","MediaType":"text/css","Data":{}}

View File

@ -1 +1 @@
{"Target":"css/styles.min.ece7e7b8765fe37209670b4fdb98dc7c18c77ce66f423368a943e602cf2ab436.css","MediaType":"text/css","Data":{"Integrity":"sha256-7OfnuHZf43IJZwtP25jcfBjHfOZvQjNoqUPmAs8qtDY="}}
{"Target":"css/styles.min.544877f7aaf1761d19cb1da7afc725c3bbdd062dc307a515caaae3cbfcadafd5.css","MediaType":"text/css","Data":{"Integrity":"sha256-VEh396rxdh0Zyx2nr8clw7vdBi3DB6UVyqrjy/ytr9U="}}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"Target":"css/styles.min.36e2d5e7b70bfce1c48918362c1c1fc87ea3c820c5a8e9985d1f9b09c0bf737a.css","MediaType":"text/css","Data":{"Integrity":"sha256-NuLV57cL/OHEiRg2LBwfyH6jyCDFqOmYXR+bCcC/c3o="}}
{"Target":"css/styles.min.a848f9c131ff992de25c86ec3a2fc944e86d48666bcd5f060f881576a04b3754.css","MediaType":"text/css","Data":{"Integrity":"sha256-qEj5wTH/mS3iXIbsOi/JROhtSGZrzV8GD4gVdqBLN1Q="}}

View File

@ -178,6 +178,9 @@ var kub = (function () {
}
function setHomeHeaderStyles() {
if (!quickstartButton[0]) {
return;
}
var Y = window.pageYOffset;
var quickstartBottom = quickstartButton[0].getBoundingClientRect().bottom;
@ -517,11 +520,6 @@ $(function() {
addAnchorTags();
// Make global nav be active based on pathname
if ((location.pathname.split("/")[1]) !== ""){
$('.global-nav li a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
}
// If vendor strip doesn't exist add className
if ( !$('#vendorStrip').length > 0 ) {
$('#hero').addClass('bot-bar');