Showcase of my pinned projects from GitHub, dynamically generated using a Node.js script. The site supports dark mode and is optimized for both desktop and mobile views.
- Dynamic Content: The projects are fetched from my GitHub profile using a scraping script.
- Responsive Design: The site is designed to look great on both desktop and mobile devices.
- Dark Mode: Toggle between light and dark mode with an iOS-style switch.
- HTML: Site structure.
- CSS: Custom styles for the site, including a responsive layout and dark mode support.
- JavaScript: Handles fetching project data and toggling dark mode.
- Google Fonts: Fira Code font for a clean and modern look.
- Node.js: Build script to fetch and process project data.
- axios: HTTP requests to fetch data from GitHub.
- cheerio: Parses HTML and extracts the necessary data.
- marked: Converts Markdown content from GitHub README files to HTML, used to extract Images.
- Fetching Projects: The
build.js
script fetches my GitHub profile and scrapes the pinned projects usingaxios
andcheerio
. - Processing Data: The script processes the project data, including extracting the first image from the README file using
marked
. - Generating JSON: The script writes the project data to
projects.json
, which is then used by the frontend to display the projects.