Skip to content
View muvinduransara's full-sized avatar

Block or report muvinduransara

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
muvinduransara/README.md

Blog System Documentation

Overview

This is a modern, responsive blog system integrated with your personal portfolio website. The blog features SEO optimization, pagination, search functionality, categories, tags, and a professional sidebar.

Directory Structure

blog/
β”œβ”€β”€ index.html              # Main blog listing page
β”œβ”€β”€ blog-styles.css         # All blog styling
β”œβ”€β”€ blog-script.js          # Blog functionality (search, pagination, etc.)
β”œβ”€β”€ posts/
β”‚   β”œβ”€β”€ post-1.html        # My Journey to Becoming a Software Engineer
β”‚   β”œβ”€β”€ post-2.html        # Java Programming Complete Beginner Guide
β”‚   β”œβ”€β”€ post-3.html        # How I Built My Personal Portfolio Website
β”‚   β”œβ”€β”€ post-4.html        # Building an AI Voice Assistant Using ESP32
β”‚   β”œβ”€β”€ post-5.html        # Modern Web Development in 2026
β”‚   β”œβ”€β”€ post-6.html        # How Developers Should Use GitHub Professionally
β”‚   β”œβ”€β”€ post-7.html        # Getting Started with Arduino and ESP32
β”‚   β”œβ”€β”€ post-8.html        # Essential Skills Every Software Engineer Needs
β”‚   β”œβ”€β”€ post-9.html        # How AI is Changing Software Development
β”‚   └── post-10.html       # How to Build a Professional Developer Portfolio
└── assets/
    β”œβ”€β”€ featured-1.jpg     # Featured post image
    β”œβ”€β”€ blog-2.jpg         # Java post image
    └── [other post images]

Features

Main Blog Page (index.html)

  • Hero Section: Eye-catching banner with search functionality
  • Featured Post: Highlighted article with larger preview
  • Blog Grid: Responsive grid of all blog posts
  • Pagination: Navigate through blog posts with page numbers
  • Sidebar Widgets:
    • Categories (with post count)
    • Recent Posts
    • Popular Posts
    • Tags Cloud
    • Author Information
    • Newsletter Subscription

Individual Blog Post Pages (posts/post-*.html)

  • Hero Image Section: Large featured image with overlay
  • Post Metadata: Date, category, reading time
  • Table of Contents: Auto-generated navigation
  • Article Content: Full article with formatting
  • Social Share Buttons: Twitter, LinkedIn, Facebook, WhatsApp
  • Author Box: Author information and social links
  • Related Posts: Suggested reading
  • Post Navigation: Previous/Next post links
  • Responsive Design: Mobile, tablet, and desktop optimized

Functionality

  • Search: Real-time search across all posts
  • Category Filtering: Filter posts by category
  • Tag Filtering: Filter posts by tags
  • Pagination: 6 posts per page
  • Reading Time Estimation: Auto-calculated based on word count
  • Newsletter Subscription: Simple subscription form
  • Dark Mode: Professional dark theme throughout

Blog Post Data Structure

Posts are defined in blog-script.js with the following structure:

{
    id: 1,
    title: "Post Title",
    excerpt: "Short description of the post",
    category: "Category Name",
    date: "Month Day, Year",
    readingTime: 10,  // in minutes
    image: "assets/blog-1.jpg",
    tags: ["tag1", "tag2", "tag3"]
}

How to Add a New Blog Post

Step 1: Add Post Data

Edit blog/blog-script.js and add your post to the blogPosts array:

{
    id: 11,
    title: "Your Post Title",
    excerpt: "A brief excerpt about your post...",
    category: "Category Name",
    date: "Month Day, 2026",
    readingTime: 8,
    image: "assets/blog-11.jpg",
    tags: ["tag1", "tag2"]
}

Step 2: Create Post HTML

Copy one of the existing post templates (post-1.html, post-2.html, or post-3.html) and customize:

  • Change the title and description
  • Update the hero image reference
  • Modify the category and metadata
  • Write your article content
  • Update the previous/next post links

Step 3: Add Featured Image

Add your post image to the blog/assets/ folder with the name matching your post (e.g., blog-11.jpg).

Categories Available

  • Java
  • Web Development
  • Software Engineering
  • IoT
  • AI
  • Career
  • Projects
  • Tutorials

Tags Available

Use these or create new ones:

  • career
  • software-engineering
  • java
  • programming
  • web-development
  • portfolio
  • html, css, javascript
  • github
  • git
  • version-control
  • iot
  • esp32
  • arduino
  • embedded-systems
  • ai
  • machine-learning
  • skills
  • professional-development

Styling Customization

Color Variables (blog-styles.css)

--blog-primary: #001a2e;
--blog-accent: #598ad4;
--blog-accent-light: rgba(89, 138, 212, 0.1);
--blog-text: #f3f4f6;
--blog-text-muted: #94a3b8;
--blog-bg: #151312;
--blog-surface: #0d192e;
--blog-border: #1e293b;

Modify Colors

Edit the :root section in blog-styles.css to change the color scheme.

SEO Optimization

Already Implemented

  • Meta descriptions on all pages
  • Open Graph tags for social sharing
  • Semantic HTML structure
  • Proper heading hierarchy
  • Image alt text
  • Readable URLs
  • Mobile-responsive design

Recommendations

  • Update meta descriptions for each post
  • Add schema.org structured data
  • Submit sitemap to search engines
  • Use descriptive file names for images
  • Optimize images for web

Performance Tips

  1. Image Optimization

    • Use WebP format when possible
    • Compress images (TinyPNG, ImageOptim)
    • Use appropriately sized images
  2. Code Optimization

    • CSS is already minified
    • JavaScript is optimized
    • Use lazy loading for images
  3. Caching

    • Enable browser caching
    • Use CDN for static assets

Responsive Breakpoints

  • Desktop: 1024px and above
  • Tablet: 768px - 1023px
  • Mobile: Below 768px

Navigation Integration

The blog is linked from the main website navigation:

<a href="blog/index.html">Blog</a>

Future Enhancements

Consider adding:

  • Comment system (Disqus, CommentBox)
  • Social sharing plugins
  • Email newsletter integration
  • Blog analytics
  • Full-text search API
  • Related posts algorithm
  • Reading progress indicator
  • Dark/Light theme toggle
  • RSS feed

Support

For issues or questions, refer to the individual HTML files for detailed examples.


Created for Muvindu Ransara's Professional Portfolio Software Engineer | Full-Stack Web Developer | Java Developer | IoT & AI Enthusiast

Popular repositories Loading

  1. muvindu muvindu Public

    My personal website

    CSS

  2. muvinduransara muvinduransara Public

    HTML

  3. AxionSL AxionSL Public

    CSS

  4. OpenOcta OpenOcta Public