(songs) hide songs for now

This commit is contained in:
Maciej Jur 2023-06-20 23:38:10 +02:00
parent e473edecdb
commit 09de7c070f
6 changed files with 7 additions and 109 deletions

View file

@ -18,10 +18,6 @@ const menu: MenuItem[] = [
name: 'Wiki', name: 'Wiki',
url: '/wiki/', url: '/wiki/',
}, },
{
name: 'Songs',
url: '/songs/',
},
{ {
name: 'Map', name: 'Map',
url: '/map/', url: '/map/',

View file

@ -30,5 +30,10 @@ export const collections = {
}) })
) )
}) })
}),
wiki: defineCollection({
schema: z.object({
title: z.string(),
})
}) })
} }

View file

@ -1,37 +0,0 @@
---
import Base from "@layouts/Base.astro";
import Grid from "@components/songs/AlbumGrid.astro";
import Header from "@components/headers/Base.astro";
import { CIRCLES } from "@utils/songs/data";
export async function getStaticPaths() {
return Object.keys(CIRCLES)
.map(circle => ({
params: { circle },
props: { albums: CIRCLES[circle].albums }
}))
}
interface Props {
albums: typeof CIRCLES[string]['albums'];
}
const circle = Astro.params.circle!;
const albums = Astro.props.albums;
const items = Object.keys(albums)
.map(slug => ({
title: albums[slug].title,
cover: albums[slug].cover,
url: `/songs/${circle}/${slug}/`
}))
---
<Base>
<main class="l-songs-circle">
<article class="l-songs-circle__article">
<Header title={CIRCLES[circle].name} />
<Grid albums={items} />
</article>
</main>
</Base>

View file

@ -1,55 +0,0 @@
---
import Base from "@layouts/Base.astro";
import Header from '@components/headers/Base.astro';
import { CollectionEntry, getCollection } from 'astro:content';
import { ALBUMS, getAllCats, order } from "@utils/songs/data";
import Info from "@components/songs/Info.astro";
export async function getStaticPaths() {
const songs = await getCollection('songs');
const cats = getAllCats(songs);
return [...cats].map(cat => ({
params: { circle: ALBUMS[cat].circle, cat },
props: {
songs: songs
.filter(entry => cat in entry.data.album)
.sort(order(cat))
.map(song => ({
frontmatter: song.data,
slug: `/songs/${ALBUMS[cat].circle}/${cat}/${song.slug}/`
}))
}
}))
}
interface Props {
songs: Array<{
frontmatter: CollectionEntry<'songs'>['data'],
slug: string,
}>
}
const cat = Astro.params.cat!;
const songs = Astro.props.songs;
const album = ALBUMS[cat];
---
<Base>
<main class="l-songs-aside">
<article class="l-songs-aside__page">
<Header title={album.title} />
<div class="l-songs-cat__list">
{songs.map(song => [
<span>{song.frontmatter.album[cat].track}</span>
<a href={song.slug}>{song.frontmatter.title}</a>
])}
</div>
</article>
<aside>
<Info image={album.cover} title={album.title} small={cat}/>
</aside>
</main>
</Base>

View file

@ -8,13 +8,13 @@ import { ALBUMS } from "@utils/songs/data";
export async function getStaticPaths() { export async function getStaticPaths() {
return (await getCollection('songs')) return []; /*(await getCollection('songs'))
.map(song => Object.keys(song.data.album) .map(song => Object.keys(song.data.album)
.map(cat => ({ .map(cat => ({
params: { circle: ALBUMS[cat].circle, cat, song: song.slug}, params: { circle: ALBUMS[cat].circle, cat, song: song.slug},
props: { song, cat } props: { song, cat }
}))) })))
.flat() .flat()*/
} }

View file

@ -1,11 +0,0 @@
---
import List from "../../layouts/List.astro";
import { CIRCLES } from "../../utils/songs/data";
const pages = Object.keys(CIRCLES)
.map(slug => ({ title: CIRCLES[slug].name, slug: `/songs/${slug}/` }))
.sort((a, b) => a.title < b.title ? -1 : 1)
---
<List title="Circles" pages={pages}/>