@@ -70,6 +70,52 @@ const workflowSteps = [
7070 } ,
7171] ;
7272
73+ const telemetryCards = [
74+ {
75+ title : 'MatrixShop' ,
76+ status : '已接入' ,
77+ statusTone : 'active' ,
78+ summary : '首页展示当前已经接入的 bStats 统计维度,便于后续继续扩展到另外两个插件。' ,
79+ meta : [ '插件 ID 30502' , '8 项聚合图表' , '仅配置与模块级统计' ] ,
80+ points : [
81+ 'database_backend / configured_database_backend' ,
82+ 'enabled_module_count / enabled_modules' ,
83+ 'systemshop_category_count / systemshop_goods_count' ,
84+ 'economy_currency_count / economy_currency_modes' ,
85+ ] ,
86+ to : '/docs/matrixshop/bstats-and-telemetry' ,
87+ action : '查看 MatrixShop 统计' ,
88+ } ,
89+ {
90+ title : 'MatrixAuth' ,
91+ status : '预留位置' ,
92+ statusTone : 'pending' ,
93+ summary : '等待插件代码和统计口径确定后接入。首页布局和卡位已经保留,后续只补内容。' ,
94+ meta : [ '待提供代码' , '待确定插件 ID' , '待定义图表范围' ] ,
95+ points : [
96+ '预留模块启用状态统计' ,
97+ '预留存储后端统计' ,
98+ '预留身份模式分布统计' ,
99+ ] ,
100+ to : '/docs/matrixauth/overview' ,
101+ action : '查看 MatrixAuth 文档' ,
102+ } ,
103+ {
104+ title : 'MatrixCook' ,
105+ status : '预留位置' ,
106+ statusTone : 'pending' ,
107+ summary : '等待插件代码和统计口径确定后接入。后续可以直接沿用当前首页的同一展示结构。' ,
108+ meta : [ '待提供代码' , '待确定插件 ID' , '待定义图表范围' ] ,
109+ points : [
110+ '预留配方与锅具配置统计' ,
111+ '预留存储后端统计' ,
112+ '预留可选集成启用统计' ,
113+ ] ,
114+ to : '/docs/matrixcook/overview' ,
115+ action : '查看 MatrixCook 文档' ,
116+ } ,
117+ ] ;
118+
73119export default function Home ( ) : ReactNode {
74120 return (
75121 < Layout title = "Matrix 官方文档" description = "Matrix 系列插件官方文档站点。" >
@@ -156,6 +202,47 @@ export default function Home(): ReactNode {
156202 </ div >
157203 </ section >
158204
205+ < section className = { styles . section } >
206+ < div className = { styles . sectionHeader } >
207+ < p className = { styles . kicker } > 插件统计</ p >
208+ < h2 > 首页统计与预留位置</ h2 >
209+ < p className = { styles . sectionLead } >
210+ MatrixShop 已经接入统计说明展示,MatrixAuth 和 MatrixCook 的首页卡位也已预留,后续收到代码后可直接补齐。
211+ </ p >
212+ </ div >
213+ < div className = { styles . telemetryGrid } >
214+ { telemetryCards . map ( ( card ) => (
215+ < article key = { card . title } className = { styles . telemetryCard } >
216+ < div className = { styles . telemetryHeader } >
217+ < div >
218+ < h3 > { card . title } </ h3 >
219+ < p className = { styles . telemetrySummary } > { card . summary } </ p >
220+ </ div >
221+ < span
222+ className = {
223+ card . statusTone === 'active' ? styles . telemetryBadgeActive : styles . telemetryBadgePending
224+ } >
225+ { card . status }
226+ </ span >
227+ </ div >
228+ < div className = { styles . telemetryMeta } >
229+ { card . meta . map ( ( item ) => (
230+ < span key = { item } > { item } </ span >
231+ ) ) }
232+ </ div >
233+ < ul className = { styles . telemetryList } >
234+ { card . points . map ( ( point ) => (
235+ < li key = { point } > { point } </ li >
236+ ) ) }
237+ </ ul >
238+ < Link className = { styles . cardAction } to = { card . to } >
239+ { card . action }
240+ </ Link >
241+ </ article >
242+ ) ) }
243+ </ div >
244+ </ section >
245+
159246 < section className = { styles . section } >
160247 < div className = { styles . sectionHeader } >
161248 < p className = { styles . kicker } > 阅读路径</ p >
0 commit comments