2018-10-25 20:03:19 -04:00
/ * *
2020-02-25 10:12:28 -05:00
* Copyright ( c ) Facebook , Inc . and its affiliates .
2018-10-25 20:03:19 -04:00
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree .
* /
2020-07-08 06:32:41 -04:00
const path = require ( 'path' ) ;
2019-11-23 21:13:16 -05:00
const versions = require ( './versions.json' ) ;
2021-06-02 08:55:50 -04:00
const math = require ( 'remark-math' ) ;
const katex = require ( 'rehype-katex' ) ;
2021-06-18 11:27:13 -04:00
const VersionsArchived = require ( './versionsArchived.json' ) ;
2021-07-21 08:13:51 -04:00
const { dogfoodingPluginInstances } = require ( './_dogfooding/dogfooding.config' ) ;
2019-11-23 21:13:16 -05:00
2021-05-12 10:07:15 -04:00
// This probably only makes sense for the beta phase, temporary
function getNextBetaVersionName ( ) {
const expectedPrefix = '2.0.0-beta.' ;
2020-10-01 10:13:11 -04:00
const lastReleasedVersion = versions [ 0 ] ;
if ( ! lastReleasedVersion . includes ( expectedPrefix ) ) {
throw new Error (
2021-05-12 10:07:15 -04:00
'this code is only meant to be used during the 2.0 beta phase.' ,
2020-10-01 10:13:11 -04:00
) ;
}
2021-05-12 10:07:15 -04:00
const version = parseInt ( lastReleasedVersion . replace ( expectedPrefix , '' ) , 10 ) ;
return ` ${ expectedPrefix } ${ version + 1 } ` ;
2020-10-01 10:13:11 -04:00
}
2020-06-10 11:22:08 -04:00
const allDocHomesPaths = [
2020-06-29 12:38:28 -04:00
'/docs/' ,
'/docs/next/' ,
... versions . slice ( 1 ) . map ( ( version ) => ` /docs/ ${ version } / ` ) ,
2020-06-10 11:22:08 -04:00
] ;
2020-08-28 12:37:49 -04:00
const isDev = process . env . NODE _ENV === 'development' ;
const isDeployPreview =
process . env . NETLIFY && process . env . CONTEXT === 'deploy-preview' ;
2020-07-22 13:55:40 -04:00
const baseUrl = process . env . BASE _URL || '/' ;
2020-08-17 14:18:37 -04:00
2021-02-11 06:31:50 -05:00
// Special deployment for staging locales until they get enough translations
// https://app.netlify.com/sites/docusaurus-i18n-staging
// https://docusaurus-i18n-staging.netlify.app/
const isI18nStaging = process . env . I18N _STAGING === 'true' ;
2021-03-18 14:28:14 -04:00
const isVersioningDisabled = ! ! process . env . DISABLE _VERSIONING || isI18nStaging ;
2021-08-13 10:23:56 -04:00
const TwitterSvg =
'<svg style="fill: #1DA1F2; vertical-align: middle;" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>' ;
2021-01-29 09:35:25 -05:00
/** @type {import('@docusaurus/types').DocusaurusConfig} */
2021-02-11 06:31:50 -05:00
( module . exports = {
2018-11-11 11:25:13 -05:00
title : 'Docusaurus' ,
2019-11-25 13:31:14 -05:00
tagline : 'Build optimized websites quickly, focus on your content' ,
2018-09-21 06:46:19 -04:00
organizationName : 'facebook' ,
projectName : 'docusaurus' ,
2020-07-22 13:55:40 -04:00
baseUrl ,
2020-11-23 12:54:13 -05:00
baseUrlIssueBanner : true ,
2021-03-22 15:57:49 -04:00
url : 'https://docusaurus.io' ,
2021-06-09 13:59:39 -04:00
// Dogfood both settings:
// - force trailing slashes for deploy previews
// - avoid trailing slashes in prod
trailingSlash : isDeployPreview ,
2021-06-02 08:55:50 -04:00
stylesheets : [
{
href : 'https://cdn.jsdelivr.net/npm/katex@0.13.11/dist/katex.min.css' ,
integrity :
'sha384-Um5gpz1odJg5Z4HAmzPtgZKdTBHZdw8S29IecapCSB31ligYPhHQZMIlWLYQGVoc' ,
crossorigin : 'anonymous' ,
} ,
] ,
2020-11-26 06:16:46 -05:00
i18n : {
defaultLocale : 'en' ,
2021-04-11 13:21:13 -04:00
locales : isDeployPreview
? // Deploy preview: keep it fast!
[ 'en' ]
: isI18nStaging
2021-03-18 13:05:42 -04:00
? // Staging locales: https://docusaurus-i18n-staging.netlify.app/
2021-08-02 10:00:31 -04:00
[ 'en' , 'ja' ]
2021-03-18 06:43:07 -04:00
: // Production locales
2021-08-02 10:00:31 -04:00
[ 'en' , 'fr' , 'pt-BR' , 'ko' , 'zh-CN' ] ,
2020-11-26 06:16:46 -05:00
} ,
2021-05-14 05:30:34 -04:00
webpack : {
jsLoader : ( isServer ) => ( {
loader : require . resolve ( 'esbuild-loader' ) ,
options : {
loader : 'tsx' ,
format : isServer ? 'cjs' : undefined ,
target : isServer ? 'node12' : 'es2017' ,
} ,
} ) ,
} ,
2020-11-26 06:16:46 -05:00
onBrokenLinks : 'throw' ,
2020-11-30 08:07:08 -05:00
onBrokenMarkdownLinks : 'warn' ,
2018-10-28 04:32:19 -04:00
favicon : 'img/docusaurus.ico' ,
2019-11-25 13:31:14 -05:00
customFields : {
description :
'An optimized site generator in React. Docusaurus helps you to move fast and write content. Build documentation websites, blogs, marketing pages, and more.' ,
} ,
2021-07-21 08:13:51 -04:00
clientModules : [ require . resolve ( './_dogfooding/clientModuleExample.ts' ) ] ,
2019-06-10 02:21:36 -04:00
themes : [ '@docusaurus/theme-live-codeblock' ] ,
2019-07-17 09:53:40 -04:00
plugins : [
2021-08-20 05:42:13 -04:00
require ( './src/featureRequests/FeatureRequestsPlugin' ) ,
2020-05-25 14:06:52 -04:00
[
2020-08-05 12:27:55 -04:00
'@docusaurus/plugin-content-docs' ,
2021-09-01 06:14:40 -04:00
/** @type {import('@docusaurus/plugin-content-docs').Options} */
( {
2020-08-05 12:27:55 -04:00
id : 'community' ,
path : 'community' ,
2021-05-12 08:40:35 -04:00
routeBasePath : 'community' ,
2021-01-29 09:35:25 -05:00
editUrl : ( { locale , versionDocsDirPath , docPath } ) => {
if ( locale !== 'en' ) {
return ` https://crowdin.com/project/docusaurus-v2/ ${ locale } ` ;
}
2021-08-17 12:41:53 -04:00
return ` https://github.com/facebook/docusaurus/edit/main/website/ ${ versionDocsDirPath } / ${ docPath } ` ;
2021-01-29 09:35:25 -05:00
} ,
2020-12-28 04:25:47 -05:00
editCurrentVersion : true ,
2020-08-05 12:27:55 -04:00
sidebarPath : require . resolve ( './sidebarsCommunity.js' ) ,
showLastUpdateAuthor : true ,
showLastUpdateTime : true ,
2021-09-01 06:14:40 -04:00
} ) ,
2020-08-05 12:27:55 -04:00
] ,
[
2020-05-25 14:06:52 -04:00
'@docusaurus/plugin-client-redirects' ,
2021-09-01 06:14:40 -04:00
/** @type {import('@docusaurus/plugin-client-redirects').Options} */
( {
2021-06-16 13:04:28 -04:00
fromExtensions : [ 'html' ] ,
createRedirects : function ( path ) {
// redirect to /docs from /docs/introduction,
// as introduction has been made the home doc
if ( allDocHomesPaths . includes ( path ) ) {
return [ ` ${ path } /introduction ` ] ;
}
} ,
redirects : [
{
from : [ '/docs/support' , '/docs/next/support' ] ,
to : '/community/support' ,
} ,
{
from : [ '/docs/team' , '/docs/next/team' ] ,
to : '/community/team' ,
2020-08-05 12:27:55 -04:00
} ,
2021-06-16 13:04:28 -04:00
{
from : [ '/docs/resources' , '/docs/next/resources' ] ,
to : '/community/resources' ,
} ,
] ,
2021-09-01 06:14:40 -04:00
} ) ,
2020-05-25 14:06:52 -04:00
] ,
2019-07-17 09:53:40 -04:00
[
'@docusaurus/plugin-ideal-image' ,
{
quality : 70 ,
max : 1030 , // max resized image's size.
min : 640 , // min resized image's size. if original is lower, use that size.
steps : 2 , // the max number of images generated between min and max (inclusive)
} ,
] ,
2020-07-08 06:32:41 -04:00
[
'@docusaurus/plugin-pwa' ,
{
2021-03-10 14:00:42 -05:00
debug : isDeployPreview ,
offlineModeActivationStrategies : [
'appInstalled' ,
'standalone' ,
'queryString' ,
] ,
2020-07-08 06:32:41 -04:00
// swRegister: false,
swCustom : path . resolve ( _ _dirname , 'src/sw.js' ) ,
pwaHead : [
{
tagName : 'link' ,
rel : 'icon' ,
2021-07-15 09:38:14 -04:00
href : 'img/docusaurus.png' ,
2020-07-08 06:32:41 -04:00
} ,
{
tagName : 'link' ,
rel : 'manifest' ,
2021-07-15 09:38:14 -04:00
href : 'manifest.json' ,
2020-07-08 06:32:41 -04:00
} ,
{
tagName : 'meta' ,
name : 'theme-color' ,
content : 'rgb(37, 194, 160)' ,
} ,
{
tagName : 'meta' ,
name : 'apple-mobile-web-app-capable' ,
content : 'yes' ,
} ,
{
tagName : 'meta' ,
name : 'apple-mobile-web-app-status-bar-style' ,
content : '#000' ,
} ,
{
tagName : 'link' ,
rel : 'apple-touch-icon' ,
2021-07-15 09:38:14 -04:00
href : 'img/docusaurus.png' ,
2020-07-08 06:32:41 -04:00
} ,
{
tagName : 'link' ,
rel : 'mask-icon' ,
2021-07-15 09:38:14 -04:00
href : 'img/docusaurus.png' ,
2020-07-08 06:32:41 -04:00
color : 'rgb(62, 204, 94)' ,
} ,
{
tagName : 'meta' ,
name : 'msapplication-TileImage' ,
2021-07-16 05:56:00 -04:00
content : 'img/docusaurus.png' ,
2020-07-08 06:32:41 -04:00
} ,
{
tagName : 'meta' ,
name : 'msapplication-TileColor' ,
content : '#000' ,
} ,
] ,
} ,
] ,
2021-07-21 08:13:51 -04:00
... dogfoodingPluginInstances ,
2019-07-17 09:53:40 -04:00
] ,
2019-06-10 02:21:36 -04:00
presets : [
[
2021-09-01 06:14:40 -04:00
'@docusaurus/preset-classic' ,
/** @type {import('@docusaurus/preset-classic').Options} */
( {
2020-08-07 05:47:43 -04:00
debug : true , // force debug plugin usage
2019-06-10 02:21:36 -04:00
docs : {
2020-08-05 12:27:55 -04:00
// routeBasePath: '/',
2019-06-10 02:21:36 -04:00
path : 'docs' ,
2021-06-02 12:21:45 -04:00
sidebarPath : 'sidebars.js' ,
2021-07-23 08:24:36 -04:00
// sidebarCollapsible: false,
// sidebarCollapsed: true,
2021-02-17 07:02:11 -05:00
editUrl : ( { locale , docPath } ) => {
2021-01-29 09:35:25 -05:00
if ( locale !== 'en' ) {
return ` https://crowdin.com/project/docusaurus-v2/ ${ locale } ` ;
}
2021-02-17 07:02:11 -05:00
// We want users to submit doc updates to the upstream/next version!
// Otherwise we risk losing the update on the next release.
const nextVersionDocsDirPath = 'docs' ;
2021-08-17 12:41:53 -04:00
return ` https://github.com/facebook/docusaurus/edit/main/website/ ${ nextVersionDocsDirPath } / ${ docPath } ` ;
2021-01-29 09:35:25 -05:00
} ,
2019-10-11 00:45:39 -04:00
showLastUpdateAuthor : true ,
showLastUpdateTime : true ,
2020-11-06 11:30:32 -05:00
remarkPlugins : [
2021-06-02 08:55:50 -04:00
math ,
2020-11-06 11:30:32 -05:00
[ require ( '@docusaurus/remark-plugin-npm2yarn' ) , { sync : true } ] ,
] ,
2021-06-02 08:55:50 -04:00
rehypePlugins : [ katex ] ,
2020-08-17 14:18:37 -04:00
disableVersioning : isVersioningDisabled ,
2020-12-28 04:25:47 -05:00
lastVersion : isDev ? 'current' : undefined ,
2020-08-31 11:08:24 -04:00
onlyIncludeVersions :
! isVersioningDisabled && ( isDev || isDeployPreview )
? [ 'current' , ... versions . slice ( 0 , 2 ) ]
: undefined ,
2020-08-28 12:37:49 -04:00
versions : {
current : {
2021-08-31 11:40:47 -04:00
label : ` ${ getNextBetaVersionName ( ) } 🚧 ` ,
2020-08-28 12:37:49 -04:00
} ,
} ,
2019-06-10 02:21:36 -04:00
} ,
blog : {
2020-08-05 12:27:55 -04:00
// routeBasePath: '/',
2021-06-10 04:54:07 -04:00
path : 'blog' ,
2021-01-29 09:35:25 -05:00
editUrl : ( { locale , blogDirPath , blogPath } ) => {
if ( locale !== 'en' ) {
return ` https://crowdin.com/project/docusaurus-v2/ ${ locale } ` ;
}
2021-08-17 12:41:53 -04:00
return ` https://github.com/facebook/docusaurus/edit/main/website/ ${ blogDirPath } / ${ blogPath } ` ;
2021-01-29 09:35:25 -05:00
} ,
2021-08-26 06:21:58 -04:00
postsPerPage : 5 ,
feat(v2): Implement plugin creating feed for blog posts (#1916)
* feat(v2): Implement feed for blog posts
Fixes: #1698
Test plan:
- added tests
Ran `yarn build` on website with the following config (and disabled blog
from preset-classic):
```js
[
'@docusaurus/plugin-content-blog',
{
path: '../website-1.x/blog',
feedOptions: {
copyright: 'Copy',
type: 'atom',
},
},
],
```
which genereted the following feed:
```xml
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<id>https://v2.docusaurus.io/blog</id>
<title>Docusaurus Blog</title>
<updated>2018-12-14T00:00:00.000Z</updated>
<generator>https://github.com/jpmonette/feed</generator>
<link rel="alternate" href="https://v2.docusaurus.io/blog"/>
<subtitle>Docusaurus Blog</subtitle>
<icon>https://v2.docusaurus.io/img/docusaurus.ico</icon>
<rights>Copy</rights>
<entry>
<title type="html"><![CDATA[Happy 1st Birthday Slash!]]></title>
<id>Happy 1st Birthday Slash!</id>
<link href="https://v2.docusaurus.io/blog/2018/12/14/Happy-First-Birthday-Slash"/>
<updated>2018-12-14T00:00:00.000Z</updated>
<summary type="html"><]]></summary>
</entry>
<entry>
<title type="html"><![CDATA[Towards Docusaurus 2]]></title>
<id>Towards Docusaurus 2</id>
<link href="https://v2.docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2"/>
<updated>2018-09-11T00:00:00.000Z</updated>
<summary type="html">< over nine months ago as a way to easily build open source documentation websites. Since then, it has amassed over 8,600 GitHub Stars, and is used by many popular open source projects such as [React Native](https://facebook.github.io/react-native/), [Babel](https://babeljs.io/), [Jest](https://jestjs.io/), [Reason](https://reasonml.github.io/) and [Prettier](https://prettier.io/).]]></summary>
</entry>
<entry>
<title type="html"><![CDATA[How I Converted Profilo to Docusaurus in Under 2 Hours]]></title>
<id>How I Converted Profilo to Docusaurus in Under 2 Hours</id>
<link href="https://v2.docusaurus.io/blog/2018/04/30/How-I-Converted-Profilo-To-Docusaurus"/>
<updated>2018-04-30T00:00:00.000Z</updated>
<summary type="html"><![CDATA[> _“Joel and I were discussing having a website and how it would have been great to launch with it. So I challenged myself to add Docusaurus support. It took just over an hour and a half. I'm going to send you a PR with the addition so you can take a look and see if you like it. Your workflow for adding docs wouldn't be much different from editing those markdown files.”_]]></summary>
</entry>
<entry>
<title type="html"><![CDATA[Introducing Docusaurus]]></title>
<id>Introducing Docusaurus</id>
<link href="https://v2.docusaurus.io/blog/2017/12/14/introducing-docusaurus"/>
<updated>2017-12-14T00:00:00.000Z</updated>
<summary type="html"><]]></summary>
</entry>
</feed>
```
* new feedOptions type 'all' and use correct path
2019-11-06 02:45:31 -05:00
feedOptions : {
type : 'all' ,
copyright : ` Copyright © ${ new Date ( ) . getFullYear ( ) } Facebook, Inc. ` ,
} ,
2020-10-16 13:12:05 -04:00
blogSidebarCount : 'ALL' ,
blogSidebarTitle : 'All our posts' ,
2019-06-10 02:21:36 -04:00
} ,
2020-07-31 10:04:56 -04:00
pages : {
2020-10-15 13:30:12 -04:00
remarkPlugins : [ require ( '@docusaurus/remark-plugin-npm2yarn' ) ] ,
2020-07-31 10:04:56 -04:00
} ,
2019-06-10 02:21:36 -04:00
theme : {
2020-09-28 12:15:41 -04:00
customCss : [ require . resolve ( './src/css/custom.css' ) ] ,
2019-06-10 02:21:36 -04:00
} ,
2021-09-01 06:14:40 -04:00
} ) ,
2019-06-10 02:21:36 -04:00
] ,
] ,
2021-09-01 06:14:40 -04:00
themeConfig :
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
( {
liveCodeBlock : {
playgroundPosition : 'bottom' ,
2019-05-17 03:54:11 -04:00
} ,
2021-09-01 06:14:40 -04:00
hideableSidebar : true ,
colorMode : {
defaultMode : 'light' ,
disableSwitch : false ,
respectPrefersColorScheme : true ,
} ,
announcementBar : {
id : 'announcementBar-2' , // Increment on change
content : ` ⭐️ If you like Docusaurus, give it a star on <a target="_blank" rel="noopener noreferrer" href="https://github.com/facebook/docusaurus">GitHub</a> and follow us on <a target="_blank" rel="noopener noreferrer" href="https://twitter.com/docusaurus" >Twitter</a> ${ TwitterSvg } ` ,
} ,
prism : {
theme : require ( 'prism-react-renderer/themes/github' ) ,
darkTheme : require ( 'prism-react-renderer/themes/dracula' ) ,
additionalLanguages : [ 'java' ] ,
} ,
image : 'img/docusaurus-soc.png' ,
// metadatas: [{name: 'twitter:card', content: 'summary'}],
gtag : ! isDeployPreview
? {
trackingID : 'UA-141789564-1' ,
}
: undefined ,
algolia : {
apiKey : '47ecd3b21be71c5822571b9f59e52544' ,
indexName : 'docusaurus-2' ,
contextualSearch : true ,
} ,
navbar : {
hideOnScroll : true ,
title : 'Docusaurus' ,
logo : {
alt : 'Docusaurus Logo' ,
src : 'img/docusaurus.svg' ,
srcDark : 'img/docusaurus_keytar.svg' ,
2019-05-16 02:27:52 -04:00
} ,
2021-09-01 06:14:40 -04:00
items : [
{
type : 'doc' ,
position : 'left' ,
docId : 'introduction' ,
label : 'Docs' ,
} ,
{
type : 'doc' ,
position : 'left' ,
docId : 'cli' ,
label : 'API' ,
} ,
{ to : 'blog' , label : 'Blog' , position : 'left' } ,
{ to : 'showcase' , label : 'Showcase' , position : 'left' } ,
{
to : '/community/support' ,
label : 'Community' ,
position : 'left' ,
activeBaseRegex : ` /community/ ` ,
} ,
// right
{
type : 'docsVersionDropdown' ,
position : 'right' ,
dropdownActiveClassDisabled : true ,
dropdownItemsAfter : [
... Object . entries ( VersionsArchived ) . map (
( [ versionName , versionUrl ] ) => ( {
label : versionName ,
href : versionUrl ,
} ) ,
) ,
{
href : 'https://v1.docusaurus.io' ,
label : '1.x.x' ,
} ,
{
to : '/versions' ,
label : 'All versions' ,
} ,
] ,
} ,
{
type : 'localeDropdown' ,
position : 'right' ,
dropdownItemsAfter : [
{
href : 'https://github.com/facebook/docusaurus/issues/3526' ,
label : 'Help Us Translate' ,
} ,
] ,
} ,
{
href : 'https://github.com/facebook/docusaurus' ,
position : 'right' ,
className : 'header-github-link' ,
'aria-label' : 'GitHub repository' ,
} ,
] ,
} ,
footer : {
style : 'dark' ,
links : [
{
title : 'Learn' ,
items : [
{
label : 'Introduction' ,
to : 'docs' ,
} ,
{
label : 'Installation' ,
to : 'docs/installation' ,
} ,
{
label : 'Migration from v1 to v2' ,
to : 'docs/migration' ,
} ,
] ,
} ,
{
title : 'Community' ,
items : [
{
label : 'Stack Overflow' ,
href : 'https://stackoverflow.com/questions/tagged/docusaurus' ,
} ,
{
label : 'Feature Requests' ,
to : '/feature-requests' ,
} ,
{
label : 'Discord' ,
href : 'https://discordapp.com/invite/docusaurus' ,
} ,
{
label : 'Help' ,
to : '/community/support' ,
} ,
] ,
} ,
{
title : 'More' ,
items : [
{
label : 'Blog' ,
to : 'blog' ,
} ,
{
label : 'GitHub' ,
href : 'https://github.com/facebook/docusaurus' ,
} ,
{
label : 'Twitter' ,
href : 'https://twitter.com/docusaurus' ,
} ,
{
html : `
2020-01-01 10:23:57 -05:00
< a href = "https://www.netlify.com" target = "_blank" rel = "noreferrer noopener" aria - label = "Deploys by Netlify" >
< img src = "https://www.netlify.com/img/global/badges/netlify-color-accent.svg" alt = "Deploys by Netlify" / >
< / a >
` ,
2021-09-01 06:14:40 -04:00
} ,
] ,
} ,
{
title : 'Legal' ,
// Please do not remove the privacy and terms, it's a legal requirement.
items : [
{
label : 'Privacy' ,
href : 'https://opensource.facebook.com/legal/privacy/' ,
} ,
{
label : 'Terms' ,
href : 'https://opensource.facebook.com/legal/terms/' ,
} ,
{
label : 'Data Policy' ,
href : 'https://opensource.facebook.com/legal/data-policy/' ,
} ,
{
label : 'Cookie Policy' ,
href : 'https://opensource.facebook.com/legal/cookie-policy/' ,
} ,
] ,
} ,
] ,
logo : {
alt : 'Facebook Open Source Logo' ,
src : 'img/oss_logo.png' ,
href : 'https://opensource.facebook.com' ,
2020-04-22 00:30:03 -04:00
} ,
2021-09-01 06:14:40 -04:00
copyright : ` Copyright © ${ new Date ( ) . getFullYear ( ) } Facebook, Inc. Built with Docusaurus. ` ,
2019-05-16 02:27:52 -04:00
} ,
2021-09-01 06:14:40 -04:00
} ) ,
2021-02-11 06:31:50 -05:00
} ) ;