Add docs landing page back (#1537)

## Description

This reverts commit 18bc6b05e10df44083ed67010fc62ea9b0a2efd1 in prep for bringing the blog
back to docs.

## Type of change

- [x] 🗺️ Documentation
This commit is contained in:
Niraj Tolia 2022-11-16 14:48:43 -08:00 committed by GitHub
parent 67265a8c32
commit e5701df8c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 155 additions and 6 deletions

View File

@ -1,8 +1,4 @@
--- # Introduction
slug: /
---
# Corso introduction
## Overview ## Overview

View File

@ -68,13 +68,19 @@ const config = {
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */ /** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({ ({
navbar: { navbar: {
title: 'Docs', title: '',
logo: { logo: {
alt: 'Corso Logo', alt: 'Corso Logo',
src: '/img/corso_horizontal_logo.svg', src: '/img/corso_horizontal_logo.svg',
srcDark: 'img/corso_horizontal_logo_white.svg', srcDark: 'img/corso_horizontal_logo_white.svg',
}, },
items: [ items: [
{
type: 'doc',
docId: 'intro',
position: 'left',
label: 'Docs',
},
{ {
href: 'https://github.com/alcionai/corso', href: 'https://github.com/alcionai/corso',
label: 'GitHub', label: 'GitHub',
@ -90,6 +96,15 @@ const config = {
height: 60, height: 60,
}, },
links: [ links: [
{
title: 'Resources',
items: [
{
label: 'Docs',
to: '/intro',
},
],
},
{ {
title: 'Community', title: 'Community',
items: [ items: [
@ -140,6 +155,15 @@ const config = {
}, },
}, },
image: 'img/cloudbackup.png',
metadata : [
{name: 'twitter:card', content: 'summary_large_image'},
{name: 'twitter:site', content: '@corsobackup'},
{name: 'twitter:title', content: 'Corso Documentation: Free, Secure, and Open-Source Backup for Microsoft 365'},
{name: 'twitter:description', content: 'Documentation for Corso, an open-source tool, that protects Microsoft 365 data by securely and efficiently backing up all business-critical data to object storage.'},
],
prism: { prism: {
theme: lightCodeTheme, theme: lightCodeTheme,
darkTheme: darkCodeTheme, darkTheme: darkCodeTheme,

View File

@ -0,0 +1,61 @@
import React from 'react';
import clsx from 'clsx';
import styles from './styles.module.css';
const FeatureList = [
{
title: 'Secure',
Svg: require('@site/static/img/security.svg').default,
description: (
<>
Corso provides secure data backup that protects customers against accidental data loss, service provider downtime, and malicious threats including ransomware attacks.
</>
),
},
{
title: 'Robust',
Svg: require('@site/static/img/data.svg').default,
description: (
<>
Corso, purpose-built for M365 protection, provides easy-to-use comprehensive backup and restore workflows that reduce backup time, improve time-to-recovery, reduce admin overhead, and replace unreliable scripts or workarounds.
</>
),
},
{
title: 'Low Cost',
Svg: require('@site/static/img/savings.svg').default,
description: (
<>
Corso, a 100% open-source tool, provides a free alternative for cost-conscious teams. It further reduces storage costs by supporting flexible retention policies and efficiently compressing and deduplicating data before storing it in low-cost cloud object storage.
</>
),
},
];
function Feature({Svg, title, description}) {
return (
<div className={clsx('col col--4')}>
<div className="text--center">
<Svg className={styles.featureSvg} role="img" />
</div>
<div className="text--center padding-horiz--md">
<h3>{title}</h3>
<p>{description}</p>
</div>
</div>
);
}
export default function HomepageFeatures() {
return (
<section className={styles.features}>
<div className="container">
<div className="row">
{FeatureList.map((props, idx) => (
<Feature key={idx} {...props} />
))}
</div>
</div>
</section>
);
}

40
docs/src/pages/index.js Normal file
View File

@ -0,0 +1,40 @@
import React from 'react';
import clsx from 'clsx';
import Layout from '@theme/Layout';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import styles from './index.module.css';
import HomepageFeatures from '@site/src/components/HomepageFeatures';
function HomepageHeader() {
const {siteConfig} = useDocusaurusContext();
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className="container">
<h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
to="quickstart">
Corso Quickstart - 5min
</Link>
</div>
</div>
</header>
);
}
export default function Home() {
const {siteConfig} = useDocusaurusContext();
return (
<Layout
title={`${siteConfig.title}`}
description="Documentation for Corso, a free, secure, and open-source backup tool for Microsoft 365">
<HomepageHeader />
<main>
<HomepageFeatures />
</main>
</Layout>
);
}

View File

@ -0,0 +1,25 @@
/**
* CSS files with the .module.css suffix will be treated as CSS modules
* and scoped locally.
*/
.heroBanner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
--ifm-hero-text-color: #ffffff;
--ifm-color-primary: #4f46e5;
}
@media screen and (max-width: 996px) {
.heroBanner {
padding: 2rem;
}
}
.buttons {
display: flex;
align-items: center;
justify-content: center;
}

1
docs/static/img/data.svg vendored Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

1
docs/static/img/savings.svg vendored Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 115 KiB

1
docs/static/img/security.svg vendored Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB