summaryrefslogtreecommitdiff
path: root/src/pages
diff options
context:
space:
mode:
authorJoe Carstairs <65492573+Sycamost@users.noreply.github.com>2023-12-17 14:06:23 +0000
committerGitHub <noreply@github.com>2023-12-17 14:06:23 +0000
commitfe9844b8eac1daf3eeedf141e223d0733c892fa0 (patch)
treee89ac30c35b3cd518c563db965fd44197cf0a6a0 /src/pages
parent250152cc1b6a67bd18f4b211856fa98ec06d8eda (diff)
Update production from staging (#48)
* Edit README (#28) * Corrects Lallans instructions * Adds instructions for adding a Scotsoun release * Documents infrastructure * Better contribution guidance * Update README (#29) * Updates references to branch names in README * ESLint ignores Markdown * Documents Coding Style * Specifies upstream branch in README where salient * Fixes Sangschaw winners list in Eiks 30 (#35) * Fixes Sangschaw winners list in Eiks 30 (#36) * Fixes Sangschaw winners list in Eiks 30 (#38) * Eiks 31 (#41) * Eiks 31 * Prettier dl's * Prettier headings --------- Co-authored-by: Joe Carstairs <jcarstairs@scottlogic.com> * Reorder news (#42) * Reslugs news items * Fixes typo in getMostRecentNewsItem() * Fixes typo in newUtils.getDate() * Sorts news index from most recent to oldest * Eiks 31 fixes (#43) * Eiks 31 fixes * Improves list styling * Links to Leid title track on YouTube (#45) * Eiks 31 fixes (#47) * Links to Leid title track on YouTube * Corrects Sangschaw pricing * Update production (#37) (#49) * Edit README (#28) * Corrects Lallans instructions * Adds instructions for adding a Scotsoun release * Documents infrastructure * Better contribution guidance * Update README (#29) * Updates references to branch names in README * ESLint ignores Markdown * Documents Coding Style * Specifies upstream branch in README where salient * Fixes Sangschaw winners list in Eiks 30 (#35) * Fixes Sangschaw winners list in Eiks 30 (#36) * Fixes Sangschaw winners list in Eiks 30 (#38) --------- Co-authored-by: Joe Carstairs <jcarstairs@scottlogic.com>
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/[locale]/news/[...slug].astro23
-rw-r--r--src/pages/[locale]/news/index.astro6
2 files changed, 8 insertions, 21 deletions
diff --git a/src/pages/[locale]/news/[...slug].astro b/src/pages/[locale]/news/[...slug].astro
index e3b8b36..a24e65a 100644
--- a/src/pages/[locale]/news/[...slug].astro
+++ b/src/pages/[locale]/news/[...slug].astro
@@ -1,28 +1,13 @@
---
-import locales from '$i18n/locales';
import Article from '$layouts/Article.astro';
-import type Locale from '$types/Locale';
-import { CollectionEntry, getCollection } from 'astro:content';
+import { getCollection } from 'astro:content';
+import { getLocale, getSlug } from '$lib/newsUtils';
export async function getStaticPaths() {
- function localeFromSlug(slug: CollectionEntry<'news'>['slug']): Locale | undefined {
- const lowerCaseLocale = new RegExp(`^(${locales.map((l) => l.toLocaleLowerCase()).join('|')})`);
- const matchedLowerCaseLocale = slug.match(lowerCaseLocale)?.[1];
- switch (matchedLowerCaseLocale) {
- case 'sco':
- return 'sco';
- case 'en-gb':
- return 'en-GB';
- default:
- console.warn('Could not find locale in slug %s', slug);
- return undefined;
- }
- }
-
return (await getCollection('news')).map((entry) => ({
params: {
- slug: entry.slug.replace('/', '-'),
- locale: localeFromSlug(entry.slug),
+ slug: getSlug(entry),
+ locale: getLocale(entry),
},
props: { entry },
}));
diff --git a/src/pages/[locale]/news/index.astro b/src/pages/[locale]/news/index.astro
index 37e7dd6..112f87b 100644
--- a/src/pages/[locale]/news/index.astro
+++ b/src/pages/[locale]/news/index.astro
@@ -5,12 +5,14 @@ import Page from '$layouts/Page.astro';
import { getLocaleFromPathOrThrow } from '$lib/getLocaleFromPath';
import localeStaticPaths from '$lib/localeStaticPaths';
import { getCollection } from 'astro:content';
-import { isNewsItemInLocale } from '$lib/newsUtils';
+import { isBefore, isNewsItemInLocale } from '$lib/newsUtils';
import NewsIndex from '$components/NewsIndex/NewsIndex.astro';
const allNews = await getCollection('news');
const locale = getLocaleFromPathOrThrow(Astro.url.pathname);
-const allNewsInLocale = allNews.filter((item) => isNewsItemInLocale(item, locale));
+const allNewsInLocale = allNews
+ .filter((item) => isNewsItemInLocale(item, locale))
+ .sort((a, b) => (isBefore(a, b) ? 1 : isBefore(b, a) ? -1 : 0));
const t = translate(locale);
export async function getStaticPaths() {