diff --git a/assets/favicon.png b/assets/favicon.png new file mode 100644 index 0000000..bbc2e3d Binary files /dev/null and b/assets/favicon.png differ 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)), + }, + }, })