From cc641be16f9bc05157f757891e9ff9f954182a32 Mon Sep 17 00:00:00 2001 From: nicwands Date: Wed, 18 Mar 2026 15:53:54 -0400 Subject: [PATCH] barebones setup --- assets/favicon.png | Bin 0 -> 870 bytes assets/logo.svg | 67 -------------------------------- components/Content.vue | 25 ------------ components/Counter.vue | 11 ------ components/Link.vue | 27 ------------- components/Logo.vue | 7 ---- components/Sidebar.vue | 15 ------- components/svg/Wordmark.vue | 15 +++++++ pages/+Head.vue | 6 +-- pages/+Layout.vue | 29 ++++---------- pages/index/+Page.vue | 24 ++++++++---- pages/star-wars/@id/+Page.vue | 15 ------- pages/star-wars/@id/+data.ts | 33 ---------------- pages/star-wars/index/+Page.vue | 23 ----------- pages/star-wars/index/+data.ts | 34 ---------------- pages/star-wars/types.ts | 10 ----- pages/todo/+Page.vue | 10 ----- pages/todo/+data.ts | 15 ------- pages/todo/TodoList.vue | 30 -------------- vite.config.ts | 6 +++ 20 files changed, 47 insertions(+), 355 deletions(-) create mode 100644 assets/favicon.png delete mode 100644 assets/logo.svg delete mode 100644 components/Content.vue delete mode 100644 components/Counter.vue delete mode 100644 components/Link.vue delete mode 100644 components/Logo.vue delete mode 100644 components/Sidebar.vue create mode 100644 components/svg/Wordmark.vue delete mode 100644 pages/star-wars/@id/+Page.vue delete mode 100644 pages/star-wars/@id/+data.ts delete mode 100644 pages/star-wars/index/+Page.vue delete mode 100644 pages/star-wars/index/+data.ts delete mode 100644 pages/star-wars/types.ts delete mode 100644 pages/todo/+Page.vue delete mode 100644 pages/todo/+data.ts delete mode 100644 pages/todo/TodoList.vue diff --git a/assets/favicon.png b/assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc2e3db85d5aeb76f026457fa27f5518997df9d GIT binary patch literal 870 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%U;1OBOz`!jG!i)^F=172) z6bHFGF|0c$^AgBmNq6*hWMJ6X&;2Knm4Sijx2KC^NCo5DD~yZ`3OolEWdEOaexW0q zqQ&mtY#zIqQ#ct8u`nbuH5f2D%wSOPVGvMb;1FhL85JH4lOdiUzA^6m%DRsK(!5Gw PwqWpd^>bP0l+XkK)JLPc literal 0 HcmV?d00001 diff --git a/assets/logo.svg b/assets/logo.svg deleted file mode 100644 index 0fb65c0..0000000 --- a/assets/logo.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/components/Content.vue b/components/Content.vue deleted file mode 100644 index a14b461..0000000 --- a/components/Content.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/components/Counter.vue b/components/Counter.vue deleted file mode 100644 index f9dab8b..0000000 --- a/components/Counter.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/components/Link.vue b/components/Link.vue deleted file mode 100644 index 465c610..0000000 --- a/components/Link.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/components/Logo.vue b/components/Logo.vue deleted file mode 100644 index b79f91c..0000000 --- a/components/Logo.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/components/Sidebar.vue b/components/Sidebar.vue deleted file mode 100644 index f8c2e2d..0000000 --- a/components/Sidebar.vue +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/components/svg/Wordmark.vue b/components/svg/Wordmark.vue new file mode 100644 index 0000000..f1e550e --- /dev/null +++ b/components/svg/Wordmark.vue @@ -0,0 +1,15 @@ + diff --git a/pages/+Head.vue b/pages/+Head.vue index 7babb56..efe51c2 100644 --- a/pages/+Head.vue +++ b/pages/+Head.vue @@ -1,9 +1,7 @@ - + diff --git a/pages/+Layout.vue b/pages/+Layout.vue index 8048dd3..c4a51ef 100644 --- a/pages/+Layout.vue +++ b/pages/+Layout.vue @@ -2,22 +2,11 @@ - + diff --git a/pages/star-wars/@id/+Page.vue b/pages/star-wars/@id/+Page.vue deleted file mode 100644 index 9e9e091..0000000 --- a/pages/star-wars/@id/+Page.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/pages/star-wars/@id/+data.ts b/pages/star-wars/@id/+data.ts deleted file mode 100644 index 64cb7b5..0000000 --- a/pages/star-wars/@id/+data.ts +++ /dev/null @@ -1,33 +0,0 @@ -// https://vike.dev/data - -import type { PageContextServer } from 'vike/types' -import { useConfig } from 'vike-vue/useConfig' -import type { MovieDetails } from '../types.js' - -export type Data = Awaited> - -export async function data(pageContext: PageContextServer) { - // https://vike.dev/useConfig - const config = useConfig() - - const response = await fetch( - `https://brillout.github.io/star-wars/api/films/${pageContext.routeParams.id}.json`, - ) - let movie = (await response.json()) as MovieDetails - - config({ - // Set - title: movie.title, - }) - - // We remove data we don't need because the data is passed to - // the client; we should minimize what is sent over the network. - movie = minimize(movie) - - return { movie } -} - -function minimize(movie: MovieDetails): MovieDetails { - const { id, title, release_date, director, producer } = movie - return { id, title, release_date, director, producer } -} diff --git a/pages/star-wars/index/+Page.vue b/pages/star-wars/index/+Page.vue deleted file mode 100644 index f4b7cd2..0000000 --- a/pages/star-wars/index/+Page.vue +++ /dev/null @@ -1,23 +0,0 @@ -<template> - <h1>Star Wars Movies</h1> - <ol> - <li v-for="item in movies" :key="item.id"> - <a :href="'/star-wars/' + item.id">{{ item.title }}</a> ({{ - item.release_date - }}) - </li> - </ol> - <p> - Source: - <a href="https://brillout.github.io/star-wars" - >brillout.github.io/star-wars</a - >. - </p> -</template> - -<script lang="ts" setup> -import { useData } from 'vike-vue/useData' -import type { Data } from './+data.js' - -const { movies } = useData<Data>() -</script> diff --git a/pages/star-wars/index/+data.ts b/pages/star-wars/index/+data.ts deleted file mode 100644 index 2d624b1..0000000 --- a/pages/star-wars/index/+data.ts +++ /dev/null @@ -1,34 +0,0 @@ -// https://vike.dev/data - -import { useConfig } from 'vike-vue/useConfig' -import type { Movie, MovieDetails } from '../types.js' - -export type Data = Awaited<ReturnType<typeof data>> - -export async function data() { - // https://vike.dev/useConfig - const config = useConfig() - - const response = await fetch( - 'https://brillout.github.io/star-wars/api/films.json', - ) - const moviesData = (await response.json()) as MovieDetails[] - - config({ - // Set <title> - title: `${moviesData.length} Star Wars Movies`, - }) - - // We remove data we don't need because the data is passed to the client; we should - // minimize what is sent over the network. - const movies = minimize(moviesData) - - return { movies } -} - -function minimize(movies: MovieDetails[]): Movie[] { - return movies.map((movie) => { - const { title, release_date, id } = movie - return { title, release_date, id } - }) -} diff --git a/pages/star-wars/types.ts b/pages/star-wars/types.ts deleted file mode 100644 index 10e88d5..0000000 --- a/pages/star-wars/types.ts +++ /dev/null @@ -1,10 +0,0 @@ -export type Movie = { - id: string - title: string - release_date: string -} - -export type MovieDetails = Movie & { - director: string - producer: string -} diff --git a/pages/todo/+Page.vue b/pages/todo/+Page.vue deleted file mode 100644 index 1c0e0f2..0000000 --- a/pages/todo/+Page.vue +++ /dev/null @@ -1,10 +0,0 @@ -<template> - <div> - <h1>To-do List</h1> - <TodoList /> - </div> -</template> - -<script lang="ts" setup> -import TodoList from './TodoList.vue' -</script> diff --git a/pages/todo/+data.ts b/pages/todo/+data.ts deleted file mode 100644 index db17948..0000000 --- a/pages/todo/+data.ts +++ /dev/null @@ -1,15 +0,0 @@ -// https://vike.dev/data - -import type { PageContextServer } from 'vike/types' - -export type Data = Awaited<ReturnType<typeof data>> - -export async function data(_pageContext: PageContextServer) { - // NOTE: This +data hook is only for demonstration — it doesn't actually retrieve data from a database. - // Go to https://vike.dev/new and select a database to scaffold an app with a persisted to-do list. - const todoItemsInitial = [ - { text: 'Buy milk' }, - { text: 'Buy strawberries' }, - ] - return { todoItemsInitial } -} diff --git a/pages/todo/TodoList.vue b/pages/todo/TodoList.vue deleted file mode 100644 index 21a530c..0000000 --- a/pages/todo/TodoList.vue +++ /dev/null @@ -1,30 +0,0 @@ -<template> - <ul> - <li v-for="(item, index) in todoItems" :key="index"> - {{ item.text }} - </li> - <li> - <form @submit.prevent="submitNewTodo()"> - <input v-model="newTodo" type="text" /> - - <button type="submit">Add to-do</button> - </form> - </li> - </ul> -</template> - -<script lang="ts" setup> -import type { Data } from './+data' -import { useData } from 'vike-vue/useData' -import { ref } from 'vue' - -const { todoItemsInitial } = useData<Data>() -const todoItems = ref<{ text: string }[]>(todoItemsInitial) -const newTodo = ref('') - -const submitNewTodo = async () => { - const text = newTodo.value - todoItems.value.push({ text }) - newTodo.value = '' -} -</script> diff --git a/vite.config.ts b/vite.config.ts index 0983a7a..d37411a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,13 @@ +import { fileURLToPath, URL } from 'node:url' import vue from '@vitejs/plugin-vue' import vike from 'vike/plugin' import { defineConfig } from 'vite' export default defineConfig({ plugins: [vike(), vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./', import.meta.url)), + }, + }, })