From d7c1782bb66d16ea03ce1318b536c357c055534b Mon Sep 17 00:00:00 2001 From: tamakyi Date: Mon, 19 Oct 2026 12:07:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=B1=80=E7=BE=8E=E5=8C=96=20v4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .workbuddy/memory/2026-10-19.md | 39 + .workbuddy/memory/MEMORY.md | 3 + outputs/icon-ailicili.png | Bin 0 -> 1559 bytes outputs/icon-bili.png | Bin 0 -> 1257 bytes outputs/icon-blog.png | Bin 0 -> 1097 bytes outputs/icon-weibo.png | Bin 0 -> 524 bytes outputs/icon-xiaohongshu.png | Bin 0 -> 1692 bytes outputs/p2-explore-light.png | Bin 0 -> 62849 bytes outputs/p2-home-dark.png | Bin 0 -> 112659 bytes outputs/p2-home-light.png | Bin 0 -> 110835 bytes outputs/p2-sheet.html | 697 +++++ outputs/p2-sheet.png | Bin 0 -> 22114 bytes outputs/preview-assets/base.css | 661 ++++ outputs/preview-box-dark.html | 95 +- outputs/preview-box-light.html | 95 +- outputs/preview-explore-dark.html | 100 +- outputs/preview-explore-light.html | 100 +- outputs/preview-home-dark.html | 91 +- outputs/preview-home-light.html | 91 +- outputs/preview-profile-dark.html | 91 +- outputs/preview-profile-light.html | 91 +- outputs/shot-box6-preview.png | Bin 0 -> 243777 bytes outputs/shot-profile-preview.png | Bin 0 -> 103956 bytes outputs/verify/base.css | 650 ++++ outputs/verify/box6-preview.html | 1729 ++++++++++ outputs/verify/box6.html | 1063 +++++++ outputs/verify/cap.json | 1 + outputs/verify/cj.txt | 5 + outputs/verify/explore-probe.html | 1663 ++++++++++ outputs/verify/headers.txt | 21 + outputs/verify/home2.html | 938 ++++++ outputs/verify/icon-probe.html | 1613 ++++++++++ outputs/verify/login.html | 639 ++++ outputs/verify/login_post.html | 0 outputs/verify/p2-http.html | 44 + outputs/verify/p2-probe.html | 720 +++++ outputs/verify/p2-probe3.html | 714 +++++ outputs/verify/p2-sheet.html | 709 +++++ outputs/verify/profile-preview.html | 3299 ++++++++++++++++++++ outputs/verify/profile.html | 2632 ++++++++++++++++ outputs/verify/ver.json | 1 + static/css/base.css | 80 +- templates/base/header.html | 13 +- templates/percent_check_test.go | 4 +- templates/question/list.html | 12 +- templates/question/question-not-found.html | 2 +- templates/user/explore.html | 23 +- templates/user/question-list.html | 12 +- templates/user/vote-results.html | 16 +- templates/vote/page.html | 16 +- 50 files changed, 18372 insertions(+), 401 deletions(-) create mode 100644 outputs/icon-ailicili.png create mode 100644 outputs/icon-bili.png create mode 100644 outputs/icon-blog.png create mode 100644 outputs/icon-weibo.png create mode 100644 outputs/icon-xiaohongshu.png create mode 100644 outputs/p2-explore-light.png create mode 100644 outputs/p2-home-dark.png create mode 100644 outputs/p2-home-light.png create mode 100644 outputs/p2-sheet.html create mode 100644 outputs/p2-sheet.png create mode 100644 outputs/preview-assets/base.css create mode 100644 outputs/shot-box6-preview.png create mode 100644 outputs/shot-profile-preview.png create mode 100644 outputs/verify/base.css create mode 100644 outputs/verify/box6-preview.html create mode 100644 outputs/verify/box6.html create mode 100644 outputs/verify/cap.json create mode 100644 outputs/verify/cj.txt create mode 100644 outputs/verify/explore-probe.html create mode 100644 outputs/verify/headers.txt create mode 100644 outputs/verify/home2.html create mode 100644 outputs/verify/icon-probe.html create mode 100644 outputs/verify/login.html create mode 100644 outputs/verify/login_post.html create mode 100644 outputs/verify/p2-http.html create mode 100644 outputs/verify/p2-probe.html create mode 100644 outputs/verify/p2-probe3.html create mode 100644 outputs/verify/p2-sheet.html create mode 100644 outputs/verify/profile-preview.html create mode 100644 outputs/verify/profile.html create mode 100644 outputs/verify/ver.json diff --git a/.workbuddy/memory/2026-10-19.md b/.workbuddy/memory/2026-10-19.md index fdce26f..f3083d6 100644 --- a/.workbuddy/memory/2026-10-19.md +++ b/.workbuddy/memory/2026-10-19.md @@ -227,3 +227,42 @@ P2 = 图标统一(UIkit icons 取代 emoji/位图 png)、标签减量、view **验证方式**:改动前后各截一次同样尺寸的截图做像素比对。 home-light / home-dark / explore-light 三页差异均 **0.024%**,bbox 只有 (11,56)-(29,74) 一个 18×18 方块 = 导航栏随机动物 emoji(每次加载都变),不是样式回归。go build + 模板/i18n 测试全绿。 + +## 测试环境复测(P1 CSS 抽离 + 防护面板白底,已上线) + +- `GET /static/css/base.css?v=20261019a` → 200 / `text/css` / **23088 字节,与本地 `static/css/base.css` 逐字节一致** / + `Cache-Control: public, max-age=86400` / gzip 后 7109 字节。 +- 首页 32747 字节(改动前 52747),gzip 10534(改动前 13642);页面内联 ` +
+
+

导航图标:emoji → 内联单色 SVG(跟随文字色/主题)

+
+ + +
+
+
+

标签:实心彩色 uk-label → 轻量胶囊

+
+ 单选多选评分 + 排序表单 + #杂谈#音乐#日常 +
+
+
+

占比条:div.uk-progressbar → 原生 <progress>

