qumra-engine 2.0.47 → 2.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -10,23 +10,29 @@ exports.default = new (class SeoExtension {
|
|
|
10
10
|
parser.advanceAfterBlockEnd(tok.value);
|
|
11
11
|
return new nodes.CallExtension(this, "run", null);
|
|
12
12
|
}
|
|
13
|
-
run({
|
|
14
|
-
const
|
|
13
|
+
run({ ctx }) {
|
|
14
|
+
const escapeHtml = (str) => String(str || "")
|
|
15
|
+
.replace(/&/g, "&")
|
|
16
|
+
.replace(/</g, "<")
|
|
17
|
+
.replace(/>/g, ">")
|
|
18
|
+
.replace(/"/g, """);
|
|
19
|
+
const seo = ctx.context.seo || {};
|
|
15
20
|
const page = ctx.context.page || {};
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<meta
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<meta property="og:
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
const pageUrl = seo.canonical || "";
|
|
22
|
+
const pageTitle = seo.title || page.title || "Store";
|
|
23
|
+
const pageDescription = seo.description || page.description || "";
|
|
24
|
+
const pageImage = seo.image || "";
|
|
25
|
+
let tags = `
|
|
26
|
+
<title>${escapeHtml(pageTitle)}</title>
|
|
27
|
+
${pageDescription ? `<meta name="description" content="${escapeHtml(pageDescription)}">` : ""}
|
|
28
|
+
${pageUrl ? `<link rel="canonical" href="${escapeHtml(pageUrl)}">` : ""}
|
|
29
|
+
<meta property="og:title" content="${escapeHtml(pageTitle)}">
|
|
30
|
+
${pageDescription ? `<meta property="og:description" content="${escapeHtml(pageDescription)}">` : ""}
|
|
31
|
+
${pageImage ? `<meta property="og:image" content="${escapeHtml(pageImage)}">` : ""}
|
|
32
|
+
${pageUrl ? `<meta property="og:url" content="${escapeHtml(pageUrl)}">` : ""}
|
|
33
|
+
<meta property="og:type" content="website">
|
|
34
|
+
${pageImage ? `<meta name="twitter:card" content="summary_large_image">` : `<meta name="twitter:card" content="summary">`}
|
|
35
|
+
`;
|
|
36
|
+
return new nunjucks_1.runtime.SafeString(tags.trim());
|
|
31
37
|
}
|
|
32
38
|
})();
|
|
@@ -20,13 +20,10 @@ const prepareDataMiddleware = (req, res, next) => {
|
|
|
20
20
|
if (req.session?.themeId) {
|
|
21
21
|
params.set("themeVersionId", req.session.themeId);
|
|
22
22
|
}
|
|
23
|
-
console.log("🚀 ~ prepareDataMiddleware ~ req.query?.appTheme:", req.query?.appTheme);
|
|
24
|
-
console.log("🚀 ~ prepareDataMiddleware ~ req.query:", req.query);
|
|
25
23
|
if (req.query?.appTheme) {
|
|
26
24
|
params.set("appTheme", String(req.query.appTheme));
|
|
27
25
|
}
|
|
28
26
|
themePath = params.toString() ? `?${params.toString()}` : "";
|
|
29
|
-
console.log("🚀 ~ prepareDataMiddleware ~ themePath:", themePath);
|
|
30
27
|
const api = true
|
|
31
28
|
? `https://store-gate.qumra.cloud/render${themePath}`
|
|
32
29
|
: `http://192.168.1.8:4019/v1/render${themePath}`;
|
|
@@ -48,8 +45,8 @@ const prepareDataMiddleware = (req, res, next) => {
|
|
|
48
45
|
next();
|
|
49
46
|
})
|
|
50
47
|
.catch((err) => {
|
|
51
|
-
console.
|
|
52
|
-
next(err);
|
|
48
|
+
console.log("❌ prepareDataMiddleware error:", err.message);
|
|
49
|
+
// next(err);
|
|
53
50
|
});
|
|
54
51
|
};
|
|
55
52
|
exports.prepareDataMiddleware = prepareDataMiddleware;
|
package/dist/middleware.js
CHANGED
|
@@ -25,6 +25,8 @@ const startEngine = async ({ mode, getRender, setRender, port = 3000, themesRepo
|
|
|
25
25
|
try {
|
|
26
26
|
const app = (0, express_1.default)();
|
|
27
27
|
app.use((0, cookie_parser_1.default)());
|
|
28
|
+
app.set("view engine", "nunjucks");
|
|
29
|
+
app.use((0, morgan_1.default)("dev"));
|
|
28
30
|
app.use((0, express_session_1.default)({
|
|
29
31
|
secret: "your-secret-key",
|
|
30
32
|
resave: false,
|
|
@@ -46,8 +48,6 @@ const startEngine = async ({ mode, getRender, setRender, port = 3000, themesRepo
|
|
|
46
48
|
}
|
|
47
49
|
next();
|
|
48
50
|
});
|
|
49
|
-
app.set("view engine", "nunjucks");
|
|
50
|
-
app.use((0, morgan_1.default)("dev"));
|
|
51
51
|
app.use((0, init_middleware_1.initMiddleware)({ mode, getRender, setRender, app: currentApp }));
|
|
52
52
|
const avilablePort = await (0, findAvailablePort_1.findAvailablePort)(port);
|
|
53
53
|
if (mode === "devlopment") {
|