Exploring the intersection of knowledge and creativity
- Modular Architecture: Clean separation of concerns with reusable components
- Responsive Design: Mobile-first approach with modern CSS Grid and Flexbox
- Performance Optimized: Lazy loading, preloading, and efficient asset management
- SEO Friendly: Proper meta tags, Open Graph, and Twitter Card support
- Analytics Integration: GoatCounter for privacy-friendly visitor tracking
- Build Automation: Automated page generation and asset optimization
readmuch.github.io/
├── components/ # Reusable HTML components
│ ├── header.html # Site header template
│ ├── footer.html # Site footer with analytics
│ └── head.html # Common head section
├── config/ # Configuration files
│ └── site-config.json # Site settings and content data
├── js/ # JavaScript modules
│ ├── config.js # Configuration loader
│ ├── pagination.js # Pagination functionality
│ └── analytics.js # Analytics and visitor tracking
├── styles/ # Modular CSS architecture
│ ├── base.css # CSS custom properties and base styles
│ ├── components.css # Reusable UI components
│ ├── layout.css # Layout and responsive design
│ ├── main.css # Main page styles (imports modules)
│ └── category.css # Category page styles (imports modules)
├── images/ # Static assets
├── Book/ # Book category posts
├── Education/ # Education category posts
├── Life/ # Lifestyle category posts
├── Tech/ # Technology category posts
├── MindNotes/ # Mind Notes category posts
├── build.js # Build automation script
├── package.json # Project dependencies and scripts
└── README.md # This file
- Node.js 14.0.0 or higher
- npm or yarn
- Clone the repository:
git clone https://github.com/readmuch/readmuch.github.io.git
cd readmuch.github.io
- Install dependencies:
npm install
- Build all pages:
npm run build
- Development mode with watch:
npm run dev
- Start local server:
npm run serve
- Build and serve:
npm start
- Add a new post: Add your HTML file to the appropriate category folder
- Update configuration: Add the post to
config/site-config.json
- Rebuild: Run
npm run build
to regenerate pages
- Update configuration: Add category data to
config/site-config.json
- Add category image: Place image in
images/
folder - Rebuild: Run
npm run build
to generate new category page
Edit CSS custom properties in styles/base.css
:
:root {
--background-color: #1e1e1e;
--accent-color: #4a9eff;
--text-color: #ffffff;
/* ... more variables */
}
Update GoatCounter settings in config/site-config.json
:
{
"analytics": {
"goatcounter": {
"id": "your-goatcounter-id",
"url": "https://your-id.goatcounter.com"
}
}
}
This site uses GoatCounter for privacy-friendly analytics:
- No cookies or personal data collection
- GDPR compliant
- Real-time visitor statistics
- Page view tracking
The build script (build.js
) automates:
- Template Rendering: Generates HTML from reusable components
- Configuration Management: Loads site settings from JSON
- Asset Optimization: Handles preloading and resource management
- Page Generation: Creates all pages from templates and data
- Mobile-first: Optimized for mobile devices
- CSS Grid: Modern layout system for desktop
- Flexbox: Flexible component layouts
- Media Queries: Breakpoints at 768px and 480px
- Lazy Loading: Images load only when needed
- Preloading: Critical assets loaded early
- Minimal JavaScript: Lightweight, modular JS
- Optimized CSS: Modular architecture with efficient selectors
MIT License - see LICENSE file for details
- Fork the repository
- Create a feature branch
- Make your changes
- Test with
npm run build
- Submit a pull request
Built with ❤️ by Readmuch