@@ -11,16 +11,26 @@ const getPostMetadata = (getDrafts: boolean = false): PostMetadata[] => {
11
11
12
12
const posts : PostMetadata [ ] = markdownPosts . map (
13
13
( fileName ) : Partial < PostMetadata > => {
14
- const fileContents = fs . readFileSync ( `${ folder } ${ fileName } ` , 'utf8' ) ;
15
- const matterResult = matter ( fileContents ) ;
16
-
17
- return {
18
- title : matterResult . data . title ,
19
- date : matterResult . data . date ,
20
- tags : matterResult . data . tags ,
21
- wordcount : ( matterResult . content . match ( / \b \w + \b / gu) || [ ] ) . length ,
22
- slug : fileName . replace ( '.md' , '' ) ,
23
- } ;
14
+ try {
15
+ const fileContents = fs . readFileSync ( `${ folder } ${ fileName } ` , 'utf8' ) ;
16
+ const matterResult = matter ( fileContents ) ;
17
+
18
+ return {
19
+ title : matterResult . data . title ,
20
+ date : matterResult . data . date ,
21
+ tags : matterResult . data . tags ,
22
+ wordcount : ( matterResult . content . match ( / \b \w + \b / gu) || [ ] ) . length ,
23
+ slug : fileName . replace ( '.md' , '' ) ,
24
+ } ;
25
+ } catch ( error ) {
26
+ console . error ( `Error parsing frontmatter in file: ${ fileName } ` ) ;
27
+ console . error ( error ) ;
28
+ // Return a minimal object to prevent the entire function from failing
29
+ return {
30
+ title : `Error in ${ fileName } ` ,
31
+ slug : fileName . replace ( '.md' , '' ) ,
32
+ } ;
33
+ }
24
34
}
25
35
) as PostMetadata [ ] ;
26
36
0 commit comments