+
66% +
+
33% +
+
0% +
+
+
+ \ No newline at end of file diff --git a/outputs/p2-sheet.png b/outputs/p2-sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..56f26364edd15596c0d424a0966c442702e34363 GIT binary patch literal 22114 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 li > a, + html[data-theme="dark"] .uk-card a, + html[data-theme="dark"] .uk-link, + html[data-theme="dark"] a.uk-button-link, + html[data-theme="dark"] .uk-navbar-dropdown-nav > li > a, + html[data-theme="dark"] .uk-dropdown-nav > li > a, + html[data-theme="dark"] .uk-list a { + color: var(--tb-text) !important; + } + html[data-theme="dark"] .uk-navbar-nav > li > a:hover, + html[data-theme="dark"] .uk-card a:hover, + html[data-theme="dark"] .uk-navbar-dropdown-nav > li > a:hover, + html[data-theme="dark"] .uk-dropdown-nav > li > a:hover { + color: var(--tb-primary) !important; + } + html[data-theme="dark"] .uk-input, + html[data-theme="dark"] .uk-textarea, + html[data-theme="dark"] .uk-select { + background-color: var(--tb-surface-2) !important; + color: var(--tb-text) !important; + border-color: var(--tb-border) !important; + } + html[data-theme="dark"] .uk-input:focus, + html[data-theme="dark"] .uk-textarea:focus, + html[data-theme="dark"] .uk-select:focus { + border-color: var(--tb-primary) !important; + } + html[data-theme="dark"] .uk-text-muted, + html[data-theme="dark"] .uk-text-meta, + html[data-theme="dark"] .uk-text-secondary, + html[data-theme="dark"] .uk-text-muted a, + html[data-theme="dark"] .uk-text-small.uk-text-muted { + color: var(--tb-text-muted) !important; + } + html[data-theme="dark"] .uk-divider-icon::after, + html[data-theme="dark"] hr, + html[data-theme="dark"] .uk-table th, + html[data-theme="dark"] .uk-table td, + html[data-theme="dark"] .uk-list-divider > li:nth-child(n+2) { + border-color: var(--tb-border) !important; + } + html[data-theme="dark"] .uk-button-default { + background-color: var(--tb-surface-2) !important; + color: var(--tb-text) !important; + border-color: var(--tb-border) !important; + } + html[data-theme="dark"] .uk-modal-title, + html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3, + html[data-theme="dark"] h4, html[data-theme="dark"] h5, html[data-theme="dark"] h6, + html[data-theme="dark"] .uk-card-title { + color: var(--tb-text) !important; + } + html[data-theme="dark"] .uk-alert-warning, + html[data-theme="dark"] .uk-alert-danger, + html[data-theme="dark"] .uk-alert-success, + html[data-theme="dark"] .uk-alert-primary { + background-color: var(--tb-surface-2) !important; + color: var(--tb-text) !important; + } + html[data-theme="dark"] #math-captcha-modal .uk-modal-dialog { + background-color: var(--tb-surface) !important; + color: var(--tb-text) !important; + } + html[data-theme="dark"] #math-captcha-modal .captcha-equation-box { + background-color: var(--tb-surface-2) !important; + border-color: var(--tb-border) !important; + } + html[data-theme="dark"] #math-captcha-modal .math-captcha-modal-question { + color: var(--tb-text) !important; + } + html[data-theme="dark"] #math-captcha-modal #captcha-modal-answer { + background-color: var(--tb-surface) !important; + color: var(--tb-text) !important; + border-color: var(--tb-border) !important; + } + html[data-theme="dark"] #math-captcha-modal #captcha-modal-answer::placeholder { + color: var(--tb-text-muted) !important; + } + html[data-theme="dark"] #math-captcha-modal .uk-text-meta, + html[data-theme="dark"] #math-captcha-modal #captcha-modal-refresh { + color: var(--tb-text-muted) !important; + } + html[data-theme="dark"] #math-captcha-modal #captcha-modal-refresh:hover { + color: var(--tb-primary) !important; + } + html[data-theme="dark"] .uk-label { + color: #fff !important; + } + /* 自定义组件(探索页推荐卡片等)深色覆盖 */ + html[data-theme="dark"] .recommend-card, + html[data-theme="dark"] .recommend-card:hover { + background-color: var(--tb-surface-2) !important; + } + html[data-theme="dark"] .explore-name a { + color: var(--tb-text) !important; + } + html[data-theme="dark"] .explore-name a:hover { + color: var(--tb-primary) !important; + } + html[data-theme="dark"] .explore-intro { + color: var(--tb-text-muted) !important; + } + /* 切换按钮图标切换 */ + #theme-toggle .tb-icon-dark, #theme-toggle-mobile .tb-icon-dark { display: none; } + html[data-theme="dark"] #theme-toggle .tb-icon-light, + html[data-theme="dark"] #theme-toggle-mobile .tb-icon-light { display: none; } + html[data-theme="dark"] #theme-toggle .tb-icon-dark, + html[data-theme="dark"] #theme-toggle-mobile .tb-icon-dark { display: inline; } + +/* 基础质感层:只调整外观(圆角/投影/字体/数字对齐),不改任何结构与布局。 + 颜色一律取自头部令牌,亮暗两套自动生效,因此这里不需要再写 html[data-theme="dark"] 分支。 */ + /* 根元素与 body 同时上色:内容不足一屏时,body 之外的视口区域也要是同一底色 */ + html, + body { + font-family: var(--tb-font); + background-color: var(--tb-bg); + color: var(--tb-text); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + /* 卡片:12px 圆角 + 一层极淡接触影 + 一层大扩散影(UIkit 默认的 0 5px 15px 偏硬) */ + .uk-card { + border-radius: var(--tb-radius); + } + .uk-card-default { + background-color: var(--tb-surface); + box-shadow: var(--tb-shadow); + } + .uk-card-default.uk-card-hover:hover { + box-shadow: var(--tb-shadow-hover); + } + .uk-card-header { + border-radius: var(--tb-radius) var(--tb-radius) 0 0; + } + .uk-card-footer { + border-radius: 0 0 var(--tb-radius) var(--tb-radius); + } + .uk-card, + .uk-button, + .uk-alert, + .uk-label { + transition: box-shadow 0.18s ease, background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease; + } + /* 交互元素:统一 8px 圆角,标签 6px */ + .uk-button { + border-radius: var(--tb-radius-sm); + } + .uk-input, + .uk-select, + .uk-textarea, + .uk-form-small, + .uk-search-input { + border-radius: var(--tb-radius-sm); + } + .uk-label { + border-radius: var(--tb-radius-xs); + } + .uk-alert { + border-radius: 10px; + } + .uk-modal-dialog { + border-radius: 14px; + } + .uk-dropdown, + .uk-navbar-dropdown { + border-radius: 10px; + box-shadow: var(--tb-shadow); + } + .uk-navbar-container:not(.uk-navbar-transparent) { + background-color: var(--tb-surface); + } + /* 键盘可达性:仅在键盘聚焦时出现描边,鼠标点击不出现 */ + .uk-button:focus-visible, + .uk-navbar-nav > li > a:focus-visible { + outline: 2px solid var(--tb-primary); + outline-offset: 2px; + } + /* 次要文字统一走令牌,避免 #999 / #8a919c 混用 */ + .uk-text-muted, + .uk-text-meta { + color: var(--tb-text-muted); + } + +/* 轻量胶囊:用于投票类型、热门标签等「只是分类信息」的位置。 + 实心 uk-label 一屏多个会变成一排色块,这里统一降级为浅底 + 次要色文字。 */ +.tb-chip { + display: inline-block; + padding: 1px 8px; + border-radius: var(--tb-radius-xs); + background-color: var(--tb-surface-2); + color: var(--tb-text-secondary); + font-size: 0.72rem; + line-height: 1.7; + white-space: nowrap; +} +a.tb-chip:hover { + background-color: var(--tb-primary-weak); + color: var(--tb-primary); + text-decoration: none; +} + +/* 统计/日期等数字列等宽对齐,避免刷新时左右跳动 */ + .uk-table, + .tb-num { + font-variant-numeric: tabular-nums; + } + /* 图片上传条:原为 item/new-question 两处各写一份内联 style(写死 #f8f8f8,深色下露白), + 收敛到一处并走令牌,亮暗自动适配 */ + .tb-img-uploader { + width: 100%; + background-color: var(--tb-surface-2); + display: flex; + padding-top: 5px; + padding-bottom: 5px; + align-items: center; + justify-content: flex-start; + gap: 5px; + } + /* 背景图封面(提问箱主页):渐变遮罩,保证用户自选文字色叠加后仍可读。 + 默认浅色遮罩(页面 .uk-light 补丁把文字兜底成深色);若箱主选了浅色文字, + question/list.html 会按亮度加上 .tb-cover-dark 换成深色遮罩。 */ + .tb-cover { + position: relative; + border-radius: var(--tb-radius) var(--tb-radius) 0 0; + overflow: hidden; + } + /* ⚠️ 必须带 .uk-flex 复合选择器:UIkit 3.3.3 里有 + .uk-flex::after,.uk-flex::before{display:none}(优先级 0,2,0), + 会把这个遮罩伪元素整个干掉——不报错、只是什么都不显示(踩过一次)。 + 单写 .tb-cover::after 优先级不够,会被它压回 display:none。 */ + .tb-cover::after, + .tb-cover.uk-flex::after { + content: ""; + display: block; + position: absolute; + inset: 0; + z-index: 0; + background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.58) 55%, rgba(255, 255, 255, 0.84) 100%); + pointer-events: none; + } + .tb-cover.tb-cover-dark::after { + background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.16) 45%, rgba(0, 0, 0, 0.46) 100%); + } + .tb-cover > * { + position: relative; + z-index: 1; + } + .tb-cover h3, + .tb-cover p { + text-shadow: 0 1px 10px rgba(255, 255, 255, 0.65); + } + .tb-cover.tb-cover-dark h3, + .tb-cover.tb-cover-dark p { + text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45); + } + /* 尊重系统的减少动效设置 */ + @media (prefers-reduced-motion: reduce) { + .uk-card, + .uk-button, + .emoji-placeholder { + transition: none; + animation: none; + } + } + +/* 顶栏自适应:导航全部直接显示,窄屏时分级缩小字号/间距,保证英文/日文等长文字不溢出 */ + .uk-navbar-nav a { + font-size: 0.95rem; + padding: 0 10px; + } + /* 未登录移动端占位:桌面端隐藏,仅 ≤640px 显示(见下方 media 查询)。 + 桌面端布局与改动前完全一致,不受影响。 */ + .tb-mobile-balancer { display: none; } + /* 桌面端保持 UIkit 原生居中三列布局(无需额外 CSS) */ + .tb-navbar .uk-logo { + white-space: nowrap; + } + @media (max-width: 1200px) { + .uk-navbar-nav a { + font-size: 0.88rem; + padding: 0 8px; + } + } + @media (max-width: 1000px) { + .uk-navbar-nav a { + font-size: 0.82rem; + padding: 0 6px; + } + .uk-logo { + font-size: 1.1rem; + } + /* 登录用户名限宽,过长省略号截断 */ + .tb-nav-username { + max-width: 110px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: inline-block; + vertical-align: middle; + } + } + @media (max-width: 800px) { + .uk-navbar-nav a { + font-size: 0.78rem; + padding: 0 4px; + } + .uk-logo { + font-size: 1rem; + } + .tb-nav-username { + max-width: 80px; + } + } + /* 手机端(≤640px):沿用 UIkit 桌面端 navbar 的原生三列定位。 + 不再重写 .uk-navbar-center / center-left / center-right 的定位, + 避免 logo 被挤到下一行;底部语言与深色模式按钮仍由下方独立栏承载。 */ + @media (max-width: 640px) { + .tb-navbar { + position: relative; + min-height: 56px; + overflow: visible; + } + .tb-navbar > .uk-navbar-center { + position: relative !important; + top: auto !important; + left: auto !important; + right: auto !important; + bottom: auto !important; + transform: none !important; + display: flex !important; + align-items: center; + justify-content: center; + width: 100%; + min-height: 56px; + white-space: nowrap; + flex-wrap: nowrap; + } + .tb-navbar .uk-navbar-center-left, + .tb-navbar .uk-navbar-center-right { + position: static !important; + top: auto !important; + left: auto !important; + right: auto !important; + bottom: auto !important; + transform: none !important; + display: flex !important; + align-items: center; + flex: 0 0 auto; + white-space: nowrap; + } + .tb-navbar .uk-navbar-center-left > div, + .tb-navbar .uk-navbar-center-right > div { + display: flex; + align-items: center; + white-space: nowrap; + } + .tb-navbar .uk-navbar-nav { + display: flex; + flex-wrap: nowrap; + flex: 0 0 auto; + } + .tb-navbar .uk-navbar-nav > li > a, + .tb-navbar .uk-logo { + white-space: nowrap; + } + /* 未登录:移动端显示与「我的」等宽的隐藏占位,使左栏「探索+占位」与 + 右栏「注册/登录」两项等宽,logo 真正居中,左右视觉平衡 */ + .tb-mobile-balancer { display: block; } + } + +/* 标签样式的按钮(管理页置顶等): + 尺寸完全继承 .uk-label(font-size/padding/line-height/text-transform 等), + 仅覆盖 button 元素特有的默认样式(边框/字体族/光标等),保证与相邻 span 标签完全一致。 */ + .tb-label-btn { + border: none !important; + cursor: pointer; + font-family: inherit; + margin: 0; + vertical-align: middle; + outline: none; + background-image: none; + box-sizing: border-box; + -webkit-appearance: none; + appearance: none; + } + .tb-label-btn:hover { + opacity: 0.85; + } + /* 公开页置顶小图标:仅一个图钉,不占行高、不影响原布局 */ + .tb-pin-flag { + font-size: 0.9em; + margin-right: 4px; + vertical-align: -1px; + cursor: default; + } + +/* Markdown 渲染排版(问题/回答/追问正文,左对齐以保留排版格式) */ + /* 纯文本列表:保留换行与连续空格(pre-wrap),不渲染 Markdown 大字号/彩色 */ + .tb-preline { + white-space: pre-wrap; + } + /* 纯文本列表:超过 5 行截断并显示省略号(不足 5 行则完整显示) */ + .tb-clamp-5 { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 5; + overflow: hidden; + } + .md-body { + line-height: 1.7; + text-align: left; + word-break: break-word; + } + .md-body p { margin: 0.5em 0; } + .md-body h1, .md-body h2, .md-body h3, + .md-body h4, .md-body h5, .md-body h6 { + margin: 0.8em 0 0.4em; + font-weight: 600; + line-height: 1.4; + } + .md-body ul, .md-body ol { padding-left: 1.6em; margin: 0.5em 0; } + .md-body li { margin: 0.2em 0; } + .md-body blockquote { + border-left: 3px solid #d3d1c7; + margin: 0.6em 0; + padding: 0.2em 1em; + color: #5f5e5a; + } + .md-body pre { + background: #f5f5f5; + padding: 0.8em 1em; + border-radius: 6px; + overflow-x: auto; + margin: 0.6em 0; + } + .md-body code { + background: #f0f0f0; + padding: 0.1em 0.35em; + border-radius: 4px; + font-size: 0.9em; + } + .md-body pre code { background: none; padding: 0; } + .md-body img { max-width: 100%; height: auto; } + .md-body table { border-collapse: collapse; margin: 0.6em 0; } + .md-body th, .md-body td { + border: 1px solid #ddd; + padding: 0.4em 0.8em; + } + .md-body hr { margin: 1em 0; } + html[data-theme="dark"] .md-body blockquote { + border-color: #3a404c; + color: #8b93a1; + } + html[data-theme="dark"] .md-body pre, + html[data-theme="dark"] .md-body code { background: #2d323c; } + html[data-theme="dark"] .md-body th, + html[data-theme="dark"] .md-body td { border-color: #3a404c; } + +/* 投票结果占比条:模板已改用 UIkit 3 原生 , + 这里只把默认的 15px 高 / 500px 圆角 / 20px 外边距收紧到与页面一致的规格。 + (原先为 UIkit 2 的 .uk-progressbar 结构打的补丁已删除) */ +.uk-progress { + height: 10px; + margin: 0; + border-radius: var(--tb-radius-xs); + background-color: var(--tb-surface-2); +} +.uk-progress::-webkit-progress-bar { + background-color: var(--tb-surface-2); + border-radius: var(--tb-radius-xs); +} +.uk-progress::-webkit-progress-value { + background-color: var(--tb-primary); + border-radius: var(--tb-radius-xs) 0 0 var(--tb-radius-xs); +} +.uk-progress::-moz-progress-bar { + background-color: var(--tb-primary); +} + +/* 移动端底部操作栏:固定底栏承载语言切换与深色模式,桌面端隐藏 */ + #tb-mobile-utils { + display: none; + } + @media (max-width: 640px) { + /* 顶栏不再容纳语言/深色按钮,恢复原有导航空间 */ + .tb-nav-utils { + display: none !important; + } + /* 手机端隐藏登录用户名(左边仅保留"探索"),保证 logo 居中、 + 两侧各不超过 2 个短按钮,避免用户名宽度挤压布局 */ + .tb-nav-username { + display: none !important; + } + /* 固定底部操作栏 */ + #tb-mobile-utils { + display: flex; + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 1000; + justify-content: center; + align-items: center; + gap: 10px; + padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); + background: rgba(255, 255, 255, 0.92); + -webkit-backdrop-filter: blur(8px); + backdrop-filter: blur(8px); + box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08); + } + #tb-mobile-utils .uk-select { + width: 110px; + } + html[data-theme="dark"] #tb-mobile-utils { + background: rgba(36, 40, 48, 0.92); + box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.4); + } + /* 给页面底部预留空间,避免页脚内容被固定底栏遮挡 */ + body { + padding-bottom: 56px; + } + } diff --git a/outputs/preview-box-dark.html b/outputs/preview-box-dark.html index b279c50..69472fa 100644 --- a/outputs/preview-box-dark.html +++ b/outputs/preview-box-dark.html @@ -2,8 +2,8 @@ - - 预览 11:39 · + + 预览 12:01 · @@ -261,12 +261,19 @@ html[data-theme="dark"] .explore-intro { color: var(--tb-text-muted) !important; } - /* 切换按钮图标切换 */ + /* 切换按钮图标切换(内联 SVG,不依赖 UIkit 图标库) */ + #theme-toggle .tb-icon-light, #theme-toggle-mobile .tb-icon-light, + #theme-toggle .tb-icon-dark, #theme-toggle-mobile .tb-icon-dark { + display: inline-flex; + align-items: center; + } + #theme-toggle .tb-icon-light svg, #theme-toggle-mobile .tb-icon-light svg, + #theme-toggle .tb-icon-dark svg, #theme-toggle-mobile .tb-icon-dark svg { display: block; } #theme-toggle .tb-icon-dark, #theme-toggle-mobile .tb-icon-dark { display: none; } html[data-theme="dark"] #theme-toggle .tb-icon-light, html[data-theme="dark"] #theme-toggle-mobile .tb-icon-light { display: none; } html[data-theme="dark"] #theme-toggle .tb-icon-dark, - html[data-theme="dark"] #theme-toggle-mobile .tb-icon-dark { display: inline; } + html[data-theme="dark"] #theme-toggle-mobile .tb-icon-dark { display: inline-flex; } /* 基础质感层:只调整外观(圆角/投影/字体/数字对齐),不改任何结构与布局。 颜色一律取自头部令牌,亮暗两套自动生效,因此这里不需要再写 html[data-theme="dark"] 分支。 */ @@ -341,7 +348,26 @@ .uk-text-meta { color: var(--tb-text-muted); } - /* 统计/日期等数字列等宽对齐,避免刷新时左右跳动 */ + +/* 轻量胶囊:用于投票类型、热门标签等「只是分类信息」的位置。 + 实心 uk-label 一屏多个会变成一排色块,这里统一降级为浅底 + 次要色文字。 */ +.tb-chip { + display: inline-block; + padding: 1px 8px; + border-radius: var(--tb-radius-xs); + background-color: var(--tb-surface-2); + color: var(--tb-text-secondary); + font-size: 0.72rem; + line-height: 1.7; + white-space: nowrap; +} +a.tb-chip:hover { + background-color: var(--tb-primary-weak); + color: var(--tb-primary); + text-decoration: none; +} + +/* 统计/日期等数字列等宽对齐,避免刷新时左右跳动 */ .uk-table, .tb-num { font-variant-numeric: tabular-nums; @@ -598,34 +624,26 @@ html[data-theme="dark"] .md-body th, html[data-theme="dark"] .md-body td { border-color: #3a404c; } -/* 投票结果占比条:UIkit 3 已无 .uk-progressbar 类(那是 UIkit 2 的), - 模板用
结构,需补一套填充样式, - 否则内层填充无高度/背景,所有占比条都只剩外层灰色轨道,看起来一模一样。 */ - .uk-progress { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - height: 10px; - margin: 0; - border: none; - border-radius: 6px; - background-color: #e5e5e5; - overflow: hidden; - box-shadow: none; - } - .uk-progressbar { - display: block; - height: 100%; - background-color: #1e87f0; - border-radius: 6px 0 0 6px; - transition: width 0.3s ease; - } - html[data-theme="dark"] .uk-progress { - background-color: var(--tb-border); - } - html[data-theme="dark"] .uk-progressbar { - background-color: var(--tb-primary); - } +/* 投票结果占比条:模板已改用 UIkit 3 原生 , + 这里只把默认的 15px 高 / 500px 圆角 / 20px 外边距收紧到与页面一致的规格。 + (原先为 UIkit 2 的 .uk-progressbar 结构打的补丁已删除) */ +.uk-progress { + height: 10px; + margin: 0; + border-radius: var(--tb-radius-xs); + background-color: var(--tb-surface-2); +} +.uk-progress::-webkit-progress-bar { + background-color: var(--tb-surface-2); + border-radius: var(--tb-radius-xs); +} +.uk-progress::-webkit-progress-value { + background-color: var(--tb-primary); + border-radius: var(--tb-radius-xs) 0 0 var(--tb-radius-xs); +} +.uk-progress::-moz-progress-bar { + background-color: var(--tb-primary); +} /* 移动端底部操作栏:固定底栏承载语言切换与深色模式,桌面端隐藏 */ #tb-mobile-utils { @@ -708,7 +726,6 @@ - -
+
-
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+ + + +
+
+

人机验证

+

请计算下方的算术题以验证你不是机器人

+
+ 加载中... + +
+
+ +
+ +
+ + +
+
+
+ + + + + + + + + + +
+
+
+ +

admin6

+

问你想问的

+
+ + + + + + + bloglink + + +
+
+
+
+ +
+
+ + + + +
+ + +

扫码向@admin6提问
谁都可以以匿名的形式提问

+ + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+ + + + + + + +
+ +
+
+ + + +
+ +
+
+ +
+ + + +
+ +
+
+
+ + + +
+ +
+ +
+ +
+
+
+ + + + + + +
+ + +
+
+ +

+
+ 社区规则 | + + 找站长 +
+ 盘 + | 公告板 + | 聊天室 + | 监控板 + | 导航页 +
Powered by NekoBox | 狼ICP备 20230101 +
提问箱已成功存活: +

+ + +
+
+ + + +
+ + + diff --git a/outputs/verify/box6.html b/outputs/verify/box6.html new file mode 100644 index 0000000..84c4ab7 --- /dev/null +++ b/outputs/verify/box6.html @@ -0,0 +1,1063 @@ + + + + + + admin6 - 狼的提问箱 | 匿名提问箱 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+ + + +
+
+

人机验证

+

请计算下方的算术题以验证你不是机器人

+
+ 加载中... + +
+
+ +
+ +
+ + +
+
+
+ + + + + + + + + + +
+
+
+ +

admin6

+

问你想问的

+
+ + + + + + + bloglink + + +
+
+
+
+ +
+
+ + + + +
+ + +

扫码向@admin6提问
谁都可以以匿名的形式提问

+ + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+ + + + + + + +
+ +
+
+ + + +
+ +
+
+ +
+ + + +
+ +
+
+
+ + + +
+ +
+ +
+ +
+
+
+ + + + + + +
+ + +
+
+ +

+
+ 社区规则 | + + 找站长 +
+ 盘 + | 公告板 + | 聊天室 + | 监控板 + | 导航页 +
Powered by NekoBox | 狼ICP备 20230101 +
提问箱已成功存活: +

+ + +
+
+ + + + diff --git a/outputs/verify/cap.json b/outputs/verify/cap.json new file mode 100644 index 0000000..656fdc1 --- /dev/null +++ b/outputs/verify/cap.json @@ -0,0 +1 @@ +{"code":0,"data":{"id":"da49922027925285","question":"6 × 2 ="}} diff --git a/outputs/verify/cj.txt b/outputs/verify/cj.txt new file mode 100644 index 0000000..2317ec0 --- /dev/null +++ b/outputs/verify/cj.txt @@ -0,0 +1,5 @@ +# Netscape HTTP Cookie File +# https://curl.se/docs/http-cookies.html +# This file was generated by libcurl! Edit at your own risk. + +#HttpOnly_box-dev-api.337845818.best FALSE / TRUE 0 flamego_session 19alv4sneiwlykv6 diff --git a/outputs/verify/explore-probe.html b/outputs/verify/explore-probe.html new file mode 100644 index 0000000..2198da0 --- /dev/null +++ b/outputs/verify/explore-probe.html @@ -0,0 +1,1663 @@ + + + + + + 预览 11:39 · 投票 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + + + +
+

探索用户标签

+ +
+

此处展示已开启“在首页展示我的标签”的用户。该功能默认关闭,若希望自己的提问箱在这里被发现,请前往 个人设置 手动开启。

+
+ +
+ + +
+ +
+
+
+

随机推荐

+ +
+
+ +
暂无推荐用户
+ +
+
+ + + +
+

热门标签

+
+ + #杂谈 + + #学习 + + #音乐 + +
+
+ + +
+
+
+
+ + +
+
+
+ +
+
+
+ + +
+ + +
+
+
+
+ avatar +
+
+
+ 小狼 +
+
+ 随便问,友善一点,看到都会回。 +
+
+ + 无标签 + +
+
+
+
+
+ + +
+
+
+
+ avatar +
+
+
+ Kitsune +
+
+ 摄影 / 音乐 / 一点点代码 +
+
+ + 无标签 + +
+
+
+
+
+ + +
+
+
+
+ avatar +
+
+
+ 残响 +
+
+ 长期潜水,偶尔冒泡。 +
+
+ + 无标签 + +
+
+
+
+
+ + +
+
+
+
+ avatar +
+
+
+ Mika +
+
+ 想认识更多有趣的人。 +
+
+ + 无标签 + +
+
+
+
+
+ +
+ +
    + +
  • 上一页
  • + +
  • 1 / 1
  • + +
  • 下一页
  • + +
+ +
+ + +
+ + +

+
+ 社区规则 | + + 找站长 +
+ 盘 + | 公告板 + | 聊天室 + | 监控板 + | 导航页 +
Powered by NekoBox | +
提问箱已成功存活: +

+ + +
+
+ + + +
+ + + + diff --git a/outputs/verify/headers.txt b/outputs/verify/headers.txt new file mode 100644 index 0000000..6da1e05 --- /dev/null +++ b/outputs/verify/headers.txt @@ -0,0 +1,21 @@ +HTTP/1.1 200 Connection Established + +HTTP/1.1 302 Found +Date: Mon, 19 Oct 2026 03:48:09 GMT +Content-Length: 0 +Connection: keep-alive +location: / +referrer-policy: strict-origin-when-cross-origin +Set-Cookie: flamego_session=19alv4sneiwlykv6; Path=/; HttpOnly; Secure; SameSite=Lax +strict-transport-security: max-age=31536000; includeSubDomains +trace-id: 00000000000000000000000000000000 +x-content-type-options: nosniff +x-frame-options: DENY +x-xss-protection: 1; mode=block +cf-cache-status: DYNAMIC +Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800} +Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=mt51BDC553zfd84HQmzmbFBIUCtm8uyVduSXv3wGYmT60XhJFCI6frcvrMawEhFX6f3tbKwf9rdM%2BEbHnmt%2Bn2BL6jm3gzXD5L7QqxUFzwOovEMimGkltJAjd689eDDVeacR0cmLD%2FZLWisIGQ%3D%3D"}]} +Server: cloudflare +CF-RAY: a4ccce358f121c0a-AMS +alt-svc: h3=":443"; ma=86400 + diff --git a/outputs/verify/home2.html b/outputs/verify/home2.html new file mode 100644 index 0000000..761ee8f --- /dev/null +++ b/outputs/verify/home2.html @@ -0,0 +1,938 @@ + + + + + + 狼の質問箱 | 匿名質問箱 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + +
+
+

