Skip to content

Maybe next version - #93

Draft
jiazengp wants to merge 363 commits into
masterfrom
Refactor/zola
Draft

jiazengp wants to merge 363 commits into
masterfrom
Refactor/zola

Conversation

@jiazengp

@jiazengp jiazengp commented Sep 10, 2026 •

Copy link
Copy Markdown
Member

该分支为参照新版 UI 稿,基于 Zola 完全重写版本。

状态

WIP / Draft

相关页面

开发预览主站:https://hibikilogy.vercel.app

推荐使用新版 Chrome 浏览器访问以获得完整体验。

Features

  • 按字频切块,构建期动态生成字体子集。
  • 独立搜索页,支持中文文章搜索。
    • 中文分词加二元组的模糊匹配。
    • 正文子串匹配并生成上下文摘要。
    • Web Worker 与 IndexedDB 索引缓存。
    • 支持 OR / NOT / 引号 / 字段限定的高级查询语法。
    • 返回上一页时恢复上次结果。
  • 动态瀑布流 Journal
  • 基于 CI 的短链自动分配与管理。
  • 面向 Agent 的 Markdown 路由与 llms.txt。
  • 构建期生成 OG 卡片(实验性)。
  • 基于 Swup.js 的多页 SPA 导航。
  • 基于 View Transition API 的导航与标题过渡动画。
  • 基于交互意图的动态页面预加载。
  • 基于 KaTeX 的数学公式渲染与排版。
  • 站点、标签、作者三类 Feed。
  • 站点地图、OpenSearch 与结构化数据。
  • 标签按分类分组展示。
  • 图片显示优化:懒加载、Thumbhash 缩略图占位、点击放大预览。
  • 图片资源优化。通过 CDN 获取动态 avif/webp 格式图片响应。
  • 双子列均摊均衡分页。
  • 独立作者页,支持配置作者资料。
  • 中文排版优化。
  • 基于 Sveltia CMS 的无后端内容后台,支持文章编辑与预览。
  • 旧路径经 aliases 自动重定向到新路由。
  • 基于 Lightning CSS 的样式打包压缩,基于 Beasties 的关键样式内联。
  • 基于 UnoCSS 的原子 CSS 引擎。
  • 配套 article-import SKILL,指导 Agent 导入外部文章。
  • 基于 GitHub Actions、GitHub Pages 与 Vercel 的 CI/CD。
    • 全量质量门禁。
    • Typos 拼写检查。
    • lychee 死链检测。
    • 主站和开发分支中 GitHub Pages 和 Vercel 的自动部署。
    • PR 预览自动部署到 Surge。
    • 短链自动分配并提交回分支。
    • Git hook 与提交信息校验。
  • 夜间模式。

破坏性更新

TODO

  • 检查完善对齐 UI 稿细节。
  • 夜间模式。
  • Review 并完善网站交互。
  • Review AI 生成的文章摘要。
  • Review 工程代码实现。
  • 检查各模块和功能的浏览器兼容性。
  • 核对文章内容相对于主分支的同步状态。
  • 更新 zola.toml 的 base_url,并去掉 title 中的 "Dev Preview"。

Related

Closes #79

jiazengp added 30 commits July 20, 2026 14:28
- Code-split medium-zoom, Heti, and search page modules via dynamic import()
- Inject font preload tags during build for subsetted serif title font
- Preload cover image in head and add fetchpriority=high to hero img
- Disable view-transition animations for prefers-reduced-motion
- Narrow navbar transition from 'all' to opacity/color only
- Reserve min-width for async busuanzi counter to prevent CLS
The title font preload offered minimal benefit since all fonts use
font-display: swap and the title font (~307KB) is small. Removing this
simplifies the critical CSS pipeline.
pnpm passes the -- separator through to the underlying command, turning
zola build -- --base-url into an invalid invocation. Call zola and cargo
directly in CI steps that need to pass --base-url, since both tools are
already installed in the runner environment.
@jiazengp
jiazengp marked this pull request as draft September 10, 2026 16:06
The compact shell placeholder was 13px inside a 35px box, so it sat small against the height. Raise it to 16px to match the 1rem search icon; the kbd hint keeps its 12px size.

The icon was pushed right by a fixed 80px left margin, so the wider placeholder squeezed it to 2.4px from the inner border inside an overflow: hidden box. Switch that margin to auto so the icon stays pinned to the right padding, unchanged in position and no longer coupled to the placeholder width.
SearchHighlight derived its own color from --joh-c-primary and rounded
the corners. Reuse the shared --joh-c-mark-bg token so the search
highlight matches the mark styling in article bodies, and drop the
border radius so the highlight is a plain rectangle.
The search page input rendered at font-weight 700, which was heavier
than the rest of the search UI. Let it fall back to the default 400.
The related tags block on the search page kept a 24px margin on both
sides, leaving the pagination, the related tags and the footer too far
apart on desktop. Halve the top margin to 12px so the gap matches the
SearchJournal rhythm, and drop the bottom margin so the block sits
flush against the footer the way the other list pages do.
@h1s97x

