Jekyll作品集博客

Jalpc — Jekyll 作品集模板

作者 jarrekk

Jalpc 是一个基于 Jekyll 的个人主页与博客主题,首页由多个可配置区块组成,内容通过 _data 目录下的 YAML 文件驱动。

看看你的网站会是什么样

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

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

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

采集于 2026-09-30查看来源

值得关注的模板亮点

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

01

首页拆分为多个区块,内容由 _data 下的 YAML 文件驱动,改内容不必动 HTML

02

博客按 URL 划分分类,所有分类页共用同一个 category.html 模板

03

技能展示使用 Chart.js 雷达图,数据在 _data/index/skills.yml 中配置

04

落地页通过 i18next 支持多语言,并可通过清空配置文件与 locales 目录移除该功能

05

集成 Disqus 评论、AddToAny 分享、JavaScript 站内搜索以及 Google Analytics / GrowingIO 统计

06

CSS 与 JS 压缩脚本基于 NPM、UglifyJS2 与 clean-css,样式源文件位于 _sass 目录

模板详细介绍

Jalpc 是面向 Jekyll 的主题,同时承担个人主页(作品集)与博客两种用途。首页被拆分为若干区块,存放在 _includes/sections 中,整体配置写在 _data/landing.yml,各区块的细节配置分散在 _data/index 下的 YAML 文件里,例如 careers.yml、skills.yml、projects.yml、links.yml。由于页面由这些数据文件动态渲染,修改内容通常不需要直接编辑 HTML。

博客部分按 URL 划分分类,所有分类页共用 _includes/category.html 模板,分类名称在 _data/blog.yml 中定义。分页没有使用 Jekyll 自带方案,而是采用前端 jPages 实现。主题还提供 Chart.js 雷达图展示技能、i18next 多语言落地页、Disqus 评论、AddToAny 分享、基于 JavaScript 的站内搜索,以及 Google Analytics 与 GrowingIO 两种统计接入方式。页面浏览量计数由作者自建的 Flask 后端 API 配合前端脚本完成,属于外部依赖。

使用前需要留意:多语言功能可通过清空 _data/language.yml 和 static/locales/ 目录移除;评论、统计、分享、访问计数均依赖第三方服务,需要自行注册并替换配置中的 ID 或密钥。CSS 与 JS 的压缩依赖 NPM 及 UglifyJS2、clean-css,自定义样式可改 _sass 目录。README 的 Todo 中列出的若干项(如 --watch 模式使用原始 CSS/JS、自定义首页区块标题、更多配色主题)尚未完成。本地运行需要 Ruby 与 github-pages gem,执行 bundle exec jekyll serve 启动。

Jekyll作品集博客

适合你的项目吗?

适用场景

  • 搭建带技能雷达图、项目列表与社交链接的个人主页
  • 在同一站点内维护按分类组织的技术博客
  • 需要中英等多语言落地页展示的个人网站
  • 希望用 YAML 数据文件而非直接改 HTML 来维护站点内容

适合人群

  • 熟悉 Jekyll 与 YAML 配置、愿意自行接入第三方服务的开发者
  • 需要个人主页与博客合一的独立站点作者
  • 可以自行准备 Ruby 环境并接受命令行构建流程的用户

