front/submission/index.html
2025-02-22 02:30:50 +08:00

1027 lines
40 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN" dir="auto">
<head><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>NEU小站</title>
<meta name="keywords" content="">
<meta name="description" content="用户中心
邮箱:
密码:
登录或注册
未注册的用户将自动注册。为确保您是东北大学师生,注册后需进行校园网或校园邮箱(@stu.neu.edu.cn验证才能激活账户。如您直接使用校园邮箱注册则可以自动激活账户。
系统尝试为您进行校园网或校园邮箱认证失败,请前往手动认证!
使用OJ题库不需要验证点击“前往验证”后直接进入即可
前往验证
退出登录
我要投稿
个人信息
我的内容
退出登录
修改
Nickname
V
V
修改
email@example.com
请注意:由于浏览器缓存,修改头像或昵称后网站更新可能有延迟。
我的东币
手机验证
发送验证码
验证
取消
基本信息 内容标题: 您想要投稿的板块为:
攻略指南
资源共享
说明:攻略指南板块主要用于提供学习和生活上的攻略信息或经验等,资源共享板块主要用于分享各类有价值的学习资源。
上传文件: 说明1. 若投稿板块为攻略指南,则上传文件非必填项;若投稿至资源共享板块,则必须上传文件。
2. 一次投稿最多上传10个文件。若上传文件有压缩文件则只允许上传单个.zip、.rar或.7z格式压缩文件。所有文件总大小不得超过200MB。若超过大小限制请分多次投稿或者从网站底部联系管理员进行投稿感谢理解
3. 若上传的文件为PDF会自动设置页面内预览。如不想提供页面内预览请在备注中写明。
备注: 内容详情 内容详情主要用于攻略指南板块。如果您想投稿至资源共享板块,可以把此部分留空。 内容详情使用 markdown 语法。如果您不会使用 markdown 语法,我们的编辑器也足以辅助您完成大部分编辑需求。 如需在内容详情上传图片,请在下面的按钮处上传图片以获取标签,以直接粘贴到 markdown 中进行引用。 保存草稿功能只会保存“内容详情”的编辑内容,前面上传的文件等内容将不会保存! 请您务必在一次编辑未完成时保存草稿,否则您编辑的内容将在刷新页面后全部丢失! 提示点击markdown编辑器左侧的双侧模式按钮可以进入编辑&#43;预览模式。
预览模式下根据预览效果调整图片标签的width参数以调整图片大小。
图片上传区:
图片HTML引用标签
复制引用标签
请注意:上传文件可能需要一段时间,点击提交后请耐心等待,请勿刷新或退出页面。
提交
保存草稿
加载草稿内容">
<meta name="author" content="
V
V
">
<link rel="canonical" href="https://xn--xhq44jb2fzpc.com/submission/">
<link rel="stylesheet" href="/css/custom.css">
<link rel="stylesheet" href="/css/dl.css">
<link crossorigin="anonymous" href="/assets/css/stylesheet.css" rel="preload stylesheet" as="style">
<link rel="icon" href="https://xn--xhq44jb2fzpc.com/icons/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://xn--xhq44jb2fzpc.com/icons/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://xn--xhq44jb2fzpc.com/icons/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://xn--xhq44jb2fzpc.com/icons/apple-touch-icon.png">
<link rel="mask-icon" href="https://xn--xhq44jb2fzpc.com/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://xn--xhq44jb2fzpc.com/submission/index.xml">
<link rel="alternate" hreflang="en" href="https://xn--xhq44jb2fzpc.com/submission/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript>
<meta property="og:title" content="" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://xn--xhq44jb2fzpc.com/submission/" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content=""/>
<meta name="twitter:description" content=""/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "",
"item": "https://xn--xhq44jb2fzpc.com/submission/"
}
]
}
</script>
<link rel="stylesheet" href="/css/custom.css">
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://xn--xhq44jb2fzpc.com/" accesskey="h" title="NEU小站 (Alt + H)">
<img src="https://download.东北大学.com/images/logo-hd.png" alt="" style="height: 1.5em; vertical-align: middle; margin-right: 10px;">NEU小站</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
<li>
<a href="https://xn--xhq44jb2fzpc.com/" title="主页">
<span>主页</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/rapidlinks/%E5%BF%AB%E9%80%9F%E9%93%BE%E6%8E%A5/" title="快速链接">
<span>快速链接</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/strategy/" title="攻略指南">
<span>攻略指南</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/resources/" title="资源共享">
<span>资源共享</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/search/" title="搜索">
<span>搜索</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/feedback/" title="意见反馈">
<span>意见反馈</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/submission/" title="用户中心">
<span class="active">用户中心</span>
</a>
</li>
<li>
<a href="https://course.%e4%b8%9c%e5%8c%97%e5%a4%a7%e5%ad%a6.com" title="课程评分"target="_blank">
<span>课程评分</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://oj.%e4%b8%9c%e5%8c%97%e5%a4%a7%e5%ad%a6.com" title="小站OJ题库"target="_blank">
<span>小站OJ题库</span>&nbsp;
<svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12">
<path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path>
<path d="M15 3h6v6"></path>
<path d="M10 14L21 3"></path>
</svg>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/log/" title="更新日志">
<span>更新日志</span>
</a>
</li>
<li>
<a href="https://xn--xhq44jb2fzpc.com/intro/" title="关于">
<span>关于</span>
</a>
</li>
</ul>
</nav>
</header>
<main class="main">
<script src="/js/card.js"></script>
<link rel="stylesheet" href="/css/card.css">
<div class="post-content">
<script>
async function fetchNoCache(url) {
const timestamp = new Date().getTime();
const noCacheUrl = `${url}?timestamp=${timestamp}`;
return fetch(noCacheUrl);
}
</script>
<div id="login">
<h1>用户中心</h1>
<form id="loginForm">
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<button type="submit">登录或注册</button>
</form>
<div id="message"></div>
<div class="center-text">
<br>未注册的用户将自动注册。为确保您是东北大学师生,注册后需进行校园网或校园邮箱(@stu.neu.edu.cn验证才能激活账户。如您直接使用校园邮箱注册则可以自动激活账户。
</div>
</div>
<!-- 自定义模态框 -->
<div id="customModal" style="display: none; position: fixed; z-index: 1000; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 20px; background-color: white; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0,0,0,0.5);">
<p>系统尝试为您进行校园网或校园邮箱认证失败,请前往手动认证!</p>
<p>使用OJ题库不需要验证点击“前往验证”后直接进入即可</p>
<button id="confirmButton">前往验证</button>
<button id="logoutButton">退出登录</button>
</div>
<div id="modalOverlay" style="display: none; position: fixed; z-index: 999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5);"></div>
<style>
/* 模态框容器 */
#customModal {
display: none;
position: fixed;
z-index: 1000;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
padding: 20px;
background-color: white;
border: 1px solid #ccc;
box-shadow: 0 0 10px rgba(0,0,0,0.5);
text-align: center;
color: #000000;
}
/* 背景遮罩层 */
#modalOverlay {
display: none;
position: fixed;
z-index: 999;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
/* 按钮的基础样式 */
#customModal button {
padding: 10px 20px;
margin: 10px;
font-size: 16px;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease, transform 0.1s ease;
}
/* 确认按钮样式 */
#confirmButton {
background-color: #007bff;
color: #ffffff;
}
/* 退出登录按钮样式 */
#logoutButton {
background-color: #dc3545;
color: #ffffff;
}
/* 鼠标悬停时的样式 */
#customModal button:hover {
transform: translateY(-3px);
}
/* 按钮点击时的样式 */
#customModal button:active {
transform: translateY(1px);
}
/* 暗黑模式下的模态框背景和文字颜色 */
.dark #customModal {
background-color: #333333 !important;
border-color: #444444 !important;
color: #ffffff !important;
}
/* 暗黑模式下的按钮样式 */
.dark #confirmButton {
background-color: #4444ff;
}
.dark #logoutButton {
background-color: #ff4444;
}
.dark #customModal button:hover {
transform: translateY(-3px);
}
.dark #customModal button:active {
transform: translateY(1px);
}
</style>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script src="https://download.xn--xhq44jb2fzpc.com/password/crypto-js.js"></script>
<style>
.center-text {
text-align: center;
margin-top: 10px;
font-size: 14px;
}
#login {
max-width: 400px;
margin: 0 auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
/* background-color: #fff; */
}
#login h1 {
text-align: center;
margin-bottom: 20px;
}
#login label {
display: block;
margin-bottom: 8px;
font-weight: bold;
}
#login input[type="email"],
#login input[type="password"] {
width: 100%;
padding: 10px;
margin-bottom: 20px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.dark #login input[type="email"],
.dark #login input[type="password"] {
color: white;
}
#login button {
width: 100%;
padding: 10px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 4px;
font-size: 16px;
cursor: pointer;
}
#login button:hover {
background-color: #45a049;
}
</style>
<div id="navContainer" class="navContainer" style="display: none">
<button class="navButton" id="我要投稿" onclick="showSubmission()">我要投稿</button>
<button class="navButton" id="个人信息" onclick="showMyInfo()">个人信息</button>
<button class="navButton" id="我的内容" onclick="showMyContent()">我的内容</button>
</div>
<p><button id="logout" onclick="logout()" style="display: none">退出登录</button></p>
<style>
/* 基本样式 */
.navContainer {
display: flex;
justify-content: space-around;
align-items: center;
width: 100%; /* 容器宽度设置为100% */
padding: 0 20px;
margin: 20px auto; /* 水平居中 */
margin-left: 165px;
}
.navButton {
padding: 10px 20px;
border: none;
background-color: #f8f8f8;
cursor: pointer;
transition: background-color 0.3s;
outline: none; /* 移除焦点时的外边框 */
}
.navButton.selected {
background-color: #4CAF50; /* 选中按钮的绿色背景 */
color: white;
}
/* 移动端样式 */
@media (max-width: 768px) {
.navContainer {
flex-direction: column;
align-items: center; /* 确保按钮在移动端居中对齐 */
width: 100%; /* 容器在移动端宽度为100% */
margin-left: 0;
}
.navButton {
width: 90%; /* 将按钮宽度设置为容器宽度的90%,可以根据需要调整 */
padding: 15px;
font-size: 18px;
margin: 5px 0;
}
}
/* Dark mode styles */
.dark .navContainer {
background-color: rgb(29,30,32); /* Darker background for the container */
}
.dark .navButton {
background-color: #555; /* Dark background for buttons */
color: #ddd; /* Light text for readability */
border-color: #666; /* Dark border for contrast */
}
.dark .navButton.selected {
background-color: #00897B; /* A different color for selected state */
color: #fff; /* White text for selected button */
}
#logout {
display: block;
margin: 20px auto; /* 水平居中 */
padding: 10px 20px;
background-color: red; /* 默认红色背景 */
color: white;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s ease, transform 0.3s ease; /* 渐变效果 */
}
/* 悬浮时的样式 */
#logout:hover {
background-color: #cc0000; /* 浅红色背景 */
transform: scale(1.05); /* 放大 */
}
/* 点击时的样式 */
#logout:active {
background-color: #cc0000; /* 深红色背景 */
transform: scale(0.95); /* 点击时稍微缩小 */
}
.medal {
width: 19px; /* 奖章宽度 */
height: 19px; /* 奖章高度 */
background-image: url('data:image/svg+xml,%3Csvg%20width%3D%22517%22%20height%3D%22517%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20xml%3Aspace%3D%22preserve%22%20overflow%3D%22hidden%22%3E%3Cdefs%3E%3ClinearGradient%20x1%3D%22776.063%22%20y1%3D%22666.491%22%20x2%3D%22534.385%22%20y2%3D%22345.773%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill0%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23EAEBFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23CECFFF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22661.744%22%20y1%3D%22399.079%22%20x2%3D%22767.518%22%20y2%3D%22582.285%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill1%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23807FFB%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23ABAAFF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22435.567%22%20y1%3D%22583.723%22%20x2%3D%22526.269%22%20y2%3D%22389.212%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill2%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ABAAFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23807FFB%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22598.059%22%20y1%3D%22501.695%22%20x2%3D%22598.059%22%20y2%3D%22190.948%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill3%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236666F2%22/%3E%3Cstop%20offset%3D%220.992%22%20stop-color%3D%22%238E8EFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238E8EFF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22598.326%22%20y1%3D%22455.063%22%20x2%3D%22598.326%22%20y2%3D%22231.069%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill4%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%239392FD%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23B3B3FF%22/%3E%3C/linearGradient%3E%3ClinearGradient%20x1%3D%22598.326%22%20y1%3D%22287.059%22%20x2%3D%22598.326%22%20y2%3D%22397.6%22%20gradientUnits%3D%22userSpaceOnUse%22%20spreadMethod%3D%22pad%22%20id%3D%22fill5%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23FDFDFF%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23F3F3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20transform%3D%22translate%28-339%20-129%29%22%3E%3Cpath%20d%3D%22M417.268%20129%20777.732%20129C820.836%20129%20855.874%20164.038%20855.874%20207.142L855.874%20567.606C855.874%20610.71%20820.836%20645.748%20777.732%20645.748L417.268%20645.748C374.164%20645.748%20339.126%20610.71%20339.126%20567.606L339.126%20207.142C339.126%20164.038%20374.164%20129%20417.268%20129Z%22%20fill%3D%22%23F0F1FF%22/%3E%3Cpath%20d%3D%22M855.37%20365.948%20693.539%20225.796%20387.776%20557.271%20477.262%20646%20777.479%20645.748C820.584%20645.748%20855.622%20610.71%20855.622%20567.606L855.37%20365.948Z%22%20fill%3D%22url%28%23fill0%29%22/%3E%3Cpath%20d%3D%22M658.754%20401.238%20661.526%20399.221%20729.586%20417.623C731.098%20418.127%20732.106%20418.631%20732.863%20420.143L809.745%20549.456C812.77%20555.002%20806.468%20561.304%20801.426%20557.523L743.45%20532.315C740.173%20530.551%20736.896%20533.324%20735.888%20536.601L731.602%20598.61C732.611%20605.164%20724.04%20607.937%20720.259%20602.644L637.327%20463.752C636.319%20462.491%20636.067%20460.979%20636.571%20459.467L658.754%20401.238Z%22%20fill%3D%22url%28%23fill1%29%22/%3E%3Cpath%20d%3D%22M558.429%20459.467C558.933%20460.979%20558.681%20462.491%20557.673%20463.752L474.741%20602.644C470.96%20607.937%20462.389%20605.164%20463.398%20598.61L459.112%20536.601C458.104%20533.324%20454.827%20530.551%20451.55%20532.315L393.574%20557.523C388.532%20561.304%20381.978%20555.002%20385.255%20549.456L462.137%20420.143C463.146%20418.883%20463.902%20418.127%20465.414%20417.623L533.474%20399.221%20536.246%20401.238%20558.429%20459.467Z%22%20fill%3D%22url%28%23fill2%29%22/%3E%3Cpath%20d%3D%22M753.281%20346.286C753.281%20432.043%20683.761%20501.563%20598.004%20501.563%20512.247%20501.563%20442.728%20432.043%20442.728%20346.286%20442.728%20260.529%20512.247%20191.01%20598.004%20191.01%20683.761%20191.01%20753.281%20260.529%20753.281%20346.286Z%22%20fill%3D%22url%28%23fill3%29%22/%3E%3Cpath%20d%3D%22M710.176%20343.009C710.176%20404.821%20660.068%20454.929%20598.256%20454.929%20536.444%20454.929%20486.336%20404.821%20486.336%20343.009%20486.336%20281.198%20536.444%20231.089%20598.256%20231.089%20660.068%20231.089%20710.176%20281.198%20710.176%20343.009Z%22%20fill%3D%22url%28%23fill4%29%22/%3E%3Cpath%20d%3D%22M627.497%20398.465%20600.021%20383.593C598.508%20382.837%20596.24%20382.837%20594.727%20383.593L567.251%20398.465C563.47%20400.734%20558.429%20396.953%20559.185%20392.667L564.479%20362.419C564.479%20360.906%20564.479%20358.638%20562.966%20357.125L540.784%20335.699C537.759%20332.674%20539.271%20326.877%20543.809%20326.12L574.813%20321.583C576.326%20321.583%20578.595%20320.071%20579.351%20318.558L593.467%20290.326C595.735%20285.789%20601.533%20285.789%20603.046%20290.326L617.162%20318.558C617.918%20320.071%20619.43%20321.583%20621.699%20321.583L652.704%20326.12C657.241%20326.877%20659.258%20331.918%20655.729%20335.699L633.546%20357.125C632.034%20358.638%20631.278%20360.15%20632.034%20362.419L637.327%20392.667C636.319%20396.953%20631.782%20400.734%20627.497%20398.465Z%22%20fill%3D%22url%28%23fill5%29%22/%3E%3C/g%3E%3C/svg%3E');
background-size: contain; /* 根据需要调整尺寸 */
background-repeat: no-repeat;
}
</style>
<div id="myinfo" style="display: none; align-items: center; padding: 20px;">
<div class="profile-pic-container">
<img id="myinfoavatar" src="https://download.xn--xhq44jb2fzpc.com/avatar/default.png" alt="Profile Avatar" class="profile-pic">
<div class="overlay">
<span class="text">修改</span>
<input type="file" id="fileInput" accept="image/*" style="display: none;" onchange="uploadAvatar(event)">
</div>
</div>
<div class="info">
<div style="display: flex; align-items: center;">
<h3 id="nickname">Nickname<a hidden class="anchor" aria-hidden="true" href="#nickname">#</a></h3>
<div class="icon-wrapper" style="position: relative;">
<span class="verified-icon" id="invited-icon" style="display: none;">
<svg class="verified-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
<circle cx="12" cy="12" r="12" fill="purple"/>
<text class="verified-text" x="12" y="16" dy="0.1em">V</text>
</svg>
</span>
<span class="verified-icon" id="verified-icon" style="display: none;">
<svg class="verified-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16">
<circle cx="12" cy="12" r="12" fill="gold"/>
<text class="verified-text" x="12" y="16" dy="0.1em">V</text>
</svg>
</span>
<span class="medal" id="medal" title="小站奖章" style="display: none; margin-left: 6px; vertical-align: -3px;"></span>
<div class="tooltip" id="tooltip">
<div class="tooltip-title" id="tooltip-title"></div>
<div class="tooltip-content" id="tooltip-content"></div>
</div>
</div>
<button id="editNicknameBtn">修改</button>
</div>
<p id="userEmail">email@example.com</p>
<p id="note">请注意:由于浏览器缓存,修改头像或昵称后网站更新可能有延迟。</p>
</div>
</div>
<style>
.icon-wrapper {
position: relative; /* 确保 tooltip 以此为参考点 */
}
.verified-icon {
display: inline-flex;
align-items: center;
margin-left: 10px;
transform: translateY(2px);
margin-top: 12px;
}
.verified-svg {
width: 16px;
height: 16px;
vertical-align: middle;
}
.verified-text {
fill: white;
font-family: 'Arial', sans-serif;
font-size: 16px;
text-anchor: middle;
font-weight: normal;
}
.tooltip {
position: absolute;
/* left: 55%; 调整left值使tooltip向右移动 */
transform: translateX(-45%) translateY(-10px); /* 初始状态稍微向上偏移10px */
margin-top: 10px; /* 与图标之间的距离 */
padding: 10px;
border-radius: 8px;
background-color: #fff;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
opacity: 0;
transition: opacity 0.3s ease, transform 0.3s ease; /* 添加过渡效果 */
width: 250px; /* 显式设置宽度 */
height: auto; /* 或根据内容调整高度 */
z-index: 100;
top: 100%; /* 放置在父元素的底部 */
margin-left: 40px; /* 根据需要调整 */
pointer-events: none; /* 不接收鼠标事件 */
}
.tooltip.show {
opacity: 1;
transform: translateX(-45%) translateY(0); /* 显示时将Y轴偏移恢复为0 */
}
.tooltip-title {
font-weight: bold;
margin-bottom: 8px;
}
.tooltip-content {
font-size: 14px;
color: #333;
}
/* 夜间模式 */
.dark .tooltip {
background-color: #333;
color: #f2f2f2;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}
.dark .tooltip-title {
color: #fff;
}
.dark .tooltip-content {
color: #ddd;
}
.profile-pic-container {
position: relative;
width: 100px;
height: 100px;
margin-right: 20px;
color: rgb(245,245,245);
}
.profile-pic {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
box-shadow: 0 4px 8px rgba(245,245,245,0.1); /* Light mode shadow */
transition: box-shadow 0.3s;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.6); /* Black, semi-transparent background */
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
opacity: 0;
transition: opacity 0.3s;
cursor: pointer;
}
.overlay:hover {
opacity: 1;
}
.overlay .text {
color: white;
font-size: 16px;
}
.info {
display: flex;
flex-direction: column;
}
.dark .profile-pic {
box-shadow: 0 4px 8px rgba(29,30,32,0.1); /* Night mode shadow */
}
#editNicknameBtn {
background-color: #4CAF50; /* 绿色背景 */
margin-top: 10px;
color: white; /* 白色文字 */
border: none; /* 无边框 */
padding: 5px 10px; /* 内边距 */
margin-left: 15px; /* 左边距 */
cursor: pointer; /* 鼠标指针 */
border-radius: 4px; /* 圆角 */
}
#editNicknameBtn:hover {
background-color: #45a049; /* 悬停时稍微变暗 */
}
/* 夜间模式 */
.dark #editNicknameBtn {
background-color: #333; /* 深色背景 */
color: #ddd; /* 浅色文字 */
}
.dark #editNicknameBtn:hover {
background-color: #555; /* 悬停时稍微变亮 */
}
</style>
<div id="mysubmission" style="display: none">
</div>
<div id="mycoin" style="display: none">
<h2>我的东币</h2>
<div id="coin-content"></div>
<!-- 模态框 -->
<div id="verification-modal" class="modal">
<div class="modal-content">
<h2>手机验证</h2>
<!-- <label for="phone-number">手机号:</label> -->
<input type="text" id="phone-number" placeholder="请输入手机号">
<!-- <label for="verification-code">验证码:</label> -->
<input type="text" id="verification-code" placeholder="请输入验证码">
<button id="send-code-btn">发送验证码</button>
<button id="verify-btn">验证</button>
<button id="cancel-btn">取消</button>
<p id="modal-message"></p>
</div>
</div>
</div>
<div id="submission-area" style="display: none">
<h2 id="基本信息">基本信息<a hidden class="anchor" aria-hidden="true" href="#基本信息">#</a></h2>
<ul>
<li><strong>内容标题:</strong><input type="text" class="simpleInput" name="title" placeholder="请输入内容的标题。"></li>
</ul>
<div>
<ul>
<li><strong>您想要投稿的板块为:</strong><select id="section" name="section">
<option value="攻略指南">攻略指南</option>
<option value="资源共享">资源共享</option>
</select></li>
</ul>
</div>
<blockquote>
<p><strong>说明:</strong><code>攻略指南</code>板块主要用于提供学习和生活上的攻略信息或经验等,<code>资源共享</code>板块主要用于分享各类有价值的学习资源。</p>
</blockquote>
<ul>
<li>上传文件:<input type="file" id="filePicker" multiple onchange="validateFiles(event)"></li>
</ul>
<blockquote>
<p><strong>说明:</strong>1. 若投稿板块为<code>攻略指南</code>,则上传文件非必填项;若投稿至<code>资源共享</code>板块,则必须上传文件。<br>
2. 一次投稿最多上传10个文件。若上传文件有压缩文件则只允许上传单个.zip、.rar或.7z格式压缩文件。所有文件总大小不得超过200MB。若超过大小限制请分多次投稿或者从网站底部联系管理员进行投稿感谢理解<br>
3. 若上传的文件为PDF会自动设置页面内预览。如不想提供页面内预览请在备注中写明。</p>
</blockquote>
<ul>
<li>备注:<input type="text" class="simpleInput" name="note" placeholder="备注内容。"></li>
</ul>
<h2 id="内容详情">内容详情<a hidden class="anchor" aria-hidden="true" href="#内容详情">#</a></h2>
<ul>
<li>内容详情主要用于<code>攻略指南</code>板块。如果您想投稿至<code>资源共享</code>板块,可以把此部分留空。</li>
<li>内容详情使用 markdown 语法。如果您不会使用 markdown 语法,我们的编辑器也足以辅助您完成大部分编辑需求。</li>
<li>如需在内容详情上传图片,请在下面的按钮处上传图片以获取标签,以直接粘贴到 markdown 中进行引用。</li>
<li>保存草稿功能只会保存“内容详情”的编辑内容,前面上传的文件等内容将不会保存!</li>
<li><strong>请您务必在一次编辑未完成时保存草稿,否则您编辑的内容将在刷新页面后全部丢失!</strong></li>
</ul>
<p><strong>提示:</strong>点击markdown编辑器左侧的双侧模式按钮可以进入编辑+预览模式。<br>
<img src="https://download.xn--xhq44jb2fzpc.com/upload/neuxiaozhan@163.com/2/postimg/双侧模式.png" width="550"><br>
预览模式下根据预览效果调整图片标签的width参数以调整图片大小。<br>
<img src="https://download.xn--xhq44jb2fzpc.com/upload/emberlqr@gmail.com/1/postimg/调整图片大小.png" width="550"></p>
<hr>
<ul>
<li><strong>图片上传区:</strong><br>
<input type="file" id="imageUploader" accept="image/*" onchange="uploadImage(event)"><br>
<p>图片HTML引用标签<a id="imageUrl" target="_blank"></a></p>
<button class="Button" id="copyButton" onclick="copyImageUrl()" style="display: none;">复制引用标签</button><br>
<img id="imagePreview" src="" alt="图片预览" style="max-width: 40%; display: none;"><br>
</li>
</ul>
<textarea id="input"></textarea>
<p><strong>请注意:上传文件可能需要一段时间,点击提交后请耐心等待,请勿刷新或退出页面。</strong></p>
<!-- <div id="preview"></div> -->
<div class="button-container">
<button class="Button" id="SubmitButton">提交</button><br>
<button class="Button" id="SaveDraft">保存草稿</button><br>
<button class="Button" id="LoadDraft">加载草稿内容</button><br>
</div>
<script src="https://download.xn--xhq44jb2fzpc.com/password/marked.min.js"></script>
<style>
#section {
display: "inline"
font-size: 24px;
height: 30px;
width: 90px;
}
.simpleInput {
width: 400px;
}
.Button {
background-color: #4CAF50; /* 绿色背景 */
border: none;
color: white;
padding: 10px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
border-radius: 4px; /* 圆角 */
transition: background-color 0.3s; /* 过渡效果 */
}
.Button:hover {
background-color: #45a049; /* 鼠标悬停时的背景色 */
}
.dark .simpleInput, .dark #input {
color: rgb(196,196,197);
}
.dark #preview {
background-color: rgb(29,30,32);
}
.button-container {
display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中(如果需要) */
}
</style>
<link rel="stylesheet" href="https://download.xn--xhq44jb2fzpc.com/upload/simplemde.min.css">
<link rel="stylesheet" href="/css/coin.css">
<script src="https://download.xn--xhq44jb2fzpc.com/upload/simplemde.min.js?v=1.0.4"></script>
<script src="https://download.xn--xhq44jb2fzpc.com/upload/submission.min.js?v=2.2.0"></script>
<!-- <script src="/js/submission.js"></script> -->
<script src="https://download.xn--xhq44jb2fzpc.com/upload/coin.min.js?v=1.0.10"></script>
<!-- <script src="/js/coin.js"></script> -->
</div>
</main>
<footer class="footer">
<div>
<span>&copy; 2025 <a href="https://xn--xhq44jb2fzpc.com/">NEU小站</a></span> ·
<a href="/intro" target="_blank">联系网站管理员</a>
<span> | </span>
<a href="https://git.东北大学.com" target="_blank">Git服务</a>
</div>
<div>
<span style="white-space: nowrap;">
<img src="https://beian.mps.gov.cn/web/assets/logo01.6189a29f.png" alt="公安标识" style="vertical-align: middle; height: 16px; display: inline-block;">
<a href="https://beian.mps.gov.cn/" target="_blank">
赣公网安备36090202000259号</a>
&nbsp;|&nbsp;
<a href="https://beian.miit.gov.cn/" target="_blank">赣ICP备2024039267号-1</a>
</span>
</div>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<style>
</style>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
document.addEventListener('DOMContentLoaded', function() {
var emberContainer = document.getElementById('ember-container');
emberContainer.addEventListener('mouseenter', function() {
var qrCode = document.getElementById('qr-code');
qrCode.classList.remove('hidden');
});
emberContainer.addEventListener('mouseleave', function() {
var qrCode = document.getElementById('qr-code');
qrCode.classList.add('hidden');
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$']],
displayMath: [['$$','$$']],
processEscapes: true,
processEnvironments: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
TeX: { equationNumbers: { autoNumber: "AMS" },
extensions: ["AMSmath.js", "AMSsymbols.js"] }
}
});
MathJax.Hub.Queue(function() {
var all = MathJax.Hub.getAllJax(), i;
for(i = 0; i < all.length; i += 1) {
all[i].SourceElement().parentNode.className += ' has-jax';
}
});
</script>
<style>
code.has-jax {
font: inherit;
font-size: 100%;
background: inherit;
border: inherit;
color: #515151;
}
</style>
</body>
</html>