mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-01 03:08:17 +02:00
* implement PWA plugin * added pwa support for docusaurus website * moved sw registration to client module * moved compile function to webpack util * build sw using webpack and render pwa popup * implement @theme/PwaReloadPopup * update website sw to use modules * updated pwa readme * fix header lint errors * apply code formatting * cache files only for mobile, saveData, or installed pwa * added comments about clearing registrations * fixed prettier error * updated pwa README * fix README JS * move /blog => /blog/index.html logic to else branch * add `alwaysPrecache` option * updated docusaurus-plugin-pwa version * added pwa to using-plugins.md * review fixes * re-disable restricted-globals to use self in service worker * useless doc * Update packages/docusaurus-plugin-pwa/README.md Co-authored-by: Reece Dunham <me@rdil.rocks> * Update packages/docusaurus-plugin-pwa/README.md * update a bit pwa doc + minor refactors * minor refactors + add workbox debug mode * env PWA_ prefix * typo * minor refactor * fix file output * add serve:v2:ssl yarn command * minor pwa fixes * typo * add dynamic import comment in SW * comment * let the PWA plugin implement its reload popup on his own * pwa: add Joi options validation * pwa plugin should have its own webpack/babel custom setup * PWA: - debug logs - better SW params system - offline mode activation strategies - docs * add pwa install gif * pwa: popup -> reloadPopup + minor refactors * fix process.env reading + better debug log * minor fixes * minor changes * minor changes Co-authored-by: slorber <lorber.sebastien@gmail.com> Co-authored-by: Sébastien Lorber <slorber@users.noreply.github.com> Co-authored-by: Reece Dunham <me@rdil.rocks>
308 lines
8.6 KiB
JavaScript
308 lines
8.6 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
const path = require('path');
|
|
const versions = require('./versions.json');
|
|
|
|
const allDocHomesPaths = [
|
|
'/docs/',
|
|
'/docs/next/',
|
|
...versions.slice(1).map((version) => `/docs/${version}/`),
|
|
];
|
|
|
|
module.exports = {
|
|
title: 'Docusaurus',
|
|
tagline: 'Build optimized websites quickly, focus on your content',
|
|
organizationName: 'facebook',
|
|
projectName: 'docusaurus',
|
|
baseUrl: '/',
|
|
url: 'https://v2.docusaurus.io',
|
|
favicon: 'img/docusaurus.ico',
|
|
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.',
|
|
},
|
|
themes: ['@docusaurus/theme-live-codeblock'],
|
|
plugins: [
|
|
[
|
|
'@docusaurus/plugin-client-redirects',
|
|
{
|
|
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`];
|
|
}
|
|
},
|
|
},
|
|
],
|
|
[
|
|
'@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)
|
|
},
|
|
],
|
|
[
|
|
'@docusaurus/plugin-pwa',
|
|
{
|
|
debug: false,
|
|
offlineModeActivationStrategies: ['appInstalled', 'queryString'],
|
|
// swRegister: false,
|
|
swCustom: path.resolve(__dirname, 'src/sw.js'),
|
|
pwaHead: [
|
|
{
|
|
tagName: 'link',
|
|
rel: 'icon',
|
|
href: '/img/docusaurus.png',
|
|
},
|
|
{
|
|
tagName: 'link',
|
|
rel: 'manifest',
|
|
href: '/manifest.json',
|
|
},
|
|
{
|
|
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',
|
|
href: '/img/docusaurus.png',
|
|
},
|
|
{
|
|
tagName: 'link',
|
|
rel: 'mask-icon',
|
|
href: '/img/docusaurus.svg',
|
|
color: 'rgb(62, 204, 94)',
|
|
},
|
|
{
|
|
tagName: 'meta',
|
|
name: 'msapplication-TileImage',
|
|
content: '/img/docusaurus.png',
|
|
},
|
|
{
|
|
tagName: 'meta',
|
|
name: 'msapplication-TileColor',
|
|
content: '#000',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
],
|
|
presets: [
|
|
[
|
|
'@docusaurus/preset-classic',
|
|
{
|
|
docs: {
|
|
homePageId: 'introduction',
|
|
path: 'docs',
|
|
sidebarPath: require.resolve('./sidebars.js'),
|
|
editUrl:
|
|
'https://github.com/facebook/docusaurus/edit/master/website/',
|
|
showLastUpdateAuthor: true,
|
|
showLastUpdateTime: true,
|
|
remarkPlugins: [require('./src/plugins/remark-npm2yarn')],
|
|
disableVersioning: !!process.env.DISABLE_VERSIONING,
|
|
},
|
|
blog: {
|
|
path: '../website-1.x/blog',
|
|
editUrl:
|
|
'https://github.com/facebook/docusaurus/edit/master/website-1.x/',
|
|
postsPerPage: 3,
|
|
feedOptions: {
|
|
type: 'all',
|
|
copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc.`,
|
|
},
|
|
},
|
|
theme: {
|
|
customCss: require.resolve('./src/css/custom.css'),
|
|
},
|
|
},
|
|
],
|
|
],
|
|
themeConfig: {
|
|
colorMode: {
|
|
defaultMode: 'light',
|
|
disableSwitch: false,
|
|
respectPrefersColorScheme: true,
|
|
},
|
|
announcementBar: {
|
|
id: 'supportus',
|
|
content:
|
|
'⭐️ If you like Docusaurus, give it a star on <a target="_blank" rel="noopener noreferrer" href="https://github.com/facebook/docusaurus">GitHub</a>! ⭐️',
|
|
},
|
|
prism: {
|
|
theme: require('prism-react-renderer/themes/github'),
|
|
darkTheme: require('prism-react-renderer/themes/dracula'),
|
|
},
|
|
image: 'img/docusaurus-soc.png',
|
|
gtag: {
|
|
trackingID: 'UA-141789564-1',
|
|
},
|
|
algolia: {
|
|
apiKey: '47ecd3b21be71c5822571b9f59e52544',
|
|
indexName: 'docusaurus-2',
|
|
algoliaOptions: {
|
|
facetFilters: [`version:${versions[0]}`],
|
|
},
|
|
},
|
|
navbar: {
|
|
hideOnScroll: true,
|
|
title: 'Docusaurus',
|
|
logo: {
|
|
alt: 'Docusaurus Logo',
|
|
src: 'img/docusaurus.svg',
|
|
srcDark: 'img/docusaurus_keytar.svg',
|
|
},
|
|
links: [
|
|
{
|
|
label: 'Docs',
|
|
to: 'docs', // "fake" link
|
|
position: 'left',
|
|
activeBaseRegex: `docs/(?!next/(support|team|resources))`,
|
|
items: [
|
|
{
|
|
label: versions[0],
|
|
to: 'docs/',
|
|
activeBaseRegex: `docs/(?!${versions.join('|')}|next)`,
|
|
},
|
|
...versions.slice(1).map((version) => ({
|
|
label: version,
|
|
to: `docs/${version}/`,
|
|
})),
|
|
{
|
|
label: 'Master/Unreleased',
|
|
to: 'docs/next/',
|
|
activeBaseRegex: `docs/next/(?!support|team|resources)`,
|
|
},
|
|
],
|
|
},
|
|
{to: 'blog', label: 'Blog', position: 'left'},
|
|
{to: 'showcase', label: 'Showcase', position: 'left'},
|
|
{
|
|
to: 'docs/next/support',
|
|
label: 'Community',
|
|
position: 'left',
|
|
activeBaseRegex: `docs/next/(support|team|resources)`,
|
|
},
|
|
{
|
|
to: 'versions',
|
|
label: `v${versions[0]}`,
|
|
position: 'right',
|
|
},
|
|
{
|
|
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/migrating-from-v1-to-v2',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'Community',
|
|
items: [
|
|
{
|
|
label: 'Stack Overflow',
|
|
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
|
|
},
|
|
{
|
|
label: 'Feedback',
|
|
to: 'feedback',
|
|
},
|
|
{
|
|
label: 'Discord',
|
|
href: 'https://discordapp.com/invite/docusaurus',
|
|
},
|
|
{
|
|
label: 'Help',
|
|
to: 'docs/next/support',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
title: 'More',
|
|
items: [
|
|
{
|
|
label: 'Blog',
|
|
to: 'blog',
|
|
},
|
|
{
|
|
label: 'GitHub',
|
|
href: 'https://github.com/facebook/docusaurus',
|
|
},
|
|
{
|
|
label: 'Twitter',
|
|
href: 'https://twitter.com/docusaurus',
|
|
},
|
|
{
|
|
html: `
|
|
<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>
|
|
`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
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/',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
logo: {
|
|
alt: 'Facebook Open Source Logo',
|
|
src: 'img/oss_logo.png',
|
|
href: 'https://opensource.facebook.com',
|
|
},
|
|
copyright: `Copyright © ${new Date().getFullYear()} Facebook, Inc. Built with Docusaurus.`,
|
|
},
|
|
},
|
|
};
|