mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 19:13:49 +08:00
FIX: Correctly process {{each}} in raw handlebars templates for themes
This commit is contained in:
parent
9564eac72a
commit
f01ca1f22d
|
@ -54,7 +54,7 @@ class ThemeJavascriptCompiler
|
||||||
|
|
||||||
function manipulatePath(path) {
|
function manipulatePath(path) {
|
||||||
// Override old themeSetting syntax when it's a param inside another node
|
// Override old themeSetting syntax when it's a param inside another node
|
||||||
if(path.parts[0] == "themeSettings"){
|
if(path.parts && path.parts[0] == "themeSettings"){
|
||||||
const settingParts = path.parts.slice(1);
|
const settingParts = path.parts.slice(1);
|
||||||
path.type = "SubExpression";
|
path.type = "SubExpression";
|
||||||
Object.assign(path, generateHelper(settingParts))
|
Object.assign(path, generateHelper(settingParts))
|
||||||
|
@ -63,7 +63,7 @@ class ThemeJavascriptCompiler
|
||||||
|
|
||||||
function manipulateNode(node) {
|
function manipulateNode(node) {
|
||||||
// Magically add theme id as the first param for each of these helpers
|
// Magically add theme id as the first param for each of these helpers
|
||||||
if (["theme-i18n", "theme-prefix", "theme-setting"].includes(node.path.parts[0])) {
|
if (node.path.parts && ["theme-i18n", "theme-prefix", "theme-setting"].includes(node.path.parts[0])) {
|
||||||
node.params.unshift({
|
node.params.unshift({
|
||||||
type: "NumberLiteral",
|
type: "NumberLiteral",
|
||||||
value: #{@theme_id},
|
value: #{@theme_id},
|
||||||
|
@ -72,7 +72,7 @@ class ThemeJavascriptCompiler
|
||||||
}
|
}
|
||||||
|
|
||||||
// Override old themeSetting syntax when it's in its own node
|
// Override old themeSetting syntax when it's in its own node
|
||||||
if (node.path.parts[0] == "themeSettings") {
|
if (node.path.parts && node.path.parts[0] == "themeSettings") {
|
||||||
Object.assign(node, generateHelper(node.path.parts.slice(1)))
|
Object.assign(node, generateHelper(node.path.parts.slice(1)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,6 +100,7 @@ class ThemeJavascriptCompiler
|
||||||
if(node.path.original == 'get'
|
if(node.path.original == 'get'
|
||||||
&& node.params
|
&& node.params
|
||||||
&& node.params[0]
|
&& node.params[0]
|
||||||
|
&& node.params[0].parts
|
||||||
&& node.params[0].parts[0] == 'themeSettings'){
|
&& node.params[0].parts[0] == 'themeSettings'){
|
||||||
node.path.parts = node.params[0].parts
|
node.path.parts = node.params[0].parts
|
||||||
node.params = []
|
node.params = []
|
||||||
|
|
Loading…
Reference in New Issue
Block a user