This is a static blog focused on home automation, networking, and system administration. The site is built using a custom static site generator that converts markdown files to HTML.
- Node.js - Core runtime for the build process
- Markdown - Content authoring format
- HTML/CSS - Static site output
- Giscus - GitHub-based commenting system
- RSS - Feed generation for content syndication
.
├── build.js # Main build script
├── templates/ # HTML templates
│ ├── index.html # Homepage template
│ └── post.html # Individual post template
├── posts/ # Markdown content
│ └── *.md # Individual post files
├── static/ # Static assets
│ └── styles.css # Optional additional styles
└── dist/ # Generated site
├── index.html # Generated homepage
├── rss.xml # Generated RSS feed
└── posts/ # Generated post HTML files
Posts are written in Markdown with YAML frontmatter. Each post should include:
---
title: Post Title
date: YYYY-MM-DD
category: Category Name
slug: url-friendly-title
---
Post content in Markdown...
title
: Post titledate
: Publication date (YYYY-MM-DD format)category
: Post category (e.g., "Home Automation", "Networking")slug
: URL-friendly identifier (optional, will be generated from title if not provided)
The site uses a custom Node.js build script that:
- Processes Markdown files with frontmatter
- Converts Markdown to HTML with syntax highlighting
- Calculates reading time for each post
- Generates individual post pages using the post template
- Creates an index page with category filtering
- Generates an RSS feed
- Minifies HTML output
# Install dependencies
npm install marked gray-matter html-minifier highlight.js
# Run build
node build.js
- Automatic system preference detection
- Manual toggle with persistent preference
- Syncs across pages
- Affects Giscus comments theme
- Dynamic category generation from posts
- Interactive filtering on the homepage
- Preserves filter state during navigation
- Automatically generated from posts
- Includes full post metadata
- Sorted by publication date
- Powered by Giscus
- GitHub Discussions backend
- Automatic theme syncing
- Reaction support
- Category filtering system
- Card-based post layout
- Dark mode support
- Responsive design
- Article formatting
- Code syntax highlighting
- Reading time display
- Giscus comments integration
- Navigation links
{
"dependencies": {
"marked": "For Markdown processing",
"gray-matter": "For frontmatter parsing",
"html-minifier": "For output optimization",
"highlight.js": "For code syntax highlighting"
}
}
- Update relevant template (
templates/index.html
ortemplates/post.html
) - Modify build script (
build.js
) to support new functionality - Test build process
- Deploy updated files
The dist/
directory contains the complete static site ready for deployment. Deploy these files to your web server or static hosting service.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request