Foojay新增四大页面:Java视频、统计数据、会议地图与文章预告
Foojay 不仅仅是一份文章列表,网站还在不断扩展。过去一周,四个新页面上线:一个汇集 Java 视频的页面、一个展示 Foojay 背后数据的页面、一个 Java 会议地图,以及一个展示接下来即将发布文章的页面。它们都不需要人工维护即可保持更新。每个页面都基于自动抓取或统计的数据构建,下面我会说明这些数据来自哪里。
Foojay Television
页面: foojay.io/tv
YouTube 上有大量优质的 Java 内容,分散在许多频道中。Foojay Television 将这些频道的最新视频集中到一个地方。
左侧列出各个频道,并带有用于筛选的搜索框以及每个频道的视频数量。右侧显示一个播放器,播放最新视频,并以网格形式展示其他视频。选择一个频道即可只查看该频道的视频,或点击任意视频在本页播放。
这个页面在设计上尽量减少追踪:
- 在你点击某个视频之前,不会加载任何来自 YouTube 的内容。在此之前,你只会看到缩略图和播放按钮。
- 点击后,视频通过
youtube-nocookie.com播放。 - 在没有 JavaScript 的情况下,每个视频都是指向 YouTube 的普通链接。
YouTube Shorts 会被过滤掉。频道的 feed 不会标明哪些视频是 Shorts,因此抓取脚本会检查每个新视频并跳过 Shorts。
[LOADING...] Foojay Television 左侧为频道列表,右侧为播放器 [LOADING...] 所有频道最新视频的网格
工作原理:
- 频道列在
data/tv-channels.yaml中。只需提供一个 YouTube 账号句柄即可添加频道。 - 脚本
TvVideos.java读取每个 YouTube 频道的公开 RSS feed,并将结果写入data/tv-videos.json。它每天运行,且不需要 API key。
提示
缺少某个 OpenJDK 或 Java 相关的 YouTube 频道?通过 pull request 将其句柄添加到 tv-channels.yaml 即可。频道名称、头像和视频都会自动抓取。
感谢 Marit van Dijk 提出这个页面的想法。
Foojay 统计数据
Foojay 发布了多少篇文章,有多少作者为我们撰稿,文章被阅读了多少次?统计页面 回答了这些问题,而且每个数字都是在站点构建时统计出来的。Foojay 成长,这个页面也会随之成长。
该页面包含五个部分:
- 内容:文章、作者、分类、百科条目、页面、赞助商、已发布字数、交叉发布文章以及带有文字稿的文章。
- 已发布文章:按年份展示文章数量的图表,你可以按年份和月份缩小范围。
- 新作者:展示有多少作者在 Foojay 上发表了第一篇文章的图表。
- 阅读量:页面被阅读的次数,包括从旧版 Foojay 站点延续过来的计数。
- 社区:Foojay 上列出的 Java 用户组、Java Champions、会议和活动。
阅读量来自我们自己的计数器,而不是第三方分析服务。这样,即使用户屏蔽追踪器,数字也不会因此偏低。
[LOADING...] 内容数字以及按年份展示已发布文章的图表
工作原理:
site-stats.html在站点构建时统计所有内容。ViewCounts.java从阅读计数器(一个小型 Cloudflare Worker)刷新data/views.json。- 如果你希望在自己的项目中使用这些数字,也可以在 foojay.io/stats.json 以 JSON 形式获取相同的数据。
Java 会议
页面: foojay.io/java-conferences
你可以在哪里与 Java 社区相聚,又可以在哪里演讲?Java 会议页面 在世界地图上展示所有即将举行的会议,下方还附有列表。
每一行都包含日期、地点和征稿状态。在筛选框中输入名称、城市或国家即可查找会议。线上会议无法显示在地图上,但会出现在列表中。所有即将举行的会议也会被添加到 Foojay 活动日历。
[LOADING...] 即将举行的会议地图,以及包含日期、地点和征稿信息的列表
工作原理:
- 该列表由社区在 javaconferences.org 上维护,该网站基于 GitHub 上的 javaconferences 仓库 构建。
JavaConferences.java每天读取该网站发布的conferences.json,并写入data/java-conferences.yaml。- 该网站上的日期以自由文本形式书写,因此脚本会对其进行转换。对于无法识别的日期,脚本会报告并跳过,绝不会进行猜测。
提示
缺少某个会议,或者日期、征稿信息有误?请通过 pull request 在 javaconferences 仓库的 README.md 中修正。它会自动显示在 Foojay 上。
即将发布
页面: foojay.io/today/coming-soon
Foojay 的文章会提前排期。日期在未来的文章在当天到来之前不会存在于站点上,因此你无法看到即将发布的内容。即将发布页面 解决了这个问题。它按日期列出已排期的文章,并包含标题、作者、简短描述和分类。
标题不是链接,因为这些页面尚不存在。它们会在所示日期上线。该列表的精简版本也会出现在 Foojay 首页 上。
[LOADING...] 按发布日期分组的已排期文章 [LOADING...] 首页侧边栏中的已排期文章
工作原理:
- 已排期的文章不会被构建,因此没有任何页面能够列出它们。
scheduled-posts.html直接从仓库的文件夹中读取它们。 - 静态站点只会在构建时发生变化。工作流
publish-scheduled.yml会检查是否有文章已到发布时间;如果有,就启动构建来发布它。
注意
想让你的文章出现在这个页面上?请按照 如何向 Foojay.io 提交下一篇文章 中的说明,通过 pull request 发送文章,维护者会为其安排发布时间。
反馈
所有这些页面都是开源的,和 Foojay 网站 的其他部分一样。你有改进其中某个页面的想法,或者希望看到某个页面?请在 GitHub 上提交 issue 或 pull request,或者在 Slack 上告诉我们。
作者
Frank Delporte
Frank Delporte 是 Java Champion、Java 开发者、Azul 高级技术文档工程师、博主、《Java Programming for Raspberry Pi - A Hands-On Guide to Electronics and IoT Projects》的作者,也是 Pi4J、Lottie4J、Sheetmusic4J 等项目的开源贡献者……## 加入讨论
Foojay [LOADING...]
[LOADING...]Frank Delporte2026年9月22日 856 次浏览
宣布全新 Foojay
Foojay
Foojay [LOADING...]
[LOADING...]Frank Delporte2026年10月29日 100 次浏览
我们如何在社交媒体上分享 Foojay 文章
Foojay 开发者工具 AI
Foojay [LOADING...]
[LOADING...][LOADING...][LOADING...]3 位作者 2022年5月3日 16,072 次浏览
如何向 Foojay.io 提交你的下一篇文章
Foojay
Foojay [LOADING...]
[LOADING...]Frank Delporte2026年10月6日 116 次浏览