人機認証

+

以下の計算問題を解いて、ロボットでないことを証明してください

+
+ 読み込み中... + +
+
+ +
+ +
+ + +
+
+
+ + + + + + + +
+

狼の質問箱 | 匿名質問箱

+

+ 一个无需注册即可提问的匿名提问箱。不用下载 App,不用绑定社交账号,连邮箱都不必是真的。 +

+ +
+ +
+
+

匿名也能问

+

不需要账号、不需要真实邮箱,打开就能写。想收到回复再留邮箱即可。

+
+
+

不止一问一答

+

问题二维码、私聊、投票、追加提问、Markdown 排版,原版没有的这里都有。

+
+
+

箱子归你

+

头像、背景、二维码配色都能自己调,还能设置审核严格度和收集时段。

+
+
+ +
+

域名迁移

+

+ 本站已切换到 box.shiroko.one,原域名将在 2026 年 12 月 24 日到期, + 期间通过 301 转发指向新域名,到期后旧域名将彻底不再使用。 +

+

+ 审核服务已切换到阿里云,审核速度提升且误伤更少;同时允许用户调整审核严格度,在不碰底线的前提下 + 可以设置不接受辱骂、广告等信息(即「不听坏话模式」)。 +

+
+ +
+

一点提醒

+
    +
  • 本站唯一指定认证站长:小狼,注意不要被骗。
  • +
  • 本站提倡友好、友善的发言,请遵守社区规则。无论匿名与否,都要为自己的发言负责。
  • +
  • 不允许垃圾信息、广告、辱骂、涉政、暴恐、色情、违禁、无意义、灌水提问,涉政或不良言论将直接删除。
  • +
