refactor: remove blog and markdown test pages, update navigation links

- Deleted blog.html and associated blog post files (markdown-test, testddd, node-graphs, welcome).
- Updated index.html to use dynamic navigation links from navLinks.js.
- Enhanced MarkdownRenderer to include new heading pin elements.
- Implemented SVG bezier splines for blog post navigation.
- Adjusted CSS styles for blog layout and new elements.
This commit is contained in:
2026-05-10 23:29:02 +10:00
parent fabbb0539a
commit ba36cdd05b
13 changed files with 446 additions and 340 deletions

View File

@@ -3,6 +3,7 @@ const path = require('path');
const esbuild = require('esbuild');
const { execSync } = require('child_process');
const { StaticBlogGenerator } = require('./tools/StaticBlogGenerator');
const { renderNavLinkItems } = require('./tools/navLinks');
/**
* Parse YAML front matter from markdown content
@@ -38,13 +39,14 @@ function parseMarkdownWithFrontmatter(content) {
/**
* Process blog markdown files and generate blogs.json, also update graph.json
* @param {string} buildDir - Path to the build output directory
*/
async function processBlogPosts() {
async function processBlogPosts(buildDir) {
const blogDir = path.join(__dirname, 'website', 'data', 'blog');
const outputPath = path.join(__dirname, 'website', 'data', 'blogs.json');
const graphPath = path.join(__dirname, 'website', 'data', 'graph.json');
const outputPath = path.join(buildDir, 'data', 'blogs.json');
const graphPath = path.join(buildDir, 'data', 'graph.json');
const staticBlogGenerator = new StaticBlogGenerator({
siteRootDir: path.join(__dirname, 'website')
siteRootDir: buildDir
});
try {
@@ -322,6 +324,11 @@ async function updateHtmlForBundle() {
);
html = html.replace(/src="\/scripts\/blogPage\.js"/g, 'src="/scripts/blogPage.bundle.js"');
html = html.replace(
/[ \t]*<!-- NAV_LINKS -->/g,
renderNavLinkItems(' ')
);
await fs.writeFile(filePath, html);
}
@@ -357,8 +364,9 @@ async function updateHtmlForBundle() {
// Run the build
async function build() {
await processBlogPosts();
const buildDir = path.join(__dirname, 'build');
await copyWebsiteFiles();
await processBlogPosts(buildDir);
await bundleJavaScript();
await minifyCSS();
await updateHtmlForBundle();