Repo .git was damaged (refs/ missing, index truncated, object store near-empty). Repaired via git init (rebuilt refs), stale index preserved as .git/index.corrupt-20260910.bak, then full worktree committed as a rollback baseline.
1713 lines
60 KiB
HTML
1713 lines
60 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width">
|
||
<title>小狼 - 狼的提问箱 | 匿名提问箱</title>
|
||
<meta name="description" content="狼的提问箱——一个无需注册、可匿名提问的匿名提问箱,安全地倾诉与回应。">
|
||
<meta name="keywords" content="匿名提问箱,提问箱,匿名提问,狼的提问箱,匿名问答,匿名提问网站">
|
||
|
||
<link rel="preconnect" href="https://r2.337845818.best" crossorigin>
|
||
<link rel="preconnect" href="https://cdnjs.snrat.com" crossorigin>
|
||
<link rel="dns-prefetch" href="https://cn.vercount.one">
|
||
|
||
<link rel="stylesheet" href="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/css/uikit.min.css"/>
|
||
|
||
<link rel="stylesheet" href="https://r2.337845818.best/tamabox/cdn/waline/client/v2/waline-no-commits.css" media="print" onload="this.media='all'"/>
|
||
<script defer src="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/js/uikit.min.js"></script>
|
||
<script defer src="https://cdnjs.snrat.com/ajax/libs/uikit/3.3.3/js/uikit-icons.min.js"></script>
|
||
|
||
<style>
|
||
.uk-light { color: rgba(0,0,0,.7); }
|
||
.uk-light .uk-h1, .uk-light .uk-h2, .uk-light .uk-h3, .uk-light .uk-h4, .uk-light .uk-h5, .uk-light .uk-h6,
|
||
.uk-light .uk-heading-2xlarge, .uk-light .uk-heading-large, .uk-light .uk-heading-medium, .uk-light .uk-heading-small, .uk-light .uk-heading-xlarge,
|
||
.uk-light h1, .uk-light h2, .uk-light h3, .uk-light h4, .uk-light h5, .uk-light h6 { color: #000; }
|
||
.uk-light .uk-table th { color: rgba(0,0,0,.7); }
|
||
</style>
|
||
|
||
<script defer src="https://cdnjs.snrat.com/ajax/libs/dayjs/1.10.8/dayjs.min.js"></script>
|
||
<script defer src="https://cdnjs.snrat.com/ajax/libs/alpinejs/3.9.0/cdn.min.js"></script>
|
||
|
||
|
||
<script defer src="https://r2.337845818.best/tamabox/cdn/time.box.js"></script>
|
||
|
||
<script defer src="https://cn.vercount.one/js"></script>
|
||
<script defer src="https://cdnjs.snrat.com/ajax/libs/waline/2.15.8/waline.js"></script>
|
||
|
||
|
||
<style>
|
||
.captcha-equation-box {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
background: #f0f2f5;
|
||
border: 1px solid #dcdcdc;
|
||
border-radius: 8px;
|
||
padding: 8px 8px 8px 16px;
|
||
gap: 6px;
|
||
transition: border-color 0.2s;
|
||
}
|
||
.captcha-equation-box:focus-within {
|
||
border-color: #1e87f0;
|
||
box-shadow: 0 0 0 3px rgba(30,135,240,0.12);
|
||
}
|
||
.math-captcha-modal-question {
|
||
font-size: 1.4rem;
|
||
font-family: "Courier New", monospace;
|
||
font-weight: 700;
|
||
color: #333;
|
||
letter-spacing: 1px;
|
||
white-space: nowrap;
|
||
}
|
||
#captcha-modal-answer {
|
||
width: 80px;
|
||
padding: 6px 10px;
|
||
text-align: center;
|
||
font-size: 1.2rem;
|
||
font-family: "Courier New", monospace;
|
||
font-weight: 600;
|
||
border: 1px solid #ccc;
|
||
border-radius: 5px;
|
||
outline: none;
|
||
transition: border-color 0.15s, box-shadow 0.15s;
|
||
background: #fff;
|
||
}
|
||
#captcha-modal-answer:focus {
|
||
border-color: #1e87f0;
|
||
box-shadow: 0 0 0 2px rgba(30,135,240,0.2);
|
||
}
|
||
|
||
#captcha-modal-answer::-webkit-inner-spin-button,
|
||
#captcha-modal-answer::-webkit-outer-spin-button {
|
||
-webkit-appearance: none;
|
||
margin: 0;
|
||
}
|
||
#captcha-modal-answer {
|
||
-moz-appearance: textfield;
|
||
}
|
||
</style>
|
||
|
||
|
||
<style>
|
||
.grecaptcha-badge {visibility: hidden;}
|
||
.icon-container {
|
||
display: flex;
|
||
justify-content: center;
|
||
width: 100%;
|
||
}
|
||
.icon {
|
||
margin-left: 10px;
|
||
width: 20px;
|
||
height: auto;
|
||
}
|
||
.emoji-placeholder {
|
||
display: inline-block;
|
||
animation: jump 0.5s ease-in-out;
|
||
}
|
||
|
||
@keyframes jump {
|
||
0%, 100% { transform: translateY(0); }
|
||
50% { transform: translateY(-5px); }
|
||
}
|
||
|
||
.uk-dropbar {
|
||
opacity: 0;
|
||
visibility: hidden;
|
||
transition: opacity 0.2s ease, visibility 0.2s ease;
|
||
}
|
||
|
||
.uk-dropbar.uk-open {
|
||
opacity: 1;
|
||
visibility: visible;
|
||
}
|
||
|
||
a.uk-button.uk-button-link {
|
||
text-transform: none;
|
||
}
|
||
|
||
|
||
@media (max-width: 640px) {
|
||
.uk-logo {
|
||
font-size: 1rem;
|
||
}
|
||
.uk-navbar-nav a {
|
||
font-size: 0.78rem;
|
||
padding: 0 4px;
|
||
}
|
||
.emoji-placeholder {
|
||
font-size: 1rem;
|
||
}
|
||
|
||
.tb-nav-username {
|
||
max-width: 64px;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
}
|
||
}
|
||
</style>
|
||
|
||
|
||
<style>
|
||
html[data-theme="dark"] {
|
||
--tb-bg: #1a1d23;
|
||
--tb-surface: #242830;
|
||
--tb-surface-2: #2d323c;
|
||
--tb-border: #3a404c;
|
||
--tb-text: #d8dce4;
|
||
--tb-text-muted: #8b93a1;
|
||
--tb-primary: #5c8dff;
|
||
}
|
||
|
||
html[data-theme="dark"],
|
||
html[data-theme="dark"] body {
|
||
background-color: var(--tb-bg) !important;
|
||
color: var(--tb-text) !important;
|
||
}
|
||
|
||
html[data-theme="dark"] .uk-card,
|
||
html[data-theme="dark"] .uk-card-default,
|
||
html[data-theme="dark"] .uk-card-secondary,
|
||
html[data-theme="dark"] .uk-dropbar,
|
||
html[data-theme="dark"] .uk-navbar-dropdown,
|
||
html[data-theme="dark"] .uk-modal-dialog,
|
||
html[data-theme="dark"] .uk-dropdown,
|
||
html[data-theme="dark"] .uk-offcanvas-bar,
|
||
html[data-theme="dark"] .uk-section,
|
||
html[data-theme="dark"] .uk-tile,
|
||
html[data-theme="dark"] .uk-panel,
|
||
html[data-theme="dark"] .uk-background-default,
|
||
html[data-theme="dark"] .uk-search-default .uk-search-input {
|
||
background-color: var(--tb-surface) !important;
|
||
color: var(--tb-text) !important;
|
||
}
|
||
html[data-theme="dark"] .uk-navbar-container {
|
||
background-color: var(--tb-surface) !important;
|
||
color: var(--tb-text) !important;
|
||
}
|
||
html[data-theme="dark"] .uk-navbar-nav > 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; }
|
||
</style>
|
||
|
||
|
||
<style>
|
||
.uk-navbar-nav a {
|
||
font-size: 0.95rem;
|
||
padding: 0 10px;
|
||
}
|
||
|
||
.tb-mobile-balancer { display: none; }
|
||
|
||
.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;
|
||
}
|
||
}
|
||
|
||
@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;
|
||
}
|
||
|
||
.tb-mobile-balancer { display: block; }
|
||
}
|
||
</style>
|
||
|
||
|
||
<style>
|
||
.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;
|
||
}
|
||
</style>
|
||
|
||
|
||
<style>
|
||
.tb-spinner {
|
||
display: inline-block;
|
||
width: 0.9em;
|
||
height: 0.9em;
|
||
border: 2px solid rgba(128, 128, 128, 0.25);
|
||
border-top-color: #666;
|
||
border-radius: 50%;
|
||
vertical-align: -2px;
|
||
animation: tb-spin 0.8s linear infinite;
|
||
}
|
||
html[data-theme="dark"] .tb-spinner {
|
||
border-color: rgba(255, 255, 255, 0.2);
|
||
border-top-color: #bbb;
|
||
}
|
||
@keyframes tb-spin {
|
||
to { transform: rotate(360deg); }
|
||
}
|
||
</style>
|
||
|
||
|
||
<style>
|
||
|
||
.tb-preline {
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
.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; }
|
||
</style>
|
||
|
||
|
||
<style>
|
||
.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);
|
||
}
|
||
</style>
|
||
|
||
|
||
<style>
|
||
#tb-mobile-utils {
|
||
display: none;
|
||
}
|
||
@media (max-width: 640px) {
|
||
|
||
.tb-nav-utils {
|
||
display: none !important;
|
||
}
|
||
|
||
.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;
|
||
}
|
||
}
|
||
</style>
|
||
|
||
|
||
<meta property="og:site_name" content="狼的提问箱 | 匿名提问箱" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:title" content="小狼 - 狼的提问箱 | 匿名提问箱" />
|
||
<meta property="og:url" content="https://box.tama.guru/_/tamakyi" />
|
||
<meta property="og:description" content="小狼 - 狼的提问箱——一个无需注册、可匿名提问的匿名提问箱,安全地倾诉与回应。" />
|
||
<meta name="robots" content="noindex">
|
||
|
||
<meta property="og:image" content="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?og-image=1" />
|
||
<meta property="og:image:alt" content="小狼" />
|
||
<meta itemprop="image" content="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?og-image=1"/>
|
||
<meta name="msapplication-TileImage" content="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6"/>
|
||
<link rel="shortcut icon" href="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?og-image=1"/>
|
||
<link rel="apple-touch-icon" href="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?og-image=1"/>
|
||
<link rel="icon" sizes="192x192" href="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?og-image=1">
|
||
<meta name="twitter:image:src" content="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?og-image=1" />
|
||
|
||
|
||
|
||
<meta name="google-site-verification" content="fEPwRRJfiGsgwc5SINBQwZhPK8F0cwRaOvRx0YRurI4" />
|
||
<meta name="msvalidate.01" content="2F185E8E63C93635F50B3574F3B31E42" />
|
||
<script defer src="https://mami.tama.guru/tamami.js" data-website-id="c42ebe8b-9281-4da0-83a4-8f18b3e710fe"></script>
|
||
</head>
|
||
<body>
|
||
<nav class="uk-navbar-container uk-margin tb-navbar" uk-navbar>
|
||
<div class="uk-navbar-center">
|
||
<div class="uk-navbar-center-left">
|
||
<div>
|
||
<ul class="uk-navbar-nav">
|
||
|
||
<li><a href="/explore">探索</a></li>
|
||
|
||
|
||
<li class="tb-mobile-balancer" aria-hidden="true"><a tabindex="-1" style="visibility:hidden">我的</a></li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<a class="uk-navbar-item uk-logo" href="/"><span class="emoji-placeholder" aria-label="random animal">🐺</span>的提问箱</a>
|
||
|
||
<div class="uk-navbar-center-right">
|
||
<div>
|
||
|
||
<ul class="uk-navbar-nav">
|
||
<li><a href="/register">注册</a></li>
|
||
</ul>
|
||
<ul class="uk-navbar-nav">
|
||
<li><a href="/login">登录</a></li>
|
||
</ul>
|
||
|
||
|
||
|
||
<ul class="uk-navbar-nav tb-nav-utils">
|
||
<li>
|
||
<a href="#" id="theme-toggle" title="切换深色/浅色模式" aria-label="切换深色/浅色模式">
|
||
<span class="tb-icon-light">🌙</span><span class="tb-icon-dark">☀️</span>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<script>
|
||
document.addEventListener("DOMContentLoaded", function() {
|
||
const emojis = ["🐺","🐗","🐻","🐨","🐼","🐹","🐭","🐰","🦊","🐮","🐷","🐽","🐸","🐒","🦍","🐔","🐧","🐦","🐤","🐦⬛","🦅","🦉","🦇","🐴","🦄","🐝","🦎","🦖","🦕","🐙","🦑","🦐","🦞","🦀","🐡","🐠","🐟","🐬","🐳","🐋","🦈","🐊","🐅","🐆","🦓","🦍","🦧","🐘","🦛","🦏","🐪","🐫","🦒","🦘","🐃","🐂","🐄","🐎","🐖","🐏","🐑","🦙","🐐","🦌","🐕","🐩","🦮","🐕🦺","🐈","🐋","🐳","🐬","🐉","🐲"];
|
||
const placeholder = document.querySelector('.emoji-placeholder');
|
||
if (placeholder) {
|
||
placeholder.textContent = emojis[Math.floor(Math.random() * emojis.length)];
|
||
}
|
||
});
|
||
</script>
|
||
|
||
|
||
<div id="tb-mobile-utils">
|
||
|
||
<button type="button" id="theme-toggle-mobile" class="uk-button uk-button-default uk-button-small"
|
||
title="切换深色/浅色模式" aria-label="切换深色/浅色模式">
|
||
<span class="tb-icon-light">🌙</span><span class="tb-icon-dark">☀️</span>
|
||
</button>
|
||
</div>
|
||
|
||
<script>
|
||
(function() {
|
||
|
||
var THEME_COOKIE = 'theme';
|
||
function getTheme() {
|
||
var m = document.cookie.match(/(?:^|;\s*)theme=([^;]*)/);
|
||
return m ? m[1] : '';
|
||
}
|
||
function applyTheme(theme) {
|
||
if (theme === 'dark') {
|
||
document.documentElement.setAttribute('data-theme', 'dark');
|
||
} else {
|
||
document.documentElement.removeAttribute('data-theme');
|
||
}
|
||
}
|
||
function toggleTheme() {
|
||
var next = getTheme() === 'dark' ? 'light' : 'dark';
|
||
applyTheme(next);
|
||
var expires = new Date(Date.now() + 365 * 24 * 3600 * 1000).toUTCString();
|
||
document.cookie = THEME_COOKIE + '=' + next + '; path=/; max-age=' + (365 * 24 * 3600) + '; SameSite=Lax';
|
||
}
|
||
|
||
applyTheme(getTheme());
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
|
||
var buttons = document.querySelectorAll('#theme-toggle, #theme-toggle-mobile');
|
||
buttons.forEach(function(btn) {
|
||
btn.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
toggleTheme();
|
||
});
|
||
});
|
||
|
||
|
||
var langSel = document.getElementById('mobile-lang-select');
|
||
if (langSel) {
|
||
langSel.addEventListener('change', function() {
|
||
if (!this.value) return;
|
||
var to = window.location.pathname + window.location.search;
|
||
window.location.href = '/i18n/' + encodeURIComponent(this.value) + '?to=' + encodeURIComponent(to);
|
||
});
|
||
}
|
||
});
|
||
})();
|
||
</script>
|
||
|
||
|
||
<div class="uk-container uk-container-xsmall">
|
||
|
||
|
||
|
||
<div id="math-captcha-modal" uk-modal>
|
||
<div class="uk-modal-dialog uk-modal-body uk-text-center">
|
||
<h3 class="uk-modal-title">人机验证</h3>
|
||
<p class="uk-text-meta">请计算下方的算术题以验证你不是机器人</p>
|
||
<div class="captcha-equation-box">
|
||
<span id="captcha-modal-question" class="math-captcha-modal-question">加载中...</span>
|
||
<input type="number" id="captcha-modal-answer" placeholder="?" autocomplete="off" inputmode="numeric">
|
||
</div>
|
||
<div style="margin-top:6px;">
|
||
<button type="button" class="uk-button uk-button-text uk-text-small" id="captcha-modal-refresh">换一题</button>
|
||
</div>
|
||
<div id="captcha-modal-error" class="uk-text-danger uk-text-small" style="display:none;min-height:20px;"></div>
|
||
<div class="uk-margin-small-top">
|
||
<button type="button" class="uk-button uk-button-primary" id="captcha-modal-submit">验证并提交</button>
|
||
<button type="button" class="uk-button uk-button-default uk-modal-close">取消</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
var CAPTCHA_I18N = {
|
||
loading: "加载中...",
|
||
loadFailed: "加载失败",
|
||
loadRetry: "加载失败,请重试",
|
||
inputAnswer: "请输入答案",
|
||
wrongAnswer: "答案错误,请重新计算",
|
||
verifyFailed: "验证失败,请重试",
|
||
needPassword: "此提问箱需要密码",
|
||
needEmail: "请填写接收通知的邮箱地址"
|
||
};
|
||
</script>
|
||
|
||
<script>
|
||
(function() {
|
||
var captchaId = '';
|
||
var pendingForm = null;
|
||
var pendingNeedPassword = false;
|
||
var verifying = false;
|
||
|
||
function fetchCaptcha() {
|
||
var qEl = document.getElementById('captcha-modal-question');
|
||
var errEl = document.getElementById('captcha-modal-error');
|
||
var ansEl = document.getElementById('captcha-modal-answer');
|
||
qEl.textContent = CAPTCHA_I18N.loading;
|
||
fetch('/api/captcha/generate')
|
||
.then(function(r) { return r.json(); })
|
||
.then(function(data) {
|
||
if (data.code === 0 && data.data) {
|
||
captchaId = data.data.id;
|
||
qEl.textContent = data.data.question;
|
||
if (errEl) errEl.style.display = 'none';
|
||
if (ansEl) { ansEl.value = ''; ansEl.focus(); }
|
||
} else {
|
||
qEl.textContent = CAPTCHA_I18N.loadFailed;
|
||
}
|
||
})
|
||
.catch(function() {
|
||
qEl.textContent = CAPTCHA_I18N.loadRetry;
|
||
});
|
||
}
|
||
|
||
function getCSRFToken() {
|
||
var input = document.querySelector('input[name="_csrf"]');
|
||
return input ? input.value : '';
|
||
}
|
||
|
||
function doSubmit(form) {
|
||
|
||
var ans = document.getElementById('captcha-modal-answer').value.trim();
|
||
var hidden = form.querySelector('[name="g-recaptcha-response"]');
|
||
if (hidden) hidden.value = captchaId + ':' + (ans || '0');
|
||
|
||
UIkit.modal('#math-captcha-modal').hide();
|
||
|
||
|
||
if (pendingNeedPassword) {
|
||
UIkit.modal.prompt(CAPTCHA_I18N.needPassword, '', 'password')
|
||
.then(function(password) {
|
||
if (password) {
|
||
var pwInput = document.getElementById('ask_password_input');
|
||
if (pwInput) pwInput.value = password;
|
||
form.submit();
|
||
}
|
||
});
|
||
} else {
|
||
form.submit();
|
||
}
|
||
}
|
||
|
||
|
||
document.getElementById('captcha-modal-submit').addEventListener('click', function() {
|
||
if (verifying) return;
|
||
var ans = document.getElementById('captcha-modal-answer').value.trim();
|
||
if (!ans) {
|
||
var errEl = document.getElementById('captcha-modal-error');
|
||
errEl.textContent = CAPTCHA_I18N.inputAnswer;
|
||
errEl.style.display = 'block';
|
||
return;
|
||
}
|
||
verifying = true;
|
||
fetch('/api/captcha/verify', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json',
|
||
'X-CSRF-Token': getCSRFToken()
|
||
},
|
||
body: JSON.stringify({ id: captchaId, answer: parseInt(ans, 10) })
|
||
})
|
||
.then(function(r) { return r.json(); })
|
||
.then(function(data) {
|
||
verifying = false;
|
||
if (data.correct) {
|
||
if (pendingForm) doSubmit(pendingForm);
|
||
} else {
|
||
var errEl = document.getElementById('captcha-modal-error');
|
||
errEl.textContent = CAPTCHA_I18N.wrongAnswer;
|
||
errEl.style.display = 'block';
|
||
fetchCaptcha();
|
||
}
|
||
})
|
||
.catch(function() {
|
||
verifying = false;
|
||
var errEl = document.getElementById('captcha-modal-error');
|
||
errEl.textContent = CAPTCHA_I18N.verifyFailed;
|
||
errEl.style.display = 'block';
|
||
fetchCaptcha();
|
||
});
|
||
});
|
||
|
||
|
||
document.getElementById('captcha-modal-answer').addEventListener('keydown', function(e) {
|
||
if (e.key === 'Enter') {
|
||
e.preventDefault();
|
||
document.getElementById('captcha-modal-submit').click();
|
||
}
|
||
});
|
||
|
||
|
||
document.getElementById('captcha-modal-refresh').addEventListener('click', fetchCaptcha);
|
||
|
||
|
||
document.addEventListener('click', function(e) {
|
||
var btn = e.target.closest('.math-captcha-trigger');
|
||
if (!btn) return;
|
||
e.preventDefault();
|
||
|
||
var form = btn.closest('form');
|
||
if (!form) return;
|
||
pendingForm = form;
|
||
|
||
|
||
pendingNeedPassword = !!(form.querySelector('#ask_password_input'));
|
||
|
||
|
||
var notifyCb = document.getElementById('notify-checkbox');
|
||
var emailInput = document.getElementById('email-input');
|
||
if (notifyCb && notifyCb.checked && emailInput && emailInput.value.trim() === '') {
|
||
UIkit.modal.alert(CAPTCHA_I18N.needEmail);
|
||
return;
|
||
}
|
||
|
||
fetchCaptcha();
|
||
UIkit.modal('#math-captcha-modal').show();
|
||
});
|
||
})();
|
||
</script>
|
||
|
||
|
||
<link rel="shortcut icon" href="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?v=2" crossorigin="anonymous"/>
|
||
<link rel="apple-touch-icon" href="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?v=2" crossorigin="anonymous"/>
|
||
<link rel="icon" sizes="192x192" href="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?v=2" crossorigin="anonymous">
|
||
<style>
|
||
|
||
.profile-votes-list { display: grid; gap: 0; }
|
||
.profile-vote-item {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 16px;
|
||
min-width: 0;
|
||
padding: 14px 16px;
|
||
border-bottom: 1px solid var(--tb-border, #e9e9e9);
|
||
text-decoration: none;
|
||
}
|
||
.profile-vote-item:first-child { border-top: 1px solid var(--tb-border, #e9e9e9); }
|
||
.profile-vote-item:hover { background: var(--tb-surface-hover, #f8fbff); text-decoration: none; }
|
||
.profile-vote-content { min-width: 0; }
|
||
.profile-vote-title {
|
||
display: block;
|
||
overflow: hidden;
|
||
color: var(--tb-text, #333);
|
||
font-size: 0.98rem;
|
||
font-weight: 600;
|
||
line-height: 1.45;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
.profile-vote-meta {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
align-items: center;
|
||
gap: 7px;
|
||
margin-top: 8px;
|
||
}
|
||
.profile-vote-meta .uk-label { font-size: 0.72rem; line-height: 1.6; }
|
||
.profile-vote-action {
|
||
flex: 0 0 auto;
|
||
color: var(--tb-primary, #1e87f0);
|
||
font-size: 0.82rem;
|
||
white-space: nowrap;
|
||
}
|
||
html[data-theme="dark"] .profile-vote-item { border-color: var(--tb-border); }
|
||
html[data-theme="dark"] .profile-vote-title { color: var(--tb-text); }
|
||
html[data-theme="dark"] .profile-vote-item:hover { background: rgba(78, 168, 245, 0.10); }
|
||
|
||
|
||
.profile-tabs {
|
||
display: flex;
|
||
gap: 4px;
|
||
padding: 4px;
|
||
margin-top: 20px;
|
||
margin-bottom: 18px;
|
||
border: 1px solid var(--tb-border, #e5e5e5);
|
||
border-radius: 9px;
|
||
background: var(--tb-surface-2, #fafafa);
|
||
}
|
||
.profile-tab {
|
||
flex: 1;
|
||
border: 0;
|
||
border-radius: 6px;
|
||
padding: 9px 15px;
|
||
background: transparent;
|
||
color: var(--tb-text-muted, #666);
|
||
cursor: pointer;
|
||
font-size: 0.9rem;
|
||
transition: background 0.2s ease, color 0.2s ease;
|
||
}
|
||
.profile-tab:hover { color: var(--tb-primary, #1e87f0); }
|
||
.profile-tab.is-active {
|
||
background: var(--tb-surface, #fff);
|
||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.10);
|
||
color: var(--tb-primary, #1e87f0);
|
||
font-weight: 600;
|
||
}
|
||
|
||
.profile-tab.is-disabled,
|
||
.profile-tab:disabled {
|
||
cursor: not-allowed;
|
||
color: var(--tb-text-muted, #999);
|
||
opacity: 0.7;
|
||
}
|
||
.profile-tab.is-disabled:hover { color: var(--tb-text-muted, #999); }
|
||
.profile-panel[hidden] { display: none !important; }
|
||
html[data-theme="dark"] .profile-tabs {
|
||
border-color: var(--tb-border);
|
||
background: var(--tb-surface-2);
|
||
}
|
||
html[data-theme="dark"] .profile-tab { color: var(--tb-text-muted); }
|
||
html[data-theme="dark"] .profile-tab.is-active { background: var(--tb-surface); color: var(--tb-primary); }
|
||
html[data-theme="dark"] .profile-tab.is-disabled { color: var(--tb-text-muted); opacity: 0.55; }
|
||
</style>
|
||
<div class="uk-card uk-card-default uk-text-center">
|
||
<div class="uk-flex uk-flex-center uk-flex-middle uk-background-cover uk-light" style="min-height: 260px;" data-src="https://r2.337845818.best/tamabox/box_background.png" uk-img>
|
||
<div class="uk-card-body">
|
||
<img class="uk-border-circle uk-box-shadow-large" src="https://r2.337845818.best/tamabox/picture/2026/09/05/2e571390c431d19d75e51971a15bd6?v=2" crossorigin="anonymous" style="width: 100px; height: 100px; max-width: 100%; max-height: 100%;">
|
||
<h3 id="usernamecolor">小狼</h3>
|
||
<p id="introcolor">提问密码是12123。欢迎你,我的朋友,不管你是因为什么原因发现这个网站,都希望它能帮助到你。有疑问和建议可以在下方提交问题,或者加群聊聊。</p>
|
||
<div class="icon-container">
|
||
|
||
<a href="https://www.acfun.cn/u/852888" target="_blank">
|
||
<img src="https://r2.337845818.best/tamabox/icon/social/ailicili.png" alt="acfunlink" class="icon">
|
||
</a>
|
||
|
||
|
||
|
||
<a href="https://blog.tama.guru" target="_blank">
|
||
<img src="https://r2.337845818.best/tamabox/icon/social/weibo.png" alt="weibolink" class="icon">
|
||
</a>
|
||
|
||
|
||
<a href="https://blog.tama.guru" target="_blank">
|
||
<img src="https://r2.337845818.best/tamabox/icon/social/xiaohongshu.png" alt="xiaohongshulink" class="icon">
|
||
</a>
|
||
|
||
|
||
<a href="https://blog.tama.guru" target="_blank">
|
||
<img src="https://r2.337845818.best/tamabox/icon/social/blog.png" alt="bloglink" class="icon">
|
||
</a>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script>
|
||
document.getElementById("usernamecolor").style.color = "#007bff";
|
||
document.getElementById("introcolor").style.color = "#cd4c6c";
|
||
</script>
|
||
<div>
|
||
<div class="uk-card uk-card-default uk-card-small uk-card-body">
|
||
|
||
|
||
<script defer src="https://cdnjs.snrat.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
|
||
<script defer src='https://r2.337845818.best/tamabox/cdn/js/remake/easy.qrcode.min.js' type="text/javascript" charset="utf-8"></script>
|
||
<center><div id="boxqrimg"></div></center>
|
||
<script type="text/javascript">
|
||
document.addEventListener('DOMContentLoaded', function () {
|
||
var options = {
|
||
text: window.location.href,
|
||
width: 200,
|
||
height: 200,
|
||
|
||
|
||
colorDark: ( true ? "#1C1918" : "#000000") || "#000000",
|
||
colorLight: "#6e6e6e" || "#FFFFFF",
|
||
dotScale: parseFloat("0.4") || 0.4,
|
||
dotScaleTiming: parseFloat("0.4") || 0.4,
|
||
dotScaleA: parseFloat("0.4") || 0.4,
|
||
correctLevel: QRCode.CorrectLevel.H,
|
||
logo: (function () {
|
||
|
||
var a = "https:\/\/r2.337845818.best\/tamabox\/picture\/2026\/09\/05\/2e571390c431d19d75e51971a15bd6" || "https:\/\/r2.337845818.best\/tamabox\/tamabox_low.png";
|
||
return a ? (a.indexOf("http") === 0 ? a + "?v=2" : a) : undefined;
|
||
})(),
|
||
logoWidth: 60,
|
||
logoHeight: 60,
|
||
logoBackgroundTransparent: true,
|
||
|
||
crossOrigin: 'anonymous',
|
||
backgroundImage: ("https:\/\/r2.337845818.best\/tamabox\/picture\/2024\/09\/22\/486a690e6f40a6e3939b474c9cb754" ? "https:\/\/r2.337845818.best\/tamabox\/picture\/2024\/09\/22\/486a690e6f40a6e3939b474c9cb754" : undefined),
|
||
backgroundImageAlpha: parseFloat("0.7") || 0.8,
|
||
autoColor: false,
|
||
PO: "#606175" || "#000000",
|
||
PI: "#606175" || "#000000",
|
||
AO: '',
|
||
AI: '',
|
||
timing: "#606175" || "#000000"
|
||
};
|
||
new QRCode(document.getElementById("boxqrimg"), options);
|
||
});
|
||
</script>
|
||
|
||
<p class="uk-text-center uk-text-small">扫码向@小狼提问<br>谁都可以以匿名的形式提问</p>
|
||
|
||
<div class="uk-text-center uk-margin-small-top">
|
||
<a id="share-btn" href="/_/tamakyi/share-card" download class="uk-button uk-button-default uk-button-small">
|
||
📤 分享提问箱
|
||
</a>
|
||
</div>
|
||
|
||
<div id="share-loading-overlay" style="display:none; position: fixed; top:0; left:0; width:100%; height:100%; background: rgba(255,255,255,0.85); z-index:9999;">
|
||
<div style="display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%;">
|
||
<div uk-spinner="ratio: 2" class="uk-margin-bottom"></div>
|
||
<p class="uk-text-large uk-text-muted">正在生成分享图…</p>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
(function() {
|
||
var btn = document.getElementById('share-btn');
|
||
var overlay = document.getElementById('share-loading-overlay');
|
||
if (!btn || !overlay) return;
|
||
btn.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
overlay.style.display = 'block';
|
||
btn.style.pointerEvents = 'none';
|
||
fetch(btn.href)
|
||
.then(function(response) {
|
||
if (!response.ok) throw new Error('网络错误');
|
||
return response.blob();
|
||
})
|
||
.then(function(blob) {
|
||
var url = URL.createObjectURL(blob);
|
||
var a = document.createElement('a');
|
||
a.href = url;
|
||
a.download = 'share.png';
|
||
document.body.appendChild(a);
|
||
a.click();
|
||
setTimeout(function() {
|
||
document.body.removeChild(a);
|
||
URL.revokeObjectURL(url);
|
||
}, 100);
|
||
})
|
||
.catch(function(err) {
|
||
alert('生成分享图失败,请稍后重试');
|
||
console.error(err);
|
||
})
|
||
.finally(function() {
|
||
overlay.style.display = 'none';
|
||
btn.style.pointerEvents = 'auto';
|
||
});
|
||
});
|
||
})();
|
||
</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="profile-tabs" role="tablist">
|
||
<button type="button" class="profile-tab is-active" data-profile-tab="questions" role="tab" aria-selected="true">提问</button>
|
||
|
||
<button type="button" class="profile-tab" data-profile-tab="votes" role="tab" aria-selected="false">投票</button>
|
||
|
||
</div>
|
||
|
||
<div class="profile-panel" data-profile-panel="questions">
|
||
|
||
<form method="post" action="/_/tamakyi" enctype="multipart/form-data" id="form">
|
||
<input type="hidden" name="_csrf" value="PFoaNHKUbYlKfz8eh4St43Ipt7o6MTc4ODYwMDk4Nzc0MDc3ODMwNA">
|
||
|
||
|
||
<input type="hidden" name="ask_password" id="ask_password_input" value="">
|
||
|
||
|
||
<input type="hidden" name="start_chat_val" id="start_chat_val" value="false">
|
||
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" value="">
|
||
|
||
<div class="uk-margin uk-text-center">
|
||
<textarea name="content" class="uk-textarea" rows="5" placeholder="在此处撰写你的问题..."
|
||
maxlength="1000"></textarea>
|
||
<div x-data="{ files: null }" style="width: 100%; background-color: #f8f8f8; display: flex; padding-top: 5px; padding-bottom: 5px; align-items: center; justify-content: start;gap: 5px">
|
||
<div uk-form-custom>
|
||
<a href="#" class="uk-icon-link" uk-icon="image" style="margin-left: 10px"></a>
|
||
<span style="font-size: 12px" x-text="files ? files[0].name : '添加图片'"></span>
|
||
<input id="uploader" name="images" type="file" accept="image/*" x-on:change="files = Object.values($event.target.files)">
|
||
</div>
|
||
<button x-show="files" type="button" class="uk-icon-link" uk-icon="close" style="margin-left: 10px;"
|
||
@click="files = null"></button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="uk-margin uk-grid-small">
|
||
<label class="uk-text-small">
|
||
<input name="private" class="uk-checkbox" type="checkbox"> 回复后不公开
|
||
</label>
|
||
<label class="uk-text-small">
|
||
<input name="receive_reply_via_email" id="notify-checkbox" class="uk-checkbox" type="checkbox"> 接收通知
|
||
</label>
|
||
<div id="email-container" style="width: 100%; display: none;" class="uk-margin-small-top">
|
||
<input class="uk-input uk-form-small" type="email" name="receive_reply_email" id="email-input" placeholder="请输入你的邮箱地址">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="uk-margin uk-text-center">
|
||
<div class="uk-grid-small uk-flex-center" uk-grid>
|
||
<div>
|
||
|
||
<button type="button" class="uk-button uk-button-primary math-captcha-trigger" id="normal-submit-btn">发送提问</button>
|
||
|
||
</div>
|
||
|
||
<div>
|
||
<button type="button" class="uk-button uk-button-secondary" id="chat-submit-btn">发起私聊</button>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</form>
|
||
|
||
<script>
|
||
|
||
var notifyCheckbox = document.getElementById('notify-checkbox');
|
||
var emailContainer = document.getElementById('email-container');
|
||
var emailInput = document.getElementById('email-input');
|
||
|
||
if (notifyCheckbox && emailContainer && emailInput) {
|
||
notifyCheckbox.addEventListener('change', function() {
|
||
if (this.checked) {
|
||
emailContainer.style.display = 'block';
|
||
emailInput.setAttribute('required', 'required');
|
||
} else {
|
||
emailContainer.style.display = 'none';
|
||
emailInput.removeAttribute('required');
|
||
emailInput.value = '';
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
var chatBtn = document.getElementById('chat-submit-btn');
|
||
if (chatBtn) {
|
||
chatBtn.addEventListener('click', function() {
|
||
var isLogged = false;
|
||
if (!isLogged) {
|
||
var currentURI = '\/_\/tamakyi';
|
||
UIkit.modal.dialog(
|
||
'<div class="uk-text-center uk-padding" style="min-height: 150px; display: flex; flex-direction: column; justify-content: center;">' +
|
||
'<h3 class="uk-modal-title uk-margin-small-bottom">需要登录</h3>' +
|
||
'<p class="uk-text-muted uk-margin-small-bottom">发起私聊需要登录账号</p>' +
|
||
'<a href="/login?to=' + encodeURIComponent(currentURI) + '" class="uk-button uk-button-primary">去登录</a>' +
|
||
'</div>',
|
||
{width: '400px'}
|
||
);
|
||
return;
|
||
}
|
||
document.getElementById('start_chat_val').value = 'true';
|
||
|
||
var submitBtn = document.getElementById('normal-submit-btn');
|
||
if (submitBtn) submitBtn.click();
|
||
|
||
});
|
||
}
|
||
|
||
|
||
</script>
|
||
|
||
|
||
|
||
|
||
<p class="uk-text-left uk-text-muted uk-text-small">@小狼 以前回答过的问题 (32)</p>
|
||
|
||
<div id="question-list">
|
||
|
||
<div data-qid="3029">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/3029">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
<span class="tb-pin-flag" title="已置顶">⭐</span>
|
||
2026-08-27 13:42:36
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">礼貌请教小狼提问箱如何避免被恶意利用
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2234">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2234">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
<span class="tb-pin-flag" title="已置顶">⭐</span>
|
||
2026-05-12 21:22:46
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼小狼,想问问可不可以实现提问后继续回复被提问者的功能,就像在同一层聊天一样;还有就是好像我发出提问之后,在提问者回答之前我好像都看不到自己发出的提问,这样的话感觉有点不好找(?)
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2894">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2894">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-08-18 14:59:06
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">以下是markdown语法展示,大部分功能基本正常实现,空格和换行调整为一般语法,html代码暂不开放。
|
||
标题展示:
|
||
Heading level 1
|
||
Heading level 2
|
||
Heading level 3
|
||
Heading level 4
|
||
Heading level 5
|
||
Heading level 6
|
||
粗体:
|
||
I just love bold text.
|
||
斜体:
|
||
Italicized text is the cat’s meow.
|
||
又粗又斜:
|
||
This text is really important.
|
||
引用:
|
||
> Dorothy followed her through many of the beautiful rooms in her castle.
|
||
列表:
|
||
- First item
|
||
- Second item
|
||
- Third item
|
||
- Indented item
|
||
- Indented item
|
||
- Fourth item
|
||
代码块:
|
||
At the command prompt, type nano.
|
||
链接:
|
||
这是一个链接 提问箱。
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2861">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2861">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-08-13 02:04:36
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">这是个md测试:
|
||
粗体
|
||
斜体
|
||
代码
|
||
链接
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2463">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2463">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-07-15 15:36:26
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼有没有想过为什么人总是先学会告别再学会爱吗
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2405">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2405">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-06-15 13:39:45
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">啊不是 是聊天室总是显示 应用程序错误:发生了客户端异常(更多信息请参见浏览器控制台)。(上一条打错字了orz
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2403">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2403">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-06-15 13:28:43
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼是什么mbti(
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2402">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2402">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-06-15 13:27:29
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">页面底部的 聊天室 如何创建房间哇
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2399">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2399">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-06-15 05:24:30
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">这个网站的页面和box.n3ko.cc这个好像(是同一个开发者嘛
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2215">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2215">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-05-06 11:23:26
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">好厉害啊,自己做一个网站也太棒了吧👍🏻老师回复的好及时,感觉好温暖啊。原来这个提问箱背后是这样的初心,希望它能一直被好好运营下去,也谢谢你愿意分享这些想法✨
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2214">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2214">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-05-06 10:46:32
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼,你做这个网站是为了什么呀
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2172">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2172">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-04-23 01:07:41
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼小狼,请问可以有拉黑功能吗?
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2124">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2124">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-03-20 18:26:42
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">谢谢小狼ruarua小狼(鞠躬
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="2120">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/2120">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2026-03-16 23:02:34
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼,你有哪个瞬间感觉到“界限”消失,又或者猛然意识到命运这回事吗🤔
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="1978">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/1978">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2025-12-30 16:15:04
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">测试图片上传机能
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="1906">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/1906">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2025-11-16 23:03:26
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">找了几个例子,这些”?“的位置以前都是emoji,看起来好像确实是比较新的emoji会显示成符号,老版常规的像❤️这样的就可以显示出来。回答页面也是类似的情况
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="1905">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/1905">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2025-11-15 13:58:28
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼,之前提问里的emoji是可以正常显示的,但是从昨天开始变成了”?“符号🤔不过也有个别emoji现在还能显示
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="1706">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/1706">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2025-08-31 14:02:26
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼小狼今天吃了什么!
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="1573">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/1573">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2025-07-25 12:28:46
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">awa
|
||
</p>
|
||
</div>
|
||
|
||
<div data-qid="840">
|
||
<hr>
|
||
<a class="uk-button uk-button-default uk-button-small uk-float-right"
|
||
href="/_/tamakyi/840">查看回答</a>
|
||
<div class="uk-text-left uk-text-small uk-text-muted">
|
||
|
||
2024-12-31 15:04:20
|
||
</div>
|
||
<p class="uk-text-small uk-text-break tb-preline tb-clamp-5">小狼小狼,如果提问者勾选了私密不公开提问,但又没有勾选接收通知,就算被提问者回答了,提问者是不是也没有办法看到回复呀?
|
||
</p>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
<div x-data="{ more: true, loading: false, cursor: '0.1735628660879000000.840' }">
|
||
<button x-show="more" x-bind:disabled="loading" x-on:click.debounce="() => {
|
||
if (loading) return
|
||
loading = true
|
||
fetch(`/api/v1/user/tamakyi/questions?cursor=${cursor}`)
|
||
.then(response => response.json())
|
||
.then(resp => {
|
||
loading = false
|
||
// 外层为 ctx.JSON 的统一包装 {code, data, message},内层才是分页负载;
|
||
// code !== 0(接口报错)时保持 more 不变,仅复位 loading,下次可重试。
|
||
if (!resp || resp.code !== 0) return
|
||
const payload = resp.data || {}
|
||
let items = Array.isArray(payload.data) ? payload.data : []
|
||
if (items.length === 0) {
|
||
more = false
|
||
return
|
||
}
|
||
|
||
// 防重兜底:先扫描 #question-list 下全部已渲染条目(含服务端首屏与既往
|
||
// 追加)的 data-qid 构造“已见”集合,仅追加未出现过的提问。若服务端因游标
|
||
// 未前进等原因返回了与已见内容相同的批次(重复加载历史 bug 的表现形态),
|
||
// 直接按“到底”处理并隐藏按钮,杜绝无限重复追加。
|
||
const seenQIDs = new Set()
|
||
document.querySelectorAll('#question-list [data-qid]').forEach(el => seenQIDs.add(Number(el.dataset.qid)))
|
||
items = items.filter(q => !seenQIDs.has(q.id))
|
||
if (items.length === 0) {
|
||
more = false
|
||
return
|
||
}
|
||
|
||
// 服务端下发复合键集游标(见上方注释),前端不自行拼接;
|
||
// has_more 由服务端多取一条探测得出,最后一页加载完立即隐藏按钮。
|
||
more = payload.has_more !== false
|
||
cursor = payload.next_cursor || cursor
|
||
items.forEach(question => {
|
||
const div = document.createElement('div')
|
||
div.dataset.qid = question.id
|
||
div.innerHTML = `
|
||
<div>
|
||
<hr>
|
||
<a class='uk-button uk-button-default uk-button-small uk-float-right'
|
||
href='/_/tamakyi/${question.id}'>查看回答</a>
|
||
<div class='uk-text-left uk-text-small uk-text-muted'>
|
||
${question.is_pinned ? '<span class=\'tb-pin-flag\' title=\'已置顶\'>⭐</span>' : ''}
|
||
${dayjs(question.created_at).format('YYYY-MM-DD HH:mm:ss')}
|
||
</div>
|
||
<p class='uk-text-small uk-text-break tb-preline tb-clamp-5'></p>
|
||
</div>`
|
||
div.getElementsByTagName('p')[0].innerText = question.content
|
||
document.getElementById('question-list').appendChild(div)
|
||
})
|
||
})
|
||
// 网络失败/响应非法 JSON 时复位 loading,避免按钮永远停留在加载中状态
|
||
.catch(() => { loading = false })
|
||
}" class="uk-button uk-button-default uk-width-1-1 uk-margin-small-bottom">
|
||
<span x-show="!loading">加载更多</span>
|
||
<span x-show="loading"><div uk-spinner="ratio: 0.8"></div> 加载中...</span>
|
||
</button>
|
||
<div x-show="!more" class="uk-text-meta uk-text-center">
|
||
<hr>
|
||
无更多留言
|
||
<br><br>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="profile-panel" data-profile-panel="votes" hidden>
|
||
|
||
|
||
<div class="profile-votes-list">
|
||
|
||
<a href="/vote/sANyLkiBNUGN" class="profile-vote-item">
|
||
<div class="profile-vote-content">
|
||
<span class="profile-vote-title" title="投票功能测试和建议反馈">投票功能测试和建议反馈</span>
|
||
<span class="profile-vote-meta">
|
||
|
||
|
||
|
||
|
||
<span class="uk-label uk-label-primary">表单收集</span>
|
||
<span class="uk-text-meta">2026-08-25</span>
|
||
</span>
|
||
</div>
|
||
<span class="profile-vote-action">去投票 <span uk-icon="icon: arrow-right; ratio: .8"></span></span>
|
||
</a>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
var tabs = document.querySelectorAll('[data-profile-tab]');
|
||
var panels = document.querySelectorAll('[data-profile-panel]');
|
||
function showPanel(name) {
|
||
tabs.forEach(function(tab) {
|
||
var active = tab.dataset.profileTab === name;
|
||
tab.classList.toggle('is-active', active);
|
||
tab.setAttribute('aria-selected', active ? 'true' : 'false');
|
||
});
|
||
panels.forEach(function(panel) {
|
||
panel.hidden = panel.dataset.profilePanel !== name;
|
||
});
|
||
if (window.history && window.history.replaceState) {
|
||
window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (name === 'votes' ? '#votes' : ''));
|
||
}
|
||
}
|
||
tabs.forEach(function(tab) {
|
||
tab.addEventListener('click', function() { showPanel(tab.dataset.profileTab); });
|
||
});
|
||
|
||
if (window.location.hash === '#votes' && document.querySelector('[data-profile-tab="votes"]')) {
|
||
showPanel('votes');
|
||
}
|
||
});
|
||
</script>
|
||
<p class=" uk-text-right uk-text-muted uk-text-small">
|
||
您是本站第 <span id="busuanzi_value_site_uv"><span class="tb-spinner"></span></span> 位访客 | 本页面已被访问 <span id="busuanzi_value_page_pv"><span class="tb-spinner"></span></span> 次
|
||
<br>Powered by NekoBox | 狼ICP备 20230101<br>提问箱已成功存活:<span id="box_runtime"></span>
|
||
<br>
|
||
|
||
<a href="https://box.tama.guru/_/tamakyi" target="_blank">找站长</a>
|
||
| <a href="https://blog.tama.guru" target="_blank">公告板</a>
|
||
| <a href="https://chat.tama.guru" target="_blank">聊天室</a>
|
||
| <a href="https://share.tama.guru" target="_blank">盘</a>
|
||
| <a href="https://status.tama.guru" target="_blank">监控板</a>
|
||
| <a href="https://tama.guru" target="_blank">导航页</a>
|
||
</p>
|
||
<br>
|
||
</div>
|
||
|
||
<script>
|
||
|
||
|
||
|
||
|
||
var SUBMIT_I18N = {
|
||
submitting: '提交中...',
|
||
uploading: '上传中...'
|
||
};
|
||
|
||
function tbResetSubmitButtons() {
|
||
document.querySelectorAll('button[data-tb-submitting]').forEach(function(b) {
|
||
b.disabled = false;
|
||
b.removeAttribute('data-tb-submitting');
|
||
var orig = b.getAttribute('data-tb-restore');
|
||
if (orig !== null) {
|
||
b.innerHTML = orig;
|
||
b.removeAttribute('data-tb-restore');
|
||
}
|
||
});
|
||
}
|
||
|
||
document.addEventListener('submit', function(e) {
|
||
var form = e.target;
|
||
if (!form || form.tagName !== 'FORM') return;
|
||
|
||
|
||
|
||
if (e.defaultPrevented || form.getAttribute('data-tb-skip-submit-feedback') === '1') {
|
||
form.removeAttribute('data-tb-skip-submit-feedback');
|
||
return;
|
||
}
|
||
|
||
|
||
|
||
if (form.getAttribute('target') === '_blank') return;
|
||
|
||
|
||
var trigger = e.submitter || form.querySelector('button[type="submit"]');
|
||
|
||
|
||
var hasFile = false;
|
||
form.querySelectorAll('input[type="file"]').forEach(function(f) {
|
||
if (f.files && f.files.length > 0) hasFile = true;
|
||
});
|
||
var label = hasFile ? SUBMIT_I18N.uploading : SUBMIT_I18N.submitting;
|
||
|
||
if (trigger && trigger.tagName === 'BUTTON') {
|
||
trigger.setAttribute('data-tb-restore', trigger.innerHTML);
|
||
trigger.innerHTML = '<span uk-spinner="ratio: 0.6"></span> ' + label;
|
||
}
|
||
|
||
|
||
form.querySelectorAll('button').forEach(function(b) {
|
||
b.disabled = true;
|
||
b.setAttribute('data-tb-submitting', '1');
|
||
});
|
||
});
|
||
|
||
|
||
window.addEventListener('pageshow', tbResetSubmitButtons);
|
||
</script>
|
||
</body>
|
||
</html>
|