diff --git a/src/utils/slugify.ts b/src/utils/slugify.ts index 9bfb5b3..a33c2d8 100644 --- a/src/utils/slugify.ts +++ b/src/utils/slugify.ts @@ -1,9 +1,13 @@ -const slugify = (str: string) => - str - .toLowerCase() - .replace(/ /g, "-") - .replace(/[^\w-]+/g, ""); +import GithubSlugger from "github-slugger"; +import type { Frontmatter } from "src/types"; -export const slufigyAll = (arr: string[]) => arr.map((str) => slugify(str)); +const slugger = GithubSlugger.slug; + +export const slugifyStr = (str: string) => slugger(str); + +const slugify = (frontmatter: Frontmatter) => + frontmatter.slug ? frontmatter.slug : slugger(frontmatter.title); + +export const slufigyAll = (arr: string[]) => arr.map((str) => slugifyStr(str)); export default slugify;