Skip to content

Commit 5f6965c

Browse files
committed
feat: add blog posts content and remove unecessary sections
1 parent ad2a05b commit 5f6965c

527 files changed

Lines changed: 11677 additions & 2721 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# GitHub Copilot Instructions
2+
3+
## MCP Tool Usage
4+
5+
When answering questions about this project, use the appropriate MCP (Model Context Protocol) tools:
6+
7+
### Nuxt UI Questions
8+
9+
For questions about **Nuxt UI components, styling, theming, or UI-related features**, use the Nuxt UI MCP tools:
10+
11+
- `mcp_nuxt-ui_list-components` - List all available Nuxt UI components
12+
- `mcp_nuxt-ui_get-component-metadata` - Get detailed props, slots, and events for a component
13+
- `mcp_nuxt-ui_list-examples` - Browse UI examples and code demonstrations
14+
- `mcp_nuxt-ui_get-example` - Get specific example implementation code
15+
- `mcp_nuxt-ui_get-migration-guide` - Get migration guides between versions
16+
- `mcp_nuxt-ui_list-getting-started-guides` - List installation and setup guides
17+
- `mcp_nuxt-ui_get-template` - Get template details and setup instructions
18+
19+
**Examples of Nuxt UI questions:**
20+
- How do I use the UButton component?
21+
- What props does UHeader accept?
22+
- How do I customize the color theme?
23+
- How do I create a navigation menu?
24+
- What's the difference between UCard and UPageCard?
25+
26+
### Nuxt Framework Questions
27+
28+
For questions about **Nuxt framework, routing, configuration, modules, content, or deployment**, use the Nuxt MCP tools:
29+
30+
- `mcp_nuxt_get-getting-started-guide` - Get the Nuxt getting started guide
31+
- `mcp_nuxt_list-documentation-pages` - Search/explore Nuxt documentation
32+
- `mcp_nuxt_list-modules` - Discover available Nuxt modules
33+
- `mcp_nuxt_list-deploy-providers` - List deployment/hosting options
34+
35+
Activate additional tool groups as needed:
36+
- `activate_nuxt_documentation_tools` - For detailed documentation pages
37+
- `activate_nuxt_module_management_tools` - For module details
38+
- `activate_nuxt_deployment_tools` - For deployment guides
39+
- `activate_nuxt_blog_management_tools` - For Nuxt blog posts
40+
41+
**Examples of Nuxt questions:**
42+
- How do I configure nuxt.config.ts?
43+
- How does Nuxt Content v3 work?
44+
- How do I set up SSR/SSG?
45+
- How do I deploy to Netlify/Vercel?
46+
- How do I create API routes in Nuxt?
47+
48+
## Project Context
49+
50+
This is a personal blog built with:
51+
- **Nuxt 4** - Vue.js meta-framework
52+
- **Nuxt UI v3** - UI component library
53+
- **Nuxt Content v3** - Markdown/content management
54+
- **TailwindCSS v4** - Styling
55+
56+
Content is stored in the `content/` directory with blog posts in `content/1.posts/`.

.vscode/mcp.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"servers": {
3+
"nuxt-ui": {
4+
"type": "http",
5+
"url": "https://ui.nuxt.com/mcp"
6+
},
7+
"nuxt": {
8+
"type": "http",
9+
"url": "https://nuxt.com/mcp"
10+
}
11+
}
12+
}

