fix templates v2

This commit is contained in:
tamakyi
2026-10-22 17:49:25 +08:00
parent bd02eb7ed2
commit b939d26ff0
11 changed files with 436 additions and 60 deletions
+62
View File
@@ -0,0 +1,62 @@
package templates
import (
"strings"
"testing"
"time"
"github.com/tamakyi/TamaBox/internal/conf"
)
// 公告文案要按访客语言取:header 里传的是 .LangCode,
// 接错了就是「英文界面看到中文公告」或者干脆整块不渲染。
func TestAnnouncementRenderedPerLanguage(t *testing.T) {
old := conf.Announcement
t.Cleanup(func() { conf.Announcement = old })
conf.Announcement.ContentZhCN = "简中公告"
conf.Announcement.ContentEn = "English notice"
cases := []struct {
lang string
want string
notWant string
}{
{"zh-CN", "简中公告", "English notice"},
{"en", "English notice", "简中公告"},
}
for _, c := range cases {
t.Run(c.lang, func(t *testing.T) {
data := publicBaseData()
data["LangCode"] = c.lang
out, err := renderToString(t, "question/list", data)
if err != nil {
t.Fatalf("render: %v", err)
}
if !strings.Contains(out, c.want) {
t.Fatalf("%s 界面应显示 %q", c.lang, c.want)
}
if strings.Contains(out, c.notWant) {
t.Fatalf("%s 界面不应显示 %q", c.lang, c.notWant)
}
})
}
}
// 窗口外整块不渲染:不能先出 HTML 再靠 CSS 藏,否则会留下空白占位。
func TestAnnouncementHiddenOutsideWindow(t *testing.T) {
old := conf.Announcement
t.Cleanup(func() { conf.Announcement = old })
conf.Announcement.ContentZhCN = "简中公告"
conf.Announcement.StartAt = time.Now().Add(time.Hour)
data := publicBaseData()
out, err := renderToString(t, "question/list", data)
if err != nil {
t.Fatalf("render: %v", err)
}
if strings.Contains(out, "tb-announce") {
t.Fatal("未到展示时间时不应渲染公告块")
}
}
+1 -1
View File
@@ -371,7 +371,7 @@ document.addEventListener("DOMContentLoaded", function() {
})();
</script>
{{ with announcement }}
{{ with announcement .LangCode }}
<!-- 站内公告:内容与展示时间窗来自 conf/app.ini 的 [announcement] 段。
由服务端按当前时间判定,窗口外整块不渲染,不留空白占位。 -->
<div class="uk-container uk-container-xsmall tb-announce-wrap">
+1 -1
View File
@@ -187,7 +187,7 @@
<details class="uk-card uk-card-default uk-card-body tb-changelog">
<summary>近期更新</summary>
<ul class="tb-list">
<li><strong>2026.10</strong> 优化前端显示,增加主题编辑器功能,预置3套主题,并添加了问题页面“进入下一条未读提问”的功能,优化可用性。</li>
<li><strong>2026.10</strong> 优化前端显示,增加主题编辑器功能,预置3套主题,并添加了问题页面“进入下一条未读提问”的功能,优化可用性,详情见<a href="https://blog.shiroko.one/record/tamabox-update-20261022。">这里</li>
<li><strong>2026.9</strong> 新增审核严格度选项,增加提问、投票、私聊的总开关,可设置定时收集、定量收集或关闭功能,前后端显示也更易用了。</li>
<li><strong>2026.8</strong> 新增<a href="https://box.shiroko.one/vote/sANyLkiBNUGN">投票功能</a>、追加提问、多语言、<a href="https://box.shiroko.one/_/tamakyi/2894">Markdown 显示</a>、置顶显示等,详情见<a href="https://blog.shiroko.one/record/tamabox_changelog_20260813">这里</a>。</li>
<li><strong>2026.8</strong> 放弃使用 recaptcha 等对国内用户不友好的验证方式,更新密码加密方式,修复图片上传等一系列问题。</li>