My first try/project about getting my websites generated dinamically in C++ and a library. https://git.thepra.dev/thepra/MyWebsitesGenerator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

108 lines
2.1 KiB

#pragma once
#include <iostream>
#include <string>
#include <fstream>
#include <experimental/filesystem>
using namespace std;
using namespace std::experimental::filesystem::v1;
class Utilities
{
protected:
const string meta = "meta";
const string link = "link";
const string rel = "rel";
const string href = "href";
const string http_equiv = "http-equiv";
const string content = "content";
const string name = "name";
const string li = "li";
const string ul = "ul";
const string a = "a";
const string src = "src";
const string alt = "alt";
public:
static enum DeskOrMob
{
D, //Desktop part of the page
M //Mobile part of the page
};
DeskOrMob setDM = D;
enum Levels
{
ROOT,//Content at the index.html directory level
LEVEL1,//Content at the first directory
LEVEL2//Content at the second directory
};
enum Sites
{
DEV,//Build the thepra-dev.com
ART//Build the art.thepra-dev.com
};
enum PageType
{
NORMAL,
POST
};
static string ChooseLevel(Levels level);
static void FullFillContent(string link, string* desktop, string* mobile);
static string GetCurrentPath();
};
inline string Utilities::ChooseLevel(Levels level)
{
switch (level)
{
case Utilities::ROOT:return "";
break;
case Utilities::LEVEL1:return "../";
break;
case Utilities::LEVEL2:return "../../";
default:return "";
break;
}
}
inline void Utilities::FullFillContent(string link, string* desktop, string* mobile)
{
//link = "C:\\content\\index.txt"; //TODO find out a general way to scan the folder env
Utilities a = Utilities();
string line = "";
std::ifstream infile;
infile.open(link);
while (!infile.eof())
{
std::getline(infile, line);
if (line == "desktop")
{
line = "";
a.setDM = D;
}
if (a.setDM == D)
{
if (line == "mobile")
{
line = "";
a.setDM = M;
}
*desktop += line + "\n";
}
if (a.setDM == M)
{
*mobile += line + "\n";
}
}
infile.close();
}
inline string Utilities::GetCurrentPath()
{
path current = current_path();
string pathString = current.string();
cout << pathString << endl;
return pathString;
}