From 1ed365b1291a20a539d64116a3cc2d8f9c0e3689 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Sun, 16 Oct 2022 11:13:09 +0100 Subject: [PATCH] refactor: extract `getSlugFromFile()` --- website/src/pages/blog/[slug].astro | 4 ++-- website/src/pages/blog/index.astro | 4 ++-- website/src/pages/talks/[slug].astro | 4 ++-- website/src/pages/talks/index.astro | 5 ++--- website/src/utils.ts | 5 +++++ 5 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 website/src/utils.ts diff --git a/website/src/pages/blog/[slug].astro b/website/src/pages/blog/[slug].astro index 536db149..535580de 100644 --- a/website/src/pages/blog/[slug].astro +++ b/website/src/pages/blog/[slug].astro @@ -2,14 +2,14 @@ import AboutMe from '../../components/AboutMe.astro' import Layout from '../../layouts/Layout.astro' import Markdown from '../../components/Markdown.astro' +import { getSlugFromFile } from '../../utils.ts' export async function getStaticPaths() { const posts = await Astro.glob('../../posts/*.md') return posts .map(post => { - const parts = post.file.replace('.md', '').split('/') - const slug = parts[parts.length - 1] + const slug = getSlugFromFile(post.file) return { params: { slug }, diff --git a/website/src/pages/blog/index.astro b/website/src/pages/blog/index.astro index 8bff3188..6930911a 100644 --- a/website/src/pages/blog/index.astro +++ b/website/src/pages/blog/index.astro @@ -1,5 +1,6 @@ --- import PageLayout from '../../layouts/PageLayout.astro' +import { getSlugFromFile } from '../../utils.ts' const posts = await Astro.glob("../../posts/*.md") @@ -10,8 +11,7 @@ const filteredPosts = posts const sortedPosts = filteredPosts .map(post => { - const parts = post.file.replace('.md', '').split('/') - const slug = parts[parts.length - 1] + const slug = getSlugFromFile(post.file) return { post, slug } }) diff --git a/website/src/pages/talks/[slug].astro b/website/src/pages/talks/[slug].astro index 949d29c7..bf00b827 100644 --- a/website/src/pages/talks/[slug].astro +++ b/website/src/pages/talks/[slug].astro @@ -5,13 +5,13 @@ import Layout from '../../layouts/Layout.astro' import Markdown from '../../components/Markdown.astro' import Slides from '../../components/talk/Slides.astro' import Video from '../../components/talk/Video.astro' +import { getSlugFromFile } from '../../utils.ts' export async function getStaticPaths() { const talks = await Astro.glob('../../talks/*.md') return talks.map(talk => { - const parts = talk.file.replace('.md', '').split('/') - const slug = parts[parts.length - 1] + const slug = getSlugFromFile(talk.file) return { params: { slug }, diff --git a/website/src/pages/talks/index.astro b/website/src/pages/talks/index.astro index 7efa616e..dc9911c6 100644 --- a/website/src/pages/talks/index.astro +++ b/website/src/pages/talks/index.astro @@ -1,6 +1,6 @@ --- -import _ from 'lodash' import PageLayout from '../../layouts/PageLayout.astro' +import { getSlugFromFile } from '../../utils.ts' const talks = await Astro.glob("../../talks/*.md") @@ -10,8 +10,7 @@ const talkCount = _(talks) const sortedTalks = talks .map(talk => { - const parts = talk.file.replace('.md', '').split('/') - const slug = parts[parts.length - 1] + const slug = getSlugFromFile(talk.file) return { slug, talk } }) diff --git a/website/src/utils.ts b/website/src/utils.ts new file mode 100644 index 00000000..2b092eb3 --- /dev/null +++ b/website/src/utils.ts @@ -0,0 +1,5 @@ +export function getSlugFromFile(file: string): string { + const parts = file.replace('.md', '').split('/') + + return parts[parts.length - 1] +}