上手与定制指南

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

  1. 1

    本地需安装 Ruby 与 github-pages gem,执行 bundle install 后运行 bundle exec jekyll serve

  2. 2

    首页内容在 _data/landing.yml 与 _data/index/*.yml 中配置,博客导航在 _data/blog.yml 中配置

  3. 3

    评论、统计、分享与访问计数依赖 Disqus、Google Analytics、GrowingIO、AddToAny 及作者自建后端,需自行注册并替换配置中的 ID 或密钥

  4. 4

    压缩 CSS/JS 需安装 NPM 及 UglifyJS2、clean-css,脚本为 build/build.js,运行 npm run build

  5. 5

    演示图片、字体、图标等第三方素材的许可需单独核对,MIT 许可仅覆盖该版本代码

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

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

使用时需要遵守

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

额外费用与待核对事项

  • 网页统计功能依赖 Google Analytics 或 GrowingIO 第三方服务,需自行注册账号并在 _config.yml 中替换对应 ID 才能启用。
  • 评论功能依赖 Disqus 第三方服务,需注册获取 shortname 与 public key,并在 _config.yml 中配置后方可使用。
  • 分享按钮依赖 AddToAny 第三方服务,需前往其网站自定义按钮代码并粘贴到 _includes/share.html。
  • 页面浏览量计数依赖作者自建的 Flask 后端 API(部署于 Vultr VPS),需另行部署该后端服务才能使用。
  • 压缩 CSS/JS 需安装 NPM 及 UglifyJS2、clean-css 等外部工具,并运行 npm install 与 npm run build。
  • 本地构建与运行需自行安装 Ruby 及 github-pages gem,属于外部环境依赖。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

I use [Google analytics](https://www.google.com/analytics/) and [GrowingIO](https://www.growingio.com/) to do web analytics, you can choose either to realize it,just register a account and replace id in `_config.yml`.

README 原文

I use [Disqus](https://disqus.com/) to realize comment. You should set disqus_shortname and get public key and then, in `_config.yml`, edit the disqus value to enable Disqus.

README 原文

I use [AddToAny](https://www.addtoany.com/) to share my blog on other social network platform. You can go to this website to custom your share buttons and paste code at `_includes/share.html`.

README 原文

the backend API is written with flask on [Vultr VPS](https://www.vultr.com/), detail code please see [ztool-backhend-mongo](https://github.com/Z-Tool/ztool-backhend-mongo).

README 原文

Install [NPM](https://github.com/npm/npm) then install **UglifyJS2** and **clean-css**: `npm install -g uglifyjs; npm install -g clean-css`, then run `npm install` at root dir of project.

README 原文

- [ruby](https://www.ruby-lang.org/en/) - the [github-pages](https://github.com/github/pages-gem) gem

README 原文
https://github.com/jarrekk/Jalpc/blob/master/LICENSEhttps://github.com/jarrekk/Jalpc/blob/master/README.md

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

项目核对记录与介绍依据

模板资料

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

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

这个项目需要核对什么

记录的仓库更新时间
2024-07-07
截图检查日期
2026-10-01

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

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

查看具体选型方法 →

介绍的制作与核对状态

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

已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。

查看当时使用的来源资料

SHA-256: 761dd5516105f9ca43d9decabf1125422b0e62ca89bd47adfc408861c4e0683d

2026-10-01T14:06:02.765Z

来源文件 / 仓库
# Jalpc. [![Analytics](https://ga-beacon.appspot.com/UA-73784599-1/welcome-page)](https://github.com/jarrekk/Jalpc)

[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)
[![stable](http://badges.github.io/stability-badges/dist/stable.svg)](http://github.com/badges/stability-badges)
[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badge/)

<https://jarrekk.github.io/Jalpc/>

<http://www.jarrekk.com>  -- Personal website

![Blog](https://github.com/jarrekk/Jalpc/raw/master/readme_files/Jalpc.png)

- [3 steps to setup this theme at your website!](#3-steps-to-setup-this-theme-at-your-website)
- [Features](#features)
  - [Index page](#index-page)
    - [`_data/*.yml`](#_datayml)
  - [Chart Skills](#chart-skills)
  - [Categories in blog page](#categories-in-blog-page)
  - [Pagination](#pagination)
  - [Page views counter](#page-views-counter)
  - [Multilingual Page](#multilingual-page)
  - [Web analytics](#web-analytics)
  - [Comment](#comment)
  - [Share](#share)
  - [Search engines](#search-engines)
  - [Compress CSS and JS files](#compress-css-and-js-files)
- [Put in a Jalpc Plug](#put-in-a-jalpc-plug)
- [Upgrading Jalpc](#upgrading-jalpc)
  - [Ensure there's an upstream remote](#ensure-theres-an-upstream-remote)
  - [Pull in the latest changes](#pull-in-the-latest-changes)
- [Todo](#todo)
- [Donate Jalpc](#donate-jalpc)
- [Wiki](#wiki)
- [Ad](#ad)

This is a simple, beautiful and swift theme for Jekyll. It's mobile first, fluidly responsive, and delightfully lightweight.

If you're completely new to Jekyll, I recommend checking out the documentation at <http://jekyllrb.com> or there's a tutorial by Smashing Magazine.

# 3 steps to setup this theme at your website!

Here is a [document](https://jarrekk.github.io/Jalpc/html/2017/01/31/3-steps-to-setup-website-with-Jalpc.html) of how to setup this theme with 3 steps and a [wiki](https://github.com/jarrekk/Jalpc/wiki/How-to-add-posts) of how to add posts. If you have any **questions** please ask me at [GitHub Issues](https://github.com/jarrekk/Jalpc/issues).

# Features

## Index page

The index page is seprated into several sections and they are located in `_includes/sections`,the configuration is in `_data/landing.yml` and section's detail configuration is in `_data/*.yml`.

### `_data/*.yml`

These files are used to dynamically render pages, so you almost don't have to edit *html files* to change your own theme, besides you can use `jekyll serve --watch` to reload changes.

The following is mapping between *yml files* to *sections*.

* landing.yml ==> index.html
* index/language.yml ==> index.html
* index/careers.yml  ==>  _includes/sections/career.html
* index/skills.yml  ==>  _includes/sections/skills.html
* index/projects.yml  ==>  _includes/sections/projects.html
* index/links.yml  ==>  _includes/sections/links.html

This *yml file* is about blog page navbar

* blog.yml ==> _includes/header.html

The following is mapping between *yml files* to *donation*

* donation/donationlist.yml ==> blog/donate.html
* donation/alipay.yml  ==>  blog/donate.html
* donation/wechat_pay.yml ==> blog/donate.yml

## Chart Skills

I use [Chart.js](http://www.chartjs.org/) to show skills, the type of skills' chart is radar, if you want to custom, please read document of Chart.js and edit **_includes/sections/skills.html** and **_data/index/skills.yml**.

## Categories in blog page

In blog page, we categorize posts into several categories by url, all category pages use same template html file - `_includes/category.html`.

For example: URL is `http://127.0.0.1:4000/python/`. In `_data/blog.yml`, we define this category named `Python`, so in `_includes/category.html` we get this URL(/python/) and change it to my category(Python), then this page are posts about **Python**. The following code is about how to get url and display corresponding posts in  `_includes/category.html`.

```html
<div class="row">
    <div class="col-lg-12 text-center">
        <div class="navy-line"></div>
        {% assign category = page.url | remove:'/' | capitalize %}
        {% if category == 'Html' %}
        {% assign category = category | upcase %}
        {% endif %}
        <h1>{{ category }}</h1>
    </div>
</div>
<div class="wrapper wrapper-content  animated fadeInRight blog">
    <div class="row">
        <ul id="pag-itemContainer" style="list-style:none;">
            {% assign counter = 0 %}
            {% for post in site.categories[category] %}
            {% assign counter = counter | plus: 1 %}
            <li>
```

## Pagination

The pagination in jekyll is not very perfect,so I use front-end web method,there is a [blog](http://www.jarrekk.com/html/2016/06/04/jekyll-pagination-with-jpages.html) about the method and you can refer to [jPages](http://luis-almeida.github.io/jPages).

## Page views counter

Many third party page counter platforms are too slow,so I count my website page view myself,the javascript file is [static/js/count.min.js](https://github.com/jarrekk/jalpc_jekyll_theme/blob/gh-pages/static/js/count.min.js) ([static/js/count.js](https://github.com/jarrekk/jalpc_jekyll_theme/blob/gh-pages/static/js/count.js)),the backend API is written with flask on [Vultr VPS](https://www.vultr.com/), detail code please see [ztool-backhend-mongo](https://github.com/Z-Tool/ztool-backhend-mongo).

## Multilingual Page

The landing page has multilingual support with the [i18next](http://i18next.com) plugin.

Languages are configured in the `_data/index/language.yml` file.

> Not everyone needs this feature, so I make it very easy to remove it, just clear content in file `_data/language.yml` and folder `static/locales/`.

About how to custom multilingual page, please see [wiki](https://github.com/jarrekk/Jalpc/wiki/Multilingual-Page).

## Web analytics

I use [Google analytics](https://www.google.com/analytics/) and [GrowingIO](https://www.growingio.com/) to do web analytics, you can choose either to realize it,just register a account and replace id in `_config.yml`.

## Comment

I use [Disqus](https://disqus.com/) to realize comment. You should set disqus_shortname and get public key and then, in `_config.yml`, edit the disqus value to enable Disqus.

## Share

I use [AddToAny](https://www.addtoany.com/) to share my blog on other social network platform. You can go to this website to custom your share buttons and paste code at `_includes/share.html`.

![share](https://github.com/jarrekk/Jalpc/raw/master/readme_files/share.png)

## Search engines

I use javascript to realize blog search,you can double click `Ctrl` or click the icon at lower right corner of the page,the detail you can got to this [repository](https://github.com/androiddevelop/jekyll-search). Just use it.

![search](https://github.com/jarrekk/Jalpc/raw/master/readme_files/search.gif)

## Compress CSS and JS files

All CSS and JS files are compressed at `/static/assets`.

I use [UglifyJS2](https://github.com/mishoo/UglifyJS2), [clean-css](https://github.com/jakubpawlowicz/clean-css) to compress CSS and JS files, customised CSS files are at `_sass` folder which is feature of [Jekyll](https://jekyllrb.com/docs/assets/). If you want to custom CSS and JS files, you need to do the following:

1. Install [NPM](https://github.com/npm/npm) then install **UglifyJS2** and **clean-css**: `npm install -g uglifyjs; npm install -g clean-css`, then run `npm install` at root dir of project.
2. Compress script is **build.js**
3. If you want to add or remove CSS/JS files, just edit **build/build.js** and **build/files.conf.js**, then run `npm run build` at root dir of project, link/src files will use new files.

OR

Edit CSS files at `_sass` folder.

# Local tests/development

First, install Jekyll on terminal:

```shell
bundle install
```

Then, execute:

```shell
bundle exec jekyll serve
```

# Put in a Jalpc Plug

If you want to give credit to the Jalpc theme with a link to my personal website <http://www.jarrekk.com>, that'd be awesome. No worries if you don't.

# Upgrading Jalpc

Jalpc is always being improved by its users, so sometimes one may need to upgrade.

## Ensure there's an upstream remote

If `git remote -v` doesn't have an upstream listed, you can do the following to add it:

```
git remote add upstream https://github.com/jarrekk/Jalpc.git
```

## Pull in the latest changes

```
git pull upstream gh-pages
```

There may be merge conflicts, so be sure to fix the files that git lists if they occur. That's it!

# Testing Locally
To test your site locally, you’ll need

- [ruby](https://www.ruby-lang.org/en/)
- the [github-pages](https://github.com/github/pages-gem) gem

## Installing ruby
There are [lots of different ways to install ruby](https://www.ruby-lang.org/en/documentation/installation/).

In Mac OS X, older versions of ruby will already be installed. But I use the [Ruby Version Manager (RVM)](https://rvm.io/) to have a more recent version. You could also use [Homebrew](https://brew.sh/).

In Windows, use [RubyInstaller](https://rubyinstaller.org/). (In most of this tutorial, I’ve assumed you’re using a Mac or some flavor of Unix. It’s possible that none of this was usable for Windows folks. Sorry!)

## Installing the github-pages gem
Run the following command:

```
gem install github-pages
```

This will install the github-pages gem and all dependencies (including [jekyll](https://jekyllrb.com/)).

## Later, to update the gem, type:

```
gem update github-pages
```

Testing your site locally
To construct and test your site locally, go into the directory and type

```
jekyll build
```

This will create (or modify) a `_site/ directory`, containing everything from `assets/`, and then the `index.md` and all `pages/*.md` files, converted to html. (So there’ll be `_site/index.html` and the various `_site/pages/*.html.`)

Type the following in order to “serve” the site. This will first run build, and so it does not need to be preceded by `jekyll build`.

```
jekyll serve
```

Now open your browser and go to `http://localhost:4000/site-name/`

# Todo
- [ ] `jekyll server --watch` mode need to use original CSS/JS files
- [ ] User can customise index page's section title.
- [x] Non-github projects also have links.
- [ ] Add some custom color themes for selection(Nav bar, background, words, dominant hue).

# Donate Jalpc
If this project let you enjoy your blog time, you can give me a cup of coffee :)

[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://paypal.me/jarrekk)

# Wiki

* [Multilingual Page](https://github.com/jarrekk/Jalpc/wiki/Multilingual-Page)
* [How to add posts](https://github.com/jarrekk/Jalpc/wiki/How-to-add-posts)
* [Change Log](https://github.com/jarrekk/Jalpc/wiki/Change-Log)
* [Contributors](https://github.com/jarrekk/Jalpc/wiki/Contributors)
* [Thanks to the following](https://github.com/jarrekk/Jalpc/wiki/Thanks-to-the-following)

# Ad
[Jalpc-A](https://github.com/Jack614/Jalpc-A): another Jekyll theme written by [AngularJS](https://angularjs.org/).

反馈内容错误

看看同类模板

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