/** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import React, {useEffect, useState} from 'react'; import Helmet from 'react-helmet'; import classnames from 'classnames'; import styles from './styles.module.css'; const FEATURE_INTERVAL = 3000; const FEATURES = [ { title: 'Powered by Markdown', description: ( <> Save time and focus on your projects documentation. Simply write docs and blog posts with Markdown and Docusaurus will publish a set of static html files ready to serve. > ), icon: '/img/markdown.png', }, { title: 'Built Using React', description: ( <> Extend or customize your project's layout by reusing React. Docusaurus can be extended while reusing the same header and footer. > ), icon: '/img/react.svg', }, { title: 'Ready for Translations', description: ( <> Localization comes pre-configured. Use Crowdin to translate your docs into over 70 languages. > ), icon: '/img/translation.svg', }, { title: 'Document Versioning', description: ( <> Support users on all versions of your project. Document versioning helps you keep documentation in sync with project releases. > ), icon: '/img/versioning.svg', }, { title: 'Document Search', description: ( <> Make it easy for your community to find what they need in your documentation. We proudly support Algolia documentation search. > ), icon: '/img/search.svg', }, ]; const QUOTES = [ { thumbnail: '/img/christopher-chedeau.jpg', name: 'Christopher "vjeux" Chedeau', title: 'Lead Prettier Developer', text: (
I've helped open source many projects at Facebook and every one needed a website. They all had very similar constraints: the documentation should be written in markdown and be deployed via GitHub pages. None of the existing solutions were great, so I hacked my own and then forked it whenever we needed a new website. I’m so glad that Docusaurus now exists so that I don’t have to spend a week each time spinning up a new one.
), }, { thumbnail: '/img/hector-ramos.png', name: 'Hector Ramos', title: 'Lead React Native Advocate', text: (Open source contributions to the React Native docs have skyrocketed after our move to Docusaurus. The docs are now hosted on a small repo in plain markdown, with none of the clutter that a typical static site generator would require. Thanks Slash!
), }, { thumbnail: '/img/ricky-vetter.jpg', name: 'Ricky Vetter', title: 'ReasonReact Developer', text: (Docusaurus has been a great choice for the ReasonML family of projects. It makes our documentation consistent, i18n-friendly, easy to maintain, and friendly for new contributors.
), }, ]; function Home() { const [featureIndex, setFeatureIndex] = useState(0); useEffect( () => { const timer = window.setTimeout(() => { setFeatureIndex( prevFeatureIndex => (prevFeatureIndex + 1) % FEATURES.length, ); }, FEATURE_INTERVAL); return () => { window.clearTimeout(timer); }; }, [featureIndex], ); return ({feature.description}
{quote.text}