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&nbsp;
             <a href="https://archive.apache.org/dist/apisix/"; target="_blank">
               Archive repository
@@ -62,7 +65,7 @@ export default (props) => {
             &nbsp;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";
+      }
+    ]
+  }
+]

Reply via email to