- {{ 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 {