Add Showcase page; rework landing-pages for each language (#421)

* Language landing page rework

* Use dev-stories heading id

* Add Showcase page

* Elide Java dev stories for now, but keep target

* Tweak showcase dev stories list

* Only show "More..." nav entry for pages that have more content
This commit is contained in:
Patrice Chalin 2020-10-06 13:42:57 -04:00 committed by GitHub
parent 6aebd07b66
commit 0e19ceadf6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 418 additions and 19 deletions

View File

@ -80,6 +80,9 @@ menu:
url: /docs/
identifier: docs
weight: 2
- name: Showcase
url: /showcase/
weight: 3
- name: Blog
url: /blog/
weight: 4

View File

@ -1,11 +1,90 @@
---
title: Go
title: &lang Go
language: *lang
api_path: https://pkg.go.dev/google.golang.org/grpc
src_repo: github.com/grpc/grpc-go
src_repo_content: github.com/grpc/grpc-go/blob/master
---
These language-specific pages are available:
<style>
.card {
min-height: 100%;
}
.resource-list ul {
list-style: none;
margin: 0;
padding: 0;
}
</style>
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [Generated-code reference](generated-code/)
- [API reference](api)
<div class="columns">
<div class="column">
<div class="card" href="#">
<div class="card-content">
<h4>
<a class="" href="quickstart/">Quick start</a>
</h4>
<p>
Run your first
{{< param language >}}
gRPC app in minutes!
</p>
</div>
</div>
</div>
<div class="column">
<div class="card">
<div class="card-content">
<h4>
<a class="" href="basics/">Basics tutorial</a>
</h4>
<p>
Learn about
{{< param language >}}
gRPC basics.
</p>
</div>
</div>
</div>
</div>
---
<div class="columns">
<div class="column resource-list">
#### Learn more
- [Examples](https://{{< param src_repo_content >}}/examples/)
- [Additional docs](https://{{< param src_repo_content >}}/Documentation/)
- [Installation](https://{{< param src_repo >}}#installation)
- [FAQ](https://{{< param src_repo >}}#faq)
</div><div class="column resource-list">
#### Reference
- [API](api/)
- [Generated code](generated-code/)
</div><div class="column resource-list">
#### Other
- [Performance benchmark][]
- [grpc-{{< plower language >}} repo](https://{{< param src_repo >}})
</div>
</div>
---
#### Developer stories and talks {#dev-stories}
- **Talking to Go gRPC Services Via HTTP/1**
<a href="https://youtu.be/Vbw8h0RCn2E"><i class="fab fa-youtube"></i></a>
<a href="https://static.sched.com/hosted_files/grpcconf20/c9/TalkingToGoGRPCviaHTTP1-gRPCConf2020-MalteIsberner.pdf"><i class="far fa-file"></i></a><br>
A [gRPC Conf 2020 presentation](https://sched.co/cRfW)
by Malte Isberner, StackRox.
[Performance benchmark]: https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584&widget=490377658&container=1286539696

View File

@ -1,7 +1,7 @@
---
title: Go Generated-code reference
short: Generated code
weight: 80
weight: 95
---
This page describes the code generated with the [grpc plugin](https://godoc.org/github.com/golang/protobuf/protoc-gen-go/grpc) to `protoc-gen-go`

View File

@ -1,11 +1,83 @@
---
title: Java
title: &lang Java
language: *lang
api_path: grpc-java/javadoc
src_repo: github.com/grpc/grpc-java
src_repo_content: github.com/grpc/grpc-java/blob/master
---
These language-specific pages are available:
<style>
.card {
min-height: 100%;
}
.resource-list ul {
list-style: none;
margin: 0;
padding: 0;
}
</style>
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [Generated-code reference](generated-code/)
- [API reference](api)
<div class="columns">
<div class="column">
<div class="card" href="#">
<div class="card-content">
<h4>
<a class="" href="quickstart/">Quick start</a>
</h4>
<p>
Run your first
{{< param language >}}
gRPC app in minutes!
</p>
</div>
</div>
</div>
<div class="column">
<div class="card">
<div class="card-content">
<h4>
<a class="" href="basics/">Basics tutorial</a>
</h4>
<p>
Learn about
{{< param language >}}
gRPC basics.
</p>
</div>
</div>
</div>
</div>
---
<div class="columns">
<div class="column resource-list">
#### Learn more
- [Examples](https://{{< param src_repo_content >}}/examples/)
- [Android example](https://{{< param src_repo_content >}}/examples/android/)
- [Additional docs](https://{{< param src_repo_content >}}/documentation/)
</div><div class="column resource-list">
#### Reference
- [API](api/)
- [Generated code](generated-code/)
</div><div class="column resource-list">
#### Other
- [grpc-{{< plower language >}} repo](https://{{< param src_repo >}})
- [Download](https://{{< param src_repo >}}#download)
</div>
</div>
---
#### Developer stories and talks {#dev-stories}
(_Content coming shortly_.)

View File

@ -1,7 +1,7 @@
---
title: Java generated-code reference
short: Generated code
weight: 80
weight: 95
spelling: cSpell:ignore buildscript classpath grpcexample motd srcs xolstice
---

View File

@ -1,10 +1,85 @@
---
title: Kotlin/JVM
title: &lang Kotlin/JVM
language: *lang
api_path: https://javadocs.dev/io.grpc/grpc-kotlin-stub/latest
src_repo: github.com/grpc/grpc-kotlin
src_repo_content: github.com/grpc/grpc-kotlin/blob/master
---
These language-specific pages are available:
<style>
.card {
min-height: 100%;
}
.resource-list ul {
list-style: none;
margin: 0;
padding: 0;
}
</style>
- [Quick start](quickstart/)
- [Basics tutorial](basics/)
- [API reference](api)
<div class="columns">
<div class="column">
<div class="card" href="#">
<div class="card-content">
<h4>
<a class="" href="quickstart/">Quick start</a>
</h4>
<p>
Run your first
{{< param language >}}
gRPC app in minutes!
</p>
</div>
</div>
</div>
<div class="column">
<div class="card">
<div class="card-content">
<h4>
<a class="" href="basics/">Basics tutorial</a>
</h4>
<p>
Learn about
{{< param language >}}
gRPC basics.
</p>
</div>
</div>
</div>
</div>
---
<div class="columns">
<div class="column resource-list">
#### Learn more
- [Examples](https://{{< param src_repo_content >}}/examples/),
including for Android
</div><div class="column resource-list">
#### Reference
- [API](api/)
</div><div class="column resource-list">
#### Other
- [grpc-kotlin repo](https://{{< param src_repo >}})
- [Download](https://search.maven.org/search?q=g:io.grpc%20AND%20grpc-kotlin)
</div>
</div>
---
#### Developer stories and talks {#dev-stories}
- **Next Level gRPC With Kotlin and Coroutines**
<a href="https://youtu.be/SfmdAA2kwWI"><i class="fab fa-youtube"></i></a>
<a href="https://static.sched.com/hosted_files/grpcconf20/e6/grpc-session.pdf"><i class="far fa-file"></i></a><br>
A [gRPC Conf 2020 presentation](https://sched.co/cRfc)
by Marco Ferrer, OfferUp.

150
content/showcase.md Normal file
View File

@ -0,0 +1,150 @@
---
title: Showcase
description: Customer success stories, developers stories, and more
url_use_grpc: https://www.cncf.io/case-studies/?_sft_lf-project=grpc
spelling: cSpell:ignore youtube Kubernetes Nulab Protop
---
## Customer success stories
<style>
.content h2:not(:first-child) {
margin-top: 4rem !important;
}
.content h2 {
margin-top: 1rem !important;
margin-bottom: 2rem !important;
}
.card {
min-height: 100%;
}
.resource-list ul {
list-style: none;
margin: 0;
padding: 0;
}
</style>
Here are a few of the customers who [successfully adopted **gRPC**][use-of-gRPC]
and other [CNCF technologies](https://www.cncf.io/projects/) in the past year:
<div class="columns mt-5">
<div class="column">
<div class="card">
<div class="card-content">
<h4>
<!-- <a href="https://www.cncf.io/case-studies/salesforce/">Salesforce</a> -->
[Salesforce](https://www.cncf.io/case-studies/salesforce/)
</h4>
<p>
How gRPC is enabling Salesforces unified interoperability strategy.
</p>
</div>
</div>
</div>
<div class="column">
<div class="card" href="#">
<div class="card-content">
<h4>
<!-- <a href="https://www.cncf.io/case-studies/mux/">Mux</a> -->
[Mux](https://www.cncf.io/case-studies/mux/)
</h4>
<p>
How cloud native technology helps Mux simplify online video streaming.
</p>
</div>
</div>
</div>
<div class="column">
<div class="card">
<div class="card-content">
<h4>
<!-- <a href="https://www.cncf.io/case-studies/nulab/">Nulab</a> -->
[Nulab](https://www.cncf.io/case-studies/nulab/)
</h4>
<p>
How the productivity software company Nulab boosted its own productivity with microservices and Kubernetes.
</p>
</div>
</div>
</div>
</div>
<div class="has-text-centered mb-5">
<a class="button is-secondary"
href="{{< param url_use_grpc >}}"
target="_blank"
rel="noopener"
>View all</a>
</div>
There are [many CNCF projects](https://www.cncf.io/projects/) of which gRPC is
one. For a complete list of customer stories describing the successful adoption
of CNCF technologies, see the [CNCF case studies][] page.
## Developer stories
Developer stories cover a variety of technical subjects related to gRPC. You can
find developer stories for your [preferred language](/docs/languages) on each
**language-specific landing page**.
<div class="buttons are-medium is-centered mt-5 mb-5">
<a class="button is-secondary is-light" href="/docs/languages/go/#dev-stories">
Go
</a>
<a class="button is-secondary is-light" href="/docs/languages/cpp/#dev-stories">
C++
</a>
<a class="button is-secondary is-light" href="/docs/languages/java/#dev-stories">
Java
</a>
<a class="button is-secondary is-light" href="/docs/languages/python/#dev-stories">
Python
</a>
<a class="button is-secondary is-light" href="/docs/languages/csharp/#dev-stories">
C#
</a>
<a class="button is-secondary is-light" href="/docs/languages/">
<i class="fas fa-ellipsis-h"></i>
</a>
</div>
Other developer stories are provided next.
- [**How GIPHYs Public API Integrates with gRPC Services**](https://engineering.giphy.com/how-giphys-public-api-integrates-with-grpc-services/)<br>
by Serhii Kushch. August 13, 2020.
- **A Simplified Service Mesh With gRPC**
<a href="https://youtu.be/9alMEeTxsMA"><i class="fab fa-youtube"></i></a>
<a href="https://static.sched.com/hosted_files/grpcconf20/ae/A%20Simplified%20Service%20Mesh%20with%20gRPC.pdf"><i class="far fa-file"></i></a><br>
A [gRPC Conf 2020 presentation](https://sched.co/cRfZ)
by Srini Polavarapu, Engineering Manager, Google
- **Protop: A Package Manager for gRPC and Protocol Buffers**
<a href="https://youtu.be/9alMEeTxsMA"><i class="fab fa-youtube"></i></a>
<a href="https://static.sched.com/hosted_files/grpcconf20/6b/protop%20-%20a%20package%20manager%20for%20protobufs.pdf"><i class="far fa-file"></i></a><br>
A [gRPC Conf 2020 presentation](https://sched.co/cRfo)
by Jeffery Shivers, Toast, Inc
- **Service Interoperability With gRPC: gRPC in Action**
<a href="https://youtu.be/MLS7TFHrn_c"><i class="fab fa-youtube"></i></a>
<a href="https://static.sched.com/hosted_files/grpcconf20/d3/Service%20Interoperability%20with%20gRPC.pdf"><i class="far fa-file"></i></a><br>
A [gRPC Conf 2020 presentation](https://sched.co/cRfl)
by Varun Gupta & Tuhin Kanti Sharma, Salesforce.
## More
- [gRPC Conf 2020 presentation videos][]. Looking for slides? Select the
presentation's entry in the [schedule][] page. If the author provided slides,
you'll find them below the author's bio.
[CNCF case studies]: https://www.cncf.io/case-studies/
[gRPC YouTube channel]: ...
[gRPC Conf 2020 presentation videos]: https://www.youtube.com/playlist?list=PLj6h78yzYM2NN72UX_fdmc5CZI-D5qfJL
[schedule]: https://events.linuxfoundation.org/grpc-conf/program/schedule/
[use-of-gRPC]: {{< param url_use_grpc >}}

View File

@ -73,6 +73,13 @@
</a>
</li>
{{ end -}}
{{ if .Params.language }}
<li class="nav-section-link">
<a href="{{ .RelPermalink }}">
More ...
</a>
</li>
{{ end -}}
</ul>
{{ end -}}
</li>

View File

@ -0,0 +1,13 @@
{{/*
Param lower shortcode: plower PARAM_NAME
*/}}
{{- $name := (.Get 0) -}}
{{ with $name -}}
{{ with ($.Page.Param .) -}}
{{ lower . -}}
{{ else -}}
{{ errorf "Param %q not found: %s" $name $.Position -}}
{{ end -}}
{{ else -}}
{{ errorf "Missing param key: %s" $.Position -}}
{{ end -}}