Updated Teslafest as well
All checks were successful
/ get-version (push) Successful in 3s
/ astro-check (push) Successful in 13s
/ check-tag (push) Successful in 2s
/ checking (push) Successful in 27s
/ build-site (push) Successful in 1m47s
/ auto-deploy-dockge (push) Successful in 11s
/ create-release (push) Successful in 28s
All checks were successful
/ get-version (push) Successful in 3s
/ astro-check (push) Successful in 13s
/ check-tag (push) Successful in 2s
/ checking (push) Successful in 27s
/ build-site (push) Successful in 1m47s
/ auto-deploy-dockge (push) Successful in 11s
/ create-release (push) Successful in 28s
This commit is contained in:
parent
1cf59e0bea
commit
fdb9fd183f
47 changed files with 397 additions and 47 deletions
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "fgo-ta-com-website",
|
"name": "fgo-ta-com-website",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.2.2-pre.14",
|
"version": "0.2.2-pre.15",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev",
|
"dev": "astro dev",
|
||||||
"start": "astro dev",
|
"start": "astro dev",
|
||||||
|
|
BIN
src/assets/ta_servants/167.png
Normal file
BIN
src/assets/ta_servants/167.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
BIN
src/assets/ta_servants/340.png
Normal file
BIN
src/assets/ta_servants/340.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
|
@ -11,12 +11,20 @@ export interface Props {
|
||||||
const { maintext, subtext, fadeout, baseurl, returnbutton } = Astro.props
|
const { maintext, subtext, fadeout, baseurl, returnbutton } = Astro.props
|
||||||
const displayFadeout = fadeout ? "": "display: none"
|
const displayFadeout = fadeout ? "": "display: none"
|
||||||
const displayBackButton = returnbutton ? "": "display: none"
|
const displayBackButton = returnbutton ? "": "display: none"
|
||||||
|
|
||||||
|
let text
|
||||||
|
if (baseurl) {
|
||||||
|
text = baseurl?.split("/").pop()
|
||||||
|
text = text?.replace("-", " ").replace("-", ".")
|
||||||
|
text = text?.includes('eq 20') ? text?.replace("eq", "EQ") : text
|
||||||
|
}
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<div class="head">{maintext}</div>
|
<div class="head">{maintext}</div>
|
||||||
<div class="sub">{subtext}</div>
|
<div class="sub">{subtext}</div>
|
||||||
<a href=`/${baseurl}` style={displayBackButton}><< Back to {baseurl}</a>
|
<a href=`/${baseurl}` style={displayBackButton}><< Back to {text}</a>
|
||||||
<div class="fade" style={displayFadeout}></div>
|
<div class="fade" style={displayFadeout}></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -53,5 +53,6 @@ export const collections = {
|
||||||
taInfoData: taData,
|
taInfoData: taData,
|
||||||
teslafest: taData,
|
teslafest: taData,
|
||||||
groups: groupDescription,
|
groups: groupDescription,
|
||||||
|
teslafestgroups: groupDescription,
|
||||||
changes: changes,
|
changes: changes,
|
||||||
}
|
}
|
||||||
|
|
48
src/content/taInfoData/lostbelt-6-5/kiyohime.json
Normal file
48
src/content/taInfoData/lostbelt-6-5/kiyohime.json
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"title": "Kiyohime",
|
||||||
|
"releaseDate": "2024-05-13",
|
||||||
|
"shortdescription": "Help, there is an angry dragon snek that wants to burn me for slightly lying to her",
|
||||||
|
"releaseNumber": 2
|
||||||
|
},
|
||||||
|
"quests": [
|
||||||
|
{
|
||||||
|
"questTitle": "Kiyohime",
|
||||||
|
"description": "",
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"title": "S.Karna Karna Arjuna Junao 5T",
|
||||||
|
"link": "https://youtu.be/f039x5OIl6E",
|
||||||
|
"date": "2024-05-18",
|
||||||
|
"servant": "247",
|
||||||
|
"turns": "5T",
|
||||||
|
"runner": "Akise"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Baobhan Arash Habetrot 5T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=a7V5W8MkxO8",
|
||||||
|
"date": "2024-05-31",
|
||||||
|
"servant": "311",
|
||||||
|
"turns": "5T",
|
||||||
|
"runner": "Mikazuki"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Cindereli Habenya Douman Arash 5T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=7Z0Fn8tBV4E",
|
||||||
|
"date": "2024-05-14",
|
||||||
|
"servant": "326",
|
||||||
|
"turns": "5T",
|
||||||
|
"runner": "Loki"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Daikokuten 5T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=Q7v_joSJmNg",
|
||||||
|
"date": "2024-05-20",
|
||||||
|
"servant": "340",
|
||||||
|
"turns": "5T",
|
||||||
|
"runner": "TokuHer0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
64
src/content/taInfoData/lostbelt-6-5/kriemhild.json
Normal file
64
src/content/taInfoData/lostbelt-6-5/kriemhild.json
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"title": "Kriemhild",
|
||||||
|
"releaseDate": "2024-05-13",
|
||||||
|
"shortdescription": "Trying to get Kriemhild acting sane when she's a Berserker and pitted against her husband - Challenge Impossible",
|
||||||
|
"releaseNumber": 3
|
||||||
|
},
|
||||||
|
"quests": [
|
||||||
|
{
|
||||||
|
"questTitle": "Kriemhild",
|
||||||
|
"description": "",
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"title": "Skadi 2T",
|
||||||
|
"link": "https://youtu.be/OtNYsaM13G4",
|
||||||
|
"date": "2024-05-14",
|
||||||
|
"servant": "215",
|
||||||
|
"turns": "2T",
|
||||||
|
"runner": "Firq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Baobhan 2T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=GmUUF0aiXik",
|
||||||
|
"date": "2024-05-18",
|
||||||
|
"servant": "311",
|
||||||
|
"turns": "2T",
|
||||||
|
"runner": "Mikazuki"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Melusine 2T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=9X5Znfw6dWk",
|
||||||
|
"date": "2024-05-20",
|
||||||
|
"servant": "312_aoe",
|
||||||
|
"turns": "2T",
|
||||||
|
"runner": "TokuHer0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Nero (Caster) 2T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=-rK9rpJIFDA",
|
||||||
|
"date": "2024-05-20",
|
||||||
|
"servant": "175",
|
||||||
|
"turns": "2T",
|
||||||
|
"runner": "Lutrec"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Morgan 2T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=8mg123LnifQ",
|
||||||
|
"date": "2024-05-14",
|
||||||
|
"servant": "309",
|
||||||
|
"turns": "2T",
|
||||||
|
"runner": "Loki"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Bazett 1T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=Zgn8tlXStiI",
|
||||||
|
"date": "2024-05-22",
|
||||||
|
"servant": "336",
|
||||||
|
"turns": "1T",
|
||||||
|
"runner": "Mikazuki"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
80
src/content/taInfoData/lostbelt-6-5/moriarty.json
Normal file
80
src/content/taInfoData/lostbelt-6-5/moriarty.json
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"title": "Moriarty",
|
||||||
|
"releaseDate": "2024-05-13",
|
||||||
|
"shortdescription": "The epic showdown at the Reichenbach Falls - A worthy finale against the Big Bad Evil of this Lostbelt",
|
||||||
|
"releaseNumber": 4
|
||||||
|
},
|
||||||
|
"quests": [
|
||||||
|
{
|
||||||
|
"questTitle": "Moriarty",
|
||||||
|
"description": "",
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"title": "Nero Bride 4T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=wWM5yvCeiIA",
|
||||||
|
"date": "2024-05-25",
|
||||||
|
"servant": "90",
|
||||||
|
"turns": "4T",
|
||||||
|
"runner": "Lutrec"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Morgan 4T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=42pTDuQwsQg",
|
||||||
|
"date": "2024-05-16",
|
||||||
|
"servant": "309",
|
||||||
|
"turns": "4T",
|
||||||
|
"runner": "Loki"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Arjuna Alter 4T (FLO)",
|
||||||
|
"link": "https://www.youtube.com/watch?v=egmZQvRseX8",
|
||||||
|
"date": "2024-05-23",
|
||||||
|
"servant": "247",
|
||||||
|
"turns": "4T",
|
||||||
|
"runner": "Akise"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Da Vinci Ruler 4T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=LUFHZXy0F14",
|
||||||
|
"date": "2024-05-27",
|
||||||
|
"servant": "320",
|
||||||
|
"turns": "4T",
|
||||||
|
"runner": "Lutrec"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Taira 4T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=qU_9PFh04Og",
|
||||||
|
"date": "2024-05-19",
|
||||||
|
"servant": "303",
|
||||||
|
"turns": "4T",
|
||||||
|
"runner": "Patrick Bandeira"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Taira 4T (Solo)",
|
||||||
|
"link": "https://www.youtube.com/watch?v=PaTeIqKSdVA",
|
||||||
|
"date": "2024-05-16",
|
||||||
|
"servant": "303",
|
||||||
|
"turns": "4T",
|
||||||
|
"runner": "Felt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Bazett 3T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=_7vDBCqLlhU",
|
||||||
|
"date": "2024-05-21",
|
||||||
|
"servant": "336",
|
||||||
|
"turns": "3T",
|
||||||
|
"runner": "TokuHer0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "Kiara 4T",
|
||||||
|
"link": "https://www.youtube.com/watch?v=gEa8VJOy2Eg",
|
||||||
|
"date": "2024-05-19",
|
||||||
|
"servant": "167",
|
||||||
|
"turns": "4T",
|
||||||
|
"runner": "im poketar"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
9
src/content/teslafestgroups/eq-2020.json
Normal file
9
src/content/teslafestgroups/eq-2020.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"title": "Exhibition Quests 2020",
|
||||||
|
"releaseDate": "2024-03-15",
|
||||||
|
"shortdescription": "The return of the 2020 Nerofest Exhibition Quests - time to go for round 2",
|
||||||
|
"releaseNumber": 1,
|
||||||
|
"type": "group"
|
||||||
|
}
|
||||||
|
}
|
9
src/content/teslafestgroups/eq-2021.json
Normal file
9
src/content/teslafestgroups/eq-2021.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"title": "Exhibition Quests 2021",
|
||||||
|
"releaseDate": "2024-03-15",
|
||||||
|
"shortdescription": "The return of the 2021 Ishtarfest Exhibition Quests - time to run those again",
|
||||||
|
"releaseNumber": 2,
|
||||||
|
"type": "group"
|
||||||
|
}
|
||||||
|
}
|
9
src/content/teslafestgroups/giga-coil.json
Normal file
9
src/content/teslafestgroups/giga-coil.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"title": "Giga Coil",
|
||||||
|
"releaseDate": "2024-03-15",
|
||||||
|
"shortdescription": "The second collection of old Challenge Quests that requires strategic of servants - let's go again",
|
||||||
|
"releaseNumber": 4,
|
||||||
|
"type": "group"
|
||||||
|
}
|
||||||
|
}
|
9
src/content/teslafestgroups/mega-coil.json
Normal file
9
src/content/teslafestgroups/mega-coil.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"title": "Mega Coil",
|
||||||
|
"releaseDate": "2024-03-15",
|
||||||
|
"shortdescription": "A collection of old Challenge Quests that requires strategic use of a full servant roster - be prepared",
|
||||||
|
"releaseNumber": 3,
|
||||||
|
"type": "group"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,15 +1,17 @@
|
||||||
---
|
---
|
||||||
export interface Props {
|
export interface Props {
|
||||||
title: string
|
title: string
|
||||||
|
hidetitle?: boolean
|
||||||
description: string
|
description: string
|
||||||
}
|
}
|
||||||
|
|
||||||
const { title, description } = Astro.props
|
const { title, hidetitle, description } = Astro.props
|
||||||
|
const override = hidetitle ? "display: None" : ""
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="base">
|
<div class="base">
|
||||||
<h1>{title}</h1>
|
<h1 style={override}>{title}</h1>
|
||||||
<h2>{description}</h2>
|
<h2 style={override}>{description}</h2>
|
||||||
<div>
|
<div>
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -17,6 +17,7 @@ const { collection, collectionKey, baseurl } = Astro.props
|
||||||
const taEntry = await plsLoadTAEntry(collectionKey, collection)
|
const taEntry = await plsLoadTAEntry(collectionKey, collection)
|
||||||
const pagetitle = `${taEntry.info.title} - FGO TA`
|
const pagetitle = `${taEntry.info.title} - FGO TA`
|
||||||
const displaystate = taEntry.quests[0].data.length > 0 ? 'none' : 'flex'
|
const displaystate = taEntry.quests[0].data.length > 0 ? 'none' : 'flex'
|
||||||
|
const hidetitle = taEntry.quests.length <= 1
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout
|
<Layout
|
||||||
|
@ -33,7 +34,7 @@ const displaystate = taEntry.quests[0].data.length > 0 ? 'none' : 'flex'
|
||||||
/>
|
/>
|
||||||
{
|
{
|
||||||
taEntry.quests.map((item) => (
|
taEntry.quests.map((item) => (
|
||||||
<BaseSection title={item.questTitle} description={item.description}>
|
<BaseSection title={item.questTitle} description={item.description} hidetitle={hidetitle}>
|
||||||
{item.data
|
{item.data
|
||||||
.sort((a, b) => b.date.valueOf() - a.date.valueOf())
|
.sort((a, b) => b.date.valueOf() - a.date.valueOf())
|
||||||
.map((item) => (
|
.map((item) => (
|
||||||
|
|
|
@ -78,6 +78,12 @@ export async function getStaticPaths() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const { key, group, questinfo, pageinfo } = Astro.props
|
const { key, group, questinfo, pageinfo } = Astro.props
|
||||||
|
|
||||||
|
let baseurl_return = "database"
|
||||||
|
if (key.includes("/")) {
|
||||||
|
baseurl_return = baseurl_return + "/" + key.split("/", 1)[0]
|
||||||
|
}
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -85,7 +91,7 @@ const { key, group, questinfo, pageinfo } = Astro.props
|
||||||
<TaShowcaseLayout
|
<TaShowcaseLayout
|
||||||
collection="taInfoData"
|
collection="taInfoData"
|
||||||
collectionKey={key}
|
collectionKey={key}
|
||||||
baseurl="database"
|
baseurl={baseurl_return}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
122
src/pages/teslafest/[...slug].astro
Normal file
122
src/pages/teslafest/[...slug].astro
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
---
|
||||||
|
import { getCollection } from 'astro:content'
|
||||||
|
import TaShowcaseLayout from '../../layouts/taShowcaseLayout.astro'
|
||||||
|
import Layout from '../../layouts/Layout.astro'
|
||||||
|
import DatabaseSection from '../../layouts/databaseSection.astro'
|
||||||
|
import QuestListing from '../../components/listings/questListingCard.astro'
|
||||||
|
import SmallTitle from '../../components/smallTitle.astro'
|
||||||
|
|
||||||
|
interface store {
|
||||||
|
slug: string
|
||||||
|
group: boolean
|
||||||
|
questinfo:
|
||||||
|
| undefined
|
||||||
|
| {
|
||||||
|
slug: string
|
||||||
|
info: {
|
||||||
|
title: string
|
||||||
|
releaseDate: Date
|
||||||
|
shortdescription: string
|
||||||
|
releaseNumber: number
|
||||||
|
}
|
||||||
|
}[]
|
||||||
|
pageinfo:
|
||||||
|
| undefined
|
||||||
|
| {
|
||||||
|
title: string
|
||||||
|
shortdescription: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getStaticPaths() {
|
||||||
|
const fulldata = await getCollection('teslafest')
|
||||||
|
const slugdata: store[] = fulldata.map((data) => {
|
||||||
|
return {
|
||||||
|
slug: data.id,
|
||||||
|
group: false,
|
||||||
|
questinfo: undefined,
|
||||||
|
pageinfo: undefined,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const groupdata = await getCollection('teslafestgroups')
|
||||||
|
const groups: store[] = groupdata.map((data) => {
|
||||||
|
return {
|
||||||
|
slug: data.id,
|
||||||
|
group: true,
|
||||||
|
questinfo: undefined,
|
||||||
|
pageinfo: undefined,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const full = slugdata.concat(groups as any)
|
||||||
|
full.map((data) => {
|
||||||
|
if (data.group) {
|
||||||
|
const coll = fulldata.filter((d) => d.id.split("/", 1)[0] == data.slug)
|
||||||
|
data.questinfo = coll.map((d) => {
|
||||||
|
return { slug: d.id, info: d.data.info }
|
||||||
|
})
|
||||||
|
data.questinfo.sort(
|
||||||
|
(a, b) =>
|
||||||
|
b.info.releaseDate.valueOf() - a.info.releaseDate.valueOf() ||
|
||||||
|
b.info.releaseNumber - a.info.releaseNumber
|
||||||
|
)
|
||||||
|
const page = groupdata.find((d) => d.id === data.slug)
|
||||||
|
data.pageinfo = page?.data.info
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return full.map((data) => ({
|
||||||
|
params: { slug: data.slug },
|
||||||
|
props: {
|
||||||
|
key: data.slug,
|
||||||
|
group: data.group,
|
||||||
|
questinfo: data.questinfo,
|
||||||
|
pageinfo: data.pageinfo,
|
||||||
|
},
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
const { key, group, questinfo, pageinfo } = Astro.props
|
||||||
|
|
||||||
|
let baseurl_return = "teslafest"
|
||||||
|
if (key.includes("/")) {
|
||||||
|
baseurl_return = baseurl_return + "/" + key.split("/", 1)[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
{
|
||||||
|
!group && (
|
||||||
|
<TaShowcaseLayout
|
||||||
|
collection="teslafest"
|
||||||
|
collectionKey={key}
|
||||||
|
baseurl={baseurl_return}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
group && (
|
||||||
|
<Layout
|
||||||
|
title={`${pageinfo!.title} - Teslafest - FGO TA`}
|
||||||
|
currentpage="teslafest"
|
||||||
|
descriptionOverride={pageinfo!.shortdescription}
|
||||||
|
>
|
||||||
|
<SmallTitle
|
||||||
|
maintext={pageinfo!.title}
|
||||||
|
subtext={pageinfo!.shortdescription}
|
||||||
|
fadeout={true}
|
||||||
|
baseurl="teslafest"
|
||||||
|
returnbutton={true}
|
||||||
|
/>
|
||||||
|
<DatabaseSection title="" titlehidden={true}>
|
||||||
|
{questinfo!.map((quest) => (
|
||||||
|
<QuestListing
|
||||||
|
{...{ ...quest.info, slug: quest.slug }}
|
||||||
|
baseurl="teslafest"
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</DatabaseSection>
|
||||||
|
</Layout>
|
||||||
|
)
|
||||||
|
}
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
import { getCollection } from 'astro:content';
|
|
||||||
import TaShowcaseLayout from '../../layouts/taShowcaseLayout.astro'
|
|
||||||
|
|
||||||
export async function getStaticPaths() {
|
|
||||||
const fulldata = (await getCollection('teslafest')).map((data) => data.id)
|
|
||||||
return fulldata.map((slug) => ({ params: { slug } }))
|
|
||||||
}
|
|
||||||
|
|
||||||
const { slug } = Astro.params
|
|
||||||
---
|
|
||||||
|
|
||||||
<TaShowcaseLayout collection="teslafest" collectionKey={slug} baseurl="teslafest" />
|
|
|
@ -1,23 +1,28 @@
|
||||||
---
|
---
|
||||||
import { getCollection } from 'astro:content';
|
import { getCollection } from 'astro:content'
|
||||||
import Layout from '../../layouts/Layout.astro'
|
import Layout from '../../layouts/Layout.astro'
|
||||||
import QuestListing from '../../components/listings/questListingCard.astro'
|
import QuestListing from '../../components/listings/questListingLine.astro'
|
||||||
import DatabaseSection from '../../layouts/databaseSection.astro'
|
import DatabaseSection from '../../layouts/databaseSection.astro'
|
||||||
import SmallTitle from '../../components/smallTitle.astro';
|
import SmallTitle from '../../components/smallTitle.astro'
|
||||||
|
|
||||||
const description = 'One of the most anticipated events of 2024 - Teslafest. Were the two weeks of time enough for all those quests, even with a parallel lottery?'
|
const description =
|
||||||
|
'One of the most anticipated events of 2024 - Teslafest. Were the two weeks of time enough for all those quests, even with a parallel lottery?'
|
||||||
const fulldata = await getCollection('teslafest')
|
const fulldata = await getCollection('teslafest')
|
||||||
|
const groups = await getCollection('teslafestgroups')
|
||||||
|
|
||||||
fulldata.sort(
|
let combined = fulldata
|
||||||
(a, b) => b.data.info.releaseDate.valueOf() - a.data.info.releaseDate.valueOf() || b.data.info.releaseNumber - a.data.info.releaseNumber
|
for (const group of groups) {
|
||||||
|
combined = combined.filter((data) => !data.id.startsWith(group.id))
|
||||||
|
}
|
||||||
|
combined = combined.concat(groups as any)
|
||||||
|
|
||||||
|
combined.sort(
|
||||||
|
(a, b) =>
|
||||||
|
b.data.info.releaseDate.valueOf() - a.data.info.releaseDate.valueOf() ||
|
||||||
|
b.data.info.releaseNumber - a.data.info.releaseNumber
|
||||||
)
|
)
|
||||||
|
|
||||||
const gc = fulldata.filter((value) => value.id.startsWith("gc-"))
|
console.log(combined)
|
||||||
const mc = fulldata.filter((value) => value.id.startsWith("mc-"))
|
|
||||||
const cq = fulldata.filter((value) => value.id.startsWith("cq-"))
|
|
||||||
const eq_2021 = fulldata.filter((value) => value.id.startsWith("eq-2021"))
|
|
||||||
const eq_2020 = fulldata.filter((value) => value.id.startsWith("eq-2020"))
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout
|
<Layout
|
||||||
|
@ -25,21 +30,11 @@ const eq_2020 = fulldata.filter((value) => value.id.startsWith("eq-2020"))
|
||||||
currentpage="teslafest"
|
currentpage="teslafest"
|
||||||
descriptionOverride={description}
|
descriptionOverride={description}
|
||||||
>
|
>
|
||||||
<SmallTitle maintext='TESLA­FEST' subtext='' fadeout={true}/>
|
<SmallTitle maintext="TESLAFEST" subtext={description} fadeout={true} />
|
||||||
<DatabaseSection title="Challenge Quest">
|
<DatabaseSection title="NA Runs" titlehidden={true} displayLine={true}>
|
||||||
{cq.map((quest) => <QuestListing { ...{...quest.data.info, slug: quest.id} } baseurl="teslafest" />)}
|
{
|
||||||
</DatabaseSection>
|
combined.map((quest) => { return (<QuestListing {...{ ...quest.data.info, slug: quest.id }} baseurl="teslafest" />)})
|
||||||
<DatabaseSection title="Giga Coil">
|
}
|
||||||
{gc.map((quest) => <QuestListing { ...{...quest.data.info, slug: quest.id} } baseurl="teslafest" />)}
|
|
||||||
</DatabaseSection>
|
|
||||||
<DatabaseSection title="Mega Coil">
|
|
||||||
{mc.map((quest) => <QuestListing { ...{...quest.data.info, slug: quest.id} } baseurl="teslafest" />)}
|
|
||||||
</DatabaseSection>
|
|
||||||
<DatabaseSection title="Exhibition Quests: 2020 Revival">
|
|
||||||
{eq_2020.map((quest) => <QuestListing { ...{...quest.data.info, slug: quest.id} } baseurl="teslafest" />)}
|
|
||||||
</DatabaseSection>
|
|
||||||
<DatabaseSection title="Exhibition Quests: 2021 Revival">
|
|
||||||
{eq_2021.map((quest) => <QuestListing { ...{...quest.data.info, slug: quest.id} } baseurl="teslafest" />)}
|
|
||||||
</DatabaseSection>
|
</DatabaseSection>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue