如果我们在 script 标签中不能使用 type="text/discourse-plugin",是否有办法获取已发布页面的当前分类 slug?
目的是向页面的 HTML 标签添加一个包含该 slug 的新类。
您好,
我不太确定是否完全理解,但该类别在 body 中可用,因此您可以将其作为目标。
例如:
您可以使用以下方法定位所有休息室类别的主题:
.published-page.lounge {
...
}
抱歉,我没有说清楚,应该更好地解释一下目的。
目前,页面发布不使用类别背景。
设置:
主题视图:
已发布页面视图:
类别背景在 color_definitions.scss 中定义:
body.category-test-category {
background-image: url(/uploads/default/original/1X/1851d5e9eb66a9ecf49f0dc747dfbad1a0fd220b.jpeg)
}
已发布的页面没有 category-test-category 类,因此不会继承背景图像。
我的想法是使用 Javascript 获取类别 slug 并将 category-[category slug] 类添加到 body 标签,无论类别名称是什么,这样类别背景就会自动应用,而不是为每个已发布页面的类别编写自定义 CSS,例如:
.published-page {
&.test-category {
background-image: url("/uploads/default/original/1X/1851d5e9eb66a9ecf49f0dc747dfbad1a0fd220b.jpeg");
}
}
我同意,非常好的主意 ![]()
我明白了……是的,这是个好主意,但不幸的是,我认为无法使用主题组件(javascript)修改已发布的页面。可能需要使用插件或在核心中添加 category- 部分到类别名称之前。
我想目前手动的方法是可行的。创建一个主题组件,为已发布的页面类别添加相关的 SCSS 和设置。
我的意思是,也许是这样的:GitHub - VaperinaDEV/published-page-category-background-image
但也许有更好的解决方案,我不确定。 ![]()
这是一个非常巧妙的解决方案,但我同意默认(或可自定义)地在核心中拥有这样的功能会很好。目前的意图是明确使用主题的颜色作为默认背景,正如我们在 publish.scss 中看到的:
.published-page {
background-color: var(--secondary);
color: var(--primary);
如果自定义类别背景图片的 URL 存储在 CSS 变量中,我们可以在自定义 CSS 中轻松访问它们,那会怎么样?至少,我们不必在 CSS 中使用完整的图片 URL。
我在这里提出了一个功能请求:Published pages could inherit categories' background image setting



