fix: handle page metadata parse failure
This commit is contained in:
		| @@ -192,35 +192,39 @@ module.exports = class Page extends Model { | ||||
|    */ | ||||
|   static parseMetadata (raw, contentType) { | ||||
|     let result | ||||
|     switch (contentType) { | ||||
|       case 'markdown': | ||||
|         result = frontmatterRegex.markdown.exec(raw) | ||||
|         if (result[2]) { | ||||
|           return { | ||||
|             ...yaml.safeLoad(result[2]), | ||||
|             content: result[3] | ||||
|           } | ||||
|         } else { | ||||
|           // Attempt legacy v1 format | ||||
|           result = frontmatterRegex.legacy.exec(raw) | ||||
|     try { | ||||
|       switch (contentType) { | ||||
|         case 'markdown': | ||||
|           result = frontmatterRegex.markdown.exec(raw) | ||||
|           if (result[2]) { | ||||
|             return { | ||||
|               title: result[2], | ||||
|               description: result[4], | ||||
|               content: result[5] | ||||
|               ...yaml.safeLoad(result[2]), | ||||
|               content: result[3] | ||||
|             } | ||||
|           } else { | ||||
|             // Attempt legacy v1 format | ||||
|             result = frontmatterRegex.legacy.exec(raw) | ||||
|             if (result[2]) { | ||||
|               return { | ||||
|                 title: result[2], | ||||
|                 description: result[4], | ||||
|                 content: result[5] | ||||
|               } | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|         break | ||||
|       case 'html': | ||||
|         result = frontmatterRegex.html.exec(raw) | ||||
|         if (result[2]) { | ||||
|           return { | ||||
|             ...yaml.safeLoad(result[2]), | ||||
|             content: result[3] | ||||
|           break | ||||
|         case 'html': | ||||
|           result = frontmatterRegex.html.exec(raw) | ||||
|           if (result[2]) { | ||||
|             return { | ||||
|               ...yaml.safeLoad(result[2]), | ||||
|               content: result[3] | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|         break | ||||
|           break | ||||
|       } | ||||
|     } catch (err) { | ||||
|       WIKI.logger.warn('Failed to parse page metadata. Invalid syntax.') | ||||
|     } | ||||
|     return { | ||||
|       content: raw | ||||
|   | ||||
		Reference in New Issue
	
	Block a user