diff --git a/backend/src/plugins/Tags/util/renderTagBody.ts b/backend/src/plugins/Tags/util/renderTagBody.ts index 36103c7e..d8aef998 100644 --- a/backend/src/plugins/Tags/util/renderTagBody.ts +++ b/backend/src/plugins/Tags/util/renderTagBody.ts @@ -30,7 +30,7 @@ export async function renderTagBody( return val; }, get(name) { - return dynamicVars[name] == null ? "" : dynamicVars[name]; + return !dynamicVars.hasOwnProperty(name) || dynamicVars[name] == null ? "" : dynamicVars[name]; }, tag: async (name, ...subTagArgs) => { if (++tagFnCallsObj.calls > MAX_TAG_FN_CALLS) return ""; diff --git a/backend/src/utils.ts b/backend/src/utils.ts index 396493d4..e075f5e4 100644 --- a/backend/src/utils.ts +++ b/backend/src/utils.ts @@ -578,7 +578,10 @@ export function errorMessage(str, emoji = "⚠") { export function get(obj, path, def?): any { let cursor = obj; - const pathParts = path.split("."); + const pathParts = path + .split(".") + .map((s) => s.trim()) + .filter((s) => s !== ""); for (const part of pathParts) { // hasOwnProperty check here is necessary to prevent prototype traversal in tags if (!cursor.hasOwnProperty(part)) return def;