From f3b0a5eea19b45e541a18f04e71aa6d20aee7dc0 Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 30 Dec 2025 17:10:45 +0800 Subject: [PATCH] Website: put all components inside app (#18547) --- .vscode/settings.example.json | 2 +- website/index.html | 26 -------------- website/package.json | 1 + website/playground/VersionLink.jsx | 32 ----------------- website/playground/github-button.vue | 25 +++++++++++++ website/playground/header.vue | 48 +++++++++++++++++++++++++ website/playground/index.jsx | 53 ++-------------------------- website/playground/playground.css | 15 -------- website/playground/theme-toggle.vue | 40 +++++++++++++++++++++ website/playground/version-link.vue | 51 ++++++++++++++++++++++++++ website/vite.config.mjs | 11 +++--- website/yarn.lock | 8 +++++ 12 files changed, 183 insertions(+), 129 deletions(-) delete mode 100644 website/playground/VersionLink.jsx create mode 100644 website/playground/github-button.vue create mode 100644 website/playground/header.vue create mode 100644 website/playground/theme-toggle.vue create mode 100644 website/playground/version-link.vue diff --git a/.vscode/settings.example.json b/.vscode/settings.example.json index cedba29ab..d181d56f0 100644 --- a/.vscode/settings.example.json +++ b/.vscode/settings.example.json @@ -1,5 +1,5 @@ { - "[javascript][typescript][javascriptreact][typescriptreact][json][jsonc][json5][markdown][yaml][css][html]": { + "[javascript][typescript][javascriptreact][typescriptreact][json][jsonc][json5][markdown][yaml][css][html][vue]": { "editor.defaultFormatter": "prettier.prettier-vscode", "editor.formatOnSave": true, }, diff --git a/website/index.html b/website/index.html index c07956e94..1c405141e 100644 --- a/website/index.html +++ b/website/index.html @@ -44,34 +44,8 @@ -
- - -

Prettier

-
- - - - GitHub - - -
-
- - diff --git a/website/package.json b/website/package.json index 0239b8d68..12d737cb2 100644 --- a/website/package.json +++ b/website/package.json @@ -32,6 +32,7 @@ "clipboard": "2.0.11", "clsx": "2.1.1", "cm6-graphql": "0.2.1", + "github-buttons": "2.29.1", "graphql": "16.12.0", "lz-string": "1.5.0", "prism-react-renderer": "2.4.1", diff --git a/website/playground/VersionLink.jsx b/website/playground/VersionLink.jsx deleted file mode 100644 index 5ba62f54d..000000000 --- a/website/playground/VersionLink.jsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Teleport } from "vue"; - -export default function VersionLink({ version }) { - const match = version.match(/^pr-(\d+)$/); - let href; - if (match) { - href = `pull/${match[1]}`; - } else if (/\.0$/.test(version)) { - href = `releases/tag/${version}`; - } else { - href = `blob/main/CHANGELOG.md#${version.replaceAll(".", "")}`; - } - - const formattedVersion = match ? `PR #${match[1]}` : `v${version}`; - - document.title = `Prettier ${formattedVersion}`; - - return ( - - - {formattedVersion} - - - ); -} -VersionLink.props = { - version: { type: String, required: true }, -}; diff --git a/website/playground/github-button.vue b/website/playground/github-button.vue new file mode 100644 index 000000000..2eff3671e --- /dev/null +++ b/website/playground/github-button.vue @@ -0,0 +1,25 @@ + + + diff --git a/website/playground/header.vue b/website/playground/header.vue new file mode 100644 index 000000000..305730fc5 --- /dev/null +++ b/website/playground/header.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/website/playground/index.jsx b/website/playground/index.jsx index 4e88ace93..e237b4d18 100644 --- a/website/playground/index.jsx +++ b/website/playground/index.jsx @@ -1,52 +1,11 @@ import "./install-service-worker.js"; import { createApp, onMounted, reactive } from "vue"; -import { useTheme } from "./composables/use-theme.js"; +import Header from "./header.vue"; import Playground from "./Playground.jsx"; import { fixPrettierVersion } from "./utilities.js"; -import VersionLink from "./VersionLink.jsx"; import WorkerApi from "./WorkerApi.js"; -function ThemeToggle() { - const { theme, toggleTheme } = useTheme(); - - return ( - - ); -} - const App = { name: "App", setup() { @@ -72,7 +31,7 @@ const App = { return ( <> - +
* { - display: flex; -} .theme-icon { padding-block: 2px; } diff --git a/website/playground/theme-toggle.vue b/website/playground/theme-toggle.vue new file mode 100644 index 000000000..16abf577c --- /dev/null +++ b/website/playground/theme-toggle.vue @@ -0,0 +1,40 @@ + + + diff --git a/website/playground/version-link.vue b/website/playground/version-link.vue new file mode 100644 index 000000000..cb43de2f4 --- /dev/null +++ b/website/playground/version-link.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/website/vite.config.mjs b/website/vite.config.mjs index 6ccfb0d12..b70a91574 100644 --- a/website/vite.config.mjs +++ b/website/vite.config.mjs @@ -9,10 +9,13 @@ import packageJson from "./package.json" with { type: "json" }; const IS_PRODUCTION = process.env.NODE_ENV === "production"; const IS_CI = Boolean(process.env.CI); const OUT_DIRECTORY = "./static/playground/"; -const DEPENDENCIES_EXCLUDE_FROM_CDN = new Set([ - "cm6-graphql", - "@docusaurus/preset-classic", -]); +const DEPENDENCIES_EXCLUDE_FROM_CDN = new Set( + [ + IS_PRODUCTION ? undefined : "vue", + "cm6-graphql", + "@docusaurus/preset-classic", + ].filter(Boolean), +); export default defineConfig(async () => ({ base: IS_PRODUCTION ? "/playground/" : undefined, diff --git a/website/yarn.lock b/website/yarn.lock index f9cf62c23..85531dcaf 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -7968,6 +7968,13 @@ __metadata: languageName: node linkType: hard +"github-buttons@npm:2.29.1": + version: 2.29.1 + resolution: "github-buttons@npm:2.29.1" + checksum: 10/ca7c2ad1714e68041f41d09d5ce5f35219ff5a54490158586b112e193ccaa557bb0a8bee95de8fc054879d08cc8b4985bde88dde01d8d5ca4208dd6b938615c1 + languageName: node + linkType: hard + "github-slugger@npm:^1.5.0": version: 1.5.0 resolution: "github-slugger@npm:1.5.0" @@ -12876,6 +12883,7 @@ __metadata: clsx: "npm:2.1.1" cm6-graphql: "npm:0.2.1" concurrently: "npm:9.2.1" + github-buttons: "npm:2.29.1" graphql: "npm:16.12.0" lz-string: "npm:1.5.0" prism-react-renderer: "npm:2.4.1"