+

+ 想先试试功能,可以到站长的提问箱 + 小狼的提问箱 提问或提意见。 +

+
+ +
+ 近期更新 +
    +
  • 2026.9 新增审核严格度选项,增加提问、投票、私聊的总开关,可设置定时收集、定量收集或关闭功能,前后端显示也更易用了。
  • +
  • 2026.8 新增投票功能、追加提问、多语言、Markdown 显示、置顶显示等,详情见这里。
  • +
  • 2026.8 放弃使用 recaptcha 等对国内用户不友好的验证方式,更新密码加密方式,修复图片上传等一系列问题。
  • +
  • 2026.5 增加私聊功能,可连续对话,详见介绍;另有提问箱卡片分享。
  • +
  • 2026.2 新增用户展示和标签功能,可给自己贴 5 个标签并选择是否在探索页展示,详情见狼的公告板。
  • +
+
+ +
+

質問箱の統計

+
+
+ 28 + 注册用户 +
+
+ 94 + 累计提问 +
+
+ 21 + 已获回答 +
+
+

+ 最后提问:2026-10-19 00:58:03
+ 最后回答:2026-10-19 02:44:47
+ 数据更新于:2026-10-19 11:47:10 +

+
+ +
+ +

+
+ ルール | + + 管理者へ +
+ ドライブ + | お知らせ + | チャット + | ステータス + | リンク +
Powered by NekoBox | 狼ICP备 20230101 +
質問箱は稼働中: +

