fix templates v2
This commit is contained in:
@@ -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("未到展示时间时不应渲染公告块")
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user