diff --git a/Resources/Output/Aardvark.html b/Resources/Output/Aardvark.html
index 20dabfe..8feb0ed 100644
--- a/Resources/Output/Aardvark.html
+++ b/Resources/Output/Aardvark.html
@@ -16,6 +16,10 @@
Example Post
Welcome!
+Newer Work
+This Site
+
+
Older Work
Mind Map Maker
AardvarkXR
@@ -23,8 +27,7 @@
Tower defence game
-Newer Work
-This Site
+Thoughts And Essays
University
diff --git a/Resources/Output/CatTowerDefence.html b/Resources/Output/CatTowerDefence.html
index 69bcb3e..c4a9dcc 100644
--- a/Resources/Output/CatTowerDefence.html
+++ b/Resources/Output/CatTowerDefence.html
@@ -16,6 +16,10 @@
Example Post
Welcome!
+Newer Work
+This Site
+
+
Older Work
Mind Map Maker
AardvarkXR
@@ -23,8 +27,7 @@
Tower defence game
-Newer Work
-This Site
+Thoughts And Essays
University
diff --git a/Resources/Output/EPQProject.html b/Resources/Output/EPQProject.html
index d1f7d46..f82f91c 100644
--- a/Resources/Output/EPQProject.html
+++ b/Resources/Output/EPQProject.html
@@ -16,6 +16,10 @@
Example Post
Welcome!
+Newer Work
+This Site
+
+
Older Work
Mind Map Maker
AardvarkXR
@@ -23,8 +27,7 @@
Tower defence game
-Newer Work
-This Site
+Thoughts And Essays
University
diff --git a/Resources/Output/MindMap.html b/Resources/Output/MindMap.html
index 2903d51..fa62f0d 100644
--- a/Resources/Output/MindMap.html
+++ b/Resources/Output/MindMap.html
@@ -16,6 +16,10 @@
Example Post
Welcome!
+Newer Work
+This Site
+
+
Older Work
Mind Map Maker
AardvarkXR
@@ -23,8 +27,7 @@
Tower defence game
-Newer Work
-This Site
+Thoughts And Essays
University
diff --git a/Resources/Output/SBSWork.html b/Resources/Output/SBSWork.html
index 064457d..3856204 100644
--- a/Resources/Output/SBSWork.html
+++ b/Resources/Output/SBSWork.html
@@ -16,6 +16,10 @@
Example Post
Welcome!
+Newer Work
+This Site
+
+
Older Work
Mind Map Maker
AardvarkXR
@@ -23,8 +27,7 @@
Tower defence game
-Newer Work
-This Site
+Thoughts And Essays
University
diff --git a/Resources/Output/TestFullArticle.html b/Resources/Output/TestFullArticle.html
index 975a76e..76aa107 100644
--- a/Resources/Output/TestFullArticle.html
+++ b/Resources/Output/TestFullArticle.html
@@ -16,6 +16,10 @@
Example Post
Welcome!
+Newer Work
+This Site
+
+
Older Work
Mind Map Maker
AardvarkXR
@@ -23,8 +27,7 @@
Tower defence game
-Newer Work
-This Site
+Thoughts And Essays
University
diff --git a/Resources/Output/Wireframe.css b/Resources/Output/Wireframe.css
index e4f0ca1..1f3a31b 100644
--- a/Resources/Output/Wireframe.css
+++ b/Resources/Output/Wireframe.css
@@ -17,11 +17,12 @@ nav{
}
nav h1{
- font-size: 1.2rem;
+ font-size: 1.3rem;
}
nav h2{
font-size: 1rem;
+ margin-bottom: 0;
}
article{
diff --git a/Resources/Output/index.html b/Resources/Output/index.html
index e86beaf..73a2b63 100644
--- a/Resources/Output/index.html
+++ b/Resources/Output/index.html
@@ -16,6 +16,10 @@
Example Post
Welcome!
+Newer Work
+This Site
+
+
Older Work
Mind Map Maker
AardvarkXR
@@ -23,8 +27,7 @@
Tower defence game
-Newer Work
-This Site
+Thoughts And Essays
University
diff --git a/Resources/Static/Wireframe.css b/Resources/Static/Wireframe.css
index 5db2986..1f3a31b 100644
--- a/Resources/Static/Wireframe.css
+++ b/Resources/Static/Wireframe.css
@@ -17,11 +17,12 @@ nav{
}
nav h1{
- font-size: 1rem;
+ font-size: 1.3rem;
}
nav h2{
font-size: 1rem;
+ margin-bottom: 0;
}
article{
diff --git a/Src/BlogPageBuilder.cpp b/Src/BlogPageBuilder.cpp
index 01b041e..a083299 100644
--- a/Src/BlogPageBuilder.cpp
+++ b/Src/BlogPageBuilder.cpp
@@ -14,7 +14,10 @@ BlogPageBuilder::BlogPageBuilder(std::string templateFileUrl, std::string inFold
parser = new BlogParser();
collectPages();
- navSection = generateNavSection();
+
+ NavBarGenerator* navGen = new NavBarGenerator();
+ navSection = navGen->generateNavSection(pages, options);
+ delete navGen;
}
BlogPageBuilder::~BlogPageBuilder()
@@ -65,9 +68,12 @@ void BlogPageBuilder::collectPages()
}
}
-std::string BlogPageBuilder::generateCategories(std::string rootFolderUrl)
+std::string NavBarGenerator::generateCategories(std::string rootFolderUrl)
{
std::stringstream buffer;
+
+ std::set categories;
+
auto directoryIterator = std::filesystem::directory_iterator(rootFolderUrl);
for (auto folder : directoryIterator)
{
@@ -76,16 +82,20 @@ std::string BlogPageBuilder::generateCategories(std::string rootFolderUrl)
std::string path = folder.path();
std::string folderName = path.substr(path.find_last_of("/")+1, path.length()-path.find_last_of("/"));
- buffer << "\n" << folderName << "
\n";
- buffer << generateCategories(folder.path());
- buffer << "\n";
-
+ categories.insert(folderName);
}
}
+
+ for (std::string category : categories)
+ {
+ buffer << "\n" << category << "
\n";
+ buffer << generateCategories(rootFolderUrl + "/" + category);
+ buffer << "\n";
+ }
return buffer.str();
}
-std::string BlogPageBuilder::findDeepestCategory(std::string url)
+std::string NavBarGenerator::findDeepestCategory(std::string url)
{
int categoryEnd = url.rfind("/");
int categoryStart = url.rfind("/", categoryEnd-1);
@@ -94,7 +104,7 @@ std::string BlogPageBuilder::findDeepestCategory(std::string url)
return url.substr(categoryStart, categoryEnd);
}
-std::string BlogPageBuilder::insertPagesIntoCategories(std::string categories)
+std::string NavBarGenerator::insertPagesIntoCategories(std::string categories, std::vector pages)
{
for (Page* page : pages)
{
@@ -122,12 +132,13 @@ std::string BlogPageBuilder::insertPagesIntoCategories(std::string categories)
return categories;
}
-std::string BlogPageBuilder::generateNavSection()
+std::string NavBarGenerator::generateNavSection(std::vector pages, int options)
{
+ this->options = options;
std::string buffer;
buffer.append(navHeader);
buffer.append(generateCategories(SOURCE_FILE_FOLDER));
- buffer = insertPagesIntoCategories(buffer);
+ buffer = insertPagesIntoCategories(buffer, pages);
return buffer;
}
@@ -144,3 +155,8 @@ bool BlogPageBuilder::isOptionEnabled(int flag)
{
return (options & flag) == flag;
}
+
+bool NavBarGenerator::isOptionEnabled(int flag)
+{
+ return (options & flag) == flag;
+}
diff --git a/Src/BlogPageBuilder.h b/Src/BlogPageBuilder.h
index 5aa2eed..4ed2e2c 100644
--- a/Src/BlogPageBuilder.h
+++ b/Src/BlogPageBuilder.h
@@ -5,6 +5,7 @@
#include
#include
#include
+#include
#include "BlogParser.h"
#include "Page.h"
@@ -14,15 +15,30 @@
* along with an optional articleIdentifier. The template is searched for this
* and the blog is placed after it.
*/
-
-class BlogPageBuilder
-{
-public:
- enum OptionFlags
+enum OptionFlags
{
NONE = 0X0,
HIDE_PRIVATE = 0x1
};
+
+class NavBarGenerator
+{
+private:
+ std::string navHeader = "\nNavigation
\n\n";
+ int options;
+
+ std::string generateCategories(std::string rootFolderUrl);
+ std::string insertPagesIntoCategories(std::string categories, std::vector pages);
+ std::string findDeepestCategory(std::string url);
+
+ bool isOptionEnabled(int flag);
+
+public:
+ std::string generateNavSection(std::vector pages, int options);
+};
+
+class BlogPageBuilder
+{
private:
int options;
@@ -42,14 +58,6 @@ private:
int calculateIdentifierLocation(std::string id, std::string text);
void collectPages();
- // TODO separate these into a separate object
- std::string navHeader = "\nNavigation
\n\n";
-
- std::string generateNavSection();
- std::string generateCategories(std::string rootFolderUrl);
- std::string insertPagesIntoCategories(std::string categories);
- std::string findDeepestCategory(std::string url);
-
void createPage(Page* page);
bool isOptionEnabled(int flag);
diff --git a/Src/blog.cpp b/Src/blog.cpp
index 20861cb..8b23845 100644
--- a/Src/blog.cpp
+++ b/Src/blog.cpp
@@ -65,9 +65,9 @@ int main(int argc, char* argv[])
std::string output = getArgValue(argc, argv, "-out=");
if (output == "")
output = OUTPUT_FILE_FOLDER;
- int flags = BlogPageBuilder::OptionFlags::NONE;
+ int flags = OptionFlags::NONE;
if (doesArgExist(argc, argv, "-hide"))
- flags |= BlogPageBuilder::OptionFlags::HIDE_PRIVATE;
+ flags |= OptionFlags::HIDE_PRIVATE;
// generated pages
BlogPageBuilder* builder = new BlogPageBuilder(RESOURCE_FOLDER "/Templates/BlogPageTemplate.html", source, output, flags);