Removed unused code

This commit is contained in:
2025-12-03 08:44:21 +03:30
parent 98f7f95b68
commit 72e3df0536
9 changed files with 1153 additions and 1224 deletions

View File

@@ -1 +0,0 @@
NUXT_PUBLIC_LOAD_PLAUSIBLE="no"

View File

@@ -133,8 +133,7 @@ Compatible with any static hosting service:
**Output Directory**: `.output/public`
### Environment Variables
- `NUXT_PUBLIC_LOAD_PLAUSIBLE` - Enable/disable Plausible analytics (optional)
- `NUXT_PUBLIC_SITE_URL` - Site URL for sitemap and RSS (default: https://aliarghyani.vercel.app)
- `NUXT_PUBLIC_SITE_URL` - Site URL for sitemap and RSS (default: https://mahdium.ir)
## 🧪 Testing the Structure

View File

@@ -1,61 +0,0 @@
<template>
<div class="bg-blue-950 backdrop-blur-md hover:cursor-pointer" v-show="open">
<div
class="plausible-event-name=VueSchoolBanner+click flex h-16 shrink-0 items-center justify-between px-4 text-white"
@click="navigate"
>
<div></div>
<div class="hidden lg:block">
<img src="/img/vueschool/vueschool.svg" alt="VueSchool Logo" class="h-6" />
</div>
<div
class="hidden bg-gradient-to-r from-amber-400 to-pink-500 bg-clip-text text-lg font-semibold tracking-wide text-transparent sm:inline-block"
>
New Vue Masterclass
</div>
<div class="hidden lg:flex lg:gap-x-2">
<img src="/img/vueschool/vue-with-hat.svg" alt="VueJS Logo" class="h-6" />
<img src="/img/vueschool/pinia.svg" alt="Pinia Logo" class="h-6" />
<img src="/img/vueschool/vite.svg" alt="Vite Logo" class="h-6" />
<img src="/img/vueschool/vitest.svg" alt="Vitest Logo" class="h-6" />
</div>
<div class="text-center leading-5">
<span
class="inline-block bg-gradient-to-r from-emerald-300 to-sky-300 bg-clip-text font-semibold tracking-wide text-transparent"
>
Vue.js Masterclass 2024 Edition
</span>
<span class="ml-2 hidden font-semibold sm:inline">LAUNCHED</span>
<br />
<span class="text-sm text-gray-300 sm:text-base">
Code a real world app using the latest Vue.js tech
</span>
</div>
<UButton
class="plausible-event-name=VueSchoolBanner+click hidden px-4 font-bold md:inline-flex rounded-full"
label="Buy Now"
icon="i-tabler-caret-right-filled"
variant="solid"
trailing
@click="navigate"
/>
<UIcon
name="i-ph-x"
class="size-8 p-2 hover:opacity-80"
@click.stop="open = false"
/>
</div>
</div>
</template>
<script setup lang="ts">
const open = ref(true)
const affiliateId = "UILIBPIC"
const fullUrl = computed(
() => `https://vueschool.io/the-vuejs-3-master-class?friend=${affiliateId}`
)
const navigate = () => {
window.open(fullUrl.value, "_blank")
}
</script>

View File

@@ -51,7 +51,7 @@ const nextPost = computed(() => {
})
// SEO meta tags
const siteUrl = 'https://aliarghyani.vercel.app' // TODO: Move to runtime config
const siteUrl = 'https://mahdium.ir' // TODO: Move to runtime config
// Custom meta tags
if (post.value) {

View File

@@ -1,6 +0,0 @@
export default defineNuxtPlugin(() => {
const script = document.createElement("script")
script.src = "https://media.bitterbrains.com/main.js?from=UILIB&type=top"
script.async = true
document.head.appendChild(script)
})

View File

@@ -1,90 +1,91 @@
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
srcDir: 'app',
srcDir: "app",
// Enable View Transitions API for smooth page transitions
experimental: {
viewTransition: true
viewTransition: true,
},
// Configure page and layout transitions
app: {
baseURL: '/',
buildAssetsDir: '/_nuxt/',
cdnURL: '/',
baseURL: "/",
buildAssetsDir: "/_nuxt/",
cdnURL: "/",
pageTransition: {
name: 'page',
mode: 'out-in'
name: "page",
mode: "out-in",
},
layoutTransition: {
name: 'layout',
mode: 'out-in'
}
name: "layout",
mode: "out-in",
},
},
modules: [
'@nuxt/content',
'@nuxt/fonts',
'@nuxt/ui',
'@nuxtjs/i18n',
'@nuxtjs/color-mode',
'@nuxt/image',
'@nuxtjs/sitemap'
],
css: [
'~/assets/css/main.css'
"@nuxt/content",
"@nuxt/fonts",
"@nuxt/ui",
"@nuxtjs/i18n",
"@nuxtjs/color-mode",
"@nuxt/image",
"@nuxtjs/sitemap",
],
css: ["~/assets/css/main.css"],
postcss: {
plugins: {
'@csstools/postcss-oklab-function': { preserve: false },
'@csstools/postcss-relative-color-syntax': { preserve: false },
'@csstools/postcss-color-mix-function': { preserve: false },
'postcss-preset-env': {
"@csstools/postcss-oklab-function": { preserve: false },
"@csstools/postcss-relative-color-syntax": { preserve: false },
"@csstools/postcss-color-mix-function": { preserve: false },
"postcss-preset-env": {
stage: 0,
features: {
'nesting-rules': true
}
"nesting-rules": true,
},
},
autoprefixer: {}
}
autoprefixer: {},
},
},
vite: {
css: {
lightningcss: {
targets: {
safari: 15
}
}
}
safari: 15,
},
},
},
},
fonts: {
defaults: {
preload: true,
weights: [300, 400, 500, 600, 700],
styles: ['normal'],
subsets: ['latin'],
styles: ["normal"],
subsets: ["latin"],
fallbacks: {
'sans-serif': ['system-ui', 'Segoe UI', 'sans-serif'],
serif: ['Georgia', 'Times New Roman', 'serif']
}
"sans-serif": ["system-ui", "Segoe UI", "sans-serif"],
serif: ["Georgia", "Times New Roman", "serif"],
},
},
families: [
{ name: 'Fraunces', provider: 'google', weights: [600, 700] },
{ name: 'Inter', provider: 'google', weights: [400, 500, 600, 700] },
{ name: 'Outfit', provider: 'google', weights: [300, 400, 500, 600, 700] }
]
{ name: "Fraunces", provider: "google", weights: [600, 700] },
{ name: "Inter", provider: "google", weights: [400, 500, 600, 700] },
{
name: "Outfit",
provider: "google",
weights: [300, 400, 500, 600, 700],
},
],
},
runtimeConfig: {
public: {
loadPlausible: "", // overrided by env,
siteUrl: 'https://aliarghyani.vercel.app' // Used for sitemap and RSS generation
siteUrl: "https://mahdium.ir", // Used for sitemap and RSS generation
},
},
// Site configuration for sitemap
site: {
url: 'https://aliarghyani.vercel.app'
url: "https://mahdium.ir",
} as any,
// Sitemap configuration
@@ -92,9 +93,9 @@ export default defineNuxtConfig({
gzip: true,
exclude: [],
defaults: {
changefreq: 'monthly',
priority: 0.8
}
changefreq: "monthly",
priority: 0.8,
},
} as any,
image: {
@@ -106,9 +107,9 @@ export default defineNuxtConfig({
md: 768,
lg: 1024,
xl: 1280,
'2xl': 1536
"2xl": 1536,
},
formats: ['webp', 'jpg']
formats: ["webp", "jpg"],
},
typescript: {
shim: false,
@@ -131,75 +132,82 @@ export default defineNuxtConfig({
storageKey: "nuxt-color-mode",
},
// Nuxt Content configuration
content: {
// Disable experimental features that require native dependencies
experimental: {
clientDB: false,
cacheContents: false
cacheContents: false,
},
markdown: {
mdc: true,
toc: {
depth: 3,
searchDepth: 3
}
searchDepth: 3,
},
},
documentDriven: false,
respectPathCase: true
respectPathCase: true,
},
i18n: {
defaultLocale: 'en',
strategy: 'prefix_except_default',
defaultLocale: "en",
strategy: "prefix_except_default",
locales: [
{ code: 'en', language: 'en-US', name: 'English', dir: 'ltr', file: 'en.json' },
{ code: 'fa', language: 'fa-IR', name: 'فارسی', dir: 'rtl', file: 'fa.json' },
{
code: "en",
language: "en-US",
name: "English",
dir: "ltr",
file: "en.json",
},
{
code: "fa",
language: "fa-IR",
name: "فارسی",
dir: "rtl",
file: "fa.json",
},
],
langDir: 'locales',
langDir: "locales",
detectBrowserLanguage: {
useCookie: true,
cookieKey: 'i18n_redirected',
cookieKey: "i18n_redirected",
alwaysRedirect: false,
redirectOn: 'root'
redirectOn: "root",
},
// Keep runtime vue-i18n options (legacy, warnings)
vueI18n: '~/i18n.config.ts'
vueI18n: "~/i18n.config.ts",
},
// Prerender blog routes
nitro: {
prerender: {
crawlLinks: true,
routes: ['/', '/blog', '/fa/blog'],
routes: ["/", "/blog", "/fa/blog"],
failOnError: false,
ignore: ['/_vercel/image']
ignore: ["/_vercel/image"],
},
},
// Route rules for caching and optimization
routeRules: {
// Blog routes caching
'/blog': { swr: 3600 },
'/fa/blog': { swr: 3600 },
'/blog/**': { swr: 3600 },
'/fa/blog/**': { swr: 3600 }
"/blog": { swr: 3600 },
"/fa/blog": { swr: 3600 },
"/blog/**": { swr: 3600 },
"/fa/blog/**": { swr: 3600 },
},
devtools: { enabled: false },
// devtools: { enabled: false },
compatibilityDate: "2024-07-10",
components: {
dirs: [
{
path: '~/components',
pathPrefix: false
}
]
}
})
path: "~/components",
pathPrefix: false,
},
],
},
});

