Skip to content

组件与交互

这一页只记录已经能落到具体字段读写的组件级结构,不再写“复刻步骤”。

1. quoteArea 组件数据

1.1 站内渲染态:j2.b

MarkdownCustomQuoteAreaKt 渲染时直接读取 extra.G.d,其类型是 j2.b[1]

字段类型当前解释消费状态
f4993aString?标题字段存在,但来源未闭环
bint状态值字段存在,枚举未闭环
f4994cList<j2.c>条目列表已确认被点击链消费
dLong?msgId字段存在

当前边界:

  • 渲染层会消费现成 j2.b
  • 点击时 MarkdownHandlerImpl.b(j2.b) 继续消费的是 f4994c
  • j2.b 的构造点仍未命中
  • a2.e.d 的写侧仍未命中

1.2 半浮层条目态:j2.c

半浮层页面不直接读 j2.b,而是读 quoteAreaItems 反序列化出的 j2.c 列表。[2]

字段类型当前解释消费状态
titleString?条目标题已确认消费
jumpUrlString?跳转链接已确认消费
summaryString?摘要已确认消费
sourceIconString?来源图标已确认消费
sourceNameString?来源名已确认消费
sourceAuthorString?来源作者已确认消费
dateString?日期文本已确认消费
displayWeightint排序权重已确认参与排序

2. quoteArea 点击链

当前已闭环链路:

  1. MarkdownCustomQuoteAreaKt 持有现成 j2.b
  2. 点击时调用 handler.b(j2.b)
  3. MarkdownHandlerImpl.b(j2.b) 只取 j2.b.f4994c
  4. 序列化写入 quoteAreaItems
  5. 打开 QuoteHalfFloatingPage

当前由此能确认:

  • j2.b 是站内渲染态 DTO
  • j2.c 是半浮层条目 DTO
  • quoteArea 的点击展示依赖 j2.c 列表

当前仍未闭环:

  • quoteArea AST 数据如何组装成 j2.b
  • quoteArea.text 是否最终进入 j2.b.f4993a

3. multiPic 组件字段

multiPic 当前是已知闭环更完整的一条链。

参数类型当前消费点当前解释状态
itemsPerRow未完全定型MultiPicParser每行数量已确认消费
itemsNum未完全定型MultiPicParser总数已确认消费
index未完全定型f2.c条目位置已确认消费
picUrlstring 倾向f2.c图片地址已确认消费
jumpUrlstring 倾向f2.c点击跳转已确认消费

当前可以明确写出的结论:

  • itemsPerRow/itemsNum/index 已有真实消费点
  • 因此它们不能再写成 replace 自身字段
  • 流式阶段存在 loading 占位,预览阶段会过滤 loading

4. text 在不同链路中的状态

所在链当前状态
quoteArea 普通 node已确认会进入 extra.F["text"],并被预处理器读取
replace未找到 replace 专属 text 消费点
thinkArea已确认被 MarkerCustomProcessor 读取

5. 当前最重要的未闭环点

  • quoteArea.text -> j2.b.f4993a
  • a2.e.d 写侧
  • j2.b 生产侧
  • j2.b.b 的状态枚举

6. 关键源码


  1. MarkdownCustomQuoteAreaKt 读取 extra.G.d../../classes14_src/base/markdown/renderer/compose/elements/custom_syntax/MarkdownCustomQuoteAreaKt.java:106-120j2.b 结构见 ../../classes14_src/j2/b.java:8-20,31-52↩︎

  2. QuoteHalfFloatingPage 构造 j2.c../../classes14_src/net_search/QuoteHalfFloatingPage.java:54-120MarkdownHandlerImpl.b(j2.b) 消费 f4994c../../classes14_src/base/markdown/renderer/model/MarkdownHandlerImpl.java:41-75,368-431↩︎