A minimalist, modern personal blog built with Jekyll, featuring a Google AI-inspired design aesthetic with advanced reading controls.
- Material Design 3 inspired interface
- Gemini-style gradient accents
- Clean, minimalist layout with focus on readability
- Responsive design for all devices
- Dark/Light theme toggle
- Bilingual support (English/Chinese)
- 🌓 Theme Toggle - Seamless dark/light mode switching with localStorage persistence
- 🌍 Bilingual Support - Full English/Chinese (中英文) support with instant switching
- 🔍 Command Palette Search - Quick search with
Ctrl/Cmd+Kshortcut - 🏷️ Category Filtering - Click category tags to filter posts instantly
- ⏰ Live Clock - Real-time display in sidebar widget
- 📖 Enhanced Focus Mode - Distraction-free reading with customizable controls
- ⌨️ Keyboard Shortcuts - Press
?to see all available shortcuts
- 📊 Reading Progress Bar - Visual indicator showing reading progress at page top
- 📑 Auto-generated Table of Contents - Smart TOC generation for posts with 3+ headings
- 🔤 Font Size Adjustment - 4 levels (Small/Medium/Large/XLarge)
- 📏 Line Width Control - 3 options (Narrow/Medium/Wide)
- ⬆️ Scroll to Top - Smooth scroll floating action button
- ❌ Quick Exit - Dedicated exit focus mode button
- 💻 Syntax Highlighting - Mac-style code blocks with window controls
- 📋 One-Click Copy - Copy code with visual feedback
- 🔗 Social Share - Share posts on Twitter, LinkedIn, Facebook, or copy link
- Gemini gradient welcome card
- Category widget with post counts
- Time widget with live updates
- Profile widget with bilingual bio
- Responsive three-column layout
- Floating action buttons in focus mode
- Framework: Jekyll 4.x
- Styling: Vanilla CSS with CSS Variables
- Icons: Phosphor Icons
- Fonts: Google Fonts (Outfit, JetBrains Mono)
- Hosting: GitHub Pages
- JavaScript: ES6+ (modular architecture available)
YorkFr.github.io/
├── _includes/ # Reusable components
│ ├── head.html
│ ├── sidebar.html
│ └── widgets.html
├── _layouts/ # Page templates
│ ├── default.html
│ ├── post.html
│ └── article-base.html
├── _posts/ # Blog posts (Markdown)
├── pages/ # Standalone pages
│ ├── about.html
│ └── archive.html
├── assets/
│ ├── css/ # Modular stylesheets
│ │ ├── 0-theme.css
│ │ ├── 1-base.css
│ │ ├── 2-layout.css
│ │ ├── 3-components.css
│ │ ├── 4-pages.css
│ │ ├── category-filter.css
│ │ ├── gemini-card.css
│ │ └── reader-controls.css
│ ├── js/
│ │ ├── main.js # Main JavaScript file
│ │ └── modules/ # Modular JS (optional)
│ │ ├── theme.js
│ │ ├── time.js
│ │ ├── language.js
│ │ ├── navigation.js
│ │ ├── code-copy.js
│ │ ├── search.js
│ │ ├── category-filter.js
│ │ └── focus-mode.js
│ └── images/
├── _config.yml
├── index.html
├── search-data.json
└── README.md
- Ruby 2.7+
- Jekyll 4.x
- Bundler
# Clone the repository
git clone https://github.com/YorkFr/YorkFr.github.io.git
cd YorkFr.github.io
# Install dependencies
bundle install
# Run local server
bundle exec jekyll serve
# Visit http://localhost:4000This site is automatically deployed to GitHub Pages when you push to the main branch.
git add .
git commit -m "Your commit message"
git push origin mainVisit: https://yorkfr.github.io
Create a new file in _posts/ with the format: YYYY-MM-DD-title.md
---
layout: post
title: "Your Post Title"
author: YorkFr
categories: [Tech, AI]
---
Your content here...Press ? to see all available keyboard shortcuts. Key shortcuts include:
Ctrl/Cmd+K- Open search paletteR- Toggle reader mode (on post pages)Home- Scroll to topEnd- Scroll to bottomEscape- Close dialogs and search?- Show keyboard shortcuts help
- Press
Ctrl/Cmd+Kto open search palette - Type to search across titles, excerpts, and categories
- Use arrow keys to navigate results
- Press
Enterto open selected post - Press
Escapeto close
- Automatically generated for posts with 3 or more headings
- Click any heading to jump to that section
- Active section is highlighted as you scroll
- Collapse/expand with the arrow button
- Hidden in focus mode for distraction-free reading
- Find category tags in the right sidebar
- Click any category to filter posts
- Click again to show all posts
- Active category is highlighted in blue
- Click the book icon (📖) in any post
- Sidebar and widgets hide automatically
- Reader Controls Panel appears:
- Font Size: A- / A / A+ buttons
- Line Width: Narrow / Medium / Wide options
- Floating Action Buttons (bottom-right):
- ⬆️ Scroll to top (smooth scroll)
- ❌ Exit focus mode
- Click book icon again or × button to exit
- Share buttons appear at the bottom of each post
- Share on Twitter, LinkedIn, or Facebook
- Copy link to clipboard with one click
- Visual feedback when link is copied
- Theme: Click sun/moon icon in sidebar
- Language: Click EN/ZH button in sidebar
- Settings persist in localStorage
Edit assets/css/0-theme.css:
:root {
--accent-primary: #1a73e8;
--accent-secondary: #8430ce;
--bg-app: #f8f9fa;
/* ... */
}
[data-theme="dark"] {
--bg-app: #1a1a1a;
/* ... */
}- Create HTML file in
pages/directory - Add frontmatter with permalink:
---
layout: default
title: Your Page
permalink: /your-page/
---- Add navigation link in
_includes/sidebar.html
Customize font sizes in assets/css/reader-controls.css:
.post-content-clean.font-small { font-size: 0.95rem; }
.post-content-clean.font-medium { font-size: 1.1rem; }
.post-content-clean.font-large { font-size: 1.25rem; }
.post-content-clean.font-xlarge { font-size: 1.4rem; }Key settings in _config.yml:
title: YorkFr's Blog
email: your-email@example.com
description: AI Researcher / Developer / Quant
baseurl: ""
url: "https://yorkfr.github.io"- Desktop: > 1024px (3-column layout)
- Tablet: 768px - 1024px (2-column layout)
- Mobile: < 768px (single column)
The project includes a modular JavaScript architecture in assets/js/modules/:
- Separated concerns (theme, search, focus mode, etc.)
- ES6 module syntax
- Easy to maintain and extend
- Currently using
main.jsfor compatibility - Switch to
main-modular.jsfor module support
CSS Layers:
0-theme.css- CSS variables and theme definitions1-base.css- Reset and base styles2-layout.css- Grid layout and structure3-components.css- Reusable components4-pages.css- Page-specific styles- Feature-specific CSS (category-filter, gemini-card, reader-controls)
JavaScript Modules:
theme.js- Theme switching logictime.js- Live clock widgetlanguage.js- Bilingual togglenavigation.js- Active state managementcode-copy.js- Copy button functionality with duplicate preventionsearch.js- Command palette search with error handlingcategory-filter.js- Category filteringfocus-mode.js- Enhanced reading mode with improved scroll detectionreading-progress.js- Reading progress indicatortable-of-contents.js- Auto-generated TOC with scroll trackingshare.js- Social media sharing functionalitykeyboard-help.js- Keyboard shortcuts help modal
- Minimal JavaScript (< 15KB)
- Optimized CSS with variables
- Lazy-loaded search data
- Smooth animations with CSS transitions
- Responsive images support
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
This project is open source and available under the MIT License.
YorkFr
- AI Researcher / Developer / Quant
- GitHub: @YorkFr
- Interests: Machine Learning, Large Language Models, Full-Stack Development, Quantitative Finance
- Design inspired by Google's Material Design 3 and Gemini AI
- Icons by Phosphor Icons
- Fonts by Google Fonts
- Built with Jekyll
This project is developed with the assistance of AI agents. Learn more about what AI agents can do and how they differ from traditional development in the AI Agent Capabilities Guide.
- ✨ Reading progress bar - Visual indicator at page top
- 📑 Auto-generated Table of Contents - Smart TOC for longer posts
- 🔗 Social share buttons - Easy sharing on social media
- ⌨️ Keyboard shortcuts help - Press
?to view all shortcuts - 🎯 Enhanced keyboard navigation -
Rfor reader mode,Home/Endfor scroll - 🐛 Bug fixes - Fixed duplicate copy buttons, improved scroll detection, better error handling
- ♿ Accessibility improvements - Added ARIA labels and keyboard navigation
- 🔒 Security enhancements - XSS prevention with HTML escaping
- ✨ Enhanced focus mode with reader controls
- 🔤 Font size adjustment (4 levels)
- 📏 Line width control (3 options)
- ⬆️ Scroll to top floating button
- 📖 Improved focus mode icon
- 🎨 Gemini-style welcome card
- 🏷️ Interactive category filtering
- 🔍 Command palette search
- 🌐 Full bilingual support
Built with ❤️ using Jekyll
A modern, minimalist blog for sharing thoughts on AI, development, and quantitative finance.