84 lines
2.2 KiB
JavaScript
Executable File
84 lines
2.2 KiB
JavaScript
Executable File
const fs = require('fs');
|
|
const serverPath = require("./serverPath.js")
|
|
|
|
const filePath = serverPath+'/blogs/index.html';
|
|
const blogs = require(serverPath+"/blogs/blogs.js")
|
|
|
|
function daysIntoYear(date){
|
|
return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - Date.UTC(date.getFullYear(), 0, 0)) / 24 / 60 / 60 / 1000;
|
|
}
|
|
function escapeQuotes(value) {
|
|
return value.replace(/["'&<>]/g, function (char) {
|
|
switch (char) {
|
|
case '"':
|
|
return """;
|
|
case "'":
|
|
return "'";
|
|
case "&":
|
|
return "&";
|
|
case "<":
|
|
return "<";
|
|
case ">":
|
|
return ">";
|
|
default:
|
|
return char;
|
|
}
|
|
});
|
|
}
|
|
console.log(blogs)
|
|
|
|
let linksText = "<a href='blogs/all.html'>ALL POSTS</a><ul>"
|
|
|
|
let dateObject
|
|
let month
|
|
let year
|
|
|
|
let oldMonth = "blibidy blob"
|
|
let oldYear = "bloopy aw"
|
|
|
|
for (let page = blogs.length - 1; page >= 0; page--) {
|
|
date = new Date(blogs[page][2])
|
|
day_of_year = daysIntoYear(date).toString(16)
|
|
year = date.getUTCFullYear().toString(16)
|
|
|
|
|
|
|
|
if (year != oldYear) {
|
|
linksText += (`<h4>${year}</h4>`)
|
|
}
|
|
|
|
linksText += (`<li class="indent">${day_of_year}: <a href='/blog/${page}.html'>${escapeQuotes(blogs[page][0])}</a></li>`)
|
|
|
|
oldYear = year
|
|
}
|
|
|
|
linksText += "</ul>"
|
|
|
|
// Step 2: Read the HTML file
|
|
fs.readFile(filePath, 'utf8', (err, data) => {
|
|
if (err) {
|
|
console.error(err);
|
|
return;
|
|
}
|
|
|
|
// Step 3: Identify the target div
|
|
const targetDivId = 'links';
|
|
|
|
// Step 4: Create the new content (e.g., a paragraph element)
|
|
const newContent = linksText
|
|
|
|
// Step 5: Replace the existing content in the target div
|
|
const regex = new RegExp(`<div id="${targetDivId}">([\\s\\S]*?)<\/div>`);
|
|
const updatedData = data.replace(regex, `<div id="${targetDivId}">${newContent}</div>`);
|
|
|
|
// Step 6: Save the updated content back to the file
|
|
fs.writeFile(filePath, updatedData, 'utf8', (err) => {
|
|
if (err) {
|
|
console.error(err);
|
|
return;
|
|
}
|
|
|
|
console.log('Content replaced successfully in ', filePath);
|
|
});
|
|
});
|