timeline 时间线
支持静态和动态时间线数据源:
- 静态数据
- 默认
timeline:GitHub/Gitea Issues 或 Releases 兼容数据 weibo:WeiboSpider 输出memos:主题已适配的 Memos 响应rss:RSS 2.0、Atom、RSS 1.0 或 JSON Feedtwikoo、waline、artalk、giscus:对应评论服务的最新评论
{% timeline [type:timeline/weibo/memos/rss/twikoo/waline/artalk/giscus] api:url [limit:number] [hide:user,title,footer] %}{% endtimeline %} |
api 是动态数据的必填项。其它参数会作为属性传给选中的适配器,只有该适配器读取的参数才生效。未填 api 时仅渲染静态节点;请求失败时保留已有静态内容或空状态。
常见的使用场景请看这篇文章:
静态时间线
静态数据写在 Markdown 源文件中,生成站点时一并输出。
主要部分功能已经开发的差不多了。

今天除夕,也是生日,一个人在外地过年+过生日,熬夜开发新主题,尽量在假期结束前放出公测版。
{% timeline %} |
动态时间线
动态数据是从 GitHub Issues 中拉取的,使用方法为:
- 建一个仓库
- 创建一个
issue并添加一个label进行测试 - 写
timeline标签时加上api:https://api.github.com/repos/your-name/your-repo/issues
例如:
{% timeline api:https://api.github.com/repos/xaoxuu/blog-timeline/issues?direction=asc&per_page=3 %}{% endtimeline %} |
效果如下:
- fork shaoyaoqian/WeiboSpider 的爬虫,修改自己的仓库名
- 修改
.github/workflows/main.yml中的微博ID为你想爬取的ID,修改完后每天会自动爬取你的微博,存储为 json 文件,输出文件在 output 分支
{% timeline limit:20 type:weibo api:你的json文件地址 %}{% endtimeline %} |
这个功能在 1.34.0 版本后开始支持:
动态数据也可以直接拉取 RSS / Atom / JSON Feed 订阅源,适合配合 RSSHub 聚合各类平台动态(如 B 站、微博等):
{% timeline type:rss api:https://rsshub.app/bilibili/user/dynamic/你的uid %}{% endtimeline %} |
可选参数:
limit:显示条数,默认10content_type:显示内容或摘要,content(默认)或summaryshow_title:是否显示标题,默认trueshow_content:是否显示内容,默认true
例如只显示标题、限制 5 条:
{% timeline type:rss api:https://rsshub.app/bilibili/user/dynamic/你的uid limit:5 show_content:false %}{% endtimeline %} |
静态 + 动态
用法同静态和动态单独使用时一样,例如:
{% timeline reversed:true api:https://raw.github.xaox.cc/xaoxuu/ghapi-json-generator/refs/heads/output/v2/repos/xaoxuu/blog-timeline/issues%3Fper_page%3D5/data.json %} |
数据筛选
只显示某个人的数据
筛选最近3条todo
筛选评论最多的3条建议
上述示例代码如下:
{% folders %} |
更多用法详见:
friends 友链
{% friends [group] [repo:owner/repo] [api:url] [posts:true/false] %} |
group 读取 source/_data/links/<group>.yml。api 优先于 repo;仅填 repo 时,主题通过 services.github.raw_url 请求 <owner/repo>/output/v2/data.json。posts:true 选用友链与文章聚合适配器,只适用于动态数据。未提供 group、repo 或 api 时输出空容器。
您可以在任何位置插入友链组,支持静态数据和动态数据,静态数据需要写在数据文件中:
- title: 某某某 |
在需要的位置这样写:
{% friends ios_developer %} |
实现动态友链
以 xaoxuu/friends 为模板创建仓库,或 fork 该仓库,并启用 GitHub Actions。
按仓库中的 Issue 模板填写友链信息并提交,在 Actions 页面查看运行结果。工作流成功后,output 分支会生成数据文件;确认包含刚提交的友链信息后,即可在页面中引用:
{% friends api:https://raw.github.com/xaoxuu/friends/output/v2/data.json %} |
相关工作流项目包括:
- issues2json:自动获取issue中第一段json保存为文件,支持多种排序和过滤
- links-checker:自动检查issue中填写的链接是否有效,可用于动态友链、示例博客
- feed-posts-parser:友链文章订阅
各工作流的配置方法见对应项目的 README。
友链+友链文章聚合显示
写法比普通友链多了个 posts:true,要求必须是动态友链:
{% friends posts:true api:https://raw.github.com/volantis-x/friends-example/output/v2/data.json %} |
旧的动态友链仓库怎么升级?
详见这篇文章:《感谢 AI,动态友链获重磅升级!》
数据托管与加速
支持把数据托管到任何其他地方来使用,例如:
{% friends api:https://raw.github.xaox.cc/xaoxuu/friends/output/v2/data.json %} |
数据也可以通过 CDN 或反向代理访问,或用 GitHub Actions 同步到对象存储。更换托管地址后,将标签中的数据链接改为新地址。
sites 网站卡片
{% sites [group] [repo:owner/repo] [api:url] %} |
group、repo、api 的选择顺序与 friends 相同,api 优先于 repo。未提供数据源时输出空容器。
您可以在任何位置插入网站卡片组,支持静态数据和动态数据,静态数据需要写在数据文件中:
- title: 标题 |
在需要的位置这样写:
{% sites 分组名 %} |
条目未配置 icon 或 avatar 时,网站卡片会复用 services.site_info 选中的 provider 自动补充信息区的圆形图标。主题默认选择 site_info_api 并使用 xaox.cc 公共实例;站点可覆盖 services.site_info.site_info_api.endpoint 为自部署地址,或设置 provider: null 关闭。请求失败时保留主题兜底图标且不显示错误;该接口不会自动获取网站截图。
Stellar v1.13.0
原 friends 和 sites 标签数据合并至 links/xxx.yml 文件,动态数据使用方法同友链,数据源格式相同,与友链共享数据,仅样式不同,也可以用 sites 标签做友链。
albums 专辑
{% albums [group] [repo:owner/repo] [api:url] [size:s/m/l/xl/mix] %} |
size 默认 s。api 优先于 repo;动态数据使用正方形封面,静态数据读取 links 分组。未提供数据源时输出空容器。
配置数据源:
- title: 标题 |
文章中插入方式:
{% albums 分组名 %} |
posters 海报
{% posters [group] [repo:owner/repo] [api:url] [size:xs/s/m/l/xl/mix] %} |
size 默认 xs。api 优先于 repo;静态数据使用竖向封面。未提供数据源时输出空容器。
配置数据源:
- title: 标题 |
文章中插入方式:
{% posters 分组名 %} |
md 渲染外部 markdown 文件
{% folding %} |
wrap 参数默认为 true:渲染结果保留在 .data-service.ds-mdrender 容器内;传 wrap:false 时渲染后不留外部容器,内容直接融入正文:
{% md https://raw.githubusercontent.com/xaoxuu/hexo-theme-stellar/main/README.md wrap:false %} |
效果如下
说明:当 src 是 GitHub raw 地址(
raw.githubusercontent.com)时,会使用services.github.raw_url的镜像站,README 内的相对图片/链接也会解析到同一镜像基址。
ghcard 卡片
{% ghcard xaoxuu %} |
默认选择 github_readme_stats provider;需要使用自部署实例时,设置 services.github_card.github_readme_stats.endpoint:
services: |
gist 代码片段
gist 标签通过 services.github.gist_url 构造脚本地址:
{% gist owner/id %} |
toc 文档目录树
{% toc wiki:xxx [open:true] [display:mobile] title %} |


























