refactor: extract getSlugFromFile()

This commit is contained in:
Oliver Davies 2022-10-16 11:13:09 +01:00
parent ee4f48abcd
commit 1ed365b129
5 changed files with 13 additions and 9 deletions

View file

@ -2,14 +2,14 @@
import AboutMe from '../../components/AboutMe.astro' import AboutMe from '../../components/AboutMe.astro'
import Layout from '../../layouts/Layout.astro' import Layout from '../../layouts/Layout.astro'
import Markdown from '../../components/Markdown.astro' import Markdown from '../../components/Markdown.astro'
import { getSlugFromFile } from '../../utils.ts'
export async function getStaticPaths() { export async function getStaticPaths() {
const posts = await Astro.glob('../../posts/*.md') const posts = await Astro.glob('../../posts/*.md')
return posts return posts
.map(post => { .map(post => {
const parts = post.file.replace('.md', '').split('/') const slug = getSlugFromFile(post.file)
const slug = parts[parts.length - 1]
return { return {
params: { slug }, params: { slug },

View file

@ -1,5 +1,6 @@
--- ---
import PageLayout from '../../layouts/PageLayout.astro' import PageLayout from '../../layouts/PageLayout.astro'
import { getSlugFromFile } from '../../utils.ts'
const posts = await Astro.glob("../../posts/*.md") const posts = await Astro.glob("../../posts/*.md")
@ -10,8 +11,7 @@ const filteredPosts = posts
const sortedPosts = filteredPosts const sortedPosts = filteredPosts
.map(post => { .map(post => {
const parts = post.file.replace('.md', '').split('/') const slug = getSlugFromFile(post.file)
const slug = parts[parts.length - 1]
return { post, slug } return { post, slug }
}) })

View file

@ -5,13 +5,13 @@ import Layout from '../../layouts/Layout.astro'
import Markdown from '../../components/Markdown.astro' import Markdown from '../../components/Markdown.astro'
import Slides from '../../components/talk/Slides.astro' import Slides from '../../components/talk/Slides.astro'
import Video from '../../components/talk/Video.astro' import Video from '../../components/talk/Video.astro'
import { getSlugFromFile } from '../../utils.ts'
export async function getStaticPaths() { export async function getStaticPaths() {
const talks = await Astro.glob('../../talks/*.md') const talks = await Astro.glob('../../talks/*.md')
return talks.map(talk => { return talks.map(talk => {
const parts = talk.file.replace('.md', '').split('/') const slug = getSlugFromFile(talk.file)
const slug = parts[parts.length - 1]
return { return {
params: { slug }, params: { slug },

View file

@ -1,6 +1,6 @@
--- ---
import _ from 'lodash'
import PageLayout from '../../layouts/PageLayout.astro' import PageLayout from '../../layouts/PageLayout.astro'
import { getSlugFromFile } from '../../utils.ts'
const talks = await Astro.glob("../../talks/*.md") const talks = await Astro.glob("../../talks/*.md")
@ -10,8 +10,7 @@ const talkCount = _(talks)
const sortedTalks = talks const sortedTalks = talks
.map(talk => { .map(talk => {
const parts = talk.file.replace('.md', '').split('/') const slug = getSlugFromFile(talk.file)
const slug = parts[parts.length - 1]
return { slug, talk } return { slug, talk }
}) })

5
website/src/utils.ts Normal file
View file

@ -0,0 +1,5 @@
export function getSlugFromFile(file: string): string {
const parts = file.replace('.md', '').split('/')
return parts[parts.length - 1]
}