This is an automated email from the ASF dual-hosted git repository.
juzhiyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-website.git
The following commit(s) were added to refs/heads/master by this push:
new 42cdf9a style: redesign team page (#197)
42cdf9a is described below
commit 42cdf9a173b7c956dcf0b4f052df9bb4664717c4
Author: qier222 <[email protected]>
AuthorDate: Sat Feb 20 14:51:34 2021 +0800
style: redesign team page (#197)
Co-authored-by: 琚致远 <[email protected]>
---
website/docs/team.md | 74 -------
website/docusaurus.config.js | 10 +
website/src/assets/icons/code.svg | 3 +
website/src/assets/icons/database.svg | 3 +
website/src/assets/icons/eye.svg | 4 +
website/src/assets/icons/puzzle.svg | 3 +
website/src/assets/icons/terminal.svg | 3 +
website/src/css/customTheme.css | 15 +-
website/src/pages/downloads/ProjectCard.js | 3 +-
website/src/pages/downloads/index.js | 13 +-
website/src/pages/help.js | 52 +++--
website/src/pages/team.js | 326 +++++++++++++++++++++++++++++
website/static/data/team.json | 210 +++++++++++++++++++
13 files changed, 615 insertions(+), 104 deletions(-)
diff --git a/website/docs/team.md b/website/docs/team.md
deleted file mode 100644
index 3204715..0000000
--- a/website/docs/team.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-id: team
-title: Team
----
-
-## Members
-
-### PMC
-
-| ID |
GitHub | Public Name |
-| ------------------------------------------------------------------------- |
------------- | ------------------- |
-| [akayeshmantha](https://whimsy.apache.org/roster/committer/akayeshmantha) |
Akayeshmantha | Ayeshmantha Perera |
-| [yousa](https://whimsy.apache.org/roster/committer/yousa) |
Miss-you | Hui Li |
-| [qiujiayu](https://whimsy.apache.org/roster/committer/qiujiayu) |
qiujiayu | Jiayu Qiu |
-| [chenjunxu](https://whimsy.apache.org/roster/committer/chenjunxu) |
nic-chen | Junxu Chen |
-| [totemofwolf](https://whimsy.apache.org/roster/committer/totemofwolf) |
totemofwolf | Lang Wang |
-| [liling](https://whimsy.apache.org/roster/committer/liling) |
lilien1010 | Ling Li |
-| [linsir](https://whimsy.apache.org/roster/committer/linsir) |
linsir | Linsir Wu |
-| [wenming](https://whimsy.apache.org/roster/committer/wenming) |
moonming | Ming Wen |
-| [sshniro](https://whimsy.apache.org/roster/committer/sshniro) |
sshniro | Nirojan Selvanathan |
-| [wusheng](https://whimsy.apache.org/roster/committer/wusheng) |
wu-sheng | Sheng Wu |
-| [kvn](https://whimsy.apache.org/roster/committer/kvn) |
gxthrj | Wei Jin |
-| [agile6v](https://whimsy.apache.org/roster/committer/agile6v) |
agile6v | Wei Liu |
-| [membphis](https://whimsy.apache.org/roster/committer/membphis) |
membphis | YuanSheng Wang |
-| [spacewander](https://whimsy.apache.org/roster/committer/spacewander) |
spacewander | Zexuan Luo |
-| [juzhiyuan](https://whimsy.apache.org/roster/committer/juzhiyuan) |
juzhiyuan | Zhiyuan |
-| [shuaijinchao](https://whimsy.apache.org/roster/committer/shuaijinchao) |
shuaijinchao | JinChao Shuai |
-| [vinci](https://whimsy.apache.org/roster/committer/vinci) |
ShiningRush | Vinci |
-| [liuxiran](https://whimsy.apache.org/roster/committer/liuxiran) |
liuxiran | Xiran Liu |
-
-### Committer
-
-> The following list excludes PMC members above.
-
-| ID | GitHub
| Public Name |
-| ----------------------------------------------------------------- |
-------------- | ----------- |
-| [tangke](https://whimsy.apache.org/roster/committer/tangke) |
supermario1990 | Ke Tang |
-| [lizhiyong](https://whimsy.apache.org/roster/committer/lizhiyong) |
zhiyong0804 | Li Zhiyong |
-| [coolsoul](https://whimsy.apache.org/roster/committer/coolsoul) | soulsoul
| Suo Zhang |
-| [sunyi](https://whimsy.apache.org/roster/committer/sunyi) | LiteSun
| Yi Sun |
-| [liyong](https://whimsy.apache.org/roster/committer/liyong) |
chnliyong | Yong Li |
-| [bzp2010](https://whimsy.apache.org/roster/committer/bzp2010) | bzp2010
| Zeping Bai |
-| [shuyangw](https://whimsy.apache.org/roster/committer/shuyangw) | yiyiyimu
| Shuyang Wu |
-| [tokers](https://whimsy.apache.org/roster/committer/tokers) | tokers
| Chao Zhang |
-| [yangli](https://whimsy.apache.org/roster/committer/yangli) |
| acmly |
-| [starsz](https://whimsy.apache.org/roster/committer/starsz) | starsz
| Xinxin Zhu |
-| [majunjie](https://whimsy.apache.org/roster/committer/majunjie) | imjoey
| Joey Ma |
-
-## Mentors
-
-| ID | GitHub
| Public Name |
-| ------------------------------------------------------------------- |
------------ | ----------------- |
-| [jmclean](https://whimsy.apache.org/roster/committer/jmclean) |
justinmclean | Justin Mclean |
-| [djkevincr](https://whimsy.apache.org/roster/committer/djkevincr) |
djkevincr | Kevin Ratnasekera |
-| [vongosling](https://whimsy.apache.org/roster/committer/vongosling) |
vongosling | Von Gosling |
-| [ningjiang](https://whimsy.apache.org/roster/committer/ningjiang) |
WillemJiang | Willem Ning Jiang |
-
-## Contributors
-
-> You can find all contributors of Apache APISIX from GitHub contribution list.
-
-1. [apisix](https://github.com/apache/apisix/graphs/contributors)
-2.
[apisix-dashboard](https://github.com/apache/apisix-dashboard/graphs/contributors)
-3.
[apisix-website](https://github.com/apache/apisix-website/graphs/contributors)
-4. [apisix-docker](https://github.com/apache/apisix-docker/graphs/contributors)
-5.
[apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller/graphs/contributors)
-6.
[apisix-helm-chart](https://github.com/apache/apisix-helm-chart/graphs/contributors)
-7.
[apisix-control-plane](https://github.com/apache/apisix-control-plane/graphs/contributors)
-
-## Becoming a Committer
-
-The Apache APISIX community follows the Apache Community’s process on
accepting a new committer. After a contributor participates APISIX's community
actively, PMC and Committers will make decisions to invite the contributor join
Committers and PMC.
-
-You can read [Contributor Guide](./contributor-guide.md) to participate the
community, and can get more information on [Committer
Guide](./committer-guide.md).
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 8f189c3..c8e60ad 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -47,6 +47,16 @@ module.exports = {
releaseDate: "2021-02-11",
},
],
+ team: require("./static/data/team.json"),
+ allRepos: [
+ "apache/apisix",
+ "apache/apisix-dashboard",
+ "apache/apisix-website",
+ "apache/apisix-docker",
+ "apache/apisix-ingress-controller",
+ "apache/apisix-helm-chart",
+ "apache/apisix-control-plane",
+ ],
},
onBrokenLinks: "log",
onBrokenMarkdownLinks: "log",
diff --git a/website/src/assets/icons/code.svg
b/website/src/assets/icons/code.svg
new file mode 100644
index 0000000..74e6ab3
--- /dev/null
+++ b/website/src/assets/icons/code.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10
20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
+</svg>
diff --git a/website/src/assets/icons/database.svg
b/website/src/assets/icons/database.svg
new file mode 100644
index 0000000..97a17cc
--- /dev/null
+++ b/website/src/assets/icons/database.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4
7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4
7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4" />
+</svg>
diff --git a/website/src/assets/icons/eye.svg b/website/src/assets/icons/eye.svg
new file mode 100644
index 0000000..ab72cb9
--- /dev/null
+++ b/website/src/assets/icons/eye.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15
12a3 3 0 11-6 0 3 3 0 016 0z" />
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274
4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" />
+</svg>
diff --git a/website/src/assets/icons/puzzle.svg
b/website/src/assets/icons/puzzle.svg
new file mode 100644
index 0000000..3d573dc
--- /dev/null
+++ b/website/src/assets/icons/puzzle.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11
4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0
011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0
01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0
001-1V4z" />
+</svg>
diff --git a/website/src/assets/icons/terminal.svg
b/website/src/assets/icons/terminal.svg
new file mode 100644
index 0000000..adbb15a
--- /dev/null
+++ b/website/src/assets/icons/terminal.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"
stroke="currentColor">
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8
9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002
2z" />
+</svg>
diff --git a/website/src/css/customTheme.css b/website/src/css/customTheme.css
index 078a43b..fc45cd9 100644
--- a/website/src/css/customTheme.css
+++ b/website/src/css/customTheme.css
@@ -17,6 +17,10 @@ body {
font-family: "Inter", sans-serif;
}
+svg {
+ height: 24px;
+}
+
div.inner {
color: var(--ifm-color-primary);
}
@@ -383,20 +387,17 @@ a:hover {
}
/* help page */
-.help-page h1 {
- font-size: 3rem;
-}
.help-page .cards {
margin-top: 38px;
- margin-bottom: 72px;
+ margin-bottom: 56px;
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 36px;
}
.help-page .card {
padding: 24px 28px 18px 28px;
- box-shadow: unset;
- background: var(--color-secondary-bg);
+ border: 1px solid #eee;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03);
}
.help-page .card .header {
@@ -439,7 +440,7 @@ a:hover {
}
.help-page .card .buttons a:hover svg {
- transform: translateX(4px);
+ transform: translateX(2px);
}
.help-page .card .buttons svg {
diff --git a/website/src/pages/downloads/ProjectCard.js
b/website/src/pages/downloads/ProjectCard.js
index ed9a86a..4683a08 100644
--- a/website/src/pages/downloads/ProjectCard.js
+++ b/website/src/pages/downloads/ProjectCard.js
@@ -64,7 +64,7 @@ const ProjectCard = (props) => {
return (
<Card>
<LeftSide>
- <Title>
+ <Title href={`https://github.com/${githubRepo}`} target="_blank">
<ShapeBeforeTitle color={color}>{shapeComponent}</ShapeBeforeTitle>
{name}
</Title>
@@ -177,6 +177,7 @@ const Title = styled.a`
}
&:hover {
color: inherit;
+ text-decoration: none;
svg {
transform: rotate(360deg);
}
diff --git a/website/src/pages/downloads/index.js
b/website/src/pages/downloads/index.js
index 0998f3a..db68415 100644
--- a/website/src/pages/downloads/index.js
+++ b/website/src/pages/downloads/index.js
@@ -12,14 +12,16 @@ const DownloadsPage = styled.div`
width: 100%;
`;
const PageTitle = styled.h1`
- text-align: center;
margin-top: 2rem;
- margin-bottom: 3rem;
font-size: 3rem;
+ font-weight: 800;
+ text-transform: uppercase;
+`;
+const PageSubtitle = styled.div`
+ margin-bottom: 4rem;
`;
const Description = styled.div`
margin-top: 6rem;
-
h2 {
margin-top: 4rem;
margin-bottom: 0.8rem;
@@ -43,10 +45,11 @@ export default (props) => {
<Layout>
<DownloadsPage>
<PageTitle>Downloads</PageTitle>
+ <PageSubtitle>We love open source.</PageSubtitle>
{projects}
<Description>
<h2>History Versions</h2>
- <div class="markdown">
+ <div className="markdown">
Find all APISIX releases in the
<a href="https://archive.apache.org/dist/apisix/" target="_blank">
Archive repository
@@ -62,7 +65,7 @@ export default (props) => {
hosts older releases when APISIX was an incubator project.
</div>
<h2>Verify the releases</h2>
- <div class="markdown">
+ <div className="markdown">
<a href="https://downloads.apache.org/apisix/KEYS" target="_blank">
Get PGP signatures KEYS
</a>
diff --git a/website/src/pages/help.js b/website/src/pages/help.js
index 246c49e..c37c979 100644
--- a/website/src/pages/help.js
+++ b/website/src/pages/help.js
@@ -1,7 +1,25 @@
-const React = require("react");
+import React from "react";
+import styled from "styled-components";
import Layout from "@theme/Layout";
import ChevronRight from "../assets/icons/chevron-right.svg";
+const PageTitle = styled.h1`
+ margin-top: 2rem;
+ font-size: 3rem;
+ font-weight: 800;
+`;
+
+const PageSubtitle = styled.div`
+ margin-bottom: 3rem;
+`;
+
+const Page = styled.div`
+ max-width: var(--ifm-container-width);
+ margin: 0 auto;
+ padding: 2rem var(--ifm-spacing-horizontal);
+ width: 100%;
+`;
+
function Help(props) {
const { config: siteConfig, language = "" } = props;
const { baseUrl, docsUrl } = siteConfig;
@@ -9,17 +27,13 @@ function Help(props) {
const langPart = `${language ? `${language}/` : ""}`;
const docUrl = (doc) => `${baseUrl}${docsPart}${langPart}${doc}`;
return (
- <div className="container help-page">
- <div className="row">
- <div className="post-header">
- <h1>Need help?</h1>
- </div>
- </div>
- <div className="row">
+ <Page className="help-page">
+ <PageTitle>NEED HELP?</PageTitle>
+ <PageSubtitle>
This project is maintained by a dedicated group of people.
- </div>
+ </PageSubtitle>
<div className="row cards">
- <div class="card">
+ <div className="card">
<div className="header">
<h2>
<img
@@ -36,35 +50,39 @@ function Help(props) {
href="https://github.com/apache/apisix/tree/master/doc"
target="_blank"
>
- Read Documents <ChevronRight />
+ Read Documents
+ <ChevronRight />
</a>
</div>
</div>
- <div class="card">
+ <div className="card">
<div className="header">
<h2>
<img src="/img/community.png" alt="community icon" />
- Join the community
+ Join Community
</h2>
</div>
<p>Ask questions about the documentation and project</p>
<div className="buttons">
<a href="https://github.com/apache/apisix/issues" target="_blank">
- GitHub <ChevronRight />
+ GitHub
+ <ChevronRight />
</a>
<a
href="https://join.slack.com/t/the-asf/shared_invite/zt-lcbw4olf-_5s17RLU0Cx8xTvj2bNbjg"
target="_blank"
>
- Slack <ChevronRight />
+ Slack
+ <ChevronRight />
</a>
<a href="https://twitter.com/ApacheAPISIX" target="_blank">
- Twitter <ChevronRight />
+ Twitter
+ <ChevronRight />
</a>
</div>
</div>
</div>
- </div>
+ </Page>
);
}
diff --git a/website/src/pages/team.js b/website/src/pages/team.js
new file mode 100644
index 0000000..00b905c
--- /dev/null
+++ b/website/src/pages/team.js
@@ -0,0 +1,326 @@
+import React from "react";
+import styled from "styled-components";
+import Layout from "@theme/Layout";
+import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
+import GitHubLogo from "../assets/icons/github-logo.svg";
+
+import IconCode from "../assets/icons/code.svg";
+import IconStar from "../assets/icons/star.svg";
+import IconDatabase from "../assets/icons/database.svg";
+import IconTerminal from "../assets/icons/terminal.svg";
+import IconPuzzle from "../assets/icons/puzzle.svg";
+import IconEye from "../assets/icons/eye.svg";
+import IconDocumentText from "../assets/icons/document-text.svg";
+
+const PageTitle = styled.h1`
+ margin-top: 2rem;
+ font-size: 4rem;
+ font-weight: 800;
+ text-transform: uppercase;
+`;
+
+const PageSubtitle = styled.div`
+ margin-bottom: 3rem;
+`;
+
+const Page = styled.div`
+ max-width: var(--ifm-container-width);
+ margin: 0 auto;
+ padding: 2rem var(--ifm-spacing-horizontal);
+ width: 100%;
+`;
+
+const MembersContainer = styled.div`
+ display: grid;
+ grid-template-columns: repeat(6, 1fr);
+ gap: 18px;
+ @media (max-width: 812px) {
+ grid-template-columns: repeat(2, 1fr);
+ }
+`;
+const MemberCard = styled.a`
+ border-radius: 0.75rem;
+ border: 1px solid #eee;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ padding: 1rem;
+ min-width: calc(108px + 2rem);
+ cursor: pointer;
+ height: 100%;
+ &:hover {
+ color: inherit;
+ text-decoration: none;
+ }
+`;
+
+const Avatar = styled.img`
+ height: 108px;
+ width: 108px;
+ border-radius: 50%;
+`;
+const MemberName = styled.div`
+ font-size: 1rem;
+ font-weight: 600;
+ margin-top: 12px;
+ margin-bottom: -4px;
+ line-height: 1rem;
+`;
+const Username = styled.div`
+ font-size: 0.8rem;
+ font-weight: 500;
+ margin-top: 8px;
+`;
+
+const SectionTitle = styled.h2`
+ margin-bottom: 24px;
+ margin-top: 84px;
+`;
+const SectionSubtitle = styled.p`
+ opacity: 0.68;
+ margin-top: -12px;
+`;
+
+const RepoCardsContainer = styled.div`
+ display: flex;
+ flex-wrap: wrap;
+ margin-left: -8px;
+`;
+const RepoCard = styled.a`
+ border-radius: 0.75rem;
+ border: 1px solid #eee;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.03);
+ display: flex;
+ align-items: center;
+ font-weight: 500;
+ padding: 1rem;
+ margin: 8px;
+ cursor: pointer;
+ color: #374151;
+ transition: all 0.3s;
+
+ &:hover {
+ opacity: 0.98;
+ color: inherit;
+ text-decoration: none;
+ color: #111827;
+ }
+
+ svg {
+ margin-right: 8px;
+ transition: all 0.3s;
+ }
+`;
+
+const ContributeCard = styled.div`
+ display: flex;
+ background: #100f14;
+ border-radius: 0.75rem;
+ margin-top: 6rem;
+ margin-bottom: 3rem;
+ color: white;
+ padding: 2rem 2.4rem;
+`;
+const ContributeCardTitle = styled.div`
+ font-size: 2.4rem;
+ font-weight: 700;
+`;
+const ContributeCardSubtitle = styled.div`
+ opacity: 0.78;
+ font-size: 14px;
+ margin-top: 1rem;
+`;
+const ContributeCardButton = styled.a`
+ padding: 12px 24px;
+ font-size: 20px;
+ line-height: 20px;
+ font-weight: 600;
+ border-radius: 0.5rem;
+ border: 2px solid white;
+ background: transparent;
+ color: white;
+ transition: all 0.3s;
+ margin-top: 2.4rem;
+ cursor: pointer;
+ display: inline-block;
+ &:hover {
+ background: white;
+ color: black;
+ text-decoration: none;
+ }
+`;
+
+const ContributeCardLeftSide = styled.div`
+ flex: 3;
+`;
+
+const ContributeCardRightSide = styled.div`
+ @keyframes icon-animation {
+ 0% {
+ color: #ef4444;
+ }
+ 14% {
+ color: #f59e0b;
+ }
+ 28% {
+ color: #10b981;
+ }
+ 42% {
+ color: #3b82f6;
+ }
+ 57% {
+ color: #6366f1;
+ }
+ 71% {
+ color: #8b5cf6;
+ }
+ 85% {
+ color: #ec4899;
+ }
+ 100% {
+ color: #ef4444;
+ }
+ }
+ flex: 1;
+ position: relative;
+ @media (max-width: 812px) {
+ display: none;
+ }
+ svg {
+ position: absolute;
+ color: white;
+ height: 24px;
+ transition: all 0.3s;
+ }
+ svg:hover {
+ animation-name: icon-animation;
+ animation-duration: 2s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ }
+ #icon-code {
+ height: 72px;
+ top: 12px;
+ right: 12px;
+ transform: rotate(15deg);
+ }
+ #icon-star {
+ height: 56px;
+ top: 108px;
+ right: 34px;
+ transform: rotate(45deg);
+ }
+ #icon-database {
+ height: 42px;
+ top: 66px;
+ right: 108px;
+ transform: rotate(10deg);
+ }
+ #icon-terminal {
+ height: 32px;
+ bottom: 0;
+ left: 88px;
+ transform: rotate(-16deg);
+ }
+ #icon-puzzle {
+ height: 28px;
+ left: 88px;
+ transform: rotate(-10deg);
+ }
+ #icon-eye {
+ height: 38px;
+ right: 16px;
+ bottom: 12px;
+ transform: rotate(10deg);
+ }
+ #icon-document-text {
+ height: 22px;
+ bottom: 58px;
+ left: 124px;
+ transform: rotate(12deg);
+ }
+`;
+
+function Team(props) {
+ const { siteConfig } = useDocusaurusContext();
+ const memberSections = siteConfig.customFields.team.map((section) => {
+ const memberCards = section.members.map((member) => {
+ return (
+ <div key={member.username}>
+ <MemberCard
+
href={`https://whimsy.apache.org/roster/committer/${member.username}`}
+ target="_blank"
+ >
+ <Avatar src={member.avatarUrl} />
+ <MemberName>{member.name}</MemberName>
+ <Username>@{member.username}</Username>
+ </MemberCard>
+ </div>
+ );
+ });
+ return (
+ <div key={section.groupName}>
+ <SectionTitle>{section.groupName}</SectionTitle>
+ <MembersContainer id={section.groupName}>
+ {memberCards}
+ </MembersContainer>
+ </div>
+ );
+ });
+ const repoComponents = siteConfig.customFields.allRepos.map((repo) => {
+ return (
+ <RepoCard
+ href={`https://github.com/${repo}/graphs/contributors`}
+ target="_blank"
+ key={repo}
+ >
+ <GitHubLogo /> {repo}
+ </RepoCard>
+ );
+ });
+ return (
+ <Page>
+ <PageTitle>Team</PageTitle>
+ <PageSubtitle>We love open source.</PageSubtitle>
+ {memberSections}
+ <SectionTitle>Contributors</SectionTitle>
+ <SectionSubtitle>
+ You can find all contributors of Apache APISIX from GitHub contribution
+ list.
+ </SectionSubtitle>
+ <RepoCardsContainer>{repoComponents}</RepoCardsContainer>
+ <ContributeCard>
+ <ContributeCardLeftSide>
+ <ContributeCardTitle>🛠 Become A Committer </ContributeCardTitle>
+ <ContributeCardSubtitle>
+ The Apache APISIX community follows the Apache Community’s process
+ on accepting a new committer. After a contributor participates
+ APISIX's community actively, PMC and Committers will make decisions
+ to invite the contributor join Committers and PMC.
+ </ContributeCardSubtitle>
+ <ContributeCardButton href="/contributor-guide">
+ Start Contribute
+ </ContributeCardButton>
+ </ContributeCardLeftSide>
+ <ContributeCardRightSide>
+ <IconCode id="icon-code" />
+ <IconStar id="icon-star" />
+ <IconDatabase id="icon-database" />
+ <IconTerminal id="icon-terminal" />
+ <IconPuzzle id="icon-puzzle" />
+ <IconEye id="icon-eye" />
+ <IconDocumentText id="icon-document-text" />
+ </ContributeCardRightSide>
+ </ContributeCard>
+ </Page>
+ );
+}
+
+export default (props) => (
+ <Layout>
+ <Team {...props} />
+ </Layout>
+);
diff --git a/website/static/data/team.json b/website/static/data/team.json
new file mode 100644
index 0000000..919dce7
--- /dev/null
+++ b/website/static/data/team.json
@@ -0,0 +1,210 @@
+[
+ {
+ "groupName": "PMC",
+ "members": [
+ {
+ "name": "Ayeshmantha Perera",
+ "username": "akayeshmantha",
+ "githubUsername": "Akayeshmantha",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/20354461?v=4"
+ },
+ {
+ "name": "Hui Li",
+ "username": "yousa",
+ "githubUsername": "Miss-you",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/3816205?v=4"
+ },
+ {
+ "name": "Jiayu Qiu",
+ "username": "qiujiayu",
+ "githubUsername": "qiujiayu",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/3702914?v=4"
+ },
+ {
+ "name": "JinChao Shuai",
+ "username": "shuaijinchao",
+ "githubUsername": "shuaijinchao",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/8529452?v=4"
+ },
+ {
+ "name": "Justin Mclean",
+ "username": "jmclean",
+ "githubUsername": "justinmclean",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/144504?v=4"
+ },
+ {
+ "name": "Junxu Chen",
+ "username": "chenjunxu",
+ "githubUsername": "nic-chen",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/33000667?v=4"
+ },
+ {
+ "name": "Kevin Ratnasekera",
+ "username": "djkevincr",
+ "githubUsername": "djkevincr",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/1346010?v=4"
+ },
+ {
+ "name": "Lang Wang",
+ "username": "totemofwolf",
+ "githubUsername": "totemofwolf",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/1818214?v=4"
+ },
+ {
+ "name": "Ling Li",
+ "username": "liling",
+ "githubUsername": "lilien1010",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/3814966?v=4"
+ },
+ {
+ "name": "Linsir Wu",
+ "username": "linsir",
+ "githubUsername": "linsir",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/4339659?v=4"
+ },
+ {
+ "name": "Ming Wen",
+ "username": "wenming",
+ "githubUsername": "moonming",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/26448043?v=4"
+ },
+ {
+ "name": "Nirojan Selvanathan",
+ "username": "sshniro",
+ "githubUsername": "sshniro",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/13045528?v=4"
+ },
+ {
+ "name": "Sheng Wu",
+ "username": "wusheng",
+ "githubUsername": "wu-sheng",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/5441976?v=4"
+ },
+ {
+ "name": "Vinci",
+ "username": "vinci",
+ "githubUsername": "ShiningRush",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/24238012?v=4"
+ },
+ {
+ "name": "Von Gosling",
+ "username": "vongosling",
+ "githubUsername": "vongosling",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/635581?v=4"
+ },
+ {
+ "name": "Wei Jin",
+ "username": "kvn",
+ "githubUsername": "gxthrj",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/4413028?v=4"
+ },
+ {
+ "name": "Wei Liu",
+ "username": "agile6v",
+ "githubUsername": "agile6v",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/2017491?v=4"
+ },
+ {
+ "name": "Willem Ning Jiang",
+ "username": "ningjiang",
+ "githubUsername": "WillemJiang",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/219644?v=4"
+ },
+ {
+ "name": "Xiran Liu",
+ "username": "liuxiran",
+ "githubUsername": "liuxiran",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/2561857?v=4"
+ },
+ {
+ "name": "YuanSheng Wang",
+ "username": "membphis",
+ "githubUsername": "membphis",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/6814606?v=4"
+ },
+ {
+ "name": "Zexuan Luo",
+ "username": "spacewander",
+ "githubUsername": "spacewander",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/4161644?v=4"
+ },
+ {
+ "name": "Zhiyuan",
+ "username": "juzhiyuan",
+ "githubUsername": "juzhiyuan",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/2106987?v=4"
+ }
+ ]
+ },
+ {
+ "groupName": "Committer",
+ "members": [
+ {
+ "name": "acmly",
+ "username": "yangli",
+ "githubUsername": "JanLi-air",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/55779084?v=4"
+ },
+ {
+ "name": "Chao Zhang",
+ "username": "tokers",
+ "githubUsername": "tokers",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/10428333?v=4"
+ },
+ {
+ "name": "Joey Ma",
+ "username": "majunjie",
+ "githubUsername": "imjoey",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/2542401?v=4"
+ },
+ {
+ "name": "Ke Tang",
+ "username": "tangke",
+ "githubUsername": "supermario1990",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/8428531?v=4"
+ },
+ {
+ "name": "Li Zhiyong",
+ "username": "lizhiyong",
+ "githubUsername": "zhiyong0804",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/15864088?v=4"
+ },
+ {
+ "name": "Shuyang Wu",
+ "username": "shuyangw",
+ "githubUsername": "yiyiyimu",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/34589752?v=4"
+ },
+ {
+ "name": "Suo Zhang",
+ "username": "coolsoul",
+ "githubUsername": "soulsoul",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/4963471?v=4"
+ },
+ {
+ "name": "Xinxin Zhu",
+ "username": "starsz",
+ "githubUsername": "starsz",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/25628854?v=4"
+ },
+ {
+ "name": "Yi Sun",
+ "username": "sunyi",
+ "githubUsername": "LiteSun",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/31329157?v=4"
+ },
+ {
+ "name": "Yong Li",
+ "username": "liyong",
+ "githubUsername": "chnliyong",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/4197225?v=4"
+ },
+ {
+ "name": "Zeping Bai",
+ "username": "bzp2010",
+ "githubUsername": "bzp2010",
+ "avatarUrl": "https://avatars.githubusercontent.com/u/8078418?v=4"
+ }
+ ]
+ }
+]