diff --git a/src/components/widget/MusicPlayer.astro b/src/components/widget/MusicPlayer.astro new file mode 100644 index 0000000..be64b5d --- /dev/null +++ b/src/components/widget/MusicPlayer.astro @@ -0,0 +1,259 @@ +--- +import { siteConfig } from "../../config"; + +const cfg = siteConfig.music; +if (!cfg?.enable) return; + +const server = cfg.server || "netease"; +const playlistId = cfg.playlistId; +const defaultVolume = cfg.defaultVolume ?? 1; +--- + +
+ + + + diff --git a/src/config.ts b/src/config.ts index e4c2a09..dbad53f 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,6 +1,7 @@ import type { ExpressiveCodeConfig, LicenseConfig, + MusicPlayerConfig, NavBarConfig, ProfileConfig, SiteConfig, @@ -38,6 +39,13 @@ export const siteConfig: SiteConfig = { // sizes: '32x32', // (Optional) Size of the favicon, set only if you have favicons of different sizes // } ], + + music: { + enable: true, + playlistId: "7708342577", + server: "netease", + defaultVolume: 1, + } satisfies MusicPlayerConfig, }; export const navBarConfig: NavBarConfig = { diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 6e5dfbf..7849d78 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -4,6 +4,7 @@ import "@fontsource/roboto/500.css"; import "@fontsource/roboto/700.css"; import ConfigCarrier from "@components/ConfigCarrier.astro"; +import MusicPlayer from "@components/widget/MusicPlayer.astro"; import { profileConfig, siteConfig } from "@/config"; import { AUTO_MODE, @@ -157,6 +158,8 @@ const bannerOffset =