This is the source code for my personal academic website hosted on GitHub Pages. The site showcases my work as a musicologist, composer, and researcher specializing in computational musicology.
I am a Ukrainian-born composer and researcher specializing in the application of computational methods to musicology. My work focuses on human-computer interaction in music, from performance and composition to advanced computational analysis.
egorpol.github.io/
βββ _layouts/ # Jekyll layout templates
βββ _plugins/ # Custom plugins (currently empty)
βββ _posts/ # Blog posts (Markdown)
βββ assets/ # Static assets
β βββ css/ # Stylesheets
β βββ js/ # JavaScript files
β βββ images/ # Images
βββ _site/ # Built site output (do not edit; generated)
βββ _config.yml # Jekyll configuration
βββ index.md # Homepage
βββ blog.md # Blog listing page
βββ sitemap.xml # XML sitemap
βββ robots.txt # Search engine directives
βββ README.md # This file
- Responsive Design: Works on desktop, tablet, and mobile devices
- Dark/Light Theme: Persistent toggle with saved preference (light by default)
- Interactive Image Viewer: Click any image to view in full-screen with navigation
- Accessibility: WCAG compliant with skip links, focus indicators, and semantic HTML
- SEO Optimized: jekyll-seo-tag, JSONβLD structured data (via page front matter), sitemap, and robots.txt
- Blog System: Jekyll-powered blog with categories and excerpts
- Code Highlighting: Syntax highlighting for code blocks
- Print Styles: Optimized for printing
- Rel=me Links: Social verification links emitted from
_config.ymlsocial links
- GitHub Pages (github-pages gem): Production runtime that pins Jekyll and plugins
- Jekyll: Static site generator (version pinned by GitHub Pages)
- CSS3: Custom styling with CSS variables for theming
- JavaScript: Vanilla JS for theme switching and interactions
- Font Awesome: Icons
- Highlight.js: Code syntax highlighting
- jekyll-seo-tag: Open Graph/Twitter meta and SEO helpers
jekyll-feed: RSS/Atom feed generationjekyll-seo-tag: SEO optimizationjekyll-paginate: Blog pagination (optional; currently disabled)
- Font Awesome 6.4.0 (CDN)
- Highlight.js 11.9.0 (CDN)
theme.js: Theme switching functionalityimage-viewer.js: Interactive image viewer with navigation
- Ruby 2.7+ (matches GitHub Pages runtime)
- Bundler gem
-
Clone the repository:
git clone https://github.com/egorpol/egorpol.github.io.git cd egorpol.github.io -
Install dependencies:
bundle install
-
Start the development server:
bundle exec jekyll serve -
Open your browser and navigate to
http://localhost:4000
bundle exec jekyll buildThe built site is output to _site/. Do not edit files in that directory manually.
- Create a new Markdown file in
_posts/directory - Start from
POST_TEMPLATE.mdand copy it into_posts/YYYY-MM-DD-your-title.md - Use the following front matter format:
--- layout: post title: "Your Post Title" date: YYYY-MM-DD categories: [category1, category2] tags: [tag1, tag2, tag3] excerpt: "Brief description of the post" ---
Important: Categories must be defined as YAML arrays (with square brackets). See CATEGORIES.md for detailed guidelines.
Recommended: Keep 1-3 categories and 3-6 tags for clean taxonomy pages and blog filtering.
- Edit
_config.ymlfor site-wide settings - Modify
index.mdfor homepage content - Update
assets/css/main.cssfor styling changes - Navigation and contact anchor are defined in
_layouts/default.html(Contact links to{{ '/' | relative_url }}#contact) - Perβpage JSONβLD can be added under
structured_data:(and optionallocal_business_schema:) in front matter
The site uses CSS custom properties for theming. Colors are defined in assets/css/main.css:
:root {
--bg-color: #ffffff;
--text-color: #333333;
--primary-color: #0066cc;
/* ... more variables */
}default.html: Standard page layoutcustom.html: Enhanced layout with additional navigationpost.html: Blog post layoutpage.html: Simple page layout
Key settings in _config.yml:
- Site title, description, and author
- GitHub username for social links
- Jekyll plugins and settings
- SEO and analytics configuration (GA4 placeholders:
google_analyticsandgtag) - Markdown engine (
kramdown) and syntax highlighter (rouge) social.nameandsocial.links(used for rel=me links in the layout)
The site is optimized for performance with:
- Minimal external dependencies
- Optimized images
- Efficient CSS and JavaScript
- CDN-hosted libraries
- Static generation for fast loading
- No client-side data collection by default
- HTTPS enforced by GitHub Pages
- Analytics are disabled unless GA4 IDs are provided
- Secure external dependencies
This project is open source and available under the MIT License.
While this is a personal website, suggestions and improvements are welcome. Please feel free to open issues or submit pull requests.
- Email: egor.polyakov@hfm-weimar.de
- GitHub: @egorpol
- Website: egorpol.github.io
Last updated: October 20, 2025