diff --git a/assets/web/css/site.css b/assets/web/css/site.css index 9e9c08f..1a6e008 100644 --- a/assets/web/css/site.css +++ b/assets/web/css/site.css @@ -543,6 +543,100 @@ h3 { background: transparent; } +/* Dataset tracks ----------------------------------------------------------- */ + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0 0 0 0); + white-space: nowrap; + border: 0; +} + +.dataset-tracks { + min-height: auto; + padding: 64px 0 72px; + background: linear-gradient(180deg, #fbfbf8, rgba(238, 246, 241, 0.72)); +} + +.dataset-tracks-scroll { + width: fit-content; + max-width: min(980px, 100%); + margin: 0 auto; + overflow-x: auto; + border: 1px solid var(--line); + border-radius: 14px; + background: var(--white); + box-shadow: 0 10px 34px rgba(23, 33, 28, 0.06); +} + +.dataset-tracks-table { + width: auto; + min-width: 640px; + border-collapse: collapse; + font-size: 15px; + line-height: 1.6; +} + +.dataset-tracks-table th, +.dataset-tracks-table td { + padding: 14px 20px; + text-align: left; + vertical-align: top; + border-bottom: 1px solid var(--line); +} + +.dataset-tracks-table thead th { + color: var(--green-dark); + font-size: 13px; + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; + background: var(--wash); + border-bottom: 1px solid var(--line); +} + +.dataset-tracks-table thead th:first-child { + border-top-left-radius: 13px; +} + +.dataset-tracks-table thead th:last-child { + border-top-right-radius: 13px; +} + +.dataset-tracks-table tbody tr:last-child th, +.dataset-tracks-table tbody tr:last-child td { + border-bottom: 0; +} + +.dataset-tracks-table tbody th[scope="row"] { + width: 96px; + font-weight: 600; +} + +.dataset-tracks-table code { + padding: 3px 8px; + border-radius: 6px; + background: rgba(15, 123, 79, 0.08); + color: var(--green-dark); + font-family: var(--font-mono); + font-size: 13px; +} + +.dataset-tracks-table td:nth-child(2) { + width: 148px; + color: var(--muted); + font-weight: 600; +} + +.dataset-tracks-table td:last-child { + color: var(--ink); +} + /* Highlight framework ---------------------------------------------------- */ #features { diff --git a/assets/web/js/main.js b/assets/web/js/main.js index d74771b..b92c264 100644 --- a/assets/web/js/main.js +++ b/assets/web/js/main.js @@ -7,14 +7,44 @@ // Optional page analytics --------------------------------------------------- -const pageViewCounter = document.querySelector("#busuanzi_page_pv"); +const pageViewCounter = document.querySelector("#busuanzi_value_page_pv"); const isLocalPreview = ["localhost", "127.0.0.1", "::1"].includes(window.location.hostname); -if (["http:", "https:"].includes(window.location.protocol) && !isLocalPreview) { +const counterProviders = [ + { + src: "https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js", + }, + { + src: "https://busuanzi.9420.ltd/js", + prefix: "busuanzi_value", + }, +]; +let counterProviderIndex = -1; + +const loadCounterProvider = (index) => { + if (counterProviderIndex >= index || !pageViewCounter) return; + counterProviderIndex = index; + if (index >= counterProviders.length) { + pageViewCounter.textContent = "—"; + return; + } + + const provider = counterProviders[index]; const busuanziScript = document.createElement("script"); busuanziScript.defer = true; - busuanziScript.src = "https://busuanzi.9420.ltd/js"; + busuanziScript.src = provider.src; + if (provider.prefix) busuanziScript.dataset.prefix = provider.prefix; + busuanziScript.addEventListener("error", () => loadCounterProvider(index + 1)); document.head.appendChild(busuanziScript); + + window.setTimeout(() => { + const value = (pageViewCounter.textContent ?? "").trim(); + if (!value || value === "--") loadCounterProvider(index + 1); + }, 6000); +}; + +if (["http:", "https:"].includes(window.location.protocol) && !isLocalPreview) { + loadCounterProvider(0); } else if (pageViewCounter) { pageViewCounter.textContent = "—"; } diff --git a/index.html b/index.html index 2b6fa50..7805c9c 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ - + @@ -1040,6 +1040,89 @@

+ +
+
+
+

Data Categories

+

+ MobileMem 的数据分类 + MobileMem Data Categories +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ MobileMem 包含的数据分类 + The data categories included in MobileMem +
+ 数据集 + Track + + 模态 + Modality + + 描述 + Description +
text + 文本 + Text + + 长时程用户–助手对话与结构化移动应用事件。 + Long-horizon user–assistant conversations and structured mobile-app + events. +
omni + 文本与图像 + Text and images + + 包含截图与照片的多模态移动交互。 + Multimodal mobile interactions with screenshots and photos. +
struct + 结构化数据 + Structured data + + 来自端侧应用的模拟结构化数据。 + Simulated structured data from on-device applications. +
+
+
+
+
@@ -1507,7 +1590,7 @@

访问量 Page views - -- + --

@@ -1539,6 +1622,6 @@

- +