From ef828e5f2be1862340fbfdaac52a93818521eca6 Mon Sep 17 00:00:00 2001 From: Xnoe Date: Sun, 12 Jul 2020 21:35:51 +0100 Subject: [PATCH] Added basic support for front matter --- main.cpp | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/main.cpp b/main.cpp index dfc1e90..4d70ff5 100644 --- a/main.cpp +++ b/main.cpp @@ -13,24 +13,43 @@ char* read(const char* name) { file_stream.seekg(0, file_stream.end); int length = file_stream.tellg(); file_stream.seekg(0, file_stream.beg); - char* data = (char*) calloc(length, 1); + char* data = (char*) calloc(length+1, 1); file_stream.read(data, length); file_stream.close(); return data; } -string32 readfile(const char* name) { - char* data = read(name); +string32 readfile(std::string name) { + char* data = read(name.c_str()); string32 file = string32 (data); free (data); return file; } +struct frontMatter { + char* layout; + string32 parsed; + frontMatter(string32 unparsedPage) { + std::vector lines = unparsedPage.split("\n"); + if (lines.front() == "---") { + int line = 1; + for (;lines[line]!="---";line++) { + std::vector dataToParse = lines[line].split(": "); + if (dataToParse[0] == "layout") + layout = dataToParse[1].asChar(); + } + line++; + for (;line