aeo.js 0.0.6 → 0.0.8
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.
- package/dist/angular.d.mts +1 -1
- package/dist/angular.d.ts +1 -1
- package/dist/angular.js +65 -11
- package/dist/angular.js.map +1 -1
- package/dist/angular.mjs +65 -11
- package/dist/angular.mjs.map +1 -1
- package/dist/astro.d.mts +1 -1
- package/dist/astro.d.ts +1 -1
- package/dist/astro.js +74 -16
- package/dist/astro.js.map +1 -1
- package/dist/astro.mjs +74 -16
- package/dist/astro.mjs.map +1 -1
- package/dist/cli.js +80 -25
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +80 -25
- package/dist/cli.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +85 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +85 -27
- package/dist/index.mjs.map +1 -1
- package/dist/next.d.mts +1 -1
- package/dist/next.d.ts +1 -1
- package/dist/next.js +65 -11
- package/dist/next.js.map +1 -1
- package/dist/next.mjs +65 -11
- package/dist/next.mjs.map +1 -1
- package/dist/nuxt.d.mts +1 -1
- package/dist/nuxt.d.ts +1 -1
- package/dist/nuxt.js +65 -11
- package/dist/nuxt.js.map +1 -1
- package/dist/nuxt.mjs +65 -11
- package/dist/nuxt.mjs.map +1 -1
- package/dist/react.d.mts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.js +61 -9
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +61 -9
- package/dist/react.mjs.map +1 -1
- package/dist/{types-Cn_Qbkmg.d.mts → types-BlLNcw-X.d.mts} +2 -0
- package/dist/{types-Cn_Qbkmg.d.ts → types-BlLNcw-X.d.ts} +2 -0
- package/dist/vite.d.mts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.js +90 -18
- package/dist/vite.js.map +1 -1
- package/dist/vite.mjs +90 -18
- package/dist/vite.mjs.map +1 -1
- package/dist/vue.d.mts +1 -1
- package/dist/vue.d.ts +1 -1
- package/dist/vue.js +61 -9
- package/dist/vue.js.map +1 -1
- package/dist/vue.mjs +61 -9
- package/dist/vue.mjs.map +1 -1
- package/dist/webpack.d.mts +1 -1
- package/dist/webpack.d.ts +1 -1
- package/dist/webpack.js +65 -11
- package/dist/webpack.js.map +1 -1
- package/dist/webpack.mjs +65 -11
- package/dist/webpack.mjs.map +1 -1
- package/dist/widget.d.mts +1 -1
- package/dist/widget.d.ts +1 -1
- package/dist/widget.js +61 -9
- package/dist/widget.js.map +1 -1
- package/dist/widget.mjs +61 -9
- package/dist/widget.mjs.map +1 -1
- package/package.json +1 -1
package/dist/nuxt.js
CHANGED
|
@@ -86,10 +86,19 @@ function generateRobotsTxt(config) {
|
|
|
86
86
|
}
|
|
87
87
|
lines.push("# Default for all other bots");
|
|
88
88
|
lines.push("User-agent: *");
|
|
89
|
-
|
|
89
|
+
for (const path of config.robots.allow.length > 0 ? config.robots.allow : ["/"]) {
|
|
90
|
+
lines.push(`Allow: ${path}`);
|
|
91
|
+
}
|
|
92
|
+
for (const path of config.robots.disallow) {
|
|
93
|
+
lines.push(`Disallow: ${path}`);
|
|
94
|
+
}
|
|
95
|
+
if (config.robots.crawlDelay > 0) {
|
|
96
|
+
lines.push(`Crawl-delay: ${config.robots.crawlDelay}`);
|
|
97
|
+
}
|
|
90
98
|
lines.push("");
|
|
91
|
-
|
|
92
|
-
|
|
99
|
+
const sitemapUrl = config.robots.sitemap || (config.url ? `${config.url}/sitemap.xml` : "");
|
|
100
|
+
if (sitemapUrl) {
|
|
101
|
+
lines.push(`Sitemap: ${sitemapUrl}`);
|
|
93
102
|
}
|
|
94
103
|
lines.push("");
|
|
95
104
|
lines.push("# AEO (Answer Engine Optimization) files");
|
|
@@ -171,7 +180,7 @@ function detectFramework(projectRoot = process.cwd()) {
|
|
|
171
180
|
};
|
|
172
181
|
}
|
|
173
182
|
function resolveConfig(config = {}) {
|
|
174
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M;
|
|
183
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N;
|
|
175
184
|
const frameworkInfo = detectFramework();
|
|
176
185
|
return {
|
|
177
186
|
title: config.title || "My Site",
|
|
@@ -215,15 +224,16 @@ function resolveConfig(config = {}) {
|
|
|
215
224
|
widget: {
|
|
216
225
|
enabled: ((_A = config.widget) == null ? void 0 : _A.enabled) !== false,
|
|
217
226
|
position: ((_B = config.widget) == null ? void 0 : _B.position) || "bottom-right",
|
|
227
|
+
size: ((_C = config.widget) == null ? void 0 : _C.size) || "default",
|
|
218
228
|
theme: {
|
|
219
|
-
background: ((
|
|
220
|
-
text: ((
|
|
221
|
-
accent: ((
|
|
222
|
-
badge: ((
|
|
229
|
+
background: ((_E = (_D = config.widget) == null ? void 0 : _D.theme) == null ? void 0 : _E.background) || "rgba(18, 18, 24, 0.9)",
|
|
230
|
+
text: ((_G = (_F = config.widget) == null ? void 0 : _F.theme) == null ? void 0 : _G.text) || "#C0C0C5",
|
|
231
|
+
accent: ((_I = (_H = config.widget) == null ? void 0 : _H.theme) == null ? void 0 : _I.accent) || "#E8E8EA",
|
|
232
|
+
badge: ((_K = (_J = config.widget) == null ? void 0 : _J.theme) == null ? void 0 : _K.badge) || "#4ADE80"
|
|
223
233
|
},
|
|
224
|
-
humanLabel: ((
|
|
225
|
-
aiLabel: ((
|
|
226
|
-
showBadge: ((
|
|
234
|
+
humanLabel: ((_L = config.widget) == null ? void 0 : _L.humanLabel) || "Human",
|
|
235
|
+
aiLabel: ((_M = config.widget) == null ? void 0 : _M.aiLabel) || "AI",
|
|
236
|
+
showBadge: ((_N = config.widget) == null ? void 0 : _N.showBadge) !== false
|
|
227
237
|
}
|
|
228
238
|
};
|
|
229
239
|
}
|
|
@@ -851,6 +861,22 @@ function generatePageSchemas(page, config) {
|
|
|
851
861
|
}))
|
|
852
862
|
});
|
|
853
863
|
}
|
|
864
|
+
if (faqItems.length === 0) {
|
|
865
|
+
const howToSteps = detectHowToSteps(page.content || "");
|
|
866
|
+
if (howToSteps.length > 0) {
|
|
867
|
+
schemas.push({
|
|
868
|
+
"@context": "https://schema.org",
|
|
869
|
+
"@type": "HowTo",
|
|
870
|
+
name: page.title || config.title,
|
|
871
|
+
step: howToSteps.map((s, i) => ({
|
|
872
|
+
"@type": "HowToStep",
|
|
873
|
+
position: i + 1,
|
|
874
|
+
name: s.name,
|
|
875
|
+
text: s.text
|
|
876
|
+
}))
|
|
877
|
+
});
|
|
878
|
+
}
|
|
879
|
+
}
|
|
854
880
|
const pageType = config.schema.defaultType;
|
|
855
881
|
const pageSchema = {
|
|
856
882
|
"@context": "https://schema.org",
|
|
@@ -927,6 +953,34 @@ function detectFaqPatterns(content) {
|
|
|
927
953
|
}
|
|
928
954
|
return items;
|
|
929
955
|
}
|
|
956
|
+
function detectHowToSteps(content) {
|
|
957
|
+
const steps = [];
|
|
958
|
+
const lines = content.split("\n");
|
|
959
|
+
for (let i = 0; i < lines.length; i++) {
|
|
960
|
+
const line = lines[i].trim();
|
|
961
|
+
const stepMatch = line.match(/^#{1,6}\s+(?:Step\s+\d+[\s:.-]*|(\d+)[.)]\s*)(.+)$/i);
|
|
962
|
+
if (stepMatch) {
|
|
963
|
+
const name = (stepMatch[2] || stepMatch[1] || "").trim();
|
|
964
|
+
const bodyLines = [];
|
|
965
|
+
for (let j = i + 1; j < lines.length; j++) {
|
|
966
|
+
const nextLine = lines[j].trim();
|
|
967
|
+
if (!nextLine) {
|
|
968
|
+
if (bodyLines.length > 0) break;
|
|
969
|
+
continue;
|
|
970
|
+
}
|
|
971
|
+
if (/^#{1,6}\s/.test(nextLine)) break;
|
|
972
|
+
bodyLines.push(nextLine);
|
|
973
|
+
}
|
|
974
|
+
if (name) {
|
|
975
|
+
steps.push({
|
|
976
|
+
name,
|
|
977
|
+
text: bodyLines.join(" ").slice(0, 500)
|
|
978
|
+
});
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
return steps.length >= 2 ? steps : [];
|
|
983
|
+
}
|
|
930
984
|
async function generateAEOFiles(configOrRoot, maybeConfig) {
|
|
931
985
|
var _a;
|
|
932
986
|
let config;
|