diff --git a/.mise.toml b/.mise.toml
index 5d3cdd5a1..183690bd0 100644
--- a/.mise.toml
+++ b/.mise.toml
@@ -1,6 +1,6 @@
# https://github.com/vitejs/vite/issues/17291
[tools]
-node = "21"
+node = "latest"
[tasks]
d = "nrr docs:dev --host"
diff --git a/docs/.vitepress/constants.ts b/docs/.vitepress/constants.ts
index b9baf63b1..04c9c6ebb 100644
--- a/docs/.vitepress/constants.ts
+++ b/docs/.vitepress/constants.ts
@@ -155,7 +155,7 @@ export const nav: DefaultTheme.NavItem[] = [
{ text: '🚀 Startpage', link: 'https://fmhy.net/startpage' },
{ text: '📋 snowbin', link: 'https://pastes.fmhy.net' },
{
- text: '®️ Redlib',
+ text: '® Redlib',
link: 'https://redlib.fmhy.net/r/FREEMEDIAHECKYEAH/wiki/index'
},
{ text: '🔎 SearXNG', link: 'https://searx.fmhy.net/' },
@@ -178,19 +178,7 @@ export const nav: DefaultTheme.NavItem[] = [
}
]
-export const sidebar: DefaultTheme.Sidebar | DefaultTheme.NavItemWithLink[] = [
- {
- text: ' Beginners Guide',
- link: '/beginners-guide'
- },
- {
- text: ' Posts',
- link: '/posts'
- },
- {
- text: ' Contribute',
- link: '/other/contributing'
- },
+export const wikiSidebar = [
{
text: 'Wiki',
collapsed: false,
@@ -305,9 +293,9 @@ export const sidebar: DefaultTheme.Sidebar | DefaultTheme.NavItemWithLink[] = [
items: [
meta.build.nsfw
? {
- text: ' NSFW',
- link: 'https://rentry.co/NSFW-Checkpoint'
- }
+ text: ' NSFW',
+ link: 'https://rentry.co/NSFW-Checkpoint'
+ }
: {},
{
text: ' Unsafe Sites',
@@ -320,3 +308,21 @@ export const sidebar: DefaultTheme.Sidebar | DefaultTheme.NavItemWithLink[] = [
]
}
]
+
+export const beginnersGuideItem: DefaultTheme.NavItemWithLink = {
+ text: ' Beginners Guide',
+ link: '/beginners-guide'
+}
+
+export const sidebar: DefaultTheme.Sidebar | DefaultTheme.NavItemWithLink[] = [
+ beginnersGuideItem,
+ {
+ text: ' Posts',
+ link: '/posts'
+ },
+ {
+ text: ' Contribute',
+ link: '/other/contributing'
+ },
+ ...wikiSidebar
+]
diff --git a/docs/.vitepress/theme/components/VPButton.vue b/docs/.vitepress/theme/components/VPButton.vue
index 474fdbcc5..da3d32bb0 100644
--- a/docs/.vitepress/theme/components/VPButton.vue
+++ b/docs/.vitepress/theme/components/VPButton.vue
@@ -1,8 +1,7 @@
-
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+ :rel="props.rel ?? (isExternal ? 'noreferrer' : undefined)"
+ >
{{ text }}
@@ -175,4 +280,95 @@ const component = computed(() => {
color: var(--vp-button-sponsor-active-text);
background-color: var(--vp-button-sponsor-active-bg);
}
+
+/* Dropdown styles */
+.VPButtonDropdown {
+ position: relative;
+ display: inline-block;
+}
+
+.VPButtonWrapper {
+ display: flex;
+ align-items: stretch;
+}
+
+.VPButtonMain {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-right: none;
+}
+
+.VPButtonDropdownMenu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ z-index: 50;
+ margin-top: 4px;
+ background-color: var(--vp-c-bg-elv);
+ border: 1px solid var(--vp-c-divider);
+ border-radius: 12px;
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08);
+ min-width: 280px;
+ max-height: 400px;
+ overflow-y: auto;
+}
+
+.VPButtonDropdownContent {
+ padding: 8px;
+}
+
+.VPButtonDropdownSection {
+ margin-bottom: 8px;
+}
+
+.VPButtonDropdownSection:last-child {
+ margin-bottom: 0;
+}
+
+.VPButtonDropdownSectionTitle {
+ font-size: 12px;
+ font-weight: 600;
+ color: var(--vp-c-text-2);
+ padding: 8px 12px 4px;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+.VPButtonDropdownItem {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ padding: 8px 12px;
+ border-radius: 6px;
+ color: var(--vp-c-text-1);
+ text-decoration: none;
+ font-size: 14px;
+ transition: background-color 0.2s ease;
+}
+
+.VPButtonDropdownItem:hover {
+ background-color: var(--vp-c-bg-alt);
+ color: var(--vp-c-brand-1);
+}
+
+.VPButtonDropdownIcon {
+ width: 16px;
+ height: 16px;
+ flex-shrink: 0;
+}
+
+.VPButtonDropdownItem span :deep([class*="i-"]) {
+ width: 16px;
+ height: 16px;
+ flex-shrink: 0;
+ margin-right: 8px;
+}
+
+.VPButtonDropdownSectionTitle :deep([class*="i-"]) {
+ width: 14px;
+ height: 14px;
+ flex-shrink: 0;
+ margin-right: 6px;
+}
diff --git a/docs/.vitepress/theme/style.scss b/docs/.vitepress/theme/style.scss
index 504216d2a..dab5bfe16 100644
--- a/docs/.vitepress/theme/style.scss
+++ b/docs/.vitepress/theme/style.scss
@@ -1,3 +1,41 @@
+:root {
+ --vp-c-bg: #fefbff;
+ --vp-c-bg-alt: #f2f0f4;
+ --vp-c-bg-elv: #f2f0f4;
+ --vp-c-bg-soft: #f2f0f4;
+}
+
+.dark {
+ --vp-c-bg: #121316;
+ --vp-c-bg-alt: #0d0e11;
+ --vp-c-bg-elv: #1b1b1f;
+ --vp-c-bg-soft: #1b1b1f;
+}
+
+:root {
+ --vp-c-border: #c2c2c4;
+ --vp-c-divider: #c4c6d0;
+ --vp-c-gutter: #e2e2e3;
+}
+
+.dark {
+ --vp-c-border: #77777a;
+ --vp-c-divider: #222429;
+ --vp-c-gutter: #000000;
+}
+
+:root {
+ --vp-c-text-1: #1b1b1f;
+ --vp-c-text-2: #2f3033;
+ --vp-c-text-3: #46464a;
+}
+
+.dark {
+ --vp-c-text-1: #e3e2e6;
+ --vp-c-text-2: #ababaf;
+ --vp-c-text-3: #919094;
+}
+
:root {
/* Colors: Brand */
--vp-c-brand-1: theme('colors.swarm.500');
@@ -20,13 +58,6 @@
--vp-button-alt-hover-bg: #484848;
--vp-button-alt-hover-text: #f0eeee;
- /* Colors: Background */
- --vp-c-bg: #ffffff;
- --vp-c-bg-alt: #f6f6f7;
- --vp-c-bg-elv: #ffffff;
- --vp-c-bg-soft: #f6f6f7;
-
-
/* Colors: Custom Block */
/** Info */
--vp-custom-block-info-bg: theme('colors.swarm.100');
@@ -57,12 +88,6 @@
--vp-c-brand-3: theme('colors.swarm.700');
--vp-c-brand-soft: theme('colors.swarm.300');
- /* Colors: Background */
- --vp-c-bg: #1a1a1a;
- --vp-c-bg-alt: #151515;
- --vp-c-bg-elv: #1f1f1f;
- --vp-c-bg-soft: #1f1f1f;
-
/* Colors: Custom Block */
/** Info */
--vp-custom-block-info-bg: theme('colors.swarm.950');
diff --git a/docs/index.md b/docs/index.md
index 29ab6443f..9b53c34fd 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -25,136 +25,6 @@ hero:
- theme: alt
text: Discord
link: https://rentry.co/fmhy-invite
-
-features:
- - title: Adblocking / Privacy
- link: /adblockvpnguide
- details: Learn how to block ads, trackers and other nasty things.
- icon: |
-
-
- - title: Artificial Intelligence
- link: /ai
- details: Explore the world of AI and machine learning.
- icon: |
-
-
- - title: Streaming
- link: /videopiracyguide
- details:
- Stream, download, torrent and binge all your favourite movies and shows!
- icon: |
-
-
- - title: Listening
- icon: |
-
- link: /audiopiracyguide
- details: Stream, download and torrent songs, podcasts and more!
-
- - title: Gaming
- icon: |
-
- link: /gamingpiracyguide
- details:
- Download and play all your favourite games or emulate some old but gold
- ones!
-
- - title: Reading
- icon: |
-
- link: /readingpiracyguide
- details:
- Whether you're a bookworm, otaku or comic book fan, you'll be able to find
- your favourite pieces of literature here for free!
-
- - title: Downloading
- icon: |
-
- link: /downloadpiracyguide
- details:
- Download all your favourite software, movies, TV shows, music, games and
- more!
-
- - title: Torrenting
- icon: |
-
- link: /torrentpiracyguide
- details: Download your favourite media using the BitTorrent protocol.
-
- - title: Educational
- icon: |
-
- link: /edupiracyguide
- details: Educational content for all ages.
-
- - title: Android / iOS
- icon: |
-
- link: /android-iosguide
- details: All forms of content for Android and iOS.
-
- - title: Linux / macOS
- icon: |
-
- link: /linuxguide
- details: The $HOME of Linux and macOS.
-
- - title: Non English
- icon: |
-
- link: /non-english
- details: Content in languages other than English.
-
- - title: Miscellaneous
- icon: |
-
- link: /miscguide
- details: Content too niche to be included elsewhere.
---