View File

@@ -13,36 +13,36 @@
"format:write": "prettier --write ."
},
"dependencies": {
"@nuxt/content": "^3.8.0",
"@nuxt/content": "^3.8.2",
"@nuxt/fonts": "^0.11.4",
"@nuxt/image": "^1.11.0",
"@nuxt/ui": "^4.0.1",
"@nuxt/ui": "^4.2.1",
"@nuxtjs/color-mode": "3.5.2",
"@nuxtjs/i18n": "10.1.1",
"@vueuse/core": "13.9.0",
"better-sqlite3": "^12.4.1",
"better-sqlite3": "^12.5.0",
"embla-carousel": "8.6.0",
"nuxt": "^4.1.3"
"nuxt": "^4.2.1"
},
"devDependencies": {
"@csstools/postcss-color-mix-function": "^3.0.12",
"@csstools/postcss-oklab-function": "^4.0.12",
"@csstools/postcss-relative-color-syntax": "^3.0.12",
"@iconify-json/logos": "^1.2.9",
"@iconify-json/material-symbols": "^1.2.42",
"@iconify-json/logos": "^1.2.10",
"@iconify-json/material-symbols": "^1.2.48",
"@iconify-json/mdi": "^1.2.3",
"@iconify-json/ph": "^1.2.2",
"@iconify-json/twemoji": "^1.2.4",
"@iconify-json/vscode-icons": "^1.2.32",
"@iconify-json/vscode-icons": "^1.2.37",
"@nuxtjs/sitemap": "^7.4.7",
"@tailwindcss/vite": "^4.1.14",
"@tailwindcss/vite": "^4.1.17",
"@types/node": "22.18.11",
"autoprefixer": "^10.4.21",
"autoprefixer": "^10.4.22",
"postcss": "^8.5.6",
"postcss-preset-env": "^10.4.0",
"prettier": "3.6.2",
"prettier-plugin-tailwindcss": "0.7.1",
"tailwindcss": "^4.1.14",
"tailwindcss": "^4.1.17",
"typescript": "^5.9.3"
},
"overrides": {

2102
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,4 @@
{
"rewrites": [
{
"source": "/stats/js/script.js",
"destination": "https://plausible.io/js/script.tagged-events.js"
},
{
"source": "/stats/api/event",
"destination": "https://plausible.io/api/event"
}
],
"headers": [
{
"source": "/_nuxt/(.*)",