feat: 登录记住本机+密码可见、内容分简介与主体、Markdown 渲染、首页随机条目
Build and Deploy / build (push) Successful in 56s
Build and Deploy / deploy (push) Successful in 28s

This commit is contained in:
cheney
2026-09-01 10:53:17 +08:00
parent a5c5d24083
commit c09857cc81
18 changed files with 180 additions and 41 deletions
+82
View File
@@ -1171,6 +1171,81 @@ button.chip:hover {
overflow-x: auto;
white-space: pre;
}
.md-body {
line-height: 1.7;
font-size: 14.5px;
}
.md-body h1,
.md-body h2,
.md-body h3,
.md-body h4 {
font-weight: 700;
margin: 22px 0 10px;
}
.md-body h2 {
font-size: 20px;
}
.md-body h3 {
font-size: 16.5px;
}
.md-body p {
margin: 10px 0;
}
.md-body a {
color: var(--riso-blue);
text-decoration: underline;
}
.md-body ul,
.md-body ol {
margin: 10px 0;
padding-left: 22px;
}
.md-body li {
margin: 4px 0;
}
.md-body code {
font-family: var(--font-mono);
font-size: 12.5px;
background: var(--riso-blue-soft);
border-radius: 5px;
padding: 2px 5px;
}
.md-body pre {
background: var(--panel);
color: #cdd3ea;
border-radius: var(--r-md);
padding: 16px 18px;
overflow-x: auto;
font-family: var(--font-mono);
font-size: 12.5px;
line-height: 1.6;
margin: 14px 0;
}
.md-body pre code {
background: none;
padding: 0;
color: inherit;
}
.md-body blockquote {
border-left: 3px solid var(--ink-faint);
padding-left: 14px;
color: var(--ink-dim);
margin: 12px 0;
}
.md-body table {
border-collapse: collapse;
margin: 14px 0;
font-size: 13.5px;
}
.md-body th,
.md-body td {
border: 1.5px solid var(--ink-faint);
padding: 7px 12px;
text-align: left;
}
.md-body th {
background: var(--riso-blue-soft);
}
.side-card {
background: var(--paper-raised);
border: var(--border);
@@ -1603,6 +1678,13 @@ button.chip:hover {
width: 100%;
padding-right: 42px;
}
.pwd-field {
position: relative;
}
.pwd-field .input {
width: 100%;
padding-right: 42px;
}
.eye-toggle {
position: absolute;
right: 8px;
-13
View File
@@ -139,19 +139,6 @@
});
}
document.querySelectorAll("[data-eye-toggle]").forEach(function (btn) {
btn.addEventListener("click", function () {
var input = btn.closest("form").querySelector("input[name=key]");
var show = input.type === "password";
input.type = show ? "text" : "password";
btn.setAttribute("aria-label", show ? "隐藏密钥" : "显示密钥");
var open = btn.querySelector(".eye-open");
var closed = btn.querySelector(".eye-closed");
if (open) open.hidden = show;
if (closed) closed.hidden = !show;
});
});
document.querySelectorAll("form.source-config").forEach(function (form) {
form.addEventListener("submit", function (e) {
e.preventDefault();
+17
View File
@@ -118,6 +118,22 @@
});
});
document.querySelectorAll("[data-eye-toggle]").forEach(function (btn) {
btn.addEventListener("click", function () {
var input = btn.closest(".pwd-field, .ai-key-field")
? btn.closest(".pwd-field, .ai-key-field").querySelector("input")
: null;
if (!input) return;
var show = input.type === "password";
input.type = show ? "text" : "password";
btn.setAttribute("aria-label", show ? "隐藏密码" : "显示密码");
var open = btn.querySelector(".eye-open");
var closed = btn.querySelector(".eye-closed");
if (open) open.hidden = show;
if (closed) closed.hidden = !show;
});
});
var loginForm = document.getElementById("login-form");
if (loginForm) {
loginForm.addEventListener("submit", function (e) {
@@ -126,6 +142,7 @@
postJson("/api/admin/login", {
username: loginForm.username.value,
password: loginForm.password.value,
remember: loginForm.remember ? loginForm.remember.checked : true,
})
.then(function () {
toast("登录成功,正在进入管理台…");