2022-12-25 17:17:35 -05:00

71 lines
1.7 KiB
JavaScript

function main()
{
var projects = getProjects();
if (projects == undefined)
{
console.error("No projects found.");
return;
}
var template = getTemplate();
if (template == undefined)
{
console.error("Template not found.");
return;
}
var divs = populateTemplates(projects, template);
insertProjects(divs);
}
function getProjects()
{
const projectsPath = "/data/projects.json";
request.open("GET", projectsPath, false);
request.send(null);
var str = request.responseText;
return JSON.parse(str);
}
function getTemplate()
{
const templatePath = "/templates/project.html";
request.open("GET", templatePath, false);
request.send(null);
return request.responseText;
}
function populateTemplates(json, template)
{
var total = "";
for (var i = 0; i < json.projects.length; i++)
{
var project = json.projects[i];
var str = template;
str = globalThis.extras.replaceVarsBlock(str, "%id%", project.id);
str = globalThis.extras.replaceVarsBlock(str, "%name%", project.name);
str = globalThis.extras.replaceVarsBlock(str, "%description%", project.description);
str = globalThis.extras.replaceVarsBlock(str, "%link%", project.link);
str = globalThis.extras.replaceVarsBlock(str, "%date%", project.date);
str = globalThis.extras.replaceVarsBlock(str, "<!--img-->", project.img == undefined ? "" : project.img);
total += str;
}
return total;
}
function insertProjects(projects)
{
var html = document.documentElement.innerHTML;
while (html.includes("<!--projects-->")) html = html.replace("<!--projects-->", projects);
document.documentElement.innerHTML = html;
}
main();