app/app.vue

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,32 +24,25 @@ useSeoMeta({
2424
twitterCard: 'summary_large_image'
2525
})
2626
27-
const { data: navigation } = await useAsyncData('navigation', () => queryCollectionNavigation('docs'), {
28-
transform: data => data.find(item => item.path === '/docs')?.children || []
29-
})
30-
const { data: files } = useLazyAsyncData('search', () => queryCollectionSearchSections('docs'), {
27+
const { data: files } = useLazyAsyncData('search', () => queryCollectionSearchSections('posts'), {
3128
server: false
3229
})
3330
3431
const links = [{
35-
label: 'Docs',
36-
icon: 'i-lucide-book',
37-
to: '/docs/getting-started'
38-
}, {
39-
label: 'Pricing',
40-
icon: 'i-lucide-credit-card',
41-
to: '/pricing'
42-
}, {
4332
label: 'Blog',
4433
icon: 'i-lucide-pencil',
45-
to: '/blog'
46-
}, {
47-
label: 'Changelog',
48-
icon: 'i-lucide-history',
49-
to: '/changelog'
34+
to: '/posts'
5035
}]
5136
52-
provide('navigation', navigation)
37+
// Use the content search composable
38+
const { open } = useContentSearch()
39+
40+
// Also support '/' as a shortcut for search (common pattern)
41+
defineShortcuts({
42+
'/': () => {
43+
open.value = true
44+
}
45+
})
5346
</script>
5447

5548
<template>
@@ -64,7 +57,6 @@ provide('navigation', navigation)
6457
<LazyUContentSearch
6558
:files="files"
6659
shortcut="meta_k"
67-
:navigation="navigation"
6860
:links="links"
6961
:fuse="{ resultLimit: 42 }"
7062
/>

app/components/AppFooter.vue

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,9 @@
11
<script setup lang="ts">
22
const columns = [{
3-
label: 'Resources',
3+
label: 'Blog',
44
children: [{
5-
label: 'Help center'
6-
}, {
7-
label: 'Docs'
8-
}, {
9-
label: 'Roadmap'
10-
}, {
11-
label: 'Changelog'
12-
}]
13-
}, {
14-
label: 'Features',
15-
children: [{
16-
label: 'Affiliates'
17-
}, {
18-
label: 'Portal'
19-
}, {
20-
label: 'Jobs'
21-
}, {
22-
label: 'Sponsors'
23-
}]
24-
}, {
25-
label: 'Company',
26-
children: [{
27-
label: 'About'
28-
}, {
29-
label: 'Pricing'
30-
}, {
31-
label: 'Careers'
32-
}, {
33-
label: 'Blog'
5+
label: 'All posts',
6+
to: '/posts'
347
}]
358
}]
369

app/components/AppHeader.vue

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
<script setup lang="ts">
22
const route = useRoute()
33
4-
const items = computed(() => [{
5-
label: 'Docs',
6-
to: '/docs',
7-
active: route.path.startsWith('/docs')
8-
}, {
9-
label: 'Pricing',
10-
to: '/pricing'
11-
}, {
12-
label: 'Blog',
13-
to: '/blog'
14-
}, {
15-
label: 'Changelog',
16-
to: '/changelog'
17-
}])
4+
const items = computed(() => [
5+
{
6+
label: 'Home',
7+
to: '/',
8+
active: route.path === '/'
9+
},
10+
{
11+
label: 'Blog',
12+
to: '/posts',
13+
active: route.path.startsWith('/posts')
14+
}
15+
])
1816
</script>
1917

2018
<template>

app/error.vue

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,17 @@ useSeoMeta({
1919
description: 'We are sorry but this page could not be found.'
2020
})
2121
22-
const { data: navigation } = await useAsyncData('navigation', () => queryCollectionNavigation('docs'), {
23-
transform: data => data.find(item => item.path === '/docs')?.children || []
22+
const { data: navigation } = await useAsyncData('navigation', () => queryCollectionNavigation('posts'), {
23+
transform: data => data.find(item => item.path === '/posts')?.children || []
2424
})
25-
const { data: files } = useLazyAsyncData('search', () => queryCollectionSearchSections('docs'), {
25+
const { data: files } = useLazyAsyncData('search', () => queryCollectionSearchSections('posts'), {
2626
server: false
2727
})
2828
2929
const links = [{
30-
label: 'Docs',
31-
icon: 'i-lucide-book',
32-
to: '/docs/getting-started'
33-
}, {
34-
label: 'Pricing',
35-
icon: 'i-lucide-credit-card',
36-
to: '/pricing'
37-
}, {
3830
label: 'Blog',
3931
icon: 'i-lucide-pencil',
40-
to: '/blog'
32+
to: '/posts'
4133
}]
4234
</script>
4335

app/layouts/docs.vue

Lines changed: 0 additions & 34 deletions
This file was deleted.

app/pages/changelog/index.vue

Lines changed: 0 additions & 41 deletions
This file was deleted.

app/pages/docs/[...slug].vue

Lines changed: 0 additions & 57 deletions
This file was deleted.
File renamed without changes.

0 commit comments

Comments
 (0)