@edgedev/create-edge-site 1.0.14 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,7 +43,7 @@ onUnmounted(() => {
43
43
  <div class="container mx-auto flex items-center justify-between h-[128px]">
44
44
  <!-- Logo -->
45
45
  <NuxtLink to="/" class="text-xl font-bold">
46
- <img src="/images/logo.png" alt="MT" class="w-full h-auto" />
46
+ <img src="/images/logo.png" alt="MT" class="w-full h-auto">
47
47
  </NuxtLink>
48
48
 
49
49
  <!-- Mobile Menu Button -->
@@ -68,6 +68,11 @@ onUnmounted(() => {
68
68
  Stuff
69
69
  </NuxtLink>
70
70
  </li>
71
+ <li>
72
+ <NuxtLink to="/projects" class="nav-item">
73
+ Projects
74
+ </NuxtLink>
75
+ </li>
71
76
  <li>
72
77
  <NuxtLink to="/contact" class="nav-item">
73
78
  Contact
@@ -86,18 +91,18 @@ onUnmounted(() => {
86
91
  </button>
87
92
 
88
93
  <!-- Mobile Logo -->
89
- <a href="/"><img src="/images/logo.png" alt="Logo" class="mb-4 w-50" /></a>
94
+ <a href="/"><img src="/images/logo.png" alt="Logo" class="mb-4 w-50"></a>
90
95
 
91
96
  <!-- Social Media Icons -->
92
97
  <div class="flex justify-center my-6 space-x-4">
93
98
  <a href="#" class="flex items-center justify-center w-12 h-12 transition rounded-full bg-lblue text-dblue hover:bg-opacity-80">
94
- <i class="fab fa-facebook-f fa-lg"></i>
99
+ <i class="fab fa-facebook-f fa-lg" />
95
100
  </a>
96
101
  <a href="#" class="flex items-center justify-center w-12 h-12 transition rounded-full bg-lblue text-dblue hover:bg-opacity-80">
97
- <i class="fab fa-instagram fa-lg"></i>
102
+ <i class="fab fa-instagram fa-lg" />
98
103
  </a>
99
104
  <a href="#" class="flex items-center justify-center w-12 h-12 transition rounded-full bg-lblue text-dblue hover:bg-opacity-80">
100
- <i class="fab fa-houzz fa-lg"></i> <!-- Houzz or custom icon -->
105
+ <i class="fab fa-houzz fa-lg" /> <!-- Houzz or custom icon -->
101
106
  </a>
102
107
  </div>
103
108
 
@@ -113,6 +118,11 @@ onUnmounted(() => {
113
118
  Stuff
114
119
  </NuxtLink>
115
120
  </li>
121
+ <li class="border-t border-b border-lblue">
122
+ <NuxtLink to="/projects" class="text-lg tracking-widest uppercase" @click="closeMenu">
123
+ Projects
124
+ </NuxtLink>
125
+ </li>
116
126
  <li class="border-t border-b border-lblue">
117
127
  <NuxtLink to="/contact" class="text-lg tracking-widest uppercase" @click="closeMenu">
118
128
  Contact
@@ -31,13 +31,13 @@ onMounted(() => {
31
31
  :class="isVisible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-4'"
32
32
  >
33
33
  <h6
34
- class="inline-flex items-center gap-2 mb-4 transition-all duration-700 ease-out super-head"
34
+ class="inline-flex capitalize items-center gap-2 mb-4 transition-all duration-700 ease-out super-head"
35
35
  :class="isVisible ? 'opacity-100 translate-x-0' : 'opacity-0 -translate-x-4'"
36
36
  >
37
37
  {{ page }}
38
38
  </h6>
39
39
  <h1
40
- class="text-3xl font-light !leading-tight font-fancy md:text-5xl md:pr-80 transition-all duration-700 ease-out delay-100"
40
+ class="text-3xl capitalize font-light !leading-tight font-fancy md:text-5xl md:pr-80 transition-all duration-700 ease-out delay-100"
41
41
  :class="isVisible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-4'"
42
42
  >
43
43
  {{ headline }}
@@ -0,0 +1,30 @@
1
+ <script setup>
2
+ import { useAsyncData } from '#imports'
3
+ import { useRoute } from 'vue-router'
4
+
5
+ const route = useRoute()
6
+ const { collection, slug } = route.params
7
+
8
+ const { data: project } = await useAsyncData(`${collection}-${slug}`, () => {
9
+ return queryCollection(collection).path(`/${collection}/${slug}`).first()
10
+ })
11
+ </script>
12
+
13
+ <template>
14
+ <Head>
15
+ <Title>Edge Website - An awesome Edge website</Title>
16
+ <Meta name="description" content="This is an Edge website template" />
17
+ <Link rel="canonical" href="https://edgemarketingdesign.com/contact" />
18
+ </Head>
19
+
20
+ <titleSection
21
+ :page="collection"
22
+ :headline="project.title"
23
+ />
24
+
25
+ <div class="container flex flex-col items-center justify-center w-full max-w-6xl px-6 pt-10 pb-64 mx-auto">
26
+ <article class="max-w-4xl px-4 py-16 mx-auto">
27
+ <ContentRenderer :value="project" />
28
+ </article>
29
+ </div>
30
+ </template>
@@ -0,0 +1,33 @@
1
+ <script setup>
2
+ import { NuxtLink } from '#components'
3
+ import { useAsyncData } from '#imports'
4
+ import { useRoute } from 'vue-router'
5
+
6
+ const route = useRoute()
7
+ const { collection } = route.params
8
+
9
+ const { data: projects } = await useAsyncData(collection, () => {
10
+ return queryCollection(collection).order('date', 'DESC').all()
11
+ })
12
+ </script>
13
+
14
+ <template>
15
+ <Head>
16
+ <Title>Edge Website - An awesome Edge website</Title>
17
+ <Meta name="description" content="This is an Edge website template" />
18
+ <Link rel="canonical" href="https://edgemarketingdesign.com/contact" />
19
+ </Head>
20
+
21
+ <titleSection
22
+ page="Content"
23
+ :headline="collection"
24
+ />
25
+
26
+ <div class="container flex flex-col items-center justify-center w-full max-w-6xl px-6 pt-10 pb-64 mx-auto">
27
+ <div v-for="project in projects" :key="project._id" class="mb-12">
28
+ <NuxtLink :to="`${project.path}`">
29
+ {{ project.title }}
30
+ </NuxtLink>
31
+ </div>
32
+ </div>
33
+ </template>
@@ -11,6 +11,6 @@ onMounted(() => {
11
11
  <Link rel="canonical" href="https://edgemarketingdesign.com/" />
12
12
  </Head>
13
13
  <div class="min-h-[calc(100vh_-_328px)] w-full items-center justify-center flex flex-col">
14
- <img src="/images/edge_logo.png" class="w-[400px] h-auto" alt="Edge Marketing Design Logo" />
14
+ <img src="/images/edge_logo.png" class="w-[400px] h-auto" alt="Edge Marketing Design Logo">
15
15
  </div>
16
16
  </template>
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: "Test Project"
3
+ date: "2025-01-01"
4
+ ---
5
+
6
+ This is just a test.
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: "Test Project 2"
3
+ date: "2025-08-25"
4
+ ---
5
+
6
+ This is just another test.
@@ -0,0 +1,14 @@
1
+ import { defineCollection, defineContentConfig, z } from '@nuxt/content'
2
+
3
+ export default defineContentConfig({
4
+ collections: {
5
+ projects: defineCollection({
6
+ type: 'page',
7
+ source: 'projects/*.md',
8
+ schema: z.object({
9
+ title: z.string(),
10
+ date: z.date(),
11
+ }),
12
+ }),
13
+ },
14
+ })
package/eslint.config.mjs CHANGED
@@ -1,7 +1,37 @@
1
1
  import antfu from '@antfu/eslint-config'
2
2
 
3
+ // Handle CJS interop for Nuxt plugin
4
+ const nuxtPluginModule = await import('eslint-plugin-nuxt')
5
+ const nuxtPlugin = nuxtPluginModule.default ?? nuxtPluginModule
6
+
3
7
  export default [
4
- ...(await antfu()),
8
+ // Antfu base config
9
+ ...await antfu(),
10
+
11
+ // Nuxt recommended rules
12
+ {
13
+ name: 'nuxt',
14
+ plugins: {
15
+ nuxt: nuxtPlugin,
16
+ },
17
+ rules: {
18
+ ...(nuxtPlugin.configs?.recommended?.rules ?? {}),
19
+ },
20
+ },
21
+
22
+ // Explicit globals (add any other auto-imported composables here)
23
+ {
24
+ name: 'globals',
25
+ languageOptions: {
26
+ globals: {
27
+ globalState: 'readonly',
28
+ $fetch: 'readonly',
29
+ queryCollection: 'readonly',
30
+ },
31
+ },
32
+ },
33
+
34
+ // Your custom rule overrides
5
35
  {
6
36
  rules: {
7
37
  'vue/no-deprecated-slot-attribute': 'off',
@@ -9,16 +39,6 @@ export default [
9
39
  'no-console': 'off',
10
40
  'antfu/top-level-function': 'off',
11
41
  'style/eol-last': 'off',
12
- // ✅ Enforce correct self-closing behavior in Vue templates
13
- 'vue/html-self-closing': ['error', {
14
- html: {
15
- void: 'always', // <img />, <br />, <input />, etc.
16
- normal: 'never', // <div></div>, <span></span>, etc.
17
- component: 'always', // <MyComponent />
18
- },
19
- svg: 'always',
20
- math: 'always',
21
- }],
22
42
  },
23
43
  },
24
- ]
44
+ ]
package/nuxt.config.ts CHANGED
@@ -32,7 +32,7 @@ export default defineNuxtConfig({
32
32
  css: [
33
33
  '~/assets/css/global.css', // ✅ Keep global styles only
34
34
  ],
35
- modules: ['@nuxtjs/tailwindcss', '@vee-validate/nuxt', 'nitro-cloudflare-dev'],
35
+ modules: ['@nuxtjs/tailwindcss', '@vee-validate/nuxt', 'nitro-cloudflare-dev', '@nuxt/content'],
36
36
  vite: {
37
37
  define: {
38
38
  'process.env.DEBUG': false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgedev/create-edge-site",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "Create Edge Starter Site",
5
5
  "bin": {
6
6
  "create-edge-site": "./bin/cli.js"
@@ -15,10 +15,12 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@fancyapps/ui": "^5.0.36",
18
+ "@nuxt/content": "^3.6.3",
18
19
  "@nuxtjs/tailwindcss": "6.13.2",
19
20
  "@vee-validate/nuxt": "^4.15.0",
20
21
  "@vee-validate/rules": "^4.15.0",
21
22
  "@vee-validate/zod": "^4.15.0",
23
+ "better-sqlite3": "^12.2.0",
22
24
  "nuxt": "^3.16.1",
23
25
  "scrollreveal": "^4.0.9",
24
26
  "swiper": "^11.2.6",
@@ -31,6 +33,7 @@
31
33
  "devDependencies": {
32
34
  "@antfu/eslint-config": "^4.11.0",
33
35
  "eslint": "^9",
36
+ "eslint-plugin-nuxt": "^4.0.0",
34
37
  "nitro-cloudflare-dev": "^0.2.2",
35
38
  "wrangler": "^4.14.4"
36
39
  }