Skip to content

mackuntu/mackuntu.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

131 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MartinNotes Blog

A personal Jekyll blog by Martin Qian featuring thoughts on management, technology, life pro tips, and life events. Built with Jekyll and deployed on GitHub Pages.

πŸš€ Features

  • Jekyll-powered static site generator
  • Responsive design with custom Sass styling
  • SEO optimized with jekyll-seo-tag
  • Syntax highlighting with Rouge
  • Google Analytics integration
  • Disqus comments system
  • Category archives and pagination
  • RSS feed generation
  • Sitemap auto-generation
  • Docker support for containerized development

πŸ“‹ Prerequisites

Native Development

  • Ruby (2.7+ recommended)
  • Bundler gem: gem install bundler

Docker Development (Alternative)

  • Docker and Docker Compose

πŸ›  Installation & Setup

Option 1: Native Ruby Environment

  1. Clone the repository:

    git clone https://github.com/mackuntu/mackuntu.github.io.git
    cd mackuntu.github.io
  2. Install dependencies:

    bundle install
  3. Serve the site locally:

    bundle exec jekyll serve
  4. Open your browser to http://localhost:4000

Option 2: Docker Environment

  1. Clone the repository:

    git clone https://github.com/mackuntu/mackuntu.github.io.git
    cd mackuntu.github.io
  2. Start the Docker container:

    docker-compose up
  3. Open your browser to http://localhost:4000

✍️ Content Creation

Creating New Posts

Use the provided script for quick post creation:

./post.sh "your post title"

This creates a new draft in _drafts/ with the current date and standardized front matter:

  • Layout: post
  • Categories: empty (to be filled)
  • Tags: [green] (default)
  • Author: martin
  • Comments: enabled

Manual Post Creation

  1. Create a new file in _posts/ with format: YYYY-MM-DD-title.markdown
  2. Add the required front matter:
    ---
    layout: post
    title: "Your Post Title"
    categories: [category1, category2]
    tags: [tag1, tag2]
    description: "Brief description"
    author: martin
    image: assets/images/your-image.jpg
    featured: true
    hidden: false
    rating: 4.5
    comments: true
    ---
  3. Write your content in Markdown below the front matter

Working with Drafts

  • Drafts are stored in _drafts/
  • To preview drafts locally: bundle exec jekyll serve --drafts
  • Move drafts to _posts/ when ready to publish

πŸ“ Project Structure

β”œβ”€β”€ _drafts/          # Unpublished posts
β”œβ”€β”€ _includes/        # Reusable page components
β”œβ”€β”€ _layouts/         # Page templates
β”œβ”€β”€ _pages/           # Static pages
β”œβ”€β”€ _posts/           # Published blog posts
β”œβ”€β”€ _sass/            # Sass stylesheets
β”œβ”€β”€ _templates/       # Post templates
β”œβ”€β”€ assets/           # Static assets
β”‚   β”œβ”€β”€ css/         # Compiled CSS
β”‚   β”œβ”€β”€ fonts/       # Web fonts
β”‚   β”œβ”€β”€ images/      # Images and media
β”‚   β”œβ”€β”€ js/          # JavaScript files
β”‚   └── touch-icons/ # Favicon variations
β”œβ”€β”€ _config.yml       # Jekyll configuration
β”œβ”€β”€ docker-compose.yml # Docker setup
β”œβ”€β”€ Gemfile          # Ruby dependencies
β”œβ”€β”€ post.sh          # Post creation script
└── README.md        # This file

βš™οΈ Configuration

Site Settings (_config.yml)

Key configurations include:

  • Title: MartinNotes
  • Author: Martin Qian
  • Analytics: Google Analytics (G-MK0NRFNRDN)
  • Comments: Disqus (mackuntu)
  • Pagination: 6 posts per page
  • Markdown: Kramdown with GFM input

Author Profile

The author information is configured in _config.yml:

authors:
  martin:
    name: Martin
    email: mackuntu@gmail.com
    web: https://www.mackuntu.com
    twitter: https://twitter.com/martin_qian

πŸš€ Deployment

This blog is automatically deployed to GitHub Pages when changes are pushed to the main branch.

Custom Domain

The site uses a custom domain configured via the CNAME file.

Manual Deployment

No manual deployment steps required - GitHub Pages handles the Jekyll build process automatically.

🧰 Development Commands

# Serve locally
bundle exec jekyll serve

# Serve with drafts
bundle exec jekyll serve --drafts

# Build for production
bundle exec jekyll build

# Update dependencies
bundle update

# Create new post
./post.sh "Post Title"

πŸ“ Writing Guidelines

  • Use Markdown for content formatting
  • Include featured images in assets/images/
  • Categorize posts appropriately
  • Add relevant tags for better discoverability
  • Set featured: true for important posts
  • Use hidden: true to exclude from main listings

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test locally
  5. Submit a pull request

πŸ“„ License

This project is licensed under the terms specified in LICENSE.txt.


Martin Qian | Website | Twitter Updated

About

MartinNotes Blog

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors