feat: 🚀 Docs V2 CI Script (#18560)
* switch to v2 * promote docv2 * remove on triggers
This commit is contained in:
parent
70969821de
commit
9c3205b573
|
|
@ -1,31 +0,0 @@
|
||||||
name: Docs v2
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths:
|
|
||||||
- "docs-v2/**"
|
|
||||||
- .github/workflows/superset-docs-v2.yml
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- "docs-v2/**"
|
|
||||||
- .github/workflows/superset-docs-v2.yml
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-deploy:
|
|
||||||
name: Build & Deploy
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: docs-v2
|
|
||||||
steps:
|
|
||||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
submodules: recursive
|
|
||||||
- name: yarn install
|
|
||||||
run: |
|
|
||||||
yarn install --immutable --immutable-cache --check-cache
|
|
||||||
- name: yarn build
|
|
||||||
run: |
|
|
||||||
yarn build
|
|
||||||
|
|
@ -12,31 +12,28 @@ jobs:
|
||||||
build-deploy:
|
build-deploy:
|
||||||
name: Build & Deploy
|
name: Build & Deploy
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: docs
|
||||||
steps:
|
steps:
|
||||||
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
- name: npm install
|
- name: yarn install
|
||||||
working-directory: ./docs
|
|
||||||
run: |
|
run: |
|
||||||
npm install
|
yarn install --immutable --immutable-cache --check-cache
|
||||||
- name: lint
|
- name: yarn build
|
||||||
working-directory: ./docs
|
|
||||||
run: |
|
run: |
|
||||||
npm run lint
|
yarn build
|
||||||
- name: gatsby build
|
|
||||||
working-directory: ./docs
|
|
||||||
run: |
|
|
||||||
npm run build
|
|
||||||
- name: deploy docs
|
- name: deploy docs
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
uses: ./.github/actions/github-action-push-to-another-repository
|
uses: ./.github/actions/github-action-push-to-another-repository
|
||||||
env:
|
env:
|
||||||
API_TOKEN_GITHUB: ${{ secrets.SUPERSET_SITE_BUILD }}
|
API_TOKEN_GITHUB: ${{ secrets.SUPERSET_SITE_BUILD }}
|
||||||
with:
|
with:
|
||||||
source-directory: './docs/public'
|
source-directory: './docs/build'
|
||||||
destination-github-username: 'apache'
|
destination-github-username: 'apache'
|
||||||
destination-repository-name: 'superset-site'
|
destination-repository-name: 'superset-site'
|
||||||
target-branch: 'asf-site'
|
target-branch: 'asf-site'
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
# Dependencies
|
|
||||||
/node_modules
|
|
||||||
|
|
||||||
# Production
|
|
||||||
/build
|
|
||||||
|
|
||||||
# Generated files
|
|
||||||
.docusaurus
|
|
||||||
.cache-loader
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
.DS_Store
|
|
||||||
.env.local
|
|
||||||
.env.development.local
|
|
||||||
.env.test.local
|
|
||||||
.env.production.local
|
|
||||||
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"singleQuote": true,
|
|
||||||
"trailingComma": "all",
|
|
||||||
"arrowParens": "avoid"
|
|
||||||
}
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
<!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
# Website
|
|
||||||
|
|
||||||
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
|
|
||||||
|
|
||||||
### Installation
|
|
||||||
|
|
||||||
```
|
|
||||||
$ yarn
|
|
||||||
```
|
|
||||||
|
|
||||||
### Local Development
|
|
||||||
|
|
||||||
```
|
|
||||||
$ yarn start
|
|
||||||
```
|
|
||||||
|
|
||||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
|
||||||
|
|
||||||
### Build
|
|
||||||
|
|
||||||
```
|
|
||||||
$ yarn build
|
|
||||||
```
|
|
||||||
|
|
||||||
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
|
||||||
|
|
||||||
### Deployment
|
|
||||||
|
|
||||||
```
|
|
||||||
$ GIT_USER=<Your GitHub username> USE_SSH=true yarn deploy
|
|
||||||
```
|
|
||||||
|
|
||||||
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,58 +0,0 @@
|
||||||
{
|
|
||||||
"name": "docs-v-2",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"docusaurus": "docusaurus",
|
|
||||||
"start": "docusaurus start",
|
|
||||||
"build": "docusaurus build",
|
|
||||||
"swizzle": "docusaurus swizzle",
|
|
||||||
"deploy": "docusaurus deploy",
|
|
||||||
"clear": "docusaurus clear",
|
|
||||||
"serve": "docusaurus serve",
|
|
||||||
"write-translations": "docusaurus write-translations",
|
|
||||||
"write-heading-ids": "docusaurus write-heading-ids",
|
|
||||||
"typecheck": "tsc"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@ant-design/icons": "^4.7.0",
|
|
||||||
"@docusaurus/core": "2.0.0-beta.9",
|
|
||||||
"@docusaurus/plugin-client-redirects": "^2.0.0-beta.14",
|
|
||||||
"@docusaurus/preset-classic": "2.0.0-beta.9",
|
|
||||||
"@emotion/core": "^10.1.1",
|
|
||||||
"@emotion/styled": "^10.0.27",
|
|
||||||
"@mdx-js/react": "^1.6.21",
|
|
||||||
"@saucelabs/theme-github-codeblock": "^0.1.1",
|
|
||||||
"@superset-ui/style": "^0.14.23",
|
|
||||||
"@svgr/webpack": "^5.5.0",
|
|
||||||
"antd": "^4.8.0",
|
|
||||||
"buffer": "^6.0.3",
|
|
||||||
"clsx": "^1.1.1",
|
|
||||||
"file-loader": "^6.2.0",
|
|
||||||
"prism-react-renderer": "^1.2.1",
|
|
||||||
"react": "^17.0.1",
|
|
||||||
"react-dom": "^17.0.1",
|
|
||||||
"react-github-btn": "^1.2.0",
|
|
||||||
"stream": "^0.0.2",
|
|
||||||
"swagger-ui-react": "^4.1.2",
|
|
||||||
"theme-ui": "^0.3.1",
|
|
||||||
"url-loader": "^4.1.1"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@docusaurus/module-type-aliases": "2.0.0-beta.9",
|
|
||||||
"@tsconfig/docusaurus": "^1.0.4",
|
|
||||||
"typescript": "^4.3.5"
|
|
||||||
},
|
|
||||||
"browserslist": {
|
|
||||||
"production": [
|
|
||||||
">0.5%",
|
|
||||||
"not dead",
|
|
||||||
"not op_mini all"
|
|
||||||
],
|
|
||||||
"development": [
|
|
||||||
"last 1 chrome version",
|
|
||||||
"last 1 firefox version",
|
|
||||||
"last 1 safari version"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,119 +0,0 @@
|
||||||
/**
|
|
||||||
* 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 styled from '@emotion/styled';
|
|
||||||
import { List } from 'antd';
|
|
||||||
import Layout from '@theme/Layout';
|
|
||||||
|
|
||||||
const links = [
|
|
||||||
[
|
|
||||||
'https://join.slack.com/t/apache-superset/shared_invite/zt-uxbh5g36-AISUtHbzOXcu0BIj7kgUaw',
|
|
||||||
'Slack',
|
|
||||||
'interact with other Superset users and community members',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'https://github.com/apache/superset',
|
|
||||||
'GitHub',
|
|
||||||
'create tickets to report issues, report bugs, and suggest new features',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'https://lists.apache.org/list.html?dev@superset.apache.org',
|
|
||||||
'dev@ Mailing List',
|
|
||||||
'participate in conversations with committers and contributors',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'https://stackoverflow.com/questions/tagged/superset+apache-superset',
|
|
||||||
'Stack Overflow',
|
|
||||||
'our growing knowledge base',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'https://www.meetup.com/Global-Apache-Superset-Community-Meetup/',
|
|
||||||
'Superset Meetup Group',
|
|
||||||
'join our monthly virtual meetups and register for any upcoming events',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md',
|
|
||||||
'Organizations',
|
|
||||||
'a list of some of the organizations using Superset in production',
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'https://github.com/apache-superset/awesome-apache-superset',
|
|
||||||
'Contributors Guide',
|
|
||||||
'Interested in contributing? Learn how to contribute and best practices',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
const StyledMain = styled('main')`
|
|
||||||
padding-bottom: 60px;
|
|
||||||
padding-left: 16px;
|
|
||||||
padding-right: 16px;
|
|
||||||
section {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 800px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 60px 0 0 0;
|
|
||||||
font-size: 17px;
|
|
||||||
&:first-of-type{
|
|
||||||
padding: 40px;
|
|
||||||
background-image: linear-gradient(120deg, #d6f2f8, #52c6e3);
|
|
||||||
border-radius: 0 0 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const StyledGetInvolved = styled('div')`
|
|
||||||
margin-bottom: 25px;
|
|
||||||
`;
|
|
||||||
|
|
||||||
const Community = () => {
|
|
||||||
return (
|
|
||||||
<Layout
|
|
||||||
title="Community"
|
|
||||||
description="Community website for Apache Superset, a data visualization and data exploration platform"
|
|
||||||
>
|
|
||||||
<StyledMain>
|
|
||||||
<section>
|
|
||||||
<h1 className="title">Community</h1>
|
|
||||||
Get involved in our welcoming, fast growing community!
|
|
||||||
</section>
|
|
||||||
<section className="joinCommunity">
|
|
||||||
<StyledGetInvolved>
|
|
||||||
<h2>Get involved!</h2>
|
|
||||||
<List
|
|
||||||
size="small"
|
|
||||||
bordered
|
|
||||||
dataSource={links}
|
|
||||||
renderItem={([href, link, post]) => (
|
|
||||||
<List.Item>
|
|
||||||
<a href={href}>{link}</a>
|
|
||||||
{' '}
|
|
||||||
-
|
|
||||||
{' '}
|
|
||||||
{post}
|
|
||||||
</List.Item>
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
</StyledGetInvolved>
|
|
||||||
</section>
|
|
||||||
</StyledMain>
|
|
||||||
</Layout>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Community;
|
|
||||||
|
|
@ -1,463 +0,0 @@
|
||||||
/**
|
|
||||||
* 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, { useRef, useState } from 'react';
|
|
||||||
import Layout from '@theme/Layout';
|
|
||||||
import Link from '@docusaurus/Link';
|
|
||||||
import {
|
|
||||||
Button, Col, Row, Carousel,
|
|
||||||
} from 'antd';
|
|
||||||
import styled from '@emotion/styled';
|
|
||||||
import { supersetTheme } from '@superset-ui/style';
|
|
||||||
import {
|
|
||||||
DeploymentUnitOutlined,
|
|
||||||
FireOutlined,
|
|
||||||
DotChartOutlined,
|
|
||||||
DatabaseOutlined,
|
|
||||||
} from '@ant-design/icons';
|
|
||||||
import GitHubButton from 'react-github-btn';
|
|
||||||
import 'antd/dist/antd.css';
|
|
||||||
import { mq } from '../utils';
|
|
||||||
import { Databases } from '../resources/data';
|
|
||||||
|
|
||||||
const { colors } = supersetTheme;
|
|
||||||
|
|
||||||
const StyledMain = styled('main')`
|
|
||||||
text-align: center;
|
|
||||||
.alert-color {
|
|
||||||
color: ${colors.alert.base};
|
|
||||||
}
|
|
||||||
.error-color {
|
|
||||||
color: ${colors.error.base};
|
|
||||||
}
|
|
||||||
.warning-color {
|
|
||||||
color: ${colors.warning.base};
|
|
||||||
}
|
|
||||||
.info-color {
|
|
||||||
color: ${colors.info.base};
|
|
||||||
}
|
|
||||||
.success-color {
|
|
||||||
color: ${colors.success.base};
|
|
||||||
}
|
|
||||||
.secondary-color {
|
|
||||||
color: ${colors.secondary.base};
|
|
||||||
}
|
|
||||||
.info-text {
|
|
||||||
font-size: 32px;
|
|
||||||
font-weight: normal;
|
|
||||||
max-width: 600px;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
.info-text-smaller {
|
|
||||||
font-size: 24px;
|
|
||||||
max-width: 800px;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const StyledTitleContainer = styled('div')`
|
|
||||||
position: relative;
|
|
||||||
padding-top: 60px;
|
|
||||||
padding-bottom: 80px;
|
|
||||||
padding-left: 20px;
|
|
||||||
padding-right: 20px;
|
|
||||||
background-image: url('img/data-point.jpg');
|
|
||||||
background-size: cover;
|
|
||||||
background-position-x: right;
|
|
||||||
.github-section {
|
|
||||||
margin-bottom: 40px;
|
|
||||||
margin-top: 40px;
|
|
||||||
.github-button {
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.logo-horiz {
|
|
||||||
margin-top: 20px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
width: 600px;
|
|
||||||
max-width: 100%;
|
|
||||||
${[mq[3]]} {
|
|
||||||
width: 550px;
|
|
||||||
}
|
|
||||||
${[mq[2]]} {
|
|
||||||
width: 450px;
|
|
||||||
}
|
|
||||||
${[mq[1]]} {
|
|
||||||
width: 425px;
|
|
||||||
}
|
|
||||||
${[mq[0]]} {
|
|
||||||
width: 400px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.alert {
|
|
||||||
color: #0c5460;
|
|
||||||
background-color: #d1ecf1;
|
|
||||||
border-color: #bee5eb;
|
|
||||||
max-width: 600px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 0.75rem 1.25rem;
|
|
||||||
margin-top: 83px;
|
|
||||||
border: 1px solid transparent;
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const StyledHeading = styled('h2')`
|
|
||||||
font-size: 55px;
|
|
||||||
text-align: center;
|
|
||||||
`;
|
|
||||||
|
|
||||||
const StyledFeatures = styled('div')`
|
|
||||||
background: #fff;
|
|
||||||
padding: 5vw 0;
|
|
||||||
margin-top: 0px;
|
|
||||||
margin-bottom: 30px;
|
|
||||||
.featureList {
|
|
||||||
padding: 40px;
|
|
||||||
width: 100%;
|
|
||||||
list-style-type: none;
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: 1000px;
|
|
||||||
.feature {
|
|
||||||
padding: 20px;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 40px;
|
|
||||||
.imagePlaceHolder {
|
|
||||||
svg {
|
|
||||||
width: 70px;
|
|
||||||
height: 70px;
|
|
||||||
}
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
.featureText {
|
|
||||||
color: ${colors.grayscale.dark2};
|
|
||||||
font-size: 16px;
|
|
||||||
strong {
|
|
||||||
font-size: 22px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.heading {
|
|
||||||
font-size: 22px;
|
|
||||||
margin: 0 auto;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const StyledIntegrations = styled('div')`
|
|
||||||
background: white;
|
|
||||||
margin-bottom: 64px;
|
|
||||||
.databaseSub {
|
|
||||||
text-align: center;
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 40px;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.database-list {
|
|
||||||
margin-top: 100px;
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0px;
|
|
||||||
max-width: 1000px;
|
|
||||||
margin: 0 auto;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-around;
|
|
||||||
margin-bottom: 50px;
|
|
||||||
li {
|
|
||||||
padding: 15px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
const CarouselSection = styled('div')`
|
|
||||||
.toggleContainer {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
margin-bottom: 100px;
|
|
||||||
position: relative;
|
|
||||||
.toggleBtns {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
/* ${[mq[0]]} {
|
|
||||||
flex-direction: column;
|
|
||||||
} */
|
|
||||||
justify-content: center;
|
|
||||||
.toggle {
|
|
||||||
margin: 10px;
|
|
||||||
color: #666;
|
|
||||||
border: 1px solid #888;
|
|
||||||
background-color: #20a7c911;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 16px;
|
|
||||||
transition: all 0.25s;
|
|
||||||
overflow: visible;
|
|
||||||
${[mq[0]]} {
|
|
||||||
> span {
|
|
||||||
display: none;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0px;
|
|
||||||
left: 50%;
|
|
||||||
width: 100%;
|
|
||||||
transform: translate(-50%, 100%);
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: 14px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
color: ${colors.primary.base};
|
|
||||||
border: 1px solid ${colors.primary.base};
|
|
||||||
}
|
|
||||||
&.active {
|
|
||||||
background: red;
|
|
||||||
background: #20a7c933;
|
|
||||||
${[mq[0]]} {
|
|
||||||
> span {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.imageContainer {
|
|
||||||
img {
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 80%;
|
|
||||||
box-shadow: 0 0 3px #aaa;
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
interface featureProps {
|
|
||||||
icon: React.ReactNode,
|
|
||||||
title: string,
|
|
||||||
descr: string,
|
|
||||||
}
|
|
||||||
const Feature = ({ icon, title, descr }: featureProps) => (
|
|
||||||
<li className="feature">
|
|
||||||
<div className="imagePlaceHolder">
|
|
||||||
{icon}
|
|
||||||
</div>
|
|
||||||
<div className="featureText">
|
|
||||||
<h3>{title}</h3>
|
|
||||||
{descr}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
);
|
|
||||||
|
|
||||||
export default function Home(): JSX.Element {
|
|
||||||
const slider = useRef(null);
|
|
||||||
|
|
||||||
const [slideIndex, setSlideIndex] = useState(0);
|
|
||||||
|
|
||||||
const onChange = (index) => {
|
|
||||||
setSlideIndex(index);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Layout
|
|
||||||
title="Welcome"
|
|
||||||
description="Community website for Apache Superset, a data visualization and data exploration platform"
|
|
||||||
>
|
|
||||||
<StyledMain>
|
|
||||||
<StyledTitleContainer>
|
|
||||||
<img className="logo-horiz" src="img/superset-logo-horiz-apache.svg" alt="logo-horiz" />
|
|
||||||
<div className="info-text">
|
|
||||||
Apache Superset is a modern data exploration and visualization
|
|
||||||
platform
|
|
||||||
</div>
|
|
||||||
<div className="github-section">
|
|
||||||
<span className="github-button">
|
|
||||||
<GitHubButton
|
|
||||||
href="https://github.com/apache/superset"
|
|
||||||
data-size="large"
|
|
||||||
data-show-count="true"
|
|
||||||
aria-label="Star apache/superset on GitHub"
|
|
||||||
>
|
|
||||||
Star
|
|
||||||
</GitHubButton>
|
|
||||||
</span>
|
|
||||||
<span className="github-button">
|
|
||||||
<GitHubButton
|
|
||||||
href="https://github.com/apache/superset/subscription"
|
|
||||||
data-size="large"
|
|
||||||
data-show-count="true"
|
|
||||||
aria-label="Watch apache/superset on GitHub"
|
|
||||||
>
|
|
||||||
Watch
|
|
||||||
</GitHubButton>
|
|
||||||
</span>
|
|
||||||
<span className="github-button">
|
|
||||||
<GitHubButton
|
|
||||||
href="https://github.com/apache/superset/fork"
|
|
||||||
data-size="large"
|
|
||||||
data-show-count="true"
|
|
||||||
aria-label="Fork apache/superset on GitHub"
|
|
||||||
>
|
|
||||||
Fork
|
|
||||||
</GitHubButton>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<Link to="/docs/intro">
|
|
||||||
<Button type="primary">
|
|
||||||
Get Started
|
|
||||||
</Button>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</StyledTitleContainer>
|
|
||||||
|
|
||||||
<StyledFeatures>
|
|
||||||
<StyledHeading>Overview</StyledHeading>
|
|
||||||
<div className="info-text info-text-smaller">
|
|
||||||
Superset is fast, lightweight, intuitive, and loaded with options
|
|
||||||
that make it easy for users of all skill sets to explore and
|
|
||||||
visualize their data, from simple line charts to highly detailed
|
|
||||||
geospatial charts.
|
|
||||||
</div>
|
|
||||||
<ul className="featureList ant-row">
|
|
||||||
<Row>
|
|
||||||
<Col sm={24} md={12}>
|
|
||||||
<Feature
|
|
||||||
icon={<FireOutlined className="warning-color" />}
|
|
||||||
title="Powerful yet easy to use"
|
|
||||||
descr={`
|
|
||||||
Quickly and easily integrate and explore your data, using
|
|
||||||
either our simple no-code viz builder or state of the art SQL
|
|
||||||
IDE.
|
|
||||||
`}
|
|
||||||
/>
|
|
||||||
</Col>
|
|
||||||
|
|
||||||
<Col sm={24} md={12}>
|
|
||||||
<Feature
|
|
||||||
icon={<DatabaseOutlined className="info-color" />}
|
|
||||||
title="Integrates with modern databases"
|
|
||||||
descr={`
|
|
||||||
Superset can connect to any SQL based datasource
|
|
||||||
through SQLAlchemy, including modern cloud native databases
|
|
||||||
and engines at petabyte scale.
|
|
||||||
`}
|
|
||||||
/>
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
<Row>
|
|
||||||
<Col sm={24} md={12}>
|
|
||||||
<Feature
|
|
||||||
icon={<DeploymentUnitOutlined className="success-color" />}
|
|
||||||
title="Modern architecture"
|
|
||||||
descr={`
|
|
||||||
Superset is lightweight and highly scalable, leveraging the
|
|
||||||
power of your existing data infrastructure without requiring
|
|
||||||
yet another ingestion layer.
|
|
||||||
`}
|
|
||||||
/>
|
|
||||||
</Col>
|
|
||||||
<Col sm={24} md={12}>
|
|
||||||
<Feature
|
|
||||||
icon={<DotChartOutlined className="alert-color" />}
|
|
||||||
title="Rich visualizations and dashboards"
|
|
||||||
descr={`
|
|
||||||
Superset ships with a wide array of beautiful visualizations.
|
|
||||||
Our visualization plug-in architecture makes it easy to build
|
|
||||||
custom visualizations that drop directly into Superset.
|
|
||||||
`}
|
|
||||||
/>
|
|
||||||
</Col>
|
|
||||||
</Row>
|
|
||||||
</ul>
|
|
||||||
</StyledFeatures>
|
|
||||||
|
|
||||||
<CarouselSection>
|
|
||||||
<StyledHeading>Explore</StyledHeading>
|
|
||||||
<div className="toggleContainer">
|
|
||||||
<div className="toggleBtns">
|
|
||||||
<div
|
|
||||||
className={`toggle ${slideIndex === 0 ? 'active' : null}`}
|
|
||||||
onClick={() => slider.current.goTo(0)}
|
|
||||||
role="button"
|
|
||||||
>
|
|
||||||
<h2>Explore</h2>
|
|
||||||
<span>
|
|
||||||
Explore your data using the array of data visualizations.
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div
|
|
||||||
className={`toggle ${slideIndex === 1 ? 'active' : null}`}
|
|
||||||
onClick={() => slider.current.goTo(1)}
|
|
||||||
role="button"
|
|
||||||
>
|
|
||||||
<h2>View</h2>
|
|
||||||
<span>View your data through interactive dashboards</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className={`toggle ${slideIndex === 2 ? 'active' : null}`}
|
|
||||||
onClick={() => slider.current.goTo(2)}
|
|
||||||
role="button"
|
|
||||||
>
|
|
||||||
<h2>Investigate</h2>
|
|
||||||
<span>Use SQL Lab to write queries to explore your data</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<Carousel ref={slider} effect="scrollx" afterChange={onChange}>
|
|
||||||
<div className="imageContainer">
|
|
||||||
<img src="img/explorer5.jpg" alt="" />
|
|
||||||
</div>
|
|
||||||
<div className="imageContainer">
|
|
||||||
<img src="img/dashboard3.png" alt="" />
|
|
||||||
</div>
|
|
||||||
<div className="imageContainer">
|
|
||||||
<img src="img/sqllab5.jpg" alt="" />
|
|
||||||
</div>
|
|
||||||
</Carousel>
|
|
||||||
</div>
|
|
||||||
<StyledIntegrations>
|
|
||||||
<StyledHeading>Supported Databases</StyledHeading>
|
|
||||||
|
|
||||||
<ul className="database-list">
|
|
||||||
{Databases.map(
|
|
||||||
({
|
|
||||||
title, imgName: imageName, width, height,
|
|
||||||
}) => (
|
|
||||||
<li>
|
|
||||||
<img src={`img/databases/${imageName}`} width={width} height={height || 50} title={title} />
|
|
||||||
</li>
|
|
||||||
),
|
|
||||||
)}
|
|
||||||
</ul>
|
|
||||||
<span className="databaseSub">
|
|
||||||
... and many other
|
|
||||||
<a href="docs/connecting-to-databases/installing-database-drivers">
|
|
||||||
{' '}
|
|
||||||
compatible databases
|
|
||||||
{' '}
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</StyledIntegrations>
|
|
||||||
</CarouselSection>
|
|
||||||
|
|
||||||
</StyledMain>
|
|
||||||
</Layout>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
@ -1,136 +0,0 @@
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
export const Databases = [
|
|
||||||
{
|
|
||||||
title: 'Amazon Redshfit',
|
|
||||||
href: 'https://aws.amazon.com/redshift/',
|
|
||||||
imgName: 'aws-redshift.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Apache Druid',
|
|
||||||
href: 'http://druid.io/',
|
|
||||||
imgName: 'druid.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Apache Kylin',
|
|
||||||
href: 'http://kylin.apache.org/',
|
|
||||||
imgName: 'apache-kylin.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'BigQuery',
|
|
||||||
href: 'https://cloud.google.com/bigquery/',
|
|
||||||
imgName: 'googleBQ.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'ClickHouse',
|
|
||||||
href: 'https://clickhouse.tech/',
|
|
||||||
imgName: 'clickhouse.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Dremio',
|
|
||||||
href: 'https://dremio.com/',
|
|
||||||
imgName: 'dremio.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Exasol',
|
|
||||||
href: 'https://www.exasol.com/en/',
|
|
||||||
imgName: 'exasol.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'FireBirdSql',
|
|
||||||
href: 'https://firebirdsql.org/',
|
|
||||||
imgName: 'firebird.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Green Plum',
|
|
||||||
href: 'https://greenplum.org/',
|
|
||||||
imgName: 'greenplum.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'IBM Db2',
|
|
||||||
href: 'https://www.ibm.com/analytics/db2',
|
|
||||||
imgName: 'ibmdb2.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'MySQL',
|
|
||||||
href: 'https://www.mysql.com/',
|
|
||||||
imgName: 'mysql.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Microsoft SqlServer',
|
|
||||||
href: 'https://www.microsoft.com/en-us/sql-server',
|
|
||||||
imgName: 'msql.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'MonetDB',
|
|
||||||
href: 'https://www.monetdb.org/',
|
|
||||||
imgName: 'monet.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Oracle',
|
|
||||||
href: 'https://www.oracle.com/database/',
|
|
||||||
imgName: 'oraclelogo.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'PostgresSQL',
|
|
||||||
href: 'https://www.postgresql.org/',
|
|
||||||
imgName: 'postsql.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Presto',
|
|
||||||
href: 'https://prestodb.io/',
|
|
||||||
imgName: 'presto-og.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Snowflake',
|
|
||||||
href: 'https://www.snowflake.com/',
|
|
||||||
imgName: 'snowflake.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'SQLite',
|
|
||||||
href: 'https://www.sqlite.org/index.html',
|
|
||||||
imgName: 'sqllite.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Trino',
|
|
||||||
href: 'https://trino.io/',
|
|
||||||
imgName: 'trino2.jpg',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Rockset',
|
|
||||||
href: 'https://rockset.com/',
|
|
||||||
imgName: 'rockset.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Vertica',
|
|
||||||
href: 'https://www.vertica.com/',
|
|
||||||
imgName: 'vertica.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Hologres',
|
|
||||||
href: 'https://www.alibabacloud.com/product/hologres',
|
|
||||||
imgName: 'hologres.png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'IBM Netezza Performance Server',
|
|
||||||
href: 'https://www.ibm.com/products/netezza',
|
|
||||||
imgName: 'netezza.png',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const breakpoints = [576, 768, 992, 1200];
|
|
||||||
|
|
||||||
export const mq = breakpoints.map((bp) => `@media (max-width: ${bp}px)`);
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
# 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.
|
|
||||||
|
|
||||||
publish:
|
|
||||||
whoami: asf-site
|
|
||||||
|
|
||||||
staging:
|
|
||||||
whoami: asf-site
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
module.exports = {
|
|
||||||
parser: 'babel-eslint',
|
|
||||||
rules: {
|
|
||||||
strict: 0,
|
|
||||||
'react/jsx-filename-extension': [
|
|
||||||
2,
|
|
||||||
{ extensions: ['.js', '.jsx', '.ts', '.tsx'] },
|
|
||||||
],
|
|
||||||
'import/extensions': 'off',
|
|
||||||
'react/jsx-props-no-spreading': 'off',
|
|
||||||
'jsx-a11y/click-events-have-key-events': 'off',
|
|
||||||
'jsx-a11y/iframe-has-title': 'off',
|
|
||||||
'jsx-a11y/interactive-supports-focus': 'off',
|
|
||||||
'react-hooks/rules-of-hooks': 'off',
|
|
||||||
'jsx-a11y/no-noninteractive-element-interactions': 'off',
|
|
||||||
},
|
|
||||||
extends: ['airbnb', 'airbnb/hooks'],
|
|
||||||
env: {
|
|
||||||
browser: true,
|
|
||||||
node: true,
|
|
||||||
jasmine: true,
|
|
||||||
},
|
|
||||||
settings: {
|
|
||||||
'import/resolver': {
|
|
||||||
node: {
|
|
||||||
extensions: ['.js', '.jsx', '.ts', '.tsx'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
@ -1,3 +1,20 @@
|
||||||
.docz
|
# Dependencies
|
||||||
.cache
|
/node_modules
|
||||||
public
|
|
||||||
|
# Production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.docusaurus
|
||||||
|
.cache-loader
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# 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.
|
|
||||||
|
|
||||||
RewriteEngine On
|
|
||||||
RewriteCond %{SERVER_PORT} 80
|
|
||||||
RewriteRule ^(.*)$ https://superset.apache.org/$1 [R,L]
|
|
||||||
|
|
||||||
RewriteCond %{HTTP_HOST} ^superset.incubator.apache.org$ [NC]
|
|
||||||
RewriteRule ^(.*)$ https://superset.apache.org/$1 [R=301,L]
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
v12
|
|
||||||
|
|
@ -17,53 +17,36 @@ specific language governing permissions and limitations
|
||||||
under the License.
|
under the License.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
Here's the source to the documentation hosted at
|
# Website
|
||||||
<a href="https://superset.apache.org">superset.apache.org</a>
|
|
||||||
|
|
||||||
The site runs on the Gatsby framework and uses docz for it's
|
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
|
||||||
`Documentation` subsection.
|
|
||||||
|
|
||||||
## Getting Started
|
### Installation
|
||||||
|
|
||||||
```bash
|
```
|
||||||
cd docs/
|
$ yarn
|
||||||
npm install
|
|
||||||
npm run start
|
|
||||||
# navigate to localhost:8000`
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## To Publish
|
### Local Development
|
||||||
|
|
||||||
Github Actions CI automatically publishes the site after changes are
|
|
||||||
merged to master.
|
|
||||||
|
|
||||||
To manually publish, the static site that Gatsby generates needs to be pushed
|
|
||||||
to the `asf-site` branch on the
|
|
||||||
[apache/superset-site](https://github.com/apache/superset-site/)
|
|
||||||
repository. No need to PR here, simply `git push`.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Get in the docs/ folder in the main repo
|
|
||||||
cd ~/repos/superset/docs
|
|
||||||
# have Gatsby build the static website, this puts in under `docs/public`
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
# go to the docs repo
|
|
||||||
cd ~/repos/superset-site
|
|
||||||
# checkout the proper branch
|
|
||||||
git checkout asf-site
|
|
||||||
|
|
||||||
# BE CAREFUL WITH THIS COMMAND
|
|
||||||
# wipe the content of the repo
|
|
||||||
rm -rf *
|
|
||||||
|
|
||||||
# copy the static site here
|
|
||||||
cp -r ~/repos/superset/docs/public/ ./
|
|
||||||
|
|
||||||
# git push
|
|
||||||
git add .
|
|
||||||
git commit -m "relevant commit msg"
|
|
||||||
git push origin asf-site
|
|
||||||
|
|
||||||
# SUCCESS - it should take minutes to take effect on superset.apache.org
|
|
||||||
```
|
```
|
||||||
|
$ yarn start
|
||||||
|
```
|
||||||
|
|
||||||
|
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
|
||||||
|
|
||||||
|
### Build
|
||||||
|
|
||||||
|
```
|
||||||
|
$ yarn build
|
||||||
|
```
|
||||||
|
|
||||||
|
This command generates static content into the `build` directory and can be served using any static contents hosting service.
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
```
|
||||||
|
$ GIT_USER=<Your GitHub username> USE_SSH=true yarn deploy
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
export default {
|
|
||||||
title: 'superset doc',
|
|
||||||
base: '/docs',
|
|
||||||
ignore: ['**/blog/**', 'readme.md'],
|
|
||||||
files: ['src/**/*.{md,markdown,mdx}'],
|
|
||||||
menu: [
|
|
||||||
'Introduction',
|
|
||||||
'Installation and Configuration',
|
|
||||||
'Connecting to Databases',
|
|
||||||
'Creating Charts and Dashboards',
|
|
||||||
'Miscellaneous',
|
|
||||||
'Contributing',
|
|
||||||
'Frequently Asked Questions',
|
|
||||||
'Roadmap',
|
|
||||||
'API',
|
|
||||||
'Security',
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
siteMetadata: {
|
|
||||||
title: `Superset`,
|
|
||||||
description: `Community website for Apache Superset, a data visualization and data exploration platform`,
|
|
||||||
author: `@apache-superset`,
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
`gatsby-plugin-sass`,
|
|
||||||
`gatsby-theme-docz`,
|
|
||||||
`gatsby-plugin-react-helmet`,
|
|
||||||
{
|
|
||||||
resolve: `gatsby-source-filesystem`,
|
|
||||||
options: {
|
|
||||||
name: `images`,
|
|
||||||
path: `${__dirname}/src/images`,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
`gatsby-transformer-sharp`,
|
|
||||||
`gatsby-plugin-sharp`,
|
|
||||||
{
|
|
||||||
resolve: `gatsby-plugin-google-fonts`,
|
|
||||||
options: {
|
|
||||||
fonts: [
|
|
||||||
`Inter`,
|
|
||||||
`source sans pro\:300,400,400i,700`, // you can also specify font weights and styles
|
|
||||||
],
|
|
||||||
display: 'swap',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
resolve: 'gatsby-plugin-eslint',
|
|
||||||
options: {
|
|
||||||
test: /\.js$|\.jsx$/,
|
|
||||||
exclude: /(node_modules|.cache|public|gatsby-config.js)/,
|
|
||||||
stages: ['develop'],
|
|
||||||
options: {
|
|
||||||
emitWarning: true,
|
|
||||||
failOnError: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'gatsby-plugin-antd',
|
|
||||||
'gatsby-plugin-emotion',
|
|
||||||
{
|
|
||||||
resolve: `gatsby-plugin-manifest`,
|
|
||||||
options: {
|
|
||||||
name: `gatsby-starter-default`,
|
|
||||||
short_name: `starter`,
|
|
||||||
start_url: `/`,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
`gatsby-plugin-client-side-redirect`,
|
|
||||||
{
|
|
||||||
resolve: `gatsby-plugin-gtag`,
|
|
||||||
options: {
|
|
||||||
// your google analytics tracking id
|
|
||||||
trackingId: `G-133LHD3B3N`,
|
|
||||||
// Puts tracking script in the head instead of the body
|
|
||||||
head: false,
|
|
||||||
// enable ip anonymization
|
|
||||||
anonymize: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'gatsby-plugin-remove-serviceworker',
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
@ -1,677 +0,0 @@
|
||||||
/**
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.createPages = ({ actions }) => {
|
|
||||||
const { createRedirect } = actions; //actions is collection of many actions - https://www.gatsbyjs.org/docs/actions
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html',
|
|
||||||
toPath: '/docs/installation/installing-superset-using-docker-compose',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#getting-started',
|
|
||||||
toPath: '/docs/installation/installing-superset-using-docker-compose',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#cloud-native',
|
|
||||||
toPath: '/docs/installation/installing-superset-using-docker-compose',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#start-with-docker',
|
|
||||||
toPath: '/docs/installation/installing-superset-using-docker-compose',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#os-dependencies',
|
|
||||||
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#python-virtualenv',
|
|
||||||
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#python-s-setup-tools-and-pip',
|
|
||||||
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#superset-installation-and-initialization',
|
|
||||||
toPath: '/docs/installation/installing-superset-from-scratch#installing-superset-from-scratch',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#a-proper-wsgi-http-server',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#flask-appbuilder-permissions',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#configuration-behind-a-load-balancer',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#configuration',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#database-dependencies',
|
|
||||||
toPath: '/docs/databases/installing-database-drivers',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#hana',
|
|
||||||
toPath: '/docs/databases/hana',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#aws-athena',
|
|
||||||
toPath: '/docs/databases/athena',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#google-bigquery',
|
|
||||||
toPath: '/docs/databases/bigquery',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#elasticsearch',
|
|
||||||
toPath: '/docs/databases/elasticsearch',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#snowflake',
|
|
||||||
toPath: '/docs/databases/snowflake',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#teradata',
|
|
||||||
toPath: '/docs/databases/teradata',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#apache-drill',
|
|
||||||
toPath: '/docs/databases/drill',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#caching',
|
|
||||||
toPath: '/docs/installation/cache',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#deeper-sqlalchemy-integration',
|
|
||||||
toPath: '/docs/databases/extra-settings',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#schemas-postgres-redshift',
|
|
||||||
toPath: '/docs/databases/extra-settings',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#external-password-store-for-sqlalchemy-connections',
|
|
||||||
toPath: '/docs/databases/extra-settings',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#ssl-access-to-databases',
|
|
||||||
toPath: '/docs/databases/extra-settings',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#druid',
|
|
||||||
toPath: '/docs/databases/druid',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#presto',
|
|
||||||
toPath: '/docs/databases/presto',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#exasol',
|
|
||||||
toPath: '/docs/databases/exasol',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#cors',
|
|
||||||
toPath: '/docs/installation/networking-settings',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#domain-sharding',
|
|
||||||
toPath: '/docs/installation/networking-settings',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#middleware',
|
|
||||||
toPath: '/docs/installation/networking-settings',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#event-logging',
|
|
||||||
toPath: '/docs/installation/event-logging',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#upgrading',
|
|
||||||
toPath: '/docs/installation/upgrading-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#celery-tasks',
|
|
||||||
toPath: '/docs/installation/async-queries-celery',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#email-reports',
|
|
||||||
toPath: '/docs/installation/email-reports',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#sql-lab',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#celery-flower',
|
|
||||||
toPath: '/docs/installation/async-queries-celery',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#building-from-source',
|
|
||||||
toPath: '/docs/contributing/contribution-guidelines',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#blueprints',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#statsd-logging',
|
|
||||||
toPath: '/docs/installation/event-logging',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#install-superset-with-helm-in-kubernetes',
|
|
||||||
toPath: '/docs/installation/installing-superset-from-scratch',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#custom-oauth2-configuration',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#feature-flags',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/installation.html#sip-15',
|
|
||||||
toPath: '/docs/installation/configuring-superset',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/tutorials.html',
|
|
||||||
toPath: '/docs/intro',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/admintutorial.html',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/admintutorial.html#connecting-to-a-new-database',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/admintutorial.html#adding-a-new-table',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/admintutorial.html#exploring-your-data',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/admintutorial.html#creating-a-slice-and-dashboard',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#enabling-upload-a-csv-functionality',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#obtaining-and-loading-the-data',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#table-visualization',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#dashboard-basics',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#pivot-table',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#line-chart',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#markup',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#filter-box',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#native-filters',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#publishing-your-dashboard',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#taking-your-dashboard-further',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#annotations',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#advanced-analytics',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#setting-up-the-base-chart',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#rolling-mean',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#time-comparison',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/usertutorial.html#resampling-the-data',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/exploring-data',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#provided-roles',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#admin',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#alpha',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#gamma',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#sql-lab',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#public',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#managing-gamma-per-data-source-access',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#customizing',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#permissions',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/security.html#restricting-access-to-a-subset-of-data-sources',
|
|
||||||
toPath: '/docs/security',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/sqllab.html',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/sqllab.html#feature-overview',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/sqllab.html#extra-features',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/sqllab.html#templating-with-jinja',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/sqllab.html#available-macros',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/sqllab.html#extending-macros',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/sqllab.html#query-cost-estimation',
|
|
||||||
toPath: '/docs/installation/sql-templating',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/gallery.html',
|
|
||||||
toPath: '/docs/intro',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/druid.html',
|
|
||||||
toPath: '/docs/databases/druid',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/druid.html#aggregations',
|
|
||||||
toPath: '/docs/databases/druid',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/druid.html#post-aggregations',
|
|
||||||
toPath: '/docs/databases/druid',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/druid.html#unsupported-features',
|
|
||||||
toPath: '/docs/databases/druid',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/misc.html',
|
|
||||||
toPath: '/docs/miscellaneous/country-map-tools',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/visualization.html',
|
|
||||||
toPath: '/docs/miscellaneous/country-map-tools',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/visualization.html#country-map-tools',
|
|
||||||
toPath: '/docs/miscellaneous/country-map-tools',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/visualization.html#list-of-countries',
|
|
||||||
toPath: '/docs/miscellaneous/country-map-tools',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/visualization.html#need-to-add-a-new-country',
|
|
||||||
toPath: '/docs/miscellaneous/country-map-tools',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/videos.html',
|
|
||||||
toPath: '/resources',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/import_export_datasources.html#exporting-datasources-to-yaml',
|
|
||||||
toPath: '/docs/miscellaneous/importing-exporting-datasources',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/import_export_datasources.html#exporting-the-complete-supported-yaml-schema',
|
|
||||||
toPath: '/docs/miscellaneous/importing-exporting-datasources',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/import_export_datasources.html#importing-datasources-from-yaml',
|
|
||||||
toPath: '/docs/miscellaneous/importing-exporting-datasources',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#can-i-query-join-multiple-tables-at-one-time',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#how-big-can-my-data-source-be',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#how-do-i-create-my-own-visualization',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#can-i-upload-and-visualize-csv-data',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#why-are-my-queries-timing-out',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#why-is-the-map-not-visible-in-the-mapbox-visualization',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#how-to-add-dynamic-filters-to-a-dashboard',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#how-to-limit-the-timed-refresh-on-a-dashboard',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#why-does-flask-fab-or-superset-freezed-hung-not-responding-when-started-my-home-directory-is-nfs-mounted',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#what-if-the-table-schema-changed',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#how-do-i-go-about-developing-a-new-visualization-type',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#what-database-engine-can-i-use-as-a-backend-for-superset',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#how-can-i-configure-oauth-authentication-and-authorization',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#how-can-i-set-a-default-filter-on-my-dashboard',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: 'faq.html#how-do-i-get-superset-to-refresh-the-schema-of-my-table',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#is-there-a-way-to-force-the-use-specific-colors',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/faq.html#does-superset-work-with-insert-database-engine-here',
|
|
||||||
toPath: '/docs/frequently-asked-questions',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/index.html',
|
|
||||||
toPath: '/docs/intro',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/tutorial.html',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/tutorial.html#connecting-to-a-new-database',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/tutorial.html#adding-a-new-table',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/tutorial.html#exploring-your-data',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/tutorial.html#creating-a-slice-and-dashboard',
|
|
||||||
toPath: '/docs/creating-charts-dashboards/first-dashboard',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/issue_code_reference.html#issue-1000',
|
|
||||||
toPath: '/docs/miscellaneous/issue-codes#issue-1000',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/issue_code_reference.html#issue-1001',
|
|
||||||
toPath: '/docs/miscellaneous/issue-codes#issue-1001',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/issue_code_reference.html#issue-1002',
|
|
||||||
toPath: '/docs/miscellaneous/issue-codes#issue-1002',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/issue_code_reference.html#issue-1003',
|
|
||||||
toPath: '/docs/miscellaneous/issue-codes#issue-1003',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/issue_code_reference.html#issue-1004',
|
|
||||||
toPath: '/docs/miscellaneous/issue-codes#issue-1004',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/issue_code_reference.html#issue-1005',
|
|
||||||
toPath: '/docs/miscellaneous/issue-codes#issue-1005',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
createRedirect({
|
|
||||||
fromPath: '/docs/installation/email-reports',
|
|
||||||
toPath: '/docs/installation/alerts-reports',
|
|
||||||
isPermanent: true,
|
|
||||||
});
|
|
||||||
};
|
|
||||||
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue