π Personal portfolio and blog β vanviethieuanh.github.io
| Layer | Technology |
|---|---|
| Static Site Gen | Jekyll 4.3 |
| Markup | HTML + Liquid templates |
| Styling | SCSS (Jekyll Sass) |
| Fonts | Google Fonts β Oswald, Raleway, Roboto |
| Syntax Highlight | Rouge (Kramdown) |
| Build Tool | Taskfile |
| Hosting | GitHub Pages |
Gruvbox Light + Neo-brutalist aesthetic:
- Color palette β Gruvbox Light with warm, retro tones
- Background:
#fbf1c7(cream) β#ebdbb2(subtle) - Foreground:
#282828(dark) for text and borders - Accents: bright red, green, yellow, blue, purple, aqua, orange
- Background:
- Thick borders β
3px solidglobally using Gruvbox dark0 - Press effect β SCSS mixin for 3D inset shadow +
:activeshrink on interactive elements - Hover animations β cards translate up on hover with smooth transitions
- Typography β Raleway (headings), Oswald (dense text), Roboto (body)
βββ index.html # Blog listing page (11+ posts)
βββ projects.html # Projects showcase with grid layout
βββ connect.html # Social links and contact info
βββ pixel/ # Pixel art gallery
β βββ index.html # Gallery grid
β βββ deer/ # Deer pixel art project
βββ _posts/ # Blog posts (markdown)
β βββ 2024-11-08-github-pages-deployment.md
β βββ 2024-10-20-svg-animations.md
β βββ ...
βββ _layouts/ # Jekyll layouts
β βββ default.html # Base layout
β βββ page.html # Page layout
β βββ post.html # Blog post layout
βββ _sass/ # SCSS partials
β βββ _global.scss # Design tokens, mixins, variables
β βββ _syntax.scss # Code syntax highlighting
βββ assets/
βββ css/main.scss # Main stylesheet (imports _sass/)
βββ js/ # JavaScript utilities
βββ code-blocks.js # Code block enhancements
βββ toc.js # Table of contents generator
- Ruby (rbenv recommended)
- Bundler
- Taskfile (optional, for convenience)
# Clone repository
git clone https://github.com/vanviethieuanh/vanviethieuanh.github.io.git
cd vanviethieuanh.github.io
# Install dependencies
bundle install
# Or with Taskfile
task install# Start development server with live reload
bundle exec jekyll serve --livereload
# Or with Taskfile
task serveVisit http://localhost:4000 to preview the site.
# Build for production
bundle exec jekyll build
# Or with Taskfile
task buildtask install # Install Jekyll and dependencies
task serve # Start dev server with live reload
task build # Build for production (GitHub Pages)
task clean # Clean build artifacts
task format # Format all code files with PrettierCreate a new markdown file in _posts/ following the naming convention:
YYYY-MM-DD-post-title.md
Front matter example:
---
title: "Your Post Title"
date: 2024-11-08
layout: post
description: "Brief description for meta tags"
---
Your content here...The site automatically deploys to GitHub Pages on push to the main branch. Jekyll builds are handled by GitHub Actions.