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

634 lines
23 KiB
HTML
Raw Permalink 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="2025.02 02.16 新增NEU小站OJ题库。 02.05 课程评分系统新增AI课程总结接入DeepSeek V3大模型。 2025.01 01.26 新增东币奖励机制,付费资源被下载时,投稿者可以获得东币奖励。 01.24 课程评分系统支持删除自己的评论。 优化课程评分系统的界面。 优化课程评分系统的接口性能。 01.16 注册时支持邮箱验证。 支持通过stu校园邮箱激活账户。 2024.11 11.27 开发新的评论系统,接入网站用户系统。 11.19 优化投稿功能和后台审核功能,增强安全性。 11.17 课程评分系统新增在线聊天功能。 课程评分系统支持从评论发起聊天。 2024.09 09.21 课程评分系统新增必修课评分。 09.13 修复课程评分系统的部分Bug。 增加了课程评分系统的课程类别。 更新了用户验证相关接口,增强安全性。 09.11 课程评分系统上线(测试版)。 09.10 修复通过宽带连接校园内网无法验证的问题。 增加学院资源专区。 09.03 优化Restful API的安全性优化存储签名机制。 09.01 更新“东币系统”,并接入手机验证码验证。 2024.08 08.31 更新账户验证功能防止非NEU师生注册本网站。 08.23 更新资源合集卡片。 08.10 资源下载采用临时签名URL防止爬虫。 08.08 优化安全下载功能。 08.04 优化投稿Markdown编辑器样式。 2024.07 07.28 搜索页新增热门关键词。 07.26 修复部分情况下加载草稿不展示最新草稿内容的Bug。 07.25 修复了内容详情页面不展示最新头像的Bug。 配置并优化资源存储子域名。 07.03 升级资源内容系统,接入投稿用户系统。 升级投稿系统为投稿者中心,引入投稿用户系统。 07.02 新增资源投稿系统。 投稿系统优化CORS安全机制以保护文件。 2024.06 06.30 优化了资源密码验证机制。 06.29 增加资源密码保护功能。 06.">
<meta name="author" content="
V
V
">
<link rel="canonical" href="https://xn--xhq44jb2fzpc.com/log/">
<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/log/index.xml">
<link rel="alternate" hreflang="en" href="https://xn--xhq44jb2fzpc.com/log/">
<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/log/" />
<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/log/"
}
]
}
</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>用户中心</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 class="active">更新日志</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">
<header class="page-header">
<h1>
更新日志
</h1>
</header>
<div class="post-content">
<h2 id="202502">2025.02<a hidden class="anchor" aria-hidden="true" href="#202502">#</a></h2>
<h3 id="0216">02.16<a hidden class="anchor" aria-hidden="true" href="#0216">#</a></h3>
<ul>
<li>新增NEU小站OJ题库。</li>
</ul>
<h3 id="0205">02.05<a hidden class="anchor" aria-hidden="true" href="#0205">#</a></h3>
<ul>
<li>课程评分系统新增AI课程总结接入DeepSeek V3大模型。</li>
</ul>
<h2 id="202501">2025.01<a hidden class="anchor" aria-hidden="true" href="#202501">#</a></h2>
<h3 id="0126">01.26<a hidden class="anchor" aria-hidden="true" href="#0126">#</a></h3>
<ul>
<li>新增东币奖励机制,付费资源被下载时,投稿者可以获得东币奖励。</li>
</ul>
<h3 id="0124">01.24<a hidden class="anchor" aria-hidden="true" href="#0124">#</a></h3>
<ul>
<li>课程评分系统支持删除自己的评论。</li>
<li>优化课程评分系统的界面。</li>
<li>优化课程评分系统的接口性能。</li>
</ul>
<h3 id="0116">01.16<a hidden class="anchor" aria-hidden="true" href="#0116">#</a></h3>
<ul>
<li>注册时支持邮箱验证。</li>
<li>支持通过stu校园邮箱激活账户。</li>
</ul>
<h2 id="202411">2024.11<a hidden class="anchor" aria-hidden="true" href="#202411">#</a></h2>
<h3 id="1127">11.27<a hidden class="anchor" aria-hidden="true" href="#1127">#</a></h3>
<ul>
<li>开发新的评论系统,接入网站用户系统。</li>
</ul>
<h3 id="1119">11.19<a hidden class="anchor" aria-hidden="true" href="#1119">#</a></h3>
<ul>
<li>优化投稿功能和后台审核功能,增强安全性。</li>
</ul>
<h3 id="1117">11.17<a hidden class="anchor" aria-hidden="true" href="#1117">#</a></h3>
<ul>
<li>课程评分系统新增在线聊天功能。</li>
<li>课程评分系统支持从评论发起聊天。</li>
</ul>
<h2 id="202409">2024.09<a hidden class="anchor" aria-hidden="true" href="#202409">#</a></h2>
<h3 id="0921">09.21<a hidden class="anchor" aria-hidden="true" href="#0921">#</a></h3>
<ul>
<li>课程评分系统新增必修课评分。</li>
</ul>
<h3 id="0913">09.13<a hidden class="anchor" aria-hidden="true" href="#0913">#</a></h3>
<ul>
<li>修复课程评分系统的部分Bug。</li>
<li>增加了课程评分系统的课程类别。</li>
<li>更新了用户验证相关接口,增强安全性。</li>
</ul>
<h3 id="0911">09.11<a hidden class="anchor" aria-hidden="true" href="#0911">#</a></h3>
<ul>
<li>课程评分系统上线(测试版)。</li>
</ul>
<h3 id="0910">09.10<a hidden class="anchor" aria-hidden="true" href="#0910">#</a></h3>
<ul>
<li>修复通过宽带连接校园内网无法验证的问题。</li>
<li>增加学院资源专区。</li>
</ul>
<h3 id="0903">09.03<a hidden class="anchor" aria-hidden="true" href="#0903">#</a></h3>
<ul>
<li>优化Restful API的安全性优化存储签名机制。</li>
</ul>
<h3 id="0901">09.01<a hidden class="anchor" aria-hidden="true" href="#0901">#</a></h3>
<ul>
<li>更新“东币系统”,并接入手机验证码验证。</li>
</ul>
<h2 id="202408">2024.08<a hidden class="anchor" aria-hidden="true" href="#202408">#</a></h2>
<h3 id="0831">08.31<a hidden class="anchor" aria-hidden="true" href="#0831">#</a></h3>
<ul>
<li>更新账户验证功能防止非NEU师生注册本网站。</li>
</ul>
<h3 id="0823">08.23<a hidden class="anchor" aria-hidden="true" href="#0823">#</a></h3>
<ul>
<li>更新资源合集卡片。</li>
</ul>
<h3 id="0810">08.10<a hidden class="anchor" aria-hidden="true" href="#0810">#</a></h3>
<ul>
<li>资源下载采用临时签名URL防止爬虫。</li>
</ul>
<h3 id="0808">08.08<a hidden class="anchor" aria-hidden="true" href="#0808">#</a></h3>
<ul>
<li>优化安全下载功能。</li>
</ul>
<h3 id="0804">08.04<a hidden class="anchor" aria-hidden="true" href="#0804">#</a></h3>
<ul>
<li>优化投稿Markdown编辑器样式。</li>
</ul>
<h2 id="202407">2024.07<a hidden class="anchor" aria-hidden="true" href="#202407">#</a></h2>
<h3 id="0728">07.28<a hidden class="anchor" aria-hidden="true" href="#0728">#</a></h3>
<ul>
<li>搜索页新增热门关键词。</li>
</ul>
<h3 id="0726">07.26<a hidden class="anchor" aria-hidden="true" href="#0726">#</a></h3>
<ul>
<li>修复部分情况下加载草稿不展示最新草稿内容的Bug。</li>
</ul>
<h3 id="0725">07.25<a hidden class="anchor" aria-hidden="true" href="#0725">#</a></h3>
<ul>
<li>修复了内容详情页面不展示最新头像的Bug。</li>
<li>配置并优化资源存储子域名。</li>
</ul>
<h3 id="0703">07.03<a hidden class="anchor" aria-hidden="true" href="#0703">#</a></h3>
<ul>
<li>升级资源内容系统,接入投稿用户系统。</li>
<li>升级投稿系统为投稿者中心,引入投稿用户系统。</li>
</ul>
<h3 id="0702">07.02<a hidden class="anchor" aria-hidden="true" href="#0702">#</a></h3>
<ul>
<li>新增资源投稿系统。</li>
<li>投稿系统优化CORS安全机制以保护文件。</li>
</ul>
<h2 id="202406">2024.06<a hidden class="anchor" aria-hidden="true" href="#202406">#</a></h2>
<h3 id="0630">06.30<a hidden class="anchor" aria-hidden="true" href="#0630">#</a></h3>
<ul>
<li>优化了资源密码验证机制。</li>
</ul>
<h3 id="0629">06.29<a hidden class="anchor" aria-hidden="true" href="#0629">#</a></h3>
<ul>
<li>增加资源密码保护功能。</li>
</ul>
<h3 id="0627">06.27<a hidden class="anchor" aria-hidden="true" href="#0627">#</a></h3>
<ul>
<li>新增 $LaTeX$ 数学公式支持。</li>
<li>新增投稿者头像。</li>
</ul>
<h3 id="0624">06.24<a hidden class="anchor" aria-hidden="true" href="#0624">#</a></h3>
<ul>
<li>优化首页“新生指南”样式。</li>
<li>为网站配置资源防盗链。</li>
<li>优化评论区表情稳定性。</li>
</ul>
<h3 id="0623">06.23<a hidden class="anchor" aria-hidden="true" href="#0623">#</a></h3>
<ul>
<li>新增“新生指南”板块。</li>
</ul>
<h3 id="0622">06.22<a hidden class="anchor" aria-hidden="true" href="#0622">#</a></h3>
<ul>
<li>优化主页背景图片稳定性。</li>
</ul>
<h3 id="0620">06.20<a hidden class="anchor" aria-hidden="true" href="#0620">#</a></h3>
<ul>
<li>更新主页LOGO。</li>
<li>更新404页面样式。</li>
</ul>
<h3 id="0619">06.19<a hidden class="anchor" aria-hidden="true" href="#0619">#</a></h3>
<ul>
<li>更新网站主页样式(电脑端和手机端)。</li>
<li>更新主页按钮样式。</li>
</ul>
<h3 id="0618">06.18<a hidden class="anchor" aria-hidden="true" href="#0618">#</a></h3>
<ul>
<li>
<p>更新网站图标。</p>
</li>
<li>
<p>评论区启用贴吧表情。</p>
</li>
<li>
<p>优化投稿作者样式。</p>
</li>
<li>
<p>优化网站夜间模式样式。</p>
</li>
<li>
<p>新增“认证投稿者”标识。</p>
</li>
<li>
<p>优化日期显示格式。</p>
</li>
<li>
<p>优化帖子样式。</p>
</li>
<li>
<p>更新评论区样式。</p>
</li>
<li>
<p>添加优质资源标识。</p>
</li>
</ul>
<h3 id="0617">06.17<a hidden class="anchor" aria-hidden="true" href="#0617">#</a></h3>
<ul>
<li>优化评论区样式。</li>
<li>网站底部新增二维码。</li>
</ul>
<h3 id="0616">06.16<a hidden class="anchor" aria-hidden="true" href="#0616">#</a></h3>
<ul>
<li>优化评论系统,采用免登录模式。</li>
<li>完善资源共享协议内容。</li>
</ul>
<h3 id="0615">06.15<a hidden class="anchor" aria-hidden="true" href="#0615">#</a></h3>
<ul>
<li>新增资源共享协议。</li>
<li>修复网站资源完整性SRI问题。</li>
<li>修复搜索不显示结果的bug。</li>
<li>优化网站移动端样式。</li>
<li>修复网站换行符编码引起的bug。</li>
<li>添加评论系统。</li>
</ul>
<h3 id="0614">06.14<a hidden class="anchor" aria-hidden="true" href="#0614">#</a></h3>
<ul>
<li>创建网站。</li>
<li>新增页面内预览PDF。</li>
</ul>
<hr>
<div id="app">
<comment-plugin></comment-plugin>
</div>
<script src="https://download.xn--xhq44jb2fzpc.com/comment/vue@3.js"></script>
<script src="https://download.xn--xhq44jb2fzpc.com/comment/comment.min.js"></script>
<script>
const app = Vue.createApp({});
app.use(CommentPlugin);
app.mount('#app');
</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>