This is an automated email from the ASF dual-hosted git repository.
guoqqqi 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 b0ccb921b4b chore(website): remove showcase, code samples, and help
pages (#2065)
b0ccb921b4b is described below
commit b0ccb921b4b9b855610b96f814933bc06f98d463
Author: Ming Wen <[email protected]>
AuthorDate: Mon Jun 29 13:49:40 2026 +0800
chore(website): remove showcase, code samples, and help pages (#2065)
---
.htaccess | 8 +
config/breadcrumb.js | 2 -
config/navbar.js | 21 --
website/docs/general/code-samples.md | 41 ---
website/docusaurus.config.js | 1 -
website/i18n/zh/code.json | 44 ---
.../i18n/zh/docusaurus-theme-classic/navbar.json | 8 -
website/src/css/help.scss | 159 --------
website/src/css/showcase.scss | 119 ------
website/src/pages/help.tsx | 97 -----
website/src/pages/showcase.tsx | 95 -----
website/src/theme/Footer/index.tsx | 9 -
website/static/data/showcases.json | 404 ---------------------
13 files changed, 8 insertions(+), 1000 deletions(-)
diff --git a/.htaccess b/.htaccess
index 28414e2465d..6e3e0cc22bc 100644
--- a/.htaccess
+++ b/.htaccess
@@ -133,3 +133,11 @@ Redirect 301
"/docs/ingress-controller/next/references/apisix_route_v2/" "/docs/
Redirect 301 "/docs/ingress-controller/next/deployments/k3s-rke/"
"/docs/ingress-controller/install/"
Redirect 301 "/docs/ingress-controller/next/concepts/apisix_tls/"
"/docs/ingress-controller/reference/apisix-ingress-controller/api-reference/"
Redirect 301 "/docs/ingress-controller/next/concepts/apisix_plugin_config/"
"/docs/ingress-controller/reference/apisix-ingress-controller/api-reference/"
+
+# Removed pages (showcase, code samples, help) -> home
+RedirectMatch 301 "^/showcase/?$" "/"
+RedirectMatch 301 "^/zh/showcase/?$" "/zh/"
+RedirectMatch 301 "^/docs/general/code-samples/?$" "/"
+RedirectMatch 301 "^/zh/docs/general/code-samples/?$" "/zh/"
+RedirectMatch 301 "^/help/?$" "/"
+RedirectMatch 301 "^/zh/help/?$" "/zh/"
diff --git a/config/breadcrumb.js b/config/breadcrumb.js
index 24d1f2d2d69..b8a6e711640 100644
--- a/config/breadcrumb.js
+++ b/config/breadcrumb.js
@@ -41,8 +41,6 @@ function buildBreadcrumbs(urlPath) {
downloads: 'Downloads',
team: 'Team',
contribute: 'Contribute',
- showcase: 'Showcase',
- help: 'Help',
articles: 'Articles',
events: 'Events',
general: 'General',
diff --git a/config/navbar.js b/config/navbar.js
index 382062740b1..3b8013dd2f3 100644
--- a/config/navbar.js
+++ b/config/navbar.js
@@ -82,12 +82,6 @@ module.exports = [
position: 'right',
target: '_parent',
},
- {
- to: '/help',
- label: 'Help',
- position: 'right',
- target: '_parent',
- },
{
to: 'team',
label: 'Team',
@@ -98,16 +92,6 @@ module.exports = [
label: 'Resources',
position: 'right',
items: [
- {
- to: '/showcase',
- label: 'Showcase',
- target: '_parent',
- },
- {
- to: '/docs/general/code-samples',
- label: 'Code Samples',
- target: '_parent',
- },
{
to: '/plugins',
label: 'Plugin Hub',
@@ -123,11 +107,6 @@ module.exports = [
label: 'Events',
target: '_parent',
},
- {
- to: 'https://github.com/apache/apisix/milestones',
- label: 'Roadmap',
- target: '_parent',
- },
],
},
{
diff --git a/website/docs/general/code-samples.md
b/website/docs/general/code-samples.md
deleted file mode 100644
index 6d9c918c2eb..00000000000
--- a/website/docs/general/code-samples.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-id: code-samples
-title: Code samples
-keywords:
- - API gateway
- - Code samples
- - Example projects
- - Source code
-description: Apache APISIX code samples and projects.
----
-
-**Welcome to Apache APISIX Code Samples!**
-
-Our Code Samples is your go-to resource for exploring the full potential of
Apache APISIX, boosting your understanding of our platform's features, and
accelerating your API development.
-
-In our collection, you'll find a diverse range of code samples, including
exposing new APIs, handling API calls, securing, and observing your APIs with
Apache APISIX, and many more.
-
-Now, feel free to dive in! Whether you're a beginner in need of a jumpstart or
an experienced developer seeking more efficient solutions, our Code Samples are
here to empower you on your journey. And if you ever get stuck or need further
assistance, our [community of
developers](https://join.slack.com/t/the-asf/shared_invite/zt-vlfbf7ch-HkbNHiU_uDlcH_RvaHv9gQ)
is always here to help. Happy coding!
-
-| Title | Description | Source code | Tutorial | Category | Level | Language |
-| --- | --- | --- | --- | --- | --- | --- |
-| Hands-on lab Apache APISIX | It shows a couple of nifty features that can
help your information system cope with the challenges introduced by APIs |
[APISIX Workshop for beginner](https://github.com/Boburmirzo/apisix-workshop) |
[Hands-on lab reference](https://boburmirzo.github.io/apisix-workshop/) |
Authentication, Security, Serverless, Observability, Transformation | Beginner
| Shell |
-| How to create a File-proxy custom plugin in Lua | Learn to develop a new
plugin that exposes the static files through API and fetches a file from a
specified URL. | [APISIX File Proxy Plugin
Demo](https://github.com/Boburmirzo/apisix-file-proxy-plugin-demo) | [Custom
Plugin Development With
ChatGPT](https://api7.ai/blog/plugin-development-with-lua-and-chatgpt) | Custom
plugin, File proxy | Intermediate | Lua, Yaml |
-| Managing AI-powered Java App with API Management | It demonstrates how to
use OpenAI ChatGPT APIs in Spring Boot, secure and manage the traffic with
Apache APISIX | [APISIX Java OpenAI API
Management](https://github.com/Boburmirzo/apisix-java-chatgpt-openaiapi) |
[Managing AI powered Java app with
APISIX](https://api7.ai/blog/managing-ai-powered-java-apps) | Security,
Authentication, JWT plugin, Consumers | Intermediate | Java, Yaml |
-| Manage .NET-based APIs with Apache APISIX API Gateway | This is an example
project focused on the usage of APISIX for applications developed in [ASP .NET
Core 6](https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-6.0) |
[APISIX .NET Docker
example](https://github.com/Boburmirzo/apisix-dotnet-docker) | [Manage .NET
microservices APIs with
APISIX](https://dev.to/apisix/manage-net-microservices-apis-with-apache-apisix-api-gateway-2cbk)
| Security, Authentication, Rate Limiting, [...]
-| Chaining API requests with API Gateway | Learn how to create a custom plugin
for APISIX API Gateway to handle client requests that should be called in
sequence. | [APISIX Request Pipeline Plugin
demo](https://github.com/Boburmirzo/apisix-plugin-pipeline-request-demo) |
[Chaining API requests with
APISIX](https://api7.ai/blog/chaining-api-requests-with-api-gateway) | Custom
plugin, Serverless, Request Chaining | Intermediate | Lua, Shell |
-| Manage OpenAI APIs with Apache APISIX | Manages the OpenAI API traffic by
creating a route, upstream and enabling some plugins. | [APISIX OpenAI API
demo](https://github.com/Boburmirzo/apisix-open-ai-api) | [Powering AI
capabilities with
APISIX](https://api7.ai/blog/power-ai-capabilities-with-apache-apisix) | AI,
Traffic control, Consumer, Rate-limiting, Prometheus, API versioning, Traffic
split | Beginner | Shell, Yaml |
-| Dynamic routing based on JWT Claim with Apache APISIX and Okta | Explore the
benefits of adopting dynamic routing based on authentication attributes |
[Dynamic routing with
APISIX](https://github.com/Boburmirzo/dynamic-routing-with-apisix) | [Dynamic
routing with APISIX blog
post](https://api7.ai/blog/dynamic-routing-based-on-user-credentials) | Dynamic
routing, JWT, Authentication, Consumer management | Advanced | Shell, Yaml |
-| Manage serverless APIs with Apache APISIX and Azure Functions | A simple
example of how to manage Java-based serverless APIs built with Azure functions.
| [Manage serverless APIs with APISIX
demo](https://github.com/Boburmirzo/apisix-manage-serverless-apis) | [Manage
serverless APIs with
APISIX](https://api7.ai/blog/manage-serverless-apis-with-apache-apisix) |
Serverless, Basic auth, Rate-limiting, Traffic management | Intermediate |
Java, Shell |
-| Manage API Consumers | Explains how to manage your single or multiple API
consumers with Apache APISIX. | [API consumers management with APISIX
demo](https://github.com/Boburmirzo/apisix-api-consumers-management) | [Manage
API consumers blog
post](https://apisix.apache.org/docs/apisix/tutorials/manage-api-consumers/) |
API consumers, Rate-limiting, Consumer groups | Beginner | Shell |
-| Secure APIs with Apache APISIX API Gateway | How to use APISIX Plugins for
securing your [Spring Boot REST
APIs](https://spring.io/guides/tutorials/rest/s) and it demonstrates how to
effectively use them. | [APISIX plugins for Spring Boot Apps
demo](https://github.com/Boburmirzo/apisix-plugin-spring-rest-demo) | [APISIX
plugins to secure Spring Boot REST APIs blog
post](https://dev.to/apisix/secure-spring-boot-rest-api-with-apache-apisix-api-gateway-1nmg)
| Security, Authorization, Aut [...]
-| An API observability with Apache APISIX Plugins Example | Learn observing
your APIs with Apache APISIX plugins | [APISIX observability plugins
demo](https://github.com/Boburmirzo/apisix-observability-plugins) |
[Observability plugins usage
tutorial](https://boburmirzo.github.io/apisix-observability-plugins/) |
Observability, Traces, Metrics, Logs | Beginner | Shell |
-| End-to-end tracing with OpenTelemetry | Use OpenTelemetry and APISIX to
start your journey into observability | [Open Telemetry tracing with APISIX
demo](https://github.com/nfrankel/opentelemetry-tracing) | [Open Telemetry
tracing tutorial](https://blog.frankel.ch/end-to-end-tracing-opentelemetry/) |
Observability, Traces, OpenTelemetry | Intermediate | Kotlin, Python, Rust |
-| Chopping the monolith | Extract HTTP endpoints from the monolith and
gradually migrate to microservices using API Gateway | [Chopping monolith
demo](https://github.com/nfrankel/chop-monolith) | [Chopping monolith
tutorial](https://blog.frankel.ch/chopping-monolith/) | Azure function,
Response-rewrite | Beginner | Kotlin, JavaScript, HTML, Shell |
-| Evolving your RESTful APIs, a step-by-step approach | Use API Gateway to
evolve APIs step by step by versioning, splitting the traffic, doing canary
releases, and more. | [Evolve APIs
demo](https://github.com/nfrankel/evolve-apis) | [Evolve APIs blog
post](https://blog.frankel.ch/evolve-apis/) | Proxy rewrite, Proxy mirror,
Traffic split, Response rewrite, Redirect | Intermediate | Kotlin, Lua, Java |
-| Discussing Backend For Front-end | Use API Gateway to build Backend For
Frontend solution. | [Backend for front-end
demo](https://github.com/nfrankel/backend-for-frontend) | [Backend for
front-end blog post](https://blog.frankel.ch/backend-for-frontend/) | Public
endpoint, Proxy-rewrite, Routing | Beginner | Python, Lua |
-| Getting Hands-On with the New Kubernetes Gateway API | Tutorial about using
the Gateway API in practice with Apache APISIX Ingress. | [Getting Hands-On
with the New Kubernetes Gateway API
demo](https://github.com/navendu-pottekkat/gateway-api) | [Getting Hands-On
with the New Kubernetes Gateway API
tutorial](https://navendu.me/posts/kubernetes-gateway-with-apisix/) | Ingress,
Kubernetes, Routing | Beginner | Shell |
-| Custom Plugins in APISIX Ingress | Learn how to create and use a small
custom Plugin with APISIX deployed in Kubernetes. | [Custom plugin development
for APISIX Ingress
demo](https://github.com/navendu-pottekkat/apisix-in-kubernetes/tree/master/custom-plugin)
| [Custom plugin development for APISIX Ingress blog
post](https://navendu.me/posts/custom-plugins-in-apisix-ingress/) | Custom
plugins, Ingress, Kubernetes | Intermediate | Lua |
-| Canary Release in Kubernetes With Apache APISIX Ingress | Guide on setting
up a canary release in Kubernetes using [APISIX Ingress
Controller](https://apisix.apache.org/docs/ingress-controller/next/getting-started/).
| [Canary release in Kubernetes with APISIX
demo](https://github.com/navendu-pottekkat/apisix-in-kubernetes/tree/master) |
[Canary release in Kubernetes with APISIX blog
post](https://navendu.me/posts/canary-in-kubernetes/) | Ingress, Kubernetes,
Canary release | Intermedi [...]
-| An Introduction to Monitoring Microservices with Prometheus and Grafana |
Instruction on how you can set up monitoring on your microservice application
using two of the popular tools in this space,
[Prometheus](https://prometheus.io/), and [Grafana](https://grafana.com/). |
[Monitoring microservices
demo](https://github.com/navendu-pottekkat/monitoring-101) | [Intro to
monitoring microservices APIs with APISIX blog
post](https://navendu.me/posts/introduction-to-monitoring-microservices [...]
-| Monitor API Health Check with APISIX and Prometheus | This example
demonstrates how to enable and monitor API health checks using APISIX and
Prometheus. | [Monitor API Health Check with APISIX and Prometheus
demo](https://github.com/Boburmirzo/apisix-prometheus-api-health-check) |
[Prometheus Plugin
Demo](https://docs.api7.ai/apisix/how-to-guide/observability/monitor-apisix-with-prometheus)
| Observability, Prometheus, Grafana | Intermediate | Go, Python |
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index ec15903c283..bcb4dc38001 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -13,7 +13,6 @@ module.exports = {
customFields: {
tagline2:
'Apache APISIX provides rich traffic management features such as load
balancing, dynamic upstream, canary release, circuit breaking, authentication,
observability, and more.',
- showcases: require('./static/data/showcases.json'),
events: {
en: require('./static/data/events.json'),
zh: require('./static/data/events.zh.json'),
diff --git a/website/i18n/zh/code.json b/website/i18n/zh/code.json
index 34c38092e43..cb0c70542bc 100644
--- a/website/i18n/zh/code.json
+++ b/website/i18n/zh/code.json
@@ -7,22 +7,6 @@
"message": "。",
"description": "."
},
- "showcase.website.title": {
- "message": "用户列表",
- "description": "Showcase"
- },
- "showcase.website.tips.used": {
- "message": "Apache APISIX 被众多产品与用户所信赖",
- "description": "This project is used by all these folks"
- },
- "showcase.website.tips.wantUse": {
- "message": "你也在使用它吗?请让我们知道!",
- "description": "Are you using this project? "
- },
- "showcase.website.link.addYourCompany": {
- "message": "加入使用者名单",
- "description": "Add your company"
- },
"docs.webpage.title.Document": {
"message": "产品文档",
"description": "Document"
@@ -75,34 +59,6 @@
"message": "如果需要验证二进制文件/源代码,您可以从主目录下载相关的 ACS 文件,并遵循下面的指南。",
"description": "To verify the binaries/sources you can download the
relevant asc files for it from main distribution directory and follow the below
guide."
},
- "help.website.title": {
- "message": "获取帮助",
- "description": "NEED HELP?"
- },
- "help.website.subtitle": {
- "message": "Apache APISIX 维护者们将积极为你答疑解惑",
- "description": "This project is maintained by a dedicated group of people."
- },
- "help.website.docs.title": {
- "message": "官方文档",
- "description": "Browse Docs"
- },
- "help.website.docs.tips": {
- "message": "访问官方技术文档以了解更多",
- "description": "Learn more using the documentation on this site."
- },
- "help.website.link.docs": {
- "message": "阅读文档",
- "description": "Read Documents"
- },
- "help.website.community.title": {
- "message": "加入社区",
- "description": "Join Community"
- },
- "help.website.community.tips": {
- "message": "告诉我们你遇到了什么问题?",
- "description": "Ask questions about the documentation and project"
- },
"plugins.website.title": {
"message": "Apache APISIX®️ 插件中心",
"description": "Apache APISIX®️ Plugin Hub"
diff --git a/website/i18n/zh/docusaurus-theme-classic/navbar.json
b/website/i18n/zh/docusaurus-theme-classic/navbar.json
index 1462162be93..7118d332d38 100644
--- a/website/i18n/zh/docusaurus-theme-classic/navbar.json
+++ b/website/i18n/zh/docusaurus-theme-classic/navbar.json
@@ -39,14 +39,6 @@
"message": "团队",
"description": "Navbar item with label Team"
},
- "item.label.Showcase": {
- "message": "使用案例",
- "description": "Navbar item with label Showcase"
- },
- "item.label.Help": {
- "message": "帮助",
- "description": "Navbar item with label Help"
- },
"item.label.APISIX": {
"message": "APISIX",
"description": "Navbar item with label APISIX"
diff --git a/website/src/css/help.scss b/website/src/css/help.scss
deleted file mode 100644
index b1d260319de..00000000000
--- a/website/src/css/help.scss
+++ /dev/null
@@ -1,159 +0,0 @@
-.help-page .cards {
- margin-top: 38px;
- margin-bottom: 56px;
- display: grid;
- grid-template-columns: 1fr 1fr;
- grid-gap: 36px;
-}
-
-.help-page .card {
- padding: 24px 28px 18px;
- border: 1px solid #eee;
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 3%);
-}
-
-.help-page .card .header {
- padding: 0;
-}
-
-.help-page .card h2 {
- display: flex;
- align-items: center;
-}
-
-.help-page .card h2 img {
- padding-bottom: 2px;
- height: 28px;
- margin-right: 14px;
-}
-
-.help-page #documents-icon {
- margin-right: 10px;
- margin-left: -6px;
-}
-
-.help-page .card p {
- color: var(--color-help-subtitle);
-}
-
-.help-page .card .buttons {
- margin-top: 18px;
- display: flex;
-}
-
-.help-page .card .buttons svg {
- height: 12px;
- margin-left: 4px;
- transition: transform 0.3s;
-}
-
-.help-page .card .buttons a {
- font-size: 18px;
- font-weight: 600;
- transition: all 0.3s;
- margin-right: 32px;
-}
-
-.help-page .card .buttons a:hover {
- text-decoration: none;
-}
-
-.help-page .card .buttons a:hover svg {
- transform: translateX(2px);
-}
-
-.team-githubLogo {
- height: 24px;
-}
-
-.downloads-subtitle {
- color: var(--color-downloads-subtitle);
-}
-
-.downloads-leftsidelinks {
- color: var(--color-downloads-leftsidelinks);
-}
-
-.downloads-leftsidelink:hover {
- color: var(--color-downloads-leftsidelink-hover);
-}
-
-.downloads-versioninfo {
- color: var(--color-downloads-rightside-versioninfo);
-}
-
-.downloads-versioninfo-span {
- color: var(--color-downloads-rightside-versioninfo-span);
-}
-
-.downloads-dropdown {
- background-color: var(--color-downloads-dropdown);
-}
-
-.download-dropdown-item:hover {
- background-color: var(--color-downloads-dropdown-items);
-}
-
-.team-repocard {
- color: var(--color-team-repocard);
-}
-
-.team-repocard:hover {
- color: var(--color-team-repocard-hover);
-}
-
-.docs-subtitle {
- color: var(--color-docs-subtitle);
-}
-
-.docs-versioninfo {
- color: var(--color-docs-versioninfo);
-}
-
-.pic-wrapper {
- width: 350px;
- position: fixed;
- display: flex;
- right: 0;
- bottom: 0;
- z-index: 999;
- outline: 0;
- overflow: auto;
- border: 0;
- box-shadow: 0 0 20px -12px #626365;
-}
-
-/* stylelint-disable-next-line no-descending-specificity */
-.pic-wrapper a {
- display: flex;
-}
-
-.pic-wrapper-close {
- position: absolute;
- z-index: 1000;
- top: 10px;
- right: 10px;
- padding: 5px;
- font-weight: 900;
- color: rgb(135 151 172);
- font-size: 16px;
- outline: none;
- border-radius: 100px;
- border: 1px solid transparent;
-}
-
-.pic-wrapper-close:hover {
- cursor: pointer;
-}
-
-/* stylelint-disable-next-line no-descending-specificity */
-.pic-wrapper-close svg {
- width: 10px;
- height: 10px;
- display: inherit;
-}
-@media only screen and (max-width: 440px) {
- .pic-wrapper {
- width: 70%;
- }
-}
diff --git a/website/src/css/showcase.scss b/website/src/css/showcase.scss
deleted file mode 100644
index 221645dc568..00000000000
--- a/website/src/css/showcase.scss
+++ /dev/null
@@ -1,119 +0,0 @@
-/* stylelint-disable no-descending-specificity */
-
-.showcase {
- padding-left: 0;
- padding-right: 0;
-
- .header {
- padding-top: 0;
-
- .title {
- color: var(--color-primary);
- font-size: 50px;
- font-weight: bold;
- }
-
- .tips {
- font-size: 18px;
- }
- }
-
- .container {
- padding-left: 0;
- padding-right: 0;
- margin-left: 0;
- margin-right: 0;
- max-width: unset;
- }
-
- .user-logos {
- margin-top: 48px;
-
- &:hover span {
- animation-play-state: paused !important;
- }
- }
-
- .logo-row {
- display: flex;
- -webkit-box-align: center;
- align-items: center;
- height: 5rem;
- overflow: hidden;
- position: relative;
- width: 100%;
- }
-
- .content {
- width: 100%;
- padding: 50px 200px;
- display: flex;
- flex-wrap: wrap;
- }
-
- .user-card {
- padding: 30px 10px;
-
- .logo {
- max-width: 100px;
- max-height: 40px;
- }
- }
-
- .row {
- margin: 0;
- }
-
- .user-logos-container {
- display: inline-block;
- white-space: nowrap;
- overflow: hidden;
- position: absolute;
-
- section {
- white-space: nowrap;
- overflow: hidden;
- display: flex;
- align-items: center;
-
- span {
- animation: 36s linear 0s infinite reverse none running logo-animation;
- white-space: nowrap;
- overflow: hidden;
- display: flex;
- align-items: center;
- }
- }
- }
-
- .user-logo {
- max-width: 128px;
- max-height: 50px;
- margin: 0 16px;
- }
-
- @keyframes logo-animation {
- from {
- transform: translateX(-100%);
- }
-
- to {
- transform: translateX(0%);
- }
- }
-
- @media (max-width: 1200px) {
- .content {
- display: grid;
- grid-template-columns: 1fr 1fr 1fr;
- padding: 50px;
- }
- }
-
- @media (max-width: 820px) {
- .content {
- display: grid;
- grid-template-columns: 1fr 1fr;
- }
- }
-}
diff --git a/website/src/pages/help.tsx b/website/src/pages/help.tsx
deleted file mode 100644
index 4835dace0b4..00000000000
--- a/website/src/pages/help.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import type { FC } from 'react';
-import React from 'react';
-import styled from 'styled-components';
-import Layout from '@theme/Layout';
-import Head from '@docusaurus/Head';
-
-import Translate, { translate } from '@docusaurus/Translate';
-
-import { LazyLoadImage } from 'react-lazy-load-image-component';
-import ChevronRight from '../assets/icons/chevron-right.svg';
-import '../css/help.scss';
-
-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%;
-`;
-
-const Help: FC = () => (
- <Layout title={translate({ message: 'Help' })}>
- <Head>
- <meta name="description" content={translate({ id:
'help.meta.description', message: 'Get help with Apache APISIX. Browse
documentation, join the community on GitHub, Slack, and Twitter, and connect
with contributors.' })} />
- <meta property="og:description" content={translate({ id:
'help.meta.ogDescription', message: 'Get help with Apache APISIX. Browse
documentation and join the community on GitHub, Slack, and Twitter.' })} />
- </Head>
- <Page className="help-page">
- <PageTitle><Translate id="help.website.title">NEED
HELP?</Translate></PageTitle>
- <PageSubtitle>
- <Translate id="help.website.subtitle">This project is maintained by a
dedicated group of people.</Translate>
- </PageSubtitle>
- <div className="row cards">
- <div className="card">
- <div className="header">
- <h2>
- <LazyLoadImage
- src="/img/documents.png"
- id="documents-icon"
- alt="documents icon"
- />
- <Translate id="help.website.docs.title">Browse Docs</Translate>
- </h2>
- </div>
- <p><Translate id="help.website.docs.tips">Learn more using the
documentation on this site.</Translate></p>
- <div className="buttons">
- <a
- href="/docs/"
- target="_blank"
- rel="noreferrer"
- >
- <Translate id="help.website.link.docs">Read Documents</Translate>
- <ChevronRight />
- </a>
- </div>
- </div>
- <div className="card">
- <div className="header">
- <h2>
- <LazyLoadImage src="/img/community.png" alt="community icon" />
- <Translate id="help.website.community.title">Join
Community</Translate>
- </h2>
- </div>
- <p><Translate id="help.website.community.tips">Ask questions about
the documentation and project</Translate></p>
- <div className="buttons">
- <a href="https://github.com/apache/apisix/issues" target="_blank"
rel="noreferrer">
- GitHub
- <ChevronRight />
- </a>
- <a
- href="/docs/general/join"
- target="_blank"
- rel="noreferrer"
- >
- Slack
- <ChevronRight />
- </a>
- <a href="https://twitter.com/ApacheAPISIX" target="_blank"
rel="noreferrer">
- Twitter
- <ChevronRight />
- </a>
- </div>
- </div>
- </div>
- </Page>
- </Layout>
-);
-
-export default Help;
diff --git a/website/src/pages/showcase.tsx b/website/src/pages/showcase.tsx
deleted file mode 100644
index 962142c04cf..00000000000
--- a/website/src/pages/showcase.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-import type { FC } from 'react';
-import React from 'react';
-import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
-import Translate, { translate } from '@docusaurus/Translate';
-
-import Layout from '@theme/Layout';
-import Head from '@docusaurus/Head';
-import '../css/showcase.scss';
-
-const Container: FC = (props) => {
- const { children } = props;
-
- return (
- <div className="hero text--center showcase">
- <div className="container">
- {children}
- </div>
- </div>
- );
-};
-
-const Header: FC = () => (
- <div className="header">
- <div className="title">
- <Translate id="showcase.website.title">Showcase</Translate>
- </div>
- <div className="tips">
- <Translate id="showcase.website.tips.used">This project is used by all
these folks</Translate>
- <br />
- <Translate id="showcase.website.tips.wantUse">Are you using this
project? </Translate>
- <a
- href="https://github.com/apache/apisix/blob/master/powered-by.md"
- target="_blank"
- rel="noopener noreferrer"
- >
- <u><Translate id="showcase.website.link.addYourCompany">Add your
company</Translate></u>
- </a>
- </div>
- </div>
-);
-
-interface UserCardProps {
- infoLink: string;
- image: string;
- caption: string;
-}
-
-const UserCard: FC<UserCardProps> = (props) => {
- const { infoLink, image, caption } = props;
- return (
- <div className="user-card">
- <a href={infoLink}>
- <img className="logo" src={image} alt={caption} />
- </a>
- </div>
- );
-};
-
-const Content: FC = () => {
- const { siteConfig } = useDocusaurusContext();
- const { showcases = [] } = siteConfig.customFields as { showcases:
UserCardProps[] };
- if (!showcases.length) {
- return null;
- }
- const showcaseList = showcases.map((user) => (
- <div className="col col--2 item" key={user.infoLink}>
- <UserCard
- image={`https://static.apiseven.com/202202/${user.image}`}
- caption={user.caption}
- infoLink={user.infoLink}
- />
- </div>
- ));
-
- return (
- <div className="row content">
- {showcaseList}
- </div>
- );
-};
-
-const Showcase: FC = () => (
- <Layout title={translate({ message: 'ShowCase' })}>
- <Head>
- <meta name="description" content={translate({ id:
'showcase.meta.description', message: 'See which companies and organizations
use Apache APISIX in production. Join the growing community of API Gateway
users worldwide.' })} />
- <meta property="og:description" content={translate({ id:
'showcase.meta.ogDescription', message: 'See which companies and organizations
use Apache APISIX in production.' })} />
- </Head>
- <Container>
- <Header />
- <Content />
- </Container>
- </Layout>
-);
-
-export default Showcase;
diff --git a/website/src/theme/Footer/index.tsx
b/website/src/theme/Footer/index.tsx
index 6227874c5c7..b36ead82b80 100644
--- a/website/src/theme/Footer/index.tsx
+++ b/website/src/theme/Footer/index.tsx
@@ -80,20 +80,11 @@ const footer = {
label: 'Blog',
to: '/blog/',
target: '_parent',
- }, {
- label: 'Showcase',
- to: '/showcase',
- target: '_parent',
}, {
label: 'Plugin Hub',
to: '/plugins',
target: '_parent',
},
- {
- label: 'Roadmap',
- to: 'https://github.com/apache/apisix/milestones',
- target: '_parent',
- },
],
},
],
diff --git a/website/static/data/showcases.json
b/website/static/data/showcases.json
deleted file mode 100644
index b08843e3523..00000000000
--- a/website/static/data/showcases.json
+++ /dev/null
@@ -1,404 +0,0 @@
-[
- {
- "caption": "360 奇虎",
- "image": "showcase/360.svg",
- "infoLink": "https://www.360.cn/",
- "pinned": true
- },
- {
- "caption": "大商天狗",
- "image": "showcase/51tiangou.png",
- "infoLink": "http://51tiangou.com/",
- "pinned": true
- },
- {
- "caption": "妙笔 AI",
- "image": "showcase/aimiaobi.png",
- "infoLink": "http://aimiaobi.com/",
- "pinned": true
- },
- {
- "caption": "超链云商",
- "image": "showcase/chaolian360.png",
- "infoLink": "https://www.chaolian360.com/",
- "pinned": true
- },
- {
- "caption": "开创云",
- "image": "showcase/ctrl.jpg",
- "infoLink": "https://www.ctrl.cn/",
- "pinned": true
- },
- {
- "caption": "DaoCloud",
- "image": "showcase/daocloud.png",
- "infoLink": "https://www.daocloud.io/",
- "pinned": true
- },
- {
- "caption": "小电科技",
- "image": "showcase/dian.png",
- "infoLink": "http://dian.so/",
- "pinned": true
- },
- {
- "caption": "嘀嗒出行",
- "image": "showcase/didachuxing.jpeg",
- "infoLink": "https://www.didachuxing.com/",
- "pinned": true
- },
- {
- "caption": "湖南新云网",
- "image": "showcase/cunw.png",
- "infoLink": "http://www.cunw.com.cn/",
- "pinned": true
- },
- {
- "caption": "大搜车",
- "image": "showcase/dasouche.png",
- "infoLink": "https://www.dasouche.com/",
- "pinned": true
- },
- {
- "caption": "大淘客",
- "image": "showcase/dataoke.png",
- "infoLink": "https://www.dataoke.com/",
- "pinned": true
- },
- {
- "caption": "eFactory",
- "image": "showcase/eFactory.jpeg",
- "infoLink": "https://www.efactory-project.eu/",
- "pinned": true
- },
- {
- "caption": "理房通",
- "image": "showcase/ehomepay.png",
- "infoLink": "https://www.ehomepay.com.cn/",
- "pinned": true
- },
- {
- "caption": "简单一点科技",
- "image": "showcase/eZone.png",
- "infoLink": "https://ezone.work/",
- "pinned": true
- },
- {
- "caption": "fansup",
- "image": "showcase/fansup.png",
- "infoLink": "https://fansup.mobi/",
- "pinned": true
- },
- {
- "caption": "海尔优家",
- "image": "showcase/haier.webp",
- "infoLink": "http://haieruplus.com/",
- "pinned": true
- },
- {
- "caption": "中移杭研",
- "image": "showcase/10086.svg",
- "infoLink": "https://hy.10086.cn/",
- "pinned": true
- },
- {
- "caption": "航天网信",
- "image": "showcase/htzhiyun.png",
- "infoLink": "https://www.htzhiyun.cn/",
- "pinned": true
- },
- {
- "caption": "好洛维",
- "image": "showcase/hellowin.jpg",
- "infoLink": "http://www.hellowin.cn/",
- "pinned": true
- },
- {
- "caption": "HelloTalk",
- "image": "showcase/HelloTalk.png",
- "infoLink": "https://www.hellotalk.com/",
- "pinned": true
- },
- {
- "caption": "华为",
- "image": "showcase/huawei.png",
- "infoLink": "http://huawei.com/",
- "pinned": true
- },
- {
- "caption": "虎牙",
- "image": "showcase/huya.jpg",
- "infoLink": "https://www.huya.com/",
- "pinned": true
- },
- {
- "caption": "艾佳生活",
- "image": "showcase/ihomefnt.gif",
- "infoLink": "https://www.ihomefnt.com/",
- "pinned": true
- },
- {
- "caption": "简单心理",
- "image": "showcase/jiandanxinli.png",
- "infoLink": "https://www.jiandanxinli.com/",
- "pinned": true
- },
- {
- "caption": "同程金服",
- "image": "showcase/jr_ly.png",
- "infoLink": "https://jr.ly.com/",
- "pinned": true
- },
- {
- "caption": "贝壳找房",
- "image": "showcase/ke.png",
- "infoLink": "https://www.ke.com/",
- "pinned": true
- },
- {
- "caption": "魅族",
- "image": "showcase/meizu.svg",
- "infoLink": "https://www.meizu.com/",
- "pinned": true
- },
- {
- "caption": "明源云客",
- "image": "showcase/mingyuanyun.jpg",
- "infoLink": "https://www.mingyuanyun.com/",
- "pinned": true
- },
- {
- "caption": "NASA",
- "image": "showcase/nasa.png",
- "infoLink": "https://www.jpl.nasa.gov/",
- "pinned": true
- },
- {
- "caption": "网易",
- "image": "showcase/163.png",
- "infoLink": "http://www.163.com/",
- "pinned": true
- },
- {
- "caption": "湖南国科云通",
- "image": "showcase/sinog2c.png",
- "infoLink": "http://www.sinog2c.com/",
- "pinned": true
- },
- {
- "caption": "炎黄新星",
- "image": "showcase/sinovatech.gif",
- "infoLink": "https://www.sinovatech.com/",
- "pinned": true
- },
- {
- "caption": "泰康云",
- "image": "showcase/taikang.png",
- "infoLink": "http://taikang.com/",
- "pinned": true
- },
- {
- "caption": "糖豆网",
- "image": "showcase/tangdou.png",
- "infoLink": "http://www.tangdou.com/",
- "pinned": true
- },
- {
- "caption": "腾讯云",
- "image": "showcase/TencentCloud.jpg",
- "infoLink": "https://cloud.tencent.com/",
- "pinned": true
- },
- {
- "caption": "腾讯优图",
- "image": "showcase/youtu.jpg",
- "infoLink": "https://open.youtu.qq.com/",
- "pinned": true
- },
- {
- "caption": "万思",
- "image": "showcase/teamones.png",
- "infoLink": "https://www.teamones.cn/",
- "pinned": true
- },
- {
- "caption": "中国航信",
- "image": "showcase/TravelSky.png",
- "infoLink": "https://www.travelsky.com.cn/",
- "pinned": true
- },
- {
- "caption": "随行付",
- "image": "showcase/vbill.png",
- "infoLink": "https://vbill.cn/",
- "pinned": true
- },
- {
- "caption": "优信二手车",
- "image": "showcase/xin.png",
- "infoLink": "https://www.xin.com/",
- "pinned": true
- },
- {
- "caption": "雪球",
- "image": "showcase/xueqiu.jpg",
- "infoLink": "https://xueqiu.com/",
- "pinned": true
- },
- {
- "caption": "租租车",
- "image": "showcase/zuzuche.png",
- "infoLink": "https://www.zuzuche.com/",
- "pinned": true
- },
- {
- "caption": "作业帮",
- "image": "showcase/zybang.png",
- "infoLink": "https://www.zybang.com/",
- "pinned": true
- },
- {
- "caption": "腾讯游戏",
- "image": "showcase/TencentGame.png",
- "infoLink": "https://game.qq.com/",
- "pinned": true
- },
- {
- "caption": "奥格科技股份有限公司",
- "image": "showcase/Augurit.png",
- "infoLink": "http://www.augurit.com/",
- "pinned": true
- },
- {
- "caption": "凯儿得乐",
- "image": "showcase/caredaily.png",
- "infoLink": "https://www.caredaily.com/",
- "pinned": true
- },
- {
- "caption": "满帮集团",
- "image": "showcase/ymm.png",
- "infoLink": "http://www.ymm56.com/",
- "pinned": true
- },
- {
- "caption": "昆仑数智",
- "image": "showcase/kunlunshuzhi.png",
- "infoLink": "http://www.klszkj.com/",
- "pinned": true
- },
- {
- "caption": "北京时代新威信息技术有限公司",
- "image": "showcase/powertime.png",
- "infoLink": "http://www.powertime.cn/",
- "pinned": true
- },
- {
- "caption": "牧原集团",
- "image": "showcase/muyuan.png",
- "infoLink": "http://www.muyuanfoods.com/",
- "pinned": true
- },
- {
- "caption": "ENN",
- "image": "showcase/enn.png",
- "infoLink": "https://www.ennonline.net/",
- "pinned": true
- },
- {
- "caption": "深圳小黄狗环保科技",
- "image": "showcase/xiaohuanggou.png",
- "infoLink": "https://www.xhg.com/",
- "pinned": true
- },
- {
- "caption": "北京小川科技有限责任公司",
- "image": "showcase/zuiyou.png",
- "infoLink": "https://h5.izuiyou.com/",
- "pinned": true
- },
- {
- "caption": "邦盛科技",
- "image": "showcase/bangsheng.png",
- "infoLink": "https://www.bsfit.com.cn/",
- "pinned": true
- },
- {
- "caption": "TOPSEC",
- "image": "showcase/topsec.png",
- "infoLink": "https://www.topsec.com.cn/",
- "pinned": true
- },
- {
- "caption": "思必驰信息科技股份有限公司",
- "image": "showcase/aispeech.png",
- "infoLink": "https://cloud.aispeech.com/",
- "pinned": true
- },
- {
- "caption": "建信金科",
- "image": "showcase/ccbft.png",
- "infoLink": "https://www.ccbft.com/",
- "pinned": true
- },
- {
- "caption": "浙江大东鞋业有限公司",
- "image": "showcase/dusto.jpeg",
- "infoLink": "http://dusto.cn/",
- "pinned": true
- },
- {
- "caption": "好医生集团",
- "image": "showcase/hys.png",
- "infoLink": "http://www.hys.cn/",
- "pinned": true
- },
- {
- "caption": "上海合合信息科技股份有限公司",
- "image": "showcase/intsig.jpeg",
- "infoLink": "https://www.intsig.com/",
- "pinned": true
- },
- {
- "caption": "美菜网",
- "image": "showcase/meicai.jpeg",
- "infoLink": "https://www.meicai.cn/",
- "pinned": true
- },
- {
- "caption": "深圳全棉时代科技有限公司",
- "image": "showcase/purcotton.png",
- "infoLink": "https://www.purcotton.com/",
- "pinned": true
- },
- {
- "caption": "VIVO",
- "image": "showcase/vivo.svg",
- "infoLink": "https://www.vivo.com/hk/zh/",
- "pinned": true
- },
- {
- "caption": "willclass 会课",
- "image": "showcase/willclass.png",
- "infoLink": "https://www.willclass.com/",
- "pinned": true
- },
- {
- "caption": "金山办公",
- "image": "showcase/jinshan.png",
- "infoLink": "https://www.wps.cn/",
- "pinned": true
- },
- {
- "caption": "上海泽怡信息科技",
- "image": "showcase/zeyikeji.png",
- "infoLink":
"https://appadvice.com/app/e5-8c-bb-e6-82-a3-e5-ae-a2-e6-9c-8d/1502073770",
- "pinned": true
- },
- {
- "caption": "北京新片场传媒股份有限公司",
- "image": "showcase/xinpianchang.svg",
- "infoLink": "https://www.xinpianchang.com",
- "pinned": true
- }
-]