0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-16 21:56:25 -05:00
verdaccio/website/docusaurus.config.js
Juan Picado f047cc8c25
refactor: auth with legacy sign support (#4113)
* refactor: auth with legacy sign support

refactor: auth with legacy sign support

add tests

add tests

clean up lock fil

clean up lock fil

add more ci to test

update ci

update ci

update ci

update ci

update ci

* chore: add test for deprecated legacy signature

* chore: add test for deprecated legacy signature

* chore: add test for deprecated legacy signature

* chore: add test for deprecated legacy signature

* chore: add test for deprecated legacy signature
2023-12-31 14:34:29 +01:00

455 lines
13 KiB
JavaScript

// @ts-check
const translations = require('@verdaccio/crowdin-translations/build/progress_lang.json');
const lgnMapping = {
'de-DE': 'de',
'pl-PL': 'pl',
'cs-CZ': 'cs',
'fr-FR': 'fr',
'it-IT': 'it',
'ru-RU': 'ru',
'vi-VN': 'vi',
'yo-NG': 'yo',
};
// @ts-ignore
const progress = translations;
const limitLngIncluded = 80;
console.log('limit translation is on %s%', limitLngIncluded);
const isDeployPreview = process.env.CONTEXT === 'deploy-preview';
const isProductionDeployment = process.env.CONTEXT === 'production';
const filterByProgress = (items) => {
const originLng = Object.keys(translations);
return items.filter((lgn) => {
if (lgn === 'en') {
return true;
}
const _lgn = lgnMapping[lgn] ? lgnMapping[lgn] : lgn;
if (!originLng.includes(_lgn)) {
console.log(`language ${_lgn} excluded, does not exist in origin`);
return false;
}
if (translations[_lgn].approvalProgress <= limitLngIncluded) {
console.log(
'language %s is being excluded due does not met limit of translation, current: %s%',
_lgn,
translations[_lgn].approvalProgress
);
return false;
}
return true;
});
};
const i18nConfig = {
defaultLocale: 'en',
locales: isDeployPreview
? ['en']
: filterByProgress([
'en',
'cs-CZ',
'de-DE',
'es-ES',
'fr-FR',
'it-IT',
'pl-PL',
'pt-BR',
'ru-RU',
'sr-CS',
'vi-VN',
'yo-NG',
'zh-TW',
'zh-CN',
]),
localeConfigs: {
en: { label: 'English' },
'it-IT': { label: `Italiano (${progress['it'].translationProgress}%)` },
'es-ES': { label: `Español (${progress['es-ES'].translationProgress}%)` },
'de-DE': { label: `Deutsch (${progress['de'].translationProgress}%)` },
'cs-CZ': { label: `Čeština (Česko) (${progress['cs'].translationProgress}%)` },
'fr-FR': { label: `Français (${progress['fr'].translationProgress}%)` },
'pl-PL': { label: `Polski (Polska) (${progress['pl'].translationProgress}%)` },
'pt-BR': { label: `Português (Brasil) (${progress['pt-BR'].translationProgress}%)` },
'ru-RU': { label: `Русский (Россия) (${progress['ru'].translationProgress}%)` },
'zh-CN': { label: `中文(中国)(${progress['zh-CN'].translationProgress}%)` },
'zh-TW': { label: `中文(台灣)(${progress['zh-TW'].translationProgress}%)` },
'yo-NG': { label: `Èdè Yorùbá (Nàìjíríà) (${progress['yo'].translationProgress}%)` },
'sr-CS': { label: `Српски (Србија) (${progress['sr-CS'].translationProgress}%)` },
'vi-VN': { label: `Tiếng Việt (Việt Nam) (${progress['vi'].translationProgress}%)` },
},
};
module.exports = {
title: 'Verdaccio',
tagline: 'A lightweight Node.js private proxy registry',
organizationName: 'verdaccio',
projectName: 'verdaccio',
url: 'https://verdaccio.org',
baseUrl: '/',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
favicon: 'img/logo/uk/verdaccio-tiny-uk-no-bg.svg',
i18n: i18nConfig,
scripts: ['https://buttons.github.io/buttons.js'],
plugins: [
'docusaurus-plugin-sass',
'docusaurus-plugin-contributors',
isProductionDeployment &&
typeof process.env.SENTRY_KEY === 'string' && [
'docusaurus-plugin-sentry',
{ DSN: process.env.SENTRY_KEY },
],
[
'docusaurus-plugin-typedoc',
{
entryPoints: ['../packages/node-api/src/index.ts'],
tsconfig: '../packages/node-api/tsconfig.build.json',
id: 'api/node-api',
out: 'api/node-api',
// theme: 'default',
excludePrivate: false,
excludeProtected: true,
categorizeByGroup: false,
excludeInternal: true,
sidebar: {
categoryLabel: '@verdaccio/node-api',
// position: 1,
fullNames: true,
},
},
],
[
'content-docs',
{
id: 'community',
path: 'community',
routeBasePath: 'community',
sidebarPath: require.resolve('./sidebarsCommunity.js'),
showLastUpdateTime: true,
},
],
[
'content-docs',
{
id: 'dev',
path: 'dev',
routeBasePath: 'dev',
sidebarPath: require.resolve('./sidebarsDev.js'),
showLastUpdateTime: true,
},
],
[
'content-docs',
{
id: 'talks',
path: 'talks',
routeBasePath: 'talks',
sidebarPath: require.resolve('./sidebarsTalk.js'),
showLastUpdateTime: true,
},
],
[
'docusaurus-plugin-typedoc',
{
entryPoints: ['../packages/config/src/index.ts'],
tsconfig: '../packages/config/tsconfig.build.json',
id: 'api/config',
out: 'api/config',
sidebar: {
categoryLabel: '@verdaccio/config',
fullNames: true,
},
},
],
[
'docusaurus-plugin-typedoc',
{
entryPoints: ['../packages/ui-components/src/index.ts'],
tsconfig: '../packages/ui-components/tsconfig.build.json',
id: 'api/ui-components',
out: 'api/ui-components',
sidebar: {
categoryLabel: '@verdaccio/ui-components',
fullNames: true,
watch: process.env.TYPEDOC_WATCH,
},
},
],
[
'docusaurus-plugin-typedoc',
{
entryPoints: ['../packages/core/core/src/index.ts'],
tsconfig: '../packages/core/core/tsconfig.build.json',
id: 'api/core',
out: 'api/core',
sidebar: {
categoryLabel: '@verdaccio/core',
fullNames: true,
},
},
],
[
'docusaurus-plugin-typedoc',
{
entryPoints: ['../packages/core/types/src/types.ts'],
tsconfig: '../packages/core/types/tsconfig.build.json',
id: 'api/types',
out: 'api/types',
categorizeByGroup: false,
includeVersion: true,
sidebar: {
categoryLabel: '@verdaccio/types',
fullNames: true,
},
},
],
],
markdown: {
mermaid: true,
},
themes: ['@docusaurus/theme-mermaid'],
webpack: {
jsLoader: (isServer) => ({
loader: require.resolve('esbuild-loader'),
options: {
loader: 'tsx',
format: isServer ? 'cjs' : undefined,
target: isServer ? 'node12' : 'es2017',
},
}),
},
customFields: {
description: 'A lightweight Node.js private proxy registry',
},
themeConfig: {
mermaid: {
theme: { light: 'neutral', dark: 'forest' },
},
announcementBar: {
id: 'announcementBar',
content:
'<a target="_blank" rel="noopener noreferrer" href="https://www.wfp.org/support-us/stories/ukraine-appeal">Help provide humanitarian support to Ukraine refugees</a>!',
isCloseable: false,
backgroundColor: '#1595de',
textColor: '#ffffff',
},
algolia: {
appId: 'B3TG5CBF5H',
apiKey: 'ed054733cb03418e9af25b7beb82c924',
indexName: 'verdaccio',
contextualSearch: true,
},
docs: {
sidebar: {
hideable: true,
autoCollapseCategories: true,
},
},
navbar: {
title: `Verdaccio - v5.x`,
logo: {
alt: 'Verdaccio Logo',
src: 'img/logo/uk/verdaccio-tiny-uk-no-bg.svg',
},
items: [
{
type: 'doc',
docId: 'what-is-verdaccio',
position: 'left',
label: 'Docs',
},
{
type: 'doc',
docId: 'api/node-api/index',
position: 'left',
label: 'API',
},
{ to: '/blog', label: 'Blog', position: 'left' },
{
type: 'docsVersionDropdown',
position: 'right',
},
{
href: 'https://opencollective.com/verdaccio',
label: 'Sponsor us',
position: 'right',
},
{
href: '/community',
label: 'Community',
position: 'left',
},
{
href: '/talks',
label: 'Video Talks',
position: 'left',
},
{
type: 'localeDropdown',
position: 'right',
dropdownItemsAfter: [
{
href: 'https://crowdin.com/project/verdaccio',
label: 'Help Us Translate',
},
],
},
{
href: 'https://github.com/verdaccio/verdaccio',
position: 'right',
className: 'header-github-link',
'aria-label': 'GitHub repository',
},
{
href: 'https://fosstodon.org/@verdaccio',
position: 'right',
className: 'header-mastodon-link',
'aria-label': 'Follow us at Fosstodon',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Docs',
items: [
{
label: 'Getting Started',
to: '/docs/what-is-verdaccio',
},
{
label: 'Docker',
to: '/docs/docker',
},
{
label: 'Configuration',
to: '/docs/configuration',
},
{
label: 'Logos',
to: '/docs/logo',
},
],
},
{
title: 'Community',
items: [
{
label: 'Stack Overflow',
href: 'https://stackoverflow.com/questions/tagged/verdaccio',
},
{
label: 'Discord',
href: 'https://discord.gg/7qWJxBf',
},
{
html: `
<a href="https://fosstodon.org/@verdaccio" rel="me">
Mastodon
</a>
`,
},
],
},
{
title: 'More',
items: [
{
label: 'Blog',
to: '/blog',
},
{
label: 'GitHub',
href: 'https://github.com/verdaccio/verdaccio',
},
{
label: 'Mastodon',
href: 'https://fosstodon.org/@verdaccio',
},
{
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>
`,
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Verdaccio community. Built with Docusaurus.`,
},
colorMode: {
defaultMode: 'light',
disableSwitch: false,
respectPrefersColorScheme: true,
},
prism: {
theme: require('prism-react-renderer/themes/github'),
darkTheme: require('prism-react-renderer/themes/nightOwl'),
},
},
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
sidebarPath: require.resolve('./sidebars.js'),
showLastUpdateAuthor: true,
showLastUpdateTime: true,
sidebarCollapsible: true,
remarkPlugins: [[require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }]],
editUrl: ({ locale, docPath }) => {
if (locale !== 'en') {
return `https://crowdin.com/project/verdaccio/${locale}`;
}
return `https://github.com/verdaccio/verdaccio/edit/master/website/docs/${docPath}`;
},
lastVersion: '5.x',
// onlyIncludeVersions: ['next', '5.x', '6.x'],
versions: {
// current: {
// label: `next`,
// },
'6.x': {
label: `6.x`,
banner: 'unreleased',
},
'5.x': {
label: `5.x`,
},
},
},
googleAnalytics: {
trackingID: 'G-PCYM9FYJZT',
},
gtag: {
trackingID: 'G-PCYM9FYJZT',
},
blog: {
blogTitle: 'Verdaccio Official Blog',
blogDescription: 'The official Verdaccio Node.js proxy registry blog',
showReadingTime: true,
postsPerPage: 3,
feedOptions: {
type: 'all',
},
blogSidebarCount: 'ALL',
blogSidebarTitle: 'All our posts',
editUrl: ({ locale, blogDirPath, blogPath }) => {
if (locale !== 'en') {
return `https://crowdin.com/project/verdaccio/${locale}`;
}
return `https://github.com/verdaccio/verdaccio/edit/master/website/${blogDirPath}/${blogPath}`;
},
},
theme: {
customCss: require.resolve('./src/css/custom.scss'),
},
},
],
],
};