以 XP.css(98.css 分支)实现 Windows 98 界面风格
jekyll-98 — Jekyll 博客模板
作者 queenkjuul
基于 XP.css 的 Jekyll 博客主题,用 Windows 98 界面风格呈现文章列表、分类页与社交链接。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
几乎不使用 JavaScript,无脚本时仍可使用
内置分页、Atom feed、社交链接与按分类索引页
仓库本身是可运行的 Jekyll 站点,可直接克隆或 fork 使用
支持 gem 主题与 jekyll-remote-theme 两种引入方式
文章列表可用 {:.tree-view} 渲染成资源管理器树状样式
模板详细介绍
jekyll-98 是一个 Jekyll 博客主题,视觉风格来自 98.css 的分支 XP.css,目标是在移动端可用的博客格式中重现 Windows 98 的外观。主题几乎不使用 JavaScript,README 称即使禁用脚本也应正常使用。
主题自带分页、Atom feed 生成、社交链接展示,以及按分类生成的索引页。仓库本身就是一个可直接运行的 Jekyll 站点,可以克隆或 fork 后修改配置、添加文章再部署;也支持作为 gem 主题或通过 jekyll-remote-theme 引入到已有站点。
使用上有几处明确限制:分类索引页依赖 GitHub Actions 部署,使用 GitHub Pages 的“deploy from branch”旧方式会导致 desktop_categories 和 show_categories 链接指向 404;桌面图标与开始菜单项合计建议不超过 5–7 个,否则布局会变得奇怪;文章首行若再写标题会出现标题重复,因为 post 布局已包含标题头。
适合你的项目吗?
适用场景
- 搭建带 Windows 98 复古界面的个人博客
- 为已有 Jekyll 站点通过 remote_theme 更换主题外观
- 用分类索引页整理和浏览不同主题的文章
- 在 GitHub Pages 上通过 GitHub Actions 部署静态博客
适合人群
- 使用 Jekyll 写博客并希望获得复古桌面风格的个人作者
- 愿意通过 _config.yml 配置站点信息、分类与社交链接的用户
- 接受用 GitHub Actions 而非 deploy from branch 部署的 GitHub Pages 用户
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
快速开始:git clone 仓库后执行 bundle、bundle exec jekyll serve 预览,bundle exec jekyll build 构建。
- 2
作为 gem 主题安装:bundle add jekyll-98,并在 _config.yml 中设置 theme: jekyll-98。
- 3
使用 remote_theme 时需在部署分支根目录提供 _config.yml,为 README 等文件指定 layout: post。
- 4
若不自定义社交链接,需在 _config.yml 中把 jekyll-98.social_links 下的 github、youtube、twitch 设为 false,否则会显示主题作者的社交账号。
- 5
分类索引页需使用 GitHub Actions 部署;沿用 deploy from branch 时应关闭 desktop_categories 与 show_categories。
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 分类链接功能依赖 GitHub Actions 部署;若使用 GitHub Pages 的 deploy from branch 方式,show_categories 与 desktop_categories 生成的链接会指向 404,需改用 GitHub Actions 或关闭这些功能。
- 若不自行配置社交链接,主题作者的社交账号会默认显示在你的站点上;需在 _config.yml 中将 jekyll-98.social_links 下的 github、youtube、twitch 设为 false 才能移除。
- 桌面图标与开始菜单项合计超过 5–7 个时布局会变得异常,需控制 desktop_categories 与 site_links 的数量。
- 文章首行若再写标题会与 post 布局自带的标题头重复显示,应避免首行使用标题。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
show_categories: true # show category links in post lists - REQUIRES GITHUB ACTIONS TO WORK WITH GITHUB PAGES, SEE README
README 原文
Otherwise, my own socials will appear on your site :cringe:
README 原文
Note that things might get weird layout wise if you have more than 5-7 desktop icons total
README 原文
https://github.com/queenkjuul/jekyll-98/blob/main/LICENSE.txthttps://github.com/queenkjuul/jekyll-98/blob/main/README.mdif the first line of your post is a header containing the title, the title will appear twice
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 77 / 100
- 技术栈
- Jekyll
- 网站类型
- 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2025-01-02
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Jekyll。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: e5d9510f0283569c0526154a5513c56466d77352040e8a407de173da4cc3a1e6
2026-10-02T10:58:52.652Z
来源文件 / 仓库# jekyll-98
[***See it in action right here!***](https://queenkjuul.github.io/jekyll-98/)
A theme for Jekyll built using the [XP.css](https://github.com/botoxparty/XP.css) fork of [98.css](https://github.com/jdan/98.css) which aims to recreate the aesthetics of Windows 98 in a mobile-friendly, customizable blog format.
*Almost* no JavaScript, but should be perfectly usable without. Ships with pagination, atom feed generation, automatic social media links, and per-category index pages out of the box.

## Installation
### Quick Start
This repo is actually a fully functional jekyll site! You can clone or fork this repo, update the config with your own values, add some posts, et voila! You have a website ready to be hosted with Github Pages or built and served on your own host.
If you use this repo as a base, make sure your GitHub Repo > Settings > Pages > Source is set to "GitHub Actions." The `main` branch is deployed by default. Edit `.github/workflows/jekyll.yml` to change branches. [See note below about GitHub Actions](#github-pages--jekyll-remote-theme)
```sh
git clone https://github.com/queenkjuul/jekyll-98
cd jekyll-98
bundle
bundle exec jekyll serve # preview
bundle exec jekyll build # build
```
### GitHub Pages / jekyll-remote-theme
In your site's _config.yml, add:
```yml
remote_theme: queenkjuul/jekyll-98
```
You will need a `_config.yml` file in the root of your deployment branch as well. All it needs to contain is:
```yaml
defaults:
- scope:
path: "" # an empty string here means all files in the project
values:
layout: "post"
```
Without this, your README.md file will not use any particular layout, and will just render plain text onto an empty desktop. For a more complete example, see [here](https://github.com/queenkjuul/spotify97/blob/main/_config.yml)
If you are not adding your own social media links to `_config.yml` then you will also need to add this:
```yaml
jekyll-98:
social_links:
github: false
youtube: false
twitch: false
```
Otherwise, my own socials will appear on your site :cringe: (if anyone knows a better way to override these by default let me know)
#### GitHub Pages Deployment
**NOTE:** the "deploy from branch (classic)" GitHub Pages deployment method FAILS to generate category index pages. However, the default Jekyll GitHub Action works. [See instructions from GitHub here and set up your site's repo to publish with the default Jekyll workflow](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow).
Using the legacy "deploy from branch" option will not break the site, but it will break the [`desktop_categories`](#theme-settings) and [`show_categories`](#settings) functions. If they are left enabled, the site will build and deploy, but those links will lead to 404s, so it's best to disable them.
### Manual installation
`jekyll-98` is now available as a standard `gem` theme. You can install it to your site with `bundle add jekyll-98` and add this line to your Jekyll site's `_config.yml`:
```yaml
theme: jekyll-98
```
## Usage
Theme should provide sane defaults, but there's lots to customize. For full configuration options, refer to [_config.yml](https://github.com/queenkjuul/jekyll-98/blob/main/_config.yml). Add whatever settings you want *to your site's _config.yml*.
### Posts
#### Titles and excerpts
The default Post layout includes a header containing the post title as defined in the front matter. This means that if the first line of your post is a header containing the title, the title will appear twice. Keep this in mind. Also, Jekyll will by default use the first block of your post as its excerpt, so it's best to avoid first-line headers. You can always define an excerpt explicitly in the front matter like so:
```yml
---
title: Post Title
excerpt: this is what will show on the home page (if show_excerpts is enabled)
---
```
#### List formatting
If you add `{:.tree-view}` before your bulleted lists, they will render in Windows Explorer-style tree view mode. I'd like to do this automatically, but I don't know how to apply a class automatically to the kramdown/jekyll output. If you know how, get in touch! Open an issue, raise a PR, or (please don't really) email me.
Example:
```md
{:.tree-view}
- First Item
- Second Item
- Third Item
```
{:.tree-view}
- First Item
- Second Item
- Third Item
#### Front matter
You will want to define the following in your posts' front matter:
- Required:
- `title: string` - as mentioned above, will be displayed as a top-level header in the post page layout, as well as in lists
- `layout: post` - you probably want to leave this
- `date: YYYY-MM-DD HH:MM:SS +/-0000` - time zone offset at end. Only for internal use, actual formatted date shown to users is formatted per `jekyll-98.date_format` in `_config.yml`
- Optional
- `categories: string1 string2 ...` - space-separated list of post categories. Posts can be browsed by category with links on the homepage. Uses [jekyll-category-pages](https://github.com/field-theory/jekyll-category-pages).
- `icon: icon_string` - `icon_string` is the filename of any icon in the jekyll-98 `assets/icons` folder, minus the extension (so omit `.png`). Optional. Unfortunately for now, can't be automatically set by category. Will appear in any post list.
- `excerpt: string` - excerpt to be shown in post lists if excerpts is enabled in `_config.yml`. If not defined, jekyll will use the first paragraph of your post.
## Configuration
### Basic site info
```yaml
title: blog name
author: # ***PUBLIC BY DEFAULT!***
name: &name your name # need &name prefix for Contact page to work
email: &email [email protected] # need &email prefix for Contact page
description: what's the deal with websites?
```
Basic Jekyll/Pages info from the template, such as title, author, and description. Author is a parent node, with child nodes name and email. Site title is used everywhere. Description appears on Home and About pages. Author info only shows up (optionally) on the Contact page. `title`, `author`, and `description` should be defined at the root level of your `_config.yml`
### Settings
```yaml
show_excerpts: false # show post excerpts in post lists
show_categories: true # show category links in post lists - REQUIRES GITHUB ACTIONS TO WORK WITH GITHUB PAGES, SEE README
paginate: 3 # set to false to disable, numbers above 3 might be weird on mobile
paginate_path: /page/:num # change if you know what you're doing
google_analytics: asdf1234 # your google analytics key
```
Enabling excerpts will show the first bit of a post on the home page. This can be a little unreliable with the layout of the posts list, so either disable (default) or experiment. You can define an explicit excerpt (instead of letting Jekyll guess) by defining `excerpt` in the post's front matter (see [Posts](#posts))
`show_categories` is NOT compatible with the default "deploy from a branch" GitHub Pages deployment method. Instead, [use a GitHub Action](#github-pages-deployment)
### Theme settings
Theme settings are defined within the `jekyll-98` node of your _config.yml
```yaml
title: ...
author: ...
...
jekyll-98:
date_format: ...
...
```
#### `date_format`
change how timestamps are shown - refer to [https://shopify.github.io/liquid/filters/date/](https://shopify.github.io/liquid/filters/date/) if you want to customize this
#### `icon`
you can define a different icon to use for the "my computer" homepage icon on the desktop here.
#### `desktop_categories`
Categories defined in this array will generate desktop icons and start menu links, assuming there are posts that exist that are tagged with that category. Note that things might get weird layout wise if you have more than 5-7 desktop icons total (`desktop_categories` and `site_links` combined)
Not compatible with the default "Deploy from a branch" GitHub Pages deployment method. [Use the default Jekyll deployment Action instead](#github-pages-deployment)
#### `site_links`
You can define additional links to include on the desktop and start menu. Links must have a title, url, icon, and alt text/description. the `alt` text is both the alt-text for the actual icon image tag (for screen readers) but also appears in the start menu. The start menu does not wrap text, so long descriptions might stretch the menu out to goofy proportions.
```yml
jekyll-98:
site_links:
- title: 'Name'
url: https://example.com
icon: document # see assets/icons
alt: 'Descriptive text'
```
#### `social_links`
All available sites/icons are listed in the theme [`_config.yml`](https://github.com/queenkjuul/jekyll-98/blob/main/_config.yml). Define a username, and the site will appear in the taskbar, as well as the Contact page (if enabled)
#### `contact`
By default, the contact page will display the name and email set in the site config. Commenting/removing these lines will prevent the Contact page from being generated (and links to it will be removed)
See [`_config.yml`](https://github.com/queenkjuul/jekyll-98/blob/main/_config.yml) for details on setting up additional info beyond name + email.
#### `about`
You can add any info you like to the default About page. The About page will automatically include your site description. Additional lines defined in the `jekyll-98.about` array will appear in a bulleted list on the About page, below the description.
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/queenkjuul/jekyll-98. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## Development
To set up your environment to develop this theme, run `bundle install`.
Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
To add a custom directory to your theme-gem, please edit the regexp in `jekyll-98.gemspec` accordingly.
## License
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
social icons from https://github.com/edent/SuperTinyIcons
credit Alex Meub https://win98icons.alexmeub.com/看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

al-folio
al-folio 是一个面向学者与研究人员的 Jekyll 作品集主题,设计简洁、响应式,适合搭建个人学术主页。
Jekyll · 作品集

minimal-mistakes
:triangular_ruler: Jekyll theme for building a personal site, blog, project documentation, or portfolio.
Jekyll · 作品集

Beautiful Jekyll
Beautiful Jekyll 是一个在 Jekyll 生态中经过长期打磨的博客主题,由 Dean Attali 维护,自 2015 年起积累了超过 5 万用户。
Jekyll · 博客

jekyll-TeXt-theme
💎 🐳 A super customizable Jekyll theme for personal site, team site, blog, project, documentation, etc.
Jekyll · 博客

startbootstrap-clean-blog-jekyll
A Jekyll version of the Clean Blog theme by Start Bootstrap
Jekyll · 博客

So Simple
So Simple 是 Michael Rose 开发的 Jekyll 主题,定位清晰:为文字和图片提供一个干净、可读性强的展示框架。
Jekyll · 博客