+ + +
+
+ + + + diff --git a/outputs/verify/icon-probe.html b/outputs/verify/icon-probe.html new file mode 100644 index 0000000..9da6172 --- /dev/null +++ b/outputs/verify/icon-probe.html @@ -0,0 +1,1613 @@ + + + + + + 预览 12:01 · TamaBox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + +
+
+

人机验证

+

请计算下方的算术题以验证你不是机器人

+
+ 加载中... + +
+
+ +
+ +
+ + +
+
+
+ + + + + + + +
+

狼的提问箱 | 匿名提问箱

+

+ 一个无需注册即可提问的匿名提问箱。不用下载 App,不用绑定社交账号,连邮箱都不必是真的。 +

+ +
+ +
+
+

匿名也能问

+

不需要账号、不需要真实邮箱,打开就能写。想收到回复再留邮箱即可。

+
+
+

不止一问一答

+

问题二维码、私聊、投票、追加提问、Markdown 排版,原版没有的这里都有。

+
+
+

箱子归你

+

头像、背景、二维码配色都能自己调,还能设置审核严格度和收集时段。

+
+
+ +
+

域名迁移

+

+ 本站已切换到 box.shiroko.one,原域名将在 2026 年 12 月 24 日到期, + 期间通过 301 转发指向新域名,到期后旧域名将彻底不再使用。 +

