diff --git a/docs/docs/index.md b/docs/docs/index.mdx similarity index 98% rename from docs/docs/index.md rename to docs/docs/index.mdx index 7c480fd476d..681acd6d2d5 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.mdx @@ -2,6 +2,9 @@ hide_title: true sidebar_position: 1 --- + +import DatabaseLogoWall from '@site/src/components/databases/DatabaseLogoWall'; + + + + + + +SUPPORTED_DATABASES_END --> **A more comprehensive list of supported databases** along with the configuration instructions can be found [here](/user-docs/databases/). diff --git a/docs/src/components/databases/DatabaseLogoWall.tsx b/docs/src/components/databases/DatabaseLogoWall.tsx new file mode 100644 index 00000000000..cef72892f47 --- /dev/null +++ b/docs/src/components/databases/DatabaseLogoWall.tsx @@ -0,0 +1,71 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import databaseData from '../../data/databases.json'; +import type { DatabaseData } from './types'; + +const typedData = databaseData as DatabaseData; + +const seenLogos = new Set(); +const databases = Object.entries(typedData.databases) + .filter(([, db]) => db.documentation?.logo && db.documentation?.homepage_url) + .sort(([a], [b]) => a.localeCompare(b)) + .filter(([, db]) => { + const logo = db.documentation.logo!; + if (seenLogos.has(logo)) return false; + seenLogos.add(logo); + return true; + }) + .map(([name, db]) => ({ + name, + logo: db.documentation.logo!, + docPath: `/user-docs/databases/supported/${name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '')}`, + })); + +export default function DatabaseLogoWall(): JSX.Element { + return ( +
+ {databases.map(({ name, logo, docPath }) => ( + + {name} + + ))} +
+ ); +}