diff --git a/pages/cv.vue b/pages/cv.vue index 4bce9cf..269b562 100644 --- a/pages/cv.vue +++ b/pages/cv.vue @@ -381,8 +381,8 @@ useHead({ .year-header { font-size: 12px; - font-weight: 600; - color: #333; + font-weight: 300; + color: #7F7F7F; margin-bottom: 6px; } diff --git a/pages/events.vue b/pages/events.vue index 32d7764..5a311b1 100644 --- a/pages/events.vue +++ b/pages/events.vue @@ -40,12 +40,15 @@

lectures

-
-
-
- {{ item.formatted_date }}: {{item.location}} -
- {{ talk.title }} +
+

{{ yearGroup.year }}

+
+
+
+ {{item.location}} +
+ {{ talk.title }} +
@@ -60,13 +63,13 @@ transform: (events) => { for (const event of events) { let date = new Date(event.start_date) - event.formatted_date = ("0" + (date.getMonth() + 1)).slice(-2) + "." + ("0" + date.getDate()).slice(-2) + "." + date.getFullYear() + event.formatted_date = ("0" + date.getDate()).slice(-2) + "." + ("0" + (date.getMonth() + 1)).slice(-2) + "." + date.getFullYear() } return events.sort((a,b) => new Date(b.start_date) - new Date(a.start_date)) } }) - const { data: lectures } = await useFetch('/api/talks', { + const { data: talksData } = await useFetch('/api/talks', { transform: (events) => { for (const event of events) { let date = new Date(event.date) @@ -85,6 +88,24 @@ } }) + const lecturesByYear = computed(() => { + if (!talksData.value) return [] + + const byYear = {} + for (const talk of talksData.value) { + const year = talk.date ? talk.date.getFullYear() : 'Unknown' + if (!byYear[year]) byYear[year] = [] + byYear[year].push(talk) + } + + return Object.keys(byYear) + .sort((a, b) => b - a) + .map(year => { + const talks = byYear[year].sort((a, b) => new Date(b.date) - new Date(a.date)) + return { year, talks } + }) + }) + useHead({ titleTemplate: 'Michael Winter - Events - Performances and Lectures' }) diff --git a/pages/index.vue b/pages/index.vue index d2da7fb..239c9d6 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -5,10 +5,10 @@

pieces

-

{{ item.year }}

+

{{ item.year }}

-
-
{{ work.title }}
+
+
diff --git a/pages/works_list.vue b/pages/works_list.vue index bff2280..e99ac0d 100644 --- a/pages/works_list.vue +++ b/pages/works_list.vue @@ -42,7 +42,7 @@ function formatDate(dateStr) { if (!dateStr) return '' const date = new Date(dateStr) if (isNaN(date)) return dateStr - return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }) + return ("0" + date.getDate()).slice(-2) + "." + ("0" + (date.getMonth() + 1)).slice(-2) + "." + date.getFullYear() } useHead({ @@ -134,13 +134,13 @@ useHead({ .cv-section h4 { font-size: 13px; - font-weight: 600; + font-weight: 300; text-transform: uppercase; letter-spacing: 0.8px; margin: 0 0 10px 0; padding-bottom: 4px; border-bottom: 1px solid #ccc; - color: #222; + color: #7F7F7F; } .intro {