recipes.data.ts 767 B

12345678910111213141516171819202122232425262728
  1. import { createContentLoader } from 'vitepress'
  2. export interface Recipe {
  3. title: string
  4. url: string
  5. excerpt: string | undefined
  6. thumbnail?: string
  7. difficulty?: number
  8. }
  9. declare const data: Recipe[]
  10. export { data }
  11. export default createContentLoader('/**/cookbook/*.md', {
  12. excerpt: true,
  13. transform(raw): Recipe[] {
  14. return raw
  15. .map(({ url, frontmatter, excerpt }) => ({
  16. title: frontmatter.title,
  17. url,
  18. lang: url.split('/')[1].length === 2 ? url.split('/')[1] : 'en',
  19. thumbnail: frontmatter.thumbnail,
  20. difficulty: frontmatter.difficulty,
  21. excerpt: frontmatter.excerpt || frontmatter.description || excerpt,
  22. })).filter(recipe => recipe.title)
  23. .sort((a, b) => b.title - a.title)
  24. },
  25. })