+

+ 审核服务已切换到阿里云,审核速度提升且误伤更少;同时允许用户调整审核严格度,在不碰底线的前提下 + 可以设置不接受辱骂、广告等信息(即「不听坏话模式」)。 +

+
+ +
+

一点提醒

+
    +
  • 本站唯一指定认证站长:小狼,注意不要被骗。
  • +
  • 本站提倡友好、友善的发言,请遵守社区规则。无论匿名与否,都要为自己的发言负责。
  • +
  • 不允许垃圾信息、广告、辱骂、涉政、暴恐、色情、违禁、无意义、灌水提问,涉政或不良言论将直接删除。
  • +
+

+ 想先试试功能,可以到站长的提问箱 + 小狼的提问箱 提问或提意见。 +

+
+ +
+ 近期更新 +
    +
  • 2026.9 新增审核严格度选项,增加提问、投票、私聊的总开关,可设置定时收集、定量收集或关闭功能,前后端显示也更易用了。
  • +
  • 2026.8 新增投票功能、追加提问、多语言、Markdown 显示、置顶显示等,详情见这里。
  • +
  • 2026.8 放弃使用 recaptcha 等对国内用户不友好的验证方式,更新密码加密方式,修复图片上传等一系列问题。
  • +
  • 2026.5 增加私聊功能,可连续对话,详见介绍;另有提问箱卡片分享。
  • +
  • 2026.2 新增用户展示和标签功能,可给自己贴 5 个标签并选择是否在探索页展示,详情见狼的公告板。
  • +