h1s97x commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

@jiazengp 这个 PR 体量太大了,全栈重构一次性合进来,没法 review,风险也很大。我建议最好做拆分,哪怕按 50 个提交一个 PR 分批走也行,不要一次性全 merge。

另外这是 Jekyll → Zola 的底层引擎切换,属于架构级变更,最好先跟几个活跃贡献者和仓库 owner 对齐一下方向。如果没有共识,干脆新开仓库也可以。

@h1s97x

h1s97x commented Sep 11, 2026

Copy link
Copy Markdown
Contributor
image

@h1s97x

h1s97x commented Sep 11, 2026

Copy link
Copy Markdown
Contributor
image

@h1s97x

h1s97x commented Sep 11, 2026

Copy link
Copy Markdown
Contributor
image

@h1s97x

h1s97x commented Sep 11, 2026

Copy link
Copy Markdown
Contributor
image image

@jiazengp

jiazengp commented Sep 12, 2026 •

Copy link
Copy Markdown
Member Author

@jiazengp 这个 PR 体量太大了,全栈重构一次性合进来,没法 review,风险也很大。我建议最好做拆分,哪怕按 50 个提交一个 PR 分批走也行,不要一次性全 merge。

另外这是 Jekyll → Zola 的底层引擎切换,属于架构级变更,最好先跟几个活跃贡献者和仓库 owner 对齐一下方向。如果没有共识,干脆新开仓库也可以。

@h1s97x 非常感谢你的建议和反馈!该分支基本可以理解为一个全新项目,与当前主分支除了文章外基本上没有任何重叠且因耦合问题故个人感觉拆分似乎意义有限。继续使用该仓库是之前团队已达成的共识。

image

左边导航栏的导航项的交互确实有待完善,我目前也还在想这里有什么较好交互形式比较契合这里和整体视觉风格。而 "吹学著作集锦" 是网站 Slogan 而非链接。

image

这里并非浮窗而是新的独立页面,但应可以通过点击左上logo返回首页或浏览器自身导航返回上一页。

image image

查询数那里为服务接口侧偶发问题,正考虑更换服务商以此解决。相关功能差异的处理有待进一步讨论。

image

这个确实可以优化。

@itorr

itorr commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

主要争议在颠覆性更新,独立的新 https://github.com/hibikilogy/hibikilogy.kyoani.cn 实现当做新界面存在,文章和博客系统分离。把 https://github.com/hibikilogy/hibikilogy.github.io 当做文章仓库用如何?替换前两版本也方便共存

@h1s97x

h1s97x commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

主要争议在颠覆性更新,独立的新 https://github.com/hibikilogy/hibikilogy.kyoani.cn 实现当做新界面存在,文章和博客系统分离。把 https://github.com/hibikilogy/hibikilogy.github.io 当做文章仓库用如何?替换前两版本也方便共存

我觉得不如直接备份一下本仓库然后archive,然后做博客系统和内容上的分离,新仓库用来存放文章,本仓库用来保留博客系统?这样的话域名也还是这个域名。

或者说如果不再使用github pages,而是使用vercel进行部署,那么就按照你的方案来我觉得是没什么问题的。不过新仓库为什么要叫hibikilogy.kyoani.cn,仓库名和域名没必要一样吧,可以简短一点,这是我的看法

@itorr

itorr commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

主要争议在颠覆性更新,独立的新 https://github.com/hibikilogy/hibikilogy.kyoani.cn 实现当做新界面存在,文章和博客系统分离。把 https://github.com/hibikilogy/hibikilogy.github.io 当做文章仓库用如何?替换前两版本也方便共存

我觉得不如直接备份一下本仓库然后archive,然后做博客系统和内容上的分离,新仓库用来存放文章,本仓库用来保留博客系统?这样的话域名也还是这个域名。

或者说如果不再使用github pages,而是使用vercel进行部署,那么就按照你的方案来我觉得是没什么问题的。不过新仓库为什么要叫hibikilogy.kyoani.cn,仓库名和域名没必要一样吧,可以简短一点,这是我的看法

现有仓库地址有广泛传播、和文章编辑提交历史。博客程序更新不是当前仓库的重点,学报最重要的内容是文章,历史提交记录、讨论这些最重要,如果把文章独立出来新仓库代价太大。

