Jekyll博客启动器

jekyll-theme-velog — Jekyll 博客模板

作者 woonyong-choi

基于 Jekyll 的 Velog 风格博客模板,通过配置文件管理站点信息、界面选项与系列,支持本地搜索、深色模式,并提供 GitHub Pages Actions 部署流程。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

1 个预览视图
作者提供的预览
作者提供的预览首屏预览

来自项目 README 的原始预览。

目前有 1 张原始预览,可打开完整图片查看设计细节。

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-03查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

通过 _config.yml、_data/profile.yml、_data/theme.yml、_data/series.yml 集中管理站点信息、界面开关与系列定义

02

内置本地搜索、标签筛选、系列归档与无限滚动

03

支持浅色/深色主题切换,并提供 RSS、sitemap 与 SEO metadata

04

可选集成 Giscus 或 Disqus 评论、Algolia DocSearch、Google Analytics

05

可选同步 GitHub 个人资料与贡献图,未启用时不调用外部 API

06

提供 GitHub Actions 部署流程,并在构建时检查 HTML 结构、内部链接与未替换占位符

模板详细介绍

这是一个面向 GitHub Pages 的 Jekyll 博客模板,视觉风格参考 Velog。站点信息、界面开关和系列定义分别放在 _config.yml、_data/profile.yml、_data/theme.yml 与 _data/series.yml 中,文章使用 Markdown 与 front matter 编写。模板内置本地搜索、标签筛选、系列归档、无限滚动、RSS、sitemap 与浅色/深色主题;评论、Algolia DocSearch、Google Analytics、GitHub 个人资料与贡献图同步均为可选,默认关闭。

部署方面,仓库提供 GitHub Actions workflow,在 push 到 main 时构建并部署到 GitHub Pages,pull request 只做构建与验证。构建流程会检查生成 HTML 结构、必要产物、内部链接以及未替换的占位符。本地运行需要 Ruby、Bundler 与 Python 3,验证脚本依赖 Python。

使用限制:模板代码采用 MIT 许可,但演示图片、字体、图标等第三方素材需单独核对许可;GitHub 贡献图同步、Giscus、Disqus、Algolia 与 Google Analytics 等外部服务可能涉及额外配置或费用。模板未声明生产环境下的性能或稳定性保证。

Jekyll博客启动器

适合你的项目吗?

适用场景

  • 在 GitHub Pages 上搭建个人技术博客,并以系列和标签组织文章
  • 需要本地搜索、深色模式与 RSS 的静态博客项目
  • 希望用配置文件控制界面元素显示与否,而不修改模板代码
  • 需要按系列归档文章,并在文章 front matter 中只引用系列标识符
  • 希望通过 GitHub Actions 自动构建、验证并部署站点

适合人群

  • 熟悉 Markdown 与 Jekyll 基本目录结构的博客作者
  • 使用 GitHub Pages 托管静态站点、接受 GitHub Actions 部署流程的用户
  • 需要系列、标签、本地搜索等博客组织功能的开发者
  • 希望以配置文件而非代码改动来定制界面与集成的用户

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    点击 Use this template 创建新仓库,然后修改 _config.yml、_data/profile.yml 与 _data/theme.yml

  2. 2

    在仓库 Settings → Pages → Build and deployment → Source 中选择 GitHub Actions

  3. 3

    本地运行需要 Ruby、Bundler 与 Python 3,执行 bundle install 后可用 bundle exec jekyll serve 预览

  4. 4

    评论、Algolia、Google Analytics、GitHub 贡献图同步等可选功能默认关闭,需在配置中显式启用并填写凭据

  5. 5

    部署 workflow 会自动注入仓库地址与路径,仅在自定义域名时才需要手动设置 _config.yml 中的 url

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • GitHub 贡献图同步为可选功能,默认关闭;若需包含私有仓库贡献,必须额外配置仓库 secret GH_PAT,否则仅能获取公开贡献数据。
  • 使用 Giscus 评论为可选功能,默认关闭;启用前必须先在公开仓库开启 Discussions 并安装 giscus 应用,否则评论脚本不会加载。
  • Algolia DocSearch 为可选功能,默认关闭;配置时只能使用仅搜索权限的 API key,禁止将具有写权限的 Admin API key 放入公开仓库。
  • Jenkins 部署为独立可选路径,需要单独的凭据并使用 gh-pages 分支作为源;不建议与默认 GitHub Pages Actions 工作流同时启用。
  • 模板代码采用 MIT 许可,但演示图片等第三方素材的来源与许可单独记录在 NOTICE.md 中,需自行核对,不随代码许可一并授予。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

private contribution을 포함하려면 저장소 secret `GH_PAT`를 추가합니다.

README 原文