+
+ +
+

提问箱信息统计

+
+
+ 1284 + 注册用户 +
+
+ 56321 + 累计提问 +
+
+ 31208 + 已获回答 +
+
+

+ 最后提问:2026-10-19 10:12:44
+ 最后回答:2026-10-19 09:58:02
+ 数据更新于:2026-10-19 10:00:00 +

+
+ +
+ +

+
+ 社区规则 | + + 找站长 +
+ 盘 + | 公告板 + | 聊天室 + | 监控板 + | 导航页 +
Powered by NekoBox | +
提问箱已成功存活: +

+ + +
+
+ + + +
+ + + diff --git a/outputs/verify/login.html b/outputs/verify/login.html new file mode 100644 index 0000000..3c7d3f4 --- /dev/null +++ b/outputs/verify/login.html @@ -0,0 +1,639 @@ + + + + + + 狼の質問箱 | 匿名質問箱 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + +
+ + + +
+
+

人機認証

+

以下の計算問題を解いて、ロボットでないことを証明してください

+
+ 読み込み中... + +
+
+ +
+ +
+ + +
+
+
+ + + + + +
+
+ + ログイン + + + + + + + + + +
+ + +
+
+ + +
+
+ + + + + パスワードを忘れた + +
+
+
+

+
+ ルール | + + 管理者へ +
+ ドライブ + | お知らせ + | チャット + | ステータス + | リンク +
Powered by NekoBox | 狼ICP备 20230101 +
質問箱は稼働中: +

+ + +
+
+ + + + + diff --git a/outputs/verify/login_post.html b/outputs/verify/login_post.html new file mode 100644 index 0000000..e69de29 diff --git a/outputs/verify/p2-http.html b/outputs/verify/p2-http.html new file mode 100644 index 0000000..428c5fb --- /dev/null +++ b/outputs/verify/p2-http.html @@ -0,0 +1,44 @@ + + + + + + + +
+
+

导航图标(原 emoji 🌐🌙☀️)

+
+ + + + +
+
+
+

标签(原实心彩色 uk-label)

+
+ 单选多选 + 评分排序 + 表单 + #杂谈#音乐 +
+
+
+

占比条(原生 progress)

+ + + +
+
+
+ + \ No newline at end of file diff --git a/outputs/verify/p2-probe.html b/outputs/verify/p2-probe.html new file mode 100644 index 0000000..da59563 --- /dev/null +++ b/outputs/verify/p2-probe.html @@ -0,0 +1,720 @@ + + + + + +
+
+

导航图标(原 emoji)

+
+ + + + +
+
+
+

标签(原实心彩色 uk-label)

+
+ 单选多选 + 评分排序 + 表单 + #杂谈#音乐 +
+
+
+

占比条(原生 progress)

+ + + +
+
+
+ + +
+ + \ No newline at end of file diff --git a/outputs/verify/p2-probe3.html b/outputs/verify/p2-probe3.html new file mode 100644 index 0000000..0f5532a --- /dev/null +++ b/outputs/verify/p2-probe3.html @@ -0,0 +1,714 @@ + + + + + +
+
+

导航图标(原 emoji)

+
+ + + + +
+
+
+

标签(原实心彩色 uk-label)

+
+ 单选多选 + 评分排序 + 表单 + #杂谈#音乐 +
+
+
+

占比条(原生 progress)

+ + + +
+
+
+ + +
+ + \ No newline at end of file diff --git a/outputs/verify/p2-sheet.html b/outputs/verify/p2-sheet.html new file mode 100644 index 0000000..de1af51 --- /dev/null +++ b/outputs/verify/p2-sheet.html @@ -0,0 +1,709 @@ + + + + + +
+
+

导航图标(原 emoji)

+
+ + + + +
+
+
+

标签(原实心彩色 uk-label)

+
+ 单选多选 + 评分排序 + 表单 + #杂谈#音乐 +
+
+
+

占比条(原生 progress)

+ + + +
+
+
+ + \ No newline at end of file diff --git a/outputs/verify/profile-preview.html b/outputs/verify/profile-preview.html new file mode 100644 index 0000000..3ef7f54 --- /dev/null +++ b/outputs/verify/profile-preview.html @@ -0,0 +1,3299 @@ + + + + + + 狼的提问箱 | 匿名提问箱 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+ + + +
+
+

人机验证

+

请计算下方的算术题以验证你不是机器人

+
+ 加载中... + +
+
+ +
+ +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+

裁剪图片

+
+
+
+ +
+

+
+ +
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + + +
+
+
+
+ + 防骚扰设置 +
+
+ +
+
+ +
+
+
+ +
+ + + +
+
+ + 全局屏蔽词 +
+

屏蔽词对提问、私聊(对方发给你的消息)与投票提交内容生效;三个设置页同步显示同一份设置,任意一处修改即时生效。

+ + +
+
+ +
+
+
+ + + + + +
+
+ + 审核严格度 + +

对提问、投票、私聊三类内容同时生效。这里调节的是「审核命中之后是否拦截」,不影响屏蔽词——屏蔽词始终直接拒绝。

+

底线拦截(所有档位强制生效,不可关闭):涉政、暴恐、色情,以及审核服务自定义词库的命中。

+ + + + + + + + + + + + + + + + + + + + + + + + +
档位拦截范围
畅所欲言仅拦截底线内容,其余一律放行(误伤最少)。
正常水平底线内容,以及置信度不低于 90% 的辱骂、违禁内容。
不听坏话底线内容,以及辱骂、违禁、垃圾信息、广告、灌水、无意义、不良场景内容(不限置信度);同时采信审核服务给出的整体拦截建议。最严格档,拦截面不小于升级前。
+ +
+ + + +
+ +
+
+ 未设置时跟随站点默认档位。 +
+
+ +
+ +
+
+
+ + +
+
+
+ + 页面访问密码 +
+ + +
+
+ +
+
+
+ +
+
+
+ + 提问密码 +
+ + +
+
+ +
+
+
+
+
+ + + + + + + + + +

+
+ 社区规则 | + + 找站长 +
+ 盘 + | 公告板 + | 聊天室 + | 监控板 + | 导航页 +
Powered by NekoBox | 狼ICP备 20230101 +
提问箱已成功存活: +

+ + +
+
+ + + +
+ + + + diff --git a/outputs/verify/profile.html b/outputs/verify/profile.html new file mode 100644 index 0000000..434f677 --- /dev/null +++ b/outputs/verify/profile.html @@ -0,0 +1,2632 @@ + + + + + + 狼的提问箱 | 匿名提问箱 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + +
+ + + +
+
+

人机验证

+

请计算下方的算术题以验证你不是机器人

+
+ 加载中... + +
+
+ +
+ +
+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+

裁剪图片

+
+
+
+ +
+