而且,重构、新的部分独立出来最适合。

仓库名,这个首先要看当前仓库要不要改名,即使改名倒也能30x跳转到新地址。
我的习惯是 仓库名和域名一样方便网站地址对应到具体仓库,也省了纠结名字。简短的仓库名有什么提案

@jiazengp

Copy link
Copy Markdown
Member Author

主要争议在颠覆性更新,独立的新 https://github.com/hibikilogy/hibikilogy.kyoani.cn 实现当做新界面存在,文章和博客系统分离。把 https://github.com/hibikilogy/hibikilogy.github.io 当做文章仓库用如何?替换前两版本也方便共存

我觉得不如直接备份一下本仓库然后archive,然后做博客系统和内容上的分离,新仓库用来存放文章,本仓库用来保留博客系统?这样的话域名也还是这个域名。
或者说如果不再使用github pages,而是使用vercel进行部署,那么就按照你的方案来我觉得是没什么问题的。不过新仓库为什么要叫hibikilogy.kyoani.cn,仓库名和域名没必要一样吧,可以简短一点,这是我的看法

现有仓库地址有广泛传播、和文章编辑提交历史。博客程序更新不是当前仓库的重点,学报最重要的内容是文章,历史提交记录、讨论这些最重要,如果把文章独立出来新仓库代价太大。

而且,重构、新的部分独立出来最适合。

仓库名,这个首先要看当前仓库要不要改名,即使改名倒也能30x跳转到新地址。 我的习惯是 仓库名和域名一样方便网站地址对应到具体仓库,也省了纠结名字。简短的仓库名有什么提案

同意,分离出来没什么问题,确应以文章和历史提交为重。

不过这里博客系统是指的什么?拆的话无非两个选择将当前仓库 theme&cms 改为 submodule 或是新建仓库将内容目录做为 submodule 指向当前仓库。

The journal grid is a 2-column masonry packed by dense auto-placement, so
the newest article always landed in the top-right cell and the cell below
the front page masthead went to the second newest. Mark the page's first
article with an explicit column (new `lead` argument on article.main,
rendered as a `Lead` class when the masthead is shown) so the newest one
sits under the masthead and the next article fills the top-right cell.

The marker is emitted by the template rather than matched by position:
from page 2 on, the cover preload <link> sits between the masthead and the
first article and breaks an adjacent-sibling selector.
Remove cases that restate a rule already pinned at its defining layer:
the page-enter cascade interrupt belongs to nativeTransition (the wiring
into visit.animation.native is covered by the aborted-visit case), the
no-overlay settle case asserts a no-op, and the two uncached
search-crossing cases are one branch split in two.

The fallback navbar direction case now pins the non-top guard instead of
mirroring directions.down, which useScroll already covers.
The footer count was filled once per document load by the busuanzi script.
Swup replaces #app on every visit and scripts inside replaced containers do
not run, so the number disappeared as soon as a reader navigated and only
came back on a full reload.

The count now comes from the site's own reactions API, read by the app
bundle: the AppScope counter holds a memory LRU plus a localStorage
snapshot, and the page module paints the cached value during
content:replace before reconciling with the response, so a swap never
leaves an empty slot.

Counts are keyed by production_base_url rather than the current host so the
preview deployment, a local serve and the live site share one counter. The
request carries no custom header on purpose: the API sends no
Access-Control-Max-Age, so a header would add a preflight per page view.
The busuanzi toggle gives way to the page_views object, so the counter can
be turned off or pointed at another endpoint from /admin without editing
zola.toml by hand.
Records why the counter identity uses the production base URL, how the
cache-first paint and the placeholder are meant to behave, and where the
state lives; the features/ summary in AGENTS.md now lists both features.
The spell check reported the same 49 hits on every pull request: the guest
author's pen name, the Romanization of 黑江真由, the OpenType `loca` and AAT
`trak` table names, Deleuze's French terms, abbreviated commit SHAs and the
random hashes embedded in image upload names.

The real words are now allow-listed, binary image names and the stylesheet
Zola generates from [markdown.highlighting] are skipped, and ordinal
suffixes and hex SHAs are ignored by regex. The check fails only on actual
misspellings.
`paly` → `play` and `debuf` → `debuff` were plain typos, and `WondrKindom`
was missing an `e` from the guest author's pen name, which is spelled
correctly in the other thirteen places it appears.

This branch was successfully deployed

1 active deployment
Development — 33a2209d Deployed Oct 12, 2026 by jiazengp via build-and-deploy #45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[优化建议] 图片加载缓慢:建议迁移至 jsDelivr CDN 或启用国内加速方案

3 participants