feat: 登录记住本机+密码可见、内容分简介与主体、Markdown 渲染、首页随机条目
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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("登录成功,正在进入管理台…");
|
||||
|
||||
Reference in New Issue
Block a user