refactor: extract getSlugFromFile()
This commit is contained in:
parent
ee4f48abcd
commit
1ed365b129
|
@ -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 },
|
||||||
|
|
|
@ -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 }
|
||||||
})
|
})
|
||||||
|
|
|
@ -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 },
|
||||||
|
|
|
@ -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
5
website/src/utils.ts
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
export function getSlugFromFile(file: string): string {
|
||||||
|
const parts = file.replace('.md', '').split('/')
|
||||||
|
|
||||||
|
return parts[parts.length - 1]
|
||||||
|
}
|
Loading…
Reference in a new issue