From ab8226ce63fd707dcfb0b21d199cb936718435d2 Mon Sep 17 00:00:00 2001 From: Caleb Date: Tue, 12 Sep 2017 20:51:40 -0600 Subject: [PATCH] Infer front-matter type on our own. --- src/formats/frontmatter.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/formats/frontmatter.js b/src/formats/frontmatter.js index 7aaaf035..6006bc72 100644 --- a/src/formats/frontmatter.js +++ b/src/formats/frontmatter.js @@ -8,9 +8,21 @@ preliminaries(true); yamlParser(true); tomlParser(true); +function inferFrontmatterFormat(str) { + const firstLine = str.substr(0, str.indexOf('\n')).trim(); + switch (firstLine) { + case "---": + return { lang: "yaml", delims: "---" }; + case "+++": + return { lang: "toml", delims: "+++" }; + case "{": + return { lang: "json", delims: ["{", "}"] }; + } +} + export default class Frontmatter { fromFile(content) { - const result = preliminaries.parse(content); + const result = preliminaries.parse(content, inferFrontmatterFormat(content)); const data = result.data; data.body = result.content; return data;