diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 287a605fd52b..40622dfc80cb 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -6,6 +6,7 @@ import { discord, font, github, + mastodon, ogImage, ogUrl, releases, @@ -71,6 +72,7 @@ export default withPwa(defineConfig({ }, socialLinks: [ + { icon: 'mastodon', link: mastodon }, { icon: 'twitter', link: twitter }, { icon: 'discord', link: discord }, { icon: 'github', link: github }, diff --git a/docs/.vitepress/contributors.ts b/docs/.vitepress/contributors.ts index fba9d92123a5..e7148f258e02 100644 --- a/docs/.vitepress/contributors.ts +++ b/docs/.vitepress/contributors.ts @@ -1,3 +1,4 @@ +import type { DefaultTheme } from 'vitepress' import contributorNames from './contributor-names.json' export interface Contributor { @@ -5,22 +6,13 @@ export interface Contributor { avatar: string } -export interface SocialEntry { - icon: string - link: string -} - -export interface CoreTeam { - avatar: string - name: string +export interface CoreTeam extends DefaultTheme.TeamMember { // required to download avatars from GitHub github: string - twitter: string - sponsor?: string - title?: string - org?: string - desc?: string - links?: SocialEntry[] + twitter?: string + mastodon?: string + discord?: string + youtube?: string } const contributorsAvatars: Record = {} @@ -32,12 +24,20 @@ export const contributors = (contributorNames as string[]).reduce((acc, name) => acc.push({ name, avatar: contributorsAvatars[name] }) return acc }, [] as Contributor[]) - const createLinks = (tm: CoreTeam): CoreTeam => { - tm.links = [ - { icon: 'github', link: `https://github.com/${tm.github}` }, - { icon: 'twitter', link: `https://twitter.com/${tm.twitter}` }, - ] + tm.links = [{ icon: 'github', link: `https://github.com/${tm.github}` }] + if (tm.mastodon) + tm.links.push({ icon: 'mastodon', link: tm.mastodon }) + + if (tm.discord) + tm.links.push({ icon: 'discord', link: tm.discord }) + + if (tm.youtube) + tm.links.push({ icon: 'youtube', link: `https://www.youtube.com/@${tm.youtube}` }) + + if (tm.twitter) + tm.links.push({ icon: 'twitter', link: `https://twitter.com/${tm.twitter}` }) + return tm } @@ -46,16 +46,21 @@ const plainTeamMembers: CoreTeam[] = [ avatar: contributorsAvatars.antfu, name: 'Anthony Fu', github: 'antfu', + mastodon: 'https://elk.zone/m.webtoo.ls/@antfu', twitter: 'antfu7', + discord: 'https://chat.antfu.me', + youtube: 'antfu', sponsor: 'https://github.com/sponsors/antfu', title: 'A fanatical open sourceror, working', org: 'NuxtLabs', + orgLink: 'https://nuxtlabs.com/', desc: 'Core team member of Vite & Vue', }, { avatar: contributorsAvatars['sheremet-va'], name: 'Vladimir', github: 'sheremet-va', + mastodon: 'https://elk.zone/m.webtoo.ls/@sheremet_va', twitter: 'sheremet_va', sponsor: 'https://github.com/sponsors/sheremet-va', title: 'An open source fullstack developer', @@ -65,16 +70,19 @@ const plainTeamMembers: CoreTeam[] = [ avatar: contributorsAvatars['patak-dev'], name: 'Patak', github: 'patak-dev', + mastodon: 'https://elk.zone/m.webtoo.ls/@patak', twitter: 'patak_dev', sponsor: 'https://github.com/sponsors/patak-dev', title: 'A collaborative being, working', org: 'StackBlitz', + orgLink: 'https://stackblitz.com/', desc: 'Core team member of Vite & Vue', }, { avatar: contributorsAvatars.Aslemammad, name: 'Mohammad Bagher', github: 'Aslemammad', + mastodon: 'https://elk.zone/m.webtoo.ls/@aslemammad', twitter: 'asleMammadam', title: 'An open source developer', desc: 'Team member of Poimandres & Vike', @@ -83,7 +91,7 @@ const plainTeamMembers: CoreTeam[] = [ avatar: contributorsAvatars.Demivan, name: 'Ivan Demchuk', github: 'Demivan', - twitter: 'IvanDemchuk', + mastodon: 'https://elk.zone/fosstodon.org/@demivan', title: 'A tech lead, fullstack developer', desc: 'Author of fluent-vue', }, @@ -91,6 +99,7 @@ const plainTeamMembers: CoreTeam[] = [ avatar: contributorsAvatars.userquin, name: 'Joaquín Sánchez', github: 'userquin', + mastodon: 'https://elk.zone/m.webtoo.ls/@userquin', twitter: 'userquin', title: 'A fullstack and android developer', desc: 'Vite\'s fanatical follower', @@ -99,9 +108,27 @@ const plainTeamMembers: CoreTeam[] = [ avatar: contributorsAvatars.zxch3n, name: 'Zixuan Chen', github: 'zxch3n', + mastodon: 'https://elk.zone/hachyderm.io/@zx', twitter: 'zxch3n', title: 'A fullstack developer', - desc: 'Creating tools for collaboration', + desc: 'Working on CRDTs & local-first software', + }, + { + avatar: contributorsAvatars.poyoho, + name: 'Yoho Po', + github: 'poyoho', + twitter: '@yoho_po', + title: 'It\'s no problem in my locall', + desc: 'Core team member of Vite & Team member of Vitest', + }, + { + avatar: contributorsAvatars.AriPerkkio, + name: 'Ari Perkkiö', + github: 'AriPerkkio', + title: 'A fullstack developer, working', + desc: 'Team member of Vitest', + org: 'Cloudamite', + orgLink: 'https://cloudamite.com/', }, ] diff --git a/docs/.vitepress/meta.ts b/docs/.vitepress/meta.ts index 617398b9d2b8..b0016c3c3bdb 100644 --- a/docs/.vitepress/meta.ts +++ b/docs/.vitepress/meta.ts @@ -19,6 +19,7 @@ export const github = 'https://github.com/vitest-dev/vitest' export const releases = 'https://github.com/vitest-dev/vitest/releases' export const contributing = 'https://github.com/vitest-dev/vitest/blob/main/CONTRIBUTING.md' export const discord = 'https://chat.vitest.dev' +export const mastodon = 'https://elk.zone/m.webtoo.ls/@vitest' export const twitter = 'https://twitter.com/vitest_dev' /* Avatar/Image/Sponsors servers */ diff --git a/docs/.vitepress/scripts/pwa.ts b/docs/.vitepress/scripts/pwa.ts index 232b0fa48ad7..cd4de8475a16 100644 --- a/docs/.vitepress/scripts/pwa.ts +++ b/docs/.vitepress/scripts/pwa.ts @@ -1,3 +1,4 @@ +import type { VitePWAOptions } from 'vite-plugin-pwa' import { githubusercontentRegex, pwaFontStylesRegex, @@ -7,7 +8,7 @@ import { vitestShortName, } from '../meta' -export const pwa = { +export const pwa: Partial = { outDir: '.vitepress/dist', registerType: 'autoUpdate', // include all static assets under public/ diff --git a/docs/package.json b/docs/package.json index 6c044b353259..c22b7719692a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -28,7 +28,7 @@ "unplugin-vue-components": "^0.22.12", "vite": "^4.0.0", "vite-plugin-pwa": "^0.14.1", - "vitepress": "1.0.0-alpha.36", + "vitepress": "1.0.0-alpha.40", "workbox-window": "^6.5.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7fdb39d60b0..fba6c3d1cbfc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,7 +106,7 @@ importers: unplugin-vue-components: ^0.22.12 vite: ^4.0.0 vite-plugin-pwa: ^0.14.1 - vitepress: 1.0.0-alpha.36 + vitepress: 1.0.0-alpha.40 vue: latest workbox-window: ^6.5.4 dependencies: @@ -126,7 +126,7 @@ importers: unplugin-vue-components: 0.22.12_vue@3.2.45 vite: 4.0.0 vite-plugin-pwa: 0.14.1_hsd7wmhtxdre4ds2vghqydhvau - vitepress: 1.0.0-alpha.36 + vitepress: 1.0.0-alpha.40 workbox-window: 6.5.4 examples/basic: @@ -1293,6 +1293,9 @@ packages: peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' + peerDependenciesMeta: + '@algolia/client-search': + optional: true dependencies: '@algolia/autocomplete-shared': 1.7.2 algoliasearch: 4.14.2 @@ -21036,8 +21039,8 @@ packages: vite: 4.0.0 dev: true - /vitepress/1.0.0-alpha.36: - resolution: {integrity: sha512-JH9NlBQpQrcIudF1HM8Sq3K6FbOiOTrD33PI0n+pmJQ7dOu4WAm3YnwevMInW8leNiEEWCAH+coIkOYcf3fhpQ==} + /vitepress/1.0.0-alpha.40: + resolution: {integrity: sha512-axhLI/wq/V9RjzFQZ00Ur0WhvoZXG7E1H88NxnglZm6wU/FAePP4bGaWPzU2WZwy3Nzpb9cbf1oXC+1DNgv9cQ==} hasBin: true dependencies: '@docsearch/css': 3.3.1