+
+ +
+
+ + +
+ + + + + +
+ + + + + + + + + + + + + + + +
+
+
+
+ + 防骚扰设置 +
+
+ +
+
+ +
+
+
+ +
+ + + +
+
+ + 全局屏蔽词 +
+

屏蔽词对提问、私聊(对方发给你的消息)与投票提交内容生效;三个设置页同步显示同一份设置,任意一处修改即时生效。

+ + +
+
+ +
+
+
+ + + + + +
+
+ + 审核严格度 + +

对提问、投票、私聊三类内容同时生效。这里调节的是「审核命中之后是否拦截」,不影响屏蔽词——屏蔽词始终直接拒绝。

+

底线拦截(所有档位强制生效,不可关闭):涉政、暴恐、色情,以及审核服务自定义词库的命中。

+ + + + + + + + + + + + + + + + + + + + + + + + +
档位拦截范围
畅所欲言仅拦截底线内容,其余一律放行(误伤最少)。
正常水平底线内容,以及置信度不低于 90% 的辱骂、违禁内容。
不听坏话底线内容,以及辱骂、违禁、垃圾信息、广告、灌水、无意义、不良场景内容(不限置信度);同时采信审核服务给出的整体拦截建议。最严格档,拦截面不小于升级前。
+ +
+ + + +
+ +
+
+ 未设置时跟随站点默认档位。 +
+
+ +
+ +
+
+
+ + +
+
+
+ + 页面访问密码 +
+ + +
+
+ +
+
+
+ +
+
+
+ + 提问密码 +
+ + +
+
+ +
+
+
+
+
+ + + + + + + + + +

+
+ 社区规则 | + + 找站长 +
+ 盘 + | 公告板 + | 聊天室 + | 监控板 + | 导航页 +
Powered by NekoBox | 狼ICP备 20230101 +
提问箱已成功存活: +

+ + +
+
+ + + + + diff --git a/outputs/verify/ver.json b/outputs/verify/ver.json new file mode 100644 index 0000000..f1acdca --- /dev/null +++ b/outputs/verify/ver.json @@ -0,0 +1 @@ +{"code":0,"correct":true} diff --git a/static/css/base.css b/static/css/base.css index 955d41b..45a1b3a 100644 --- a/static/css/base.css +++ b/static/css/base.css @@ -239,12 +239,19 @@ html[data-theme="dark"] .explore-intro { color: var(--tb-text-muted) !important; } - /* 切换按钮图标切换 */ + /* 切换按钮图标切换(内联 SVG,不依赖 UIkit 图标库) */ + #theme-toggle .tb-icon-light, #theme-toggle-mobile .tb-icon-light, + #theme-toggle .tb-icon-dark, #theme-toggle-mobile .tb-icon-dark { + display: inline-flex; + align-items: center; + } + #theme-toggle .tb-icon-light svg, #theme-toggle-mobile .tb-icon-light svg, + #theme-toggle .tb-icon-dark svg, #theme-toggle-mobile .tb-icon-dark svg { display: block; } #theme-toggle .tb-icon-dark, #theme-toggle-mobile .tb-icon-dark { display: none; } html[data-theme="dark"] #theme-toggle .tb-icon-light, html[data-theme="dark"] #theme-toggle-mobile .tb-icon-light { display: none; } html[data-theme="dark"] #theme-toggle .tb-icon-dark, - html[data-theme="dark"] #theme-toggle-mobile .tb-icon-dark { display: inline; } + html[data-theme="dark"] #theme-toggle-mobile .tb-icon-dark { display: inline-flex; } /* 基础质感层:只调整外观(圆角/投影/字体/数字对齐),不改任何结构与布局。 颜色一律取自头部令牌,亮暗两套自动生效,因此这里不需要再写 html[data-theme="dark"] 分支。 */ @@ -319,7 +326,26 @@ .uk-text-meta { color: var(--tb-text-muted); } - /* 统计/日期等数字列等宽对齐,避免刷新时左右跳动 */ + +/* 轻量胶囊:用于投票类型、热门标签等「只是分类信息」的位置。 + 实心 uk-label 一屏多个会变成一排色块,这里统一降级为浅底 + 次要色文字。 */ +.tb-chip { + display: inline-block; + padding: 1px 8px; + border-radius: var(--tb-radius-xs); + background-color: var(--tb-surface-2); + color: var(--tb-text-secondary); + font-size: 0.72rem; + line-height: 1.7; + white-space: nowrap; +} +a.tb-chip:hover { + background-color: var(--tb-primary-weak); + color: var(--tb-primary); + text-decoration: none; +} + +/* 统计/日期等数字列等宽对齐,避免刷新时左右跳动 */ .uk-table, .tb-num { font-variant-numeric: tabular-nums; @@ -576,34 +602,26 @@ html[data-theme="dark"] .md-body th, html[data-theme="dark"] .md-body td { border-color: #3a404c; } -/* 投票结果占比条:UIkit 3 已无 .uk-progressbar 类(那是 UIkit 2 的), - 模板用
结构,需补一套填充样式, - 否则内层填充无高度/背景,所有占比条都只剩外层灰色轨道,看起来一模一样。 */ - .uk-progress { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - height: 10px; - margin: 0; - border: none; - border-radius: 6px; - background-color: #e5e5e5; - overflow: hidden; - box-shadow: none; - } - .uk-progressbar { - display: block; - height: 100%; - background-color: #1e87f0; - border-radius: 6px 0 0 6px; - transition: width 0.3s ease; - } - html[data-theme="dark"] .uk-progress { - background-color: var(--tb-border); - } - html[data-theme="dark"] .uk-progressbar { - background-color: var(--tb-primary); - } +/* 投票结果占比条:模板已改用 UIkit 3 原生 , + 这里只把默认的 15px 高 / 500px 圆角 / 20px 外边距收紧到与页面一致的规格。 + (原先为 UIkit 2 的 .uk-progressbar 结构打的补丁已删除) */ +.uk-progress { + height: 10px; + margin: 0; + border-radius: var(--tb-radius-xs); + background-color: var(--tb-surface-2); +} +.uk-progress::-webkit-progress-bar { + background-color: var(--tb-surface-2); + border-radius: var(--tb-radius-xs); +} +.uk-progress::-webkit-progress-value { + background-color: var(--tb-primary); + border-radius: var(--tb-radius-xs) 0 0 var(--tb-radius-xs); +} +.uk-progress::-moz-progress-bar { + background-color: var(--tb-primary); +} /* 移动端底部操作栏:固定底栏承载语言切换与深色模式,桌面端隐藏 */ #tb-mobile-utils { diff --git a/templates/base/header.html b/templates/base/header.html index bb69a11..7691039 100644 --- a/templates/base/header.html +++ b/templates/base/header.html @@ -2,7 +2,7 @@ - + {{ .Title }} @@ -21,7 +21,7 @@ - + @@ -150,9 +150,8 @@ + msvalidate.01 只在 head 顶部保留一份,这里不再重复。 --> - -
+
-
+