public 저장소의 Discussions와 [giscus 앱](https://github.com/apps/giscus)을 먼저 활성화해야 합니다.

README 原文

쓰기 권한이 있는 Admin API key를 공개 저장소에 넣지 마세요.

README 原文

Jenkins 배포는 별도 credential과 `gh-pages` source를 사용하는 독립 경로이며, 기본 GitHub Pages workflow와 동시에 사용하지 않는 것을 권장합니다.

README 原文

이미지 출처와 고지는 [NOTICE.md](NOTICE.md)에 정리되어 있습니다.

README 原文
https://github.com/woonyong-choi/jekyll-theme-velog/blob/main/LICENSEhttps://github.com/woonyong-choi/jekyll-theme-velog/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-03。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Jekyll
网站类型
博客 · 启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-08-03
截图检查日期
2026-10-03

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Jekyll。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-04

查看当时使用的来源资料

SHA-256: 704576d6638e9721ecd9b7a300585eb06c96e581749131c27bc086b5cd91d521

2026-10-03T17:58:53.854Z

来源文件 / 仓库
# jekyll-theme-velog

[![Pages](https://github.com/woonyong-kr/jekyll-theme-velog/actions/workflows/deploy.yml/badge.svg)](https://github.com/woonyong-kr/jekyll-theme-velog/actions/workflows/deploy.yml)
[![Live Demo](https://img.shields.io/badge/demo-live-20c997)](https://woonyong-kr.github.io/jekyll-theme-velog/)
[![Jekyll 4.4](https://img.shields.io/badge/Jekyll-4.4-cc0000?logo=jekyll&logoColor=white)](https://jekyllrb.com/)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

Velog-style Jekyll starter for GitHub Pages.

글·시리즈·태그·로컬 검색, 라이트/다크 테마, 선택형 GitHub 프로필 동기화와 댓글·검색 연동. 소유자 URL이나 저장소 경로를 코드에 고정하지 않고 GitHub Pages Actions가 배포 경로를 주입합니다.

[라이브 데모](https://woonyong-kr.github.io/jekyll-theme-velog/) · [설정 파일](#설정) · [배포](#github-pages-배포) · [검증](#검증)

## 미리보기

| 홈 | 시리즈 | 글 |
|---|---|---|
| ![홈](assets/images/docs/home-preview.png) | ![시리즈](assets/images/docs/series-preview.png) | ![글](assets/images/docs/post-preview.png) |

## 기능

- 글 카드, 시리즈, 태그 필터, 로컬 검색, 무한 스크롤
- 반응형 레이아웃, 라이트/다크 모드, RSS, sitemap, SEO metadata
- GitHub 프로필·기여 그래프 동기화(선택)
- Giscus 또는 Disqus 댓글(선택)
- Algolia DocSearch와 Google Analytics 연동(선택)
- GitHub Pages 공식 artifact 배포, pull request 빌드 검증
- 생성 HTML 구조, 필수 산출물, 내부 링크, 미치환 placeholder 자동 검사

## 빠른 시작

1. **Use this template**을 눌러 새 저장소를 만듭니다.
2. `_config.yml`, `_data/profile.yml`, `_data/theme.yml`을 수정합니다.
3. `Settings → Pages → Build and deployment → Source`에서 **GitHub Actions**를 선택합니다.
4. `main`에 push하고 **Actions → Pages**가 통과했는지 확인합니다.

프로젝트 페이지와 사용자 페이지 모두 기본 로컬 URL을 유지할 수 있습니다. 배포 workflow가 저장소 주소와 경로를 자동으로 적용합니다. 커스텀 도메인을 사용할 때만 `url`을 직접 지정합니다.

```yaml
# _config.yml
title: 내 블로그
description: 개발 기록
url: "http://localhost:4000"
baseurl: ""
```

커밋 이력을 유지한 채 upstream 변경을 추적하려면 fork를 사용해도 됩니다. 새 블로그에는 **Use this template**이 더 단순합니다.

## 로컬 실행

요구 환경: Ruby `3.4.10`, Bundler, Python 3(검증 스크립트)

```bash
bundle install
bundle exec jekyll doctor
bundle exec jekyll serve
```

기본 주소는 `http://127.0.0.1:4000/`입니다. 배포 경로까지 재현하려면 다음처럼 실행합니다.

```bash
bundle exec jekyll serve --baseurl /my-blog
# http://127.0.0.1:4000/my-blog/
```

## 설정

| 파일 | 책임 |
|---|---|
| `_config.yml` | 사이트 metadata, 댓글, 검색, 분석, 플러그인 |
| `_data/profile.yml` | 이름, 소개, avatar, GitHub 링크 fallback |
| `_data/theme.yml` | 헤더, 탭, 홈, 기여 그래프, footer UI |
| `_data/series.yml` | 시리즈 식별자, 표시 이름, 설명 |

### 프로필

```yaml
# _data/profile.yml
display_name: 이름
bio: 한 줄 소개
intro: 추가 정보
avatar: /assets/images/avatar-placeholder.svg
github: https://github.com/my-id
```

`github`이 비어 있으면 헤더의 GitHub 버튼은 렌더링하지 않습니다.

### 화면 옵션

```yaml
# _data/theme.yml
header:
  show_github_link: true
  show_rss_link: true
  show_theme_toggle: true

tabs:
  show_about: false

home:
  initial_post_count: 12
```

각 boolean은 `false`를 그대로 보존합니다. 사용하지 않는 버튼이나 탭은 설정만으로 제거할 수 있습니다.

### 시리즈

```yaml
# _data/series.yml
data-engineering:
  title: 데이터 엔지니어링
  description: 수집·정규화·품질 검증 기록
```

포스트 front matter에는 시리즈 식별자만 사용합니다.

```yaml
series: data-engineering
```

## 포스트 작성

파일명: `_posts/YYYY-MM-DD-slug.md`

```markdown
---
title: 글 제목
description: 카드 설명
date: 2026-01-01 09:00:00 +0900
updated_at: 2026-01-02 21:00:00 +0900
thumbnail: /assets/images/posts/cover.png
series: data-engineering
tags: [Jekyll, GitHub Pages]
---

본문
```

미래 날짜의 포스트는 기본 빌드에서 제외됩니다. 이미지 경로는 `assets/images/` 아래 절대 경로 형식을 권장합니다.

## 선택 연동

기본값은 모두 비활성화되어 있으며, 필요한 기능만 설정합니다.

### GitHub 프로필·기여 그래프

```yaml
# _data/theme.yml
hero:
  github_contributions:
    enabled: true
    username: my-id

profile:
  github_sync:
    enabled: true
```

workflow는 `GITHUB_TOKEN`을 기본 사용합니다. private contribution을 포함하려면 저장소 secret `GH_PAT`를 추가합니다. 로컬 갱신:

```bash
GITHUB_GRAPHQL_TOKEN=... ruby scripts/fetch_github_contributions.rb
```

동기화를 끈 상태에서는 외부 API를 호출하지 않고 fallback 프로필로 빌드합니다.

### Giscus

```yaml
# _config.yml
comments:
  provider: giscus
  giscus:
    repo: owner/repository
    repo_id: R_...
    category: Announcements
    category_id: DIC_...
```

public 저장소의 Discussions와 [giscus 앱](https://github.com/apps/giscus)을 먼저 활성화해야 합니다. 값이 하나라도 비어 있으면 댓글 스크립트를 로드하지 않습니다.

### Disqus

```yaml
comments:
  provider: disqus
  disqus:
    shortname: my-shortname
```

### Algolia DocSearch

```yaml
search:
  provider: algolia
  algolia:
    app_id: APP_ID
    api_key: SEARCH_ONLY_API_KEY
    index_name: INDEX_NAME
```

쓰기 권한이 있는 Admin API key를 공개 저장소에 넣지 마세요. 설정이 불완전하면 로컬 검색으로 자동 전환합니다.

### Google Analytics

```yaml
analytics:
  google:
    measurement_id: G-XXXXXXXXXX
```

production 빌드에서만 스크립트를 로드합니다.

## GitHub Pages 배포

`.github/workflows/deploy.yml`의 흐름:

```text
checkout
  → Pages 경로 계산
  → Jekyll build
  → 구조·링크·placeholder 검증
  → Pages artifact 업로드
  → github-pages 환경 배포
```

- `push main`: 빌드·검증·배포
- `pull_request`: 빌드·검증, 배포 없음
- `schedule`: 선택형 GitHub 프로필 데이터 갱신
- `workflow_dispatch`: 수동 배포

저장소 설정의 Pages source는 **GitHub Actions**여야 합니다. `gh-pages` 브랜치는 만들지 않습니다.

Jenkins 예시는 `Jenkinsfile`에 분리되어 있습니다. Jenkins 배포는 별도 credential과 `gh-pages` source를 사용하는 독립 경로이며, 기본 GitHub Pages workflow와 동시에 사용하지 않는 것을 권장합니다.

## 검증

```bash
bundle exec jekyll doctor
bundle exec jekyll build
python3 scripts/verify_site.py _site
node --check assets/js/site.js
```

Pages URL까지 재현하는 production 검증:

```bash
bundle exec ruby scripts/build_site.rb \
  --url https://username.github.io \
  --baseurl /repository
python3 scripts/verify_site.py _site \
  --baseurl /repository \
  --expected-origin https://username.github.io
```

`verify_site.py` 검사 범위:

- `index.html`, `404.html`, `feed.xml`, `sitemap.xml`, `posts.json`
- 페이지당 하나의 `<main>` landmark
- 내부 링크와 정적 asset target
- `posts.json` 형식
- 샘플 GitHub URL·댓글 ID의 미치환 노출

GitHub Actions 상태는 README 상단 **Pages** 배지에서 바로 확인할 수 있습니다.

## 구조

```text
_layouts/              페이지 골격
_includes/             재사용 UI와 외부 연동 경계
_data/                 사용자 설정과 선택형 캐시
assets/css/             테마 스타일
assets/js/site.js       테마·검색·필터·무한 스크롤
scripts/                GitHub 동기화·빌드 검증
_posts/                 데모와 사용 가이드
.github/workflows/      검증·배포
```

## 기여

버그 재현, 문서 교정, 접근성·반응형 개선과 설정 일반화를 받습니다. 변경 범위와 로컬 검증 절차는 [CONTRIBUTING.md](CONTRIBUTING.md)에서 확인할 수 있습니다.

## 라이선스

[MIT](LICENSE). 이미지 출처와 고지는 [NOTICE.md](NOTICE.md)에 정리되어 있습니다.
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。