@marvalt/wadapter 2.3.44 → 2.3.45
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/client/wordpress-client.d.ts +2 -1
- package/dist/client/wordpress-client.d.ts.map +1 -1
- package/dist/generators/wordpress/wordpress-generator.d.ts.map +1 -1
- package/dist/generators.cjs +244 -61
- package/dist/generators.cjs.map +1 -1
- package/dist/generators.esm.js +244 -61
- package/dist/generators.esm.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +50 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +50 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -116,7 +116,8 @@ export declare class WordPressClient {
|
|
|
116
116
|
}>>;
|
|
117
117
|
/**
|
|
118
118
|
* Fetch a specific navigation menu with its items
|
|
119
|
-
*
|
|
119
|
+
* Handles both menu term IDs and wp_navigation post IDs
|
|
120
|
+
* @param menuId Menu ID (can be menu term ID or wp_navigation post ID)
|
|
120
121
|
* @returns Menu data with hierarchical items
|
|
121
122
|
*/
|
|
122
123
|
getMenu(menuId: number): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wordpress-client.d.ts","sourceRoot":"","sources":["../../src/client/wordpress-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1J,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;YAIrB,WAAW;IAwGzB,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACG,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIjD;;;;OAIG;IACG,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAIrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIjD;;;;OAIG;IACG,QAAQ,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAItE,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvD;;;;OAIG;IACG,aAAa,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIpF;;;;OAIG;IACG,OAAO,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzE;;;;;;OAMG;YACW,cAAc;IAqDtB,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAIjC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ3E,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIxC;;;;;OAKG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAItF,UAAU,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC;QAC3D,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,KAAK,EAAE,aAAa,EAAE,CAAC;QACvB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;QAChC,IAAI,EAAE,YAAY,EAAE,CAAC;KACtB,CAAC;IAYF;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAItF;;;OAGG;IACH;;;;;OAKG;IACG,SAAS,CAAC,IAAI,GAAE,MAAiB,EAAE,IAAI,GAAE,MAAiB,GAAG,OAAO,CAAC;QACzE,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IASF;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;QAC9B,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IASH
|
|
1
|
+
{"version":3,"file":"wordpress-client.d.ts","sourceRoot":"","sources":["../../src/client/wordpress-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wordpress-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/wordpress/wordpress-generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wordpress-generator.d.ts","sourceRoot":"","sources":["../../../src/generators/wordpress/wordpress-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAmC,MAAM,uBAAuB,CAAC;AAIvI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,eAAe,CAAC,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;YACZ,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;SACvB,CAAC,CAAC;KACJ,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE;YACX,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3C,kBAAkB,CAAC,EAAE;gBACnB,EAAE,CAAC,EAAE,MAAM,CAAC;gBACZ,EAAE,CAAC,EAAE,MAAM,CAAC;gBACZ,EAAE,CAAC,EAAE,MAAM,CAAC;gBACZ,EAAE,CAAC,EAAE,MAAM,CAAC;gBACZ,EAAE,CAAC,EAAE,MAAM,CAAC;gBACZ,EAAE,CAAC,EAAE,MAAM,CAAC;aACb,CAAC;YACF,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;QACF,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE;YACP,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;YAClC,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC;QACF,WAAW,CAAC,EAAE;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;QACF,OAAO,CAAC,EAAE;YACR,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YACzB,SAAS,EAAE,MAAM,CAAC;YAClB,gBAAgB,EAAE,OAAO,CAAC;YAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;YACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;SACvB,CAAC,CAAC;KACJ,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AA0VD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,wBAAwB;IAItC,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IA0ZpD,OAAO,CAAC,eAAe;IAWjB,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAIrD;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtG"}
|
package/dist/generators.cjs
CHANGED
|
@@ -289,11 +289,59 @@ class WordPressClient {
|
|
|
289
289
|
}
|
|
290
290
|
/**
|
|
291
291
|
* Fetch a specific navigation menu with its items
|
|
292
|
-
*
|
|
292
|
+
* Handles both menu term IDs and wp_navigation post IDs
|
|
293
|
+
* @param menuId Menu ID (can be menu term ID or wp_navigation post ID)
|
|
293
294
|
* @returns Menu data with hierarchical items
|
|
294
295
|
*/
|
|
295
296
|
async getMenu(menuId) {
|
|
296
|
-
|
|
297
|
+
try {
|
|
298
|
+
// First try the custom endpoint (handles both menu terms and wp_navigation posts)
|
|
299
|
+
return await this.makeRequest(`/wp-custom/v1/menus/${menuId}`);
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
// If 404, try fetching as wp_navigation post
|
|
303
|
+
if (error.status === 404 || error.message?.includes('404')) {
|
|
304
|
+
console.log(`⚠️ Menu ID ${menuId} not found as menu term, trying as wp_navigation post...`);
|
|
305
|
+
// Try custom endpoint first
|
|
306
|
+
try {
|
|
307
|
+
const navPost = await this.makeRequest(`/wp-custom/v1/navigation/${menuId}`);
|
|
308
|
+
if (navPost.menu) {
|
|
309
|
+
return navPost.menu;
|
|
310
|
+
}
|
|
311
|
+
// If navigation post has a menu_term_id, fetch that menu
|
|
312
|
+
if (navPost.menu_term_id) {
|
|
313
|
+
return await this.makeRequest(`/wp-custom/v1/menus/${navPost.menu_term_id}`);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch (navError) {
|
|
317
|
+
// If custom endpoint fails, try WordPress native REST API (WordPress 6.3+)
|
|
318
|
+
if (navError.status === 404 || navError.message?.includes('404')) {
|
|
319
|
+
console.log(`⚠️ Custom navigation endpoint not found, trying WordPress native REST API...`);
|
|
320
|
+
try {
|
|
321
|
+
// WordPress 6.3+ has native REST API for wp_navigation posts
|
|
322
|
+
const navPost = await this.makeRequest(`/wp/v2/navigation/${menuId}`);
|
|
323
|
+
// Parse blocks from content to find menu reference
|
|
324
|
+
// The content.raw contains the block JSON
|
|
325
|
+
if (navPost.content?.raw) {
|
|
326
|
+
try {
|
|
327
|
+
const blocks = JSON.parse(navPost.content.raw);
|
|
328
|
+
// Look for menu reference in blocks (this would need to be done server-side)
|
|
329
|
+
// For now, return null and let the generator fall back to HTML extraction
|
|
330
|
+
console.log(`ℹ️ Found wp_navigation post ${menuId}, but menu extraction requires server-side processing`);
|
|
331
|
+
}
|
|
332
|
+
catch (parseError) {
|
|
333
|
+
console.log(`⚠️ Could not parse navigation post content`);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
catch (wpError) {
|
|
338
|
+
// Fall through
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
throw error;
|
|
344
|
+
}
|
|
297
345
|
}
|
|
298
346
|
async getFooter(slug = 'footer', area = 'footer') {
|
|
299
347
|
return this.makeRequest(`/wp-custom/v1/footer`, { slug, area });
|
|
@@ -522,86 +570,194 @@ function addBlockFromStack(endOffset) {
|
|
|
522
570
|
/**
|
|
523
571
|
* Extract menu items from a navigation block's innerHTML (rendered HTML)
|
|
524
572
|
* WordPress renders navigation blocks, so menu items are in innerHTML as HTML
|
|
573
|
+
* This function properly handles submenus by parsing the nested <ul> structure
|
|
525
574
|
*/
|
|
526
575
|
function extractMenuFromNavigationHTML(innerHTML) {
|
|
527
576
|
if (!innerHTML)
|
|
528
577
|
return null;
|
|
529
|
-
//
|
|
530
|
-
|
|
531
|
-
|
|
578
|
+
// Find the main navigation container <ul>
|
|
579
|
+
const mainNavMatch = innerHTML.match(/<ul[^>]*class="[^"]*wp-block-navigation__container[^"]*"[^>]*>([\s\S]*?)<\/ul>/i);
|
|
580
|
+
if (!mainNavMatch) {
|
|
581
|
+
return null;
|
|
582
|
+
}
|
|
583
|
+
const mainNavContent = mainNavMatch[1];
|
|
532
584
|
const items = [];
|
|
533
|
-
let
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
finalUrl = pathname + urlObj.search + urlObj.hash;
|
|
563
|
-
// Ensure relative URL starts with /
|
|
564
|
-
if (!finalUrl.startsWith('/')) {
|
|
565
|
-
finalUrl = `/${finalUrl}`;
|
|
566
|
-
}
|
|
567
|
-
// Remove trailing slash (except for root path) to match React Router routes
|
|
568
|
-
if (finalUrl !== '/' && finalUrl.endsWith('/')) {
|
|
569
|
-
finalUrl = finalUrl.slice(0, -1);
|
|
570
|
-
}
|
|
571
|
-
}
|
|
585
|
+
let globalOrder = 0;
|
|
586
|
+
/**
|
|
587
|
+
* Parse a <li> element and extract menu item data
|
|
588
|
+
* Handles both regular links and submenus
|
|
589
|
+
*/
|
|
590
|
+
function parseMenuItem(liElement, parentId = 0, order = 0) {
|
|
591
|
+
// Extract the link
|
|
592
|
+
const linkMatch = liElement.match(/<a[^>]+class="[^"]*wp-block-navigation-item__content[^"]*"[^>]+href=["']([^"']+)["'][^>]*>[\s\S]*?<span[^>]*class="[^"]*wp-block-navigation-item__label[^"]*"[^>]*>([^<]+)<\/span>[\s\S]*?<\/a>/i);
|
|
593
|
+
if (!linkMatch) {
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
const url = linkMatch[1].trim();
|
|
597
|
+
const title = linkMatch[2].trim();
|
|
598
|
+
if (!title) {
|
|
599
|
+
return null;
|
|
600
|
+
}
|
|
601
|
+
// Normalize URL
|
|
602
|
+
let finalUrl = url;
|
|
603
|
+
try {
|
|
604
|
+
const urlObj = new URL(url, 'http://dummy.com'); // Use dummy base for relative URLs
|
|
605
|
+
const isAbsoluteUrl = url.startsWith('http://') || url.startsWith('https://');
|
|
606
|
+
if (isAbsoluteUrl) {
|
|
607
|
+
const pathname = urlObj.pathname;
|
|
608
|
+
const isExternal = pathname === '' || pathname === '/' ||
|
|
609
|
+
!urlObj.hostname.includes('vibunedemos.com') &&
|
|
610
|
+
!urlObj.hostname.includes('localhost') &&
|
|
611
|
+
!urlObj.hostname.includes('127.0.0.1');
|
|
612
|
+
if (isExternal) {
|
|
613
|
+
finalUrl = url;
|
|
572
614
|
}
|
|
573
615
|
else {
|
|
574
|
-
|
|
616
|
+
finalUrl = pathname + urlObj.search + urlObj.hash;
|
|
575
617
|
if (!finalUrl.startsWith('/')) {
|
|
576
618
|
finalUrl = `/${finalUrl}`;
|
|
577
619
|
}
|
|
578
|
-
// Remove trailing slash (except for root path) to match React Router routes
|
|
579
620
|
if (finalUrl !== '/' && finalUrl.endsWith('/')) {
|
|
580
621
|
finalUrl = finalUrl.slice(0, -1);
|
|
581
622
|
}
|
|
582
623
|
}
|
|
583
624
|
}
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
// Ensure relative URLs start with /
|
|
587
|
-
if (!finalUrl.startsWith('http://') && !finalUrl.startsWith('https://') && !finalUrl.startsWith('/')) {
|
|
625
|
+
else {
|
|
626
|
+
if (!finalUrl.startsWith('/')) {
|
|
588
627
|
finalUrl = `/${finalUrl}`;
|
|
589
628
|
}
|
|
590
|
-
// Remove trailing slash (except for root path) to match React Router routes
|
|
591
629
|
if (finalUrl !== '/' && finalUrl.endsWith('/')) {
|
|
592
630
|
finalUrl = finalUrl.slice(0, -1);
|
|
593
631
|
}
|
|
594
632
|
}
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
633
|
+
}
|
|
634
|
+
catch (e) {
|
|
635
|
+
if (!finalUrl.startsWith('http://') && !finalUrl.startsWith('https://') && !finalUrl.startsWith('/')) {
|
|
636
|
+
finalUrl = `/${finalUrl}`;
|
|
637
|
+
}
|
|
638
|
+
if (finalUrl !== '/' && finalUrl.endsWith('/')) {
|
|
639
|
+
finalUrl = finalUrl.slice(0, -1);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
const itemId = globalOrder + 1;
|
|
643
|
+
globalOrder++;
|
|
644
|
+
const menuItem = {
|
|
645
|
+
id: itemId,
|
|
646
|
+
title: title,
|
|
647
|
+
url: finalUrl,
|
|
648
|
+
type: 'custom',
|
|
649
|
+
object_id: 0,
|
|
650
|
+
object: 'custom',
|
|
651
|
+
parent: parentId,
|
|
652
|
+
menu_order: order,
|
|
653
|
+
};
|
|
654
|
+
// Check if this <li> contains a submenu (<ul class="wp-block-navigation__submenu-container">)
|
|
655
|
+
const submenuMatch = liElement.match(/<ul[^>]*class="[^"]*wp-block-navigation__submenu-container[^"]*"[^>]*>([\s\S]*?)<\/ul>/i);
|
|
656
|
+
if (submenuMatch) {
|
|
657
|
+
const submenuContent = submenuMatch[1];
|
|
658
|
+
const children = [];
|
|
659
|
+
let childOrder = 0;
|
|
660
|
+
// Extract all <li> elements from the submenu
|
|
661
|
+
const submenuLiRegex = /<li[^>]*class="[^"]*wp-block-navigation-item[^"]*"[^>]*>([\s\S]*?)<\/li>/gi;
|
|
662
|
+
let submenuLiMatch;
|
|
663
|
+
while ((submenuLiMatch = submenuLiRegex.exec(submenuContent)) !== null) {
|
|
664
|
+
const childResult = parseMenuItem(submenuLiMatch[1], itemId, childOrder++);
|
|
665
|
+
if (childResult) {
|
|
666
|
+
children.push(childResult.item);
|
|
667
|
+
globalOrder = childResult.nextOrder;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
if (children.length > 0) {
|
|
671
|
+
menuItem.children = children;
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
return { item: menuItem, nextOrder: globalOrder };
|
|
675
|
+
}
|
|
676
|
+
// Extract all top-level <li> elements from the main navigation
|
|
677
|
+
// Find all <li> tags and extract complete items, filtering by position
|
|
678
|
+
const liRegex = /<li[^>]*>/gi;
|
|
679
|
+
const allLiMatches = [];
|
|
680
|
+
// First pass: find all <li> tags and their matching </li>
|
|
681
|
+
let match;
|
|
682
|
+
while ((match = liRegex.exec(mainNavContent)) !== null) {
|
|
683
|
+
const liStart = match.index;
|
|
684
|
+
let depth = 0;
|
|
685
|
+
let j = liStart;
|
|
686
|
+
while (j < mainNavContent.length) {
|
|
687
|
+
if (mainNavContent.substr(j, 3) === '<li' && /[>\s\n\t]/.test(mainNavContent[j + 3] || '')) {
|
|
688
|
+
depth++;
|
|
689
|
+
}
|
|
690
|
+
else if (mainNavContent.substr(j, 5) === '</li>') {
|
|
691
|
+
depth--;
|
|
692
|
+
if (depth === 0) {
|
|
693
|
+
allLiMatches.push({ start: liStart, end: j + 5 });
|
|
694
|
+
break;
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
j++;
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
// Second pass: filter to only top-level items (not inside submenu containers)
|
|
701
|
+
// Build a map of submenu container ranges
|
|
702
|
+
const submenuRanges = [];
|
|
703
|
+
const submenuContainerRegex = /<ul[^>]*class="[^"]*wp-block-navigation__submenu-container[^"]*"[^>]*>/gi;
|
|
704
|
+
let submenuMatch;
|
|
705
|
+
// Find all submenu containers and their matching </ul> tags
|
|
706
|
+
while ((submenuMatch = submenuContainerRegex.exec(mainNavContent)) !== null) {
|
|
707
|
+
const submenuStart = submenuMatch.index;
|
|
708
|
+
const submenuUlEnd = mainNavContent.indexOf('>', submenuStart);
|
|
709
|
+
if (submenuUlEnd === -1)
|
|
710
|
+
continue;
|
|
711
|
+
// Find matching </ul> by tracking depth
|
|
712
|
+
let ulDepth = 0;
|
|
713
|
+
let checkPos = submenuUlEnd + 1;
|
|
714
|
+
let submenuEnd = -1;
|
|
715
|
+
while (checkPos < mainNavContent.length) {
|
|
716
|
+
const ulOpen = mainNavContent.indexOf('<ul', checkPos);
|
|
717
|
+
const ulClose = mainNavContent.indexOf('</ul>', checkPos);
|
|
718
|
+
if (ulOpen !== -1 && (ulClose === -1 || ulOpen < ulClose)) {
|
|
719
|
+
ulDepth++;
|
|
720
|
+
checkPos = ulOpen + 3;
|
|
721
|
+
}
|
|
722
|
+
else if (ulClose !== -1) {
|
|
723
|
+
ulDepth--;
|
|
724
|
+
if (ulDepth === 0) {
|
|
725
|
+
submenuEnd = ulClose + 5;
|
|
726
|
+
break;
|
|
727
|
+
}
|
|
728
|
+
checkPos = ulClose + 5;
|
|
729
|
+
}
|
|
730
|
+
else {
|
|
731
|
+
break;
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
if (submenuEnd !== -1) {
|
|
735
|
+
submenuRanges.push({ start: submenuStart, end: submenuEnd });
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
// Filter <li> elements: exclude only those that are children inside submenu containers
|
|
739
|
+
// An <li> is a child (inside submenu) if: submenu's <ul> starts before <li> AND submenu's </ul> ends after <li> ends
|
|
740
|
+
// An <li> is a parent (contains submenu) if: <li> starts before submenu's <ul> (we want to include these)
|
|
741
|
+
for (const { start, end } of allLiMatches) {
|
|
742
|
+
// Check if this <li> is a child inside any submenu container
|
|
743
|
+
let isChildItem = false;
|
|
744
|
+
for (const range of submenuRanges) {
|
|
745
|
+
// If submenu <ul> starts before <li> AND submenu </ul> ends after <li> ends, then <li> is a child
|
|
746
|
+
if (range.start < start && range.end > end) {
|
|
747
|
+
isChildItem = true;
|
|
748
|
+
break;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
// Include all items except children (children will be extracted by parseMenuItem as part of their parent)
|
|
752
|
+
if (!isChildItem) {
|
|
753
|
+
const item = mainNavContent.substring(start, end);
|
|
754
|
+
if (item.includes('wp-block-navigation-item')) {
|
|
755
|
+
const result = parseMenuItem(item, 0, items.length);
|
|
756
|
+
if (result) {
|
|
757
|
+
items.push(result.item);
|
|
758
|
+
globalOrder = result.nextOrder;
|
|
759
|
+
}
|
|
760
|
+
}
|
|
605
761
|
}
|
|
606
762
|
}
|
|
607
763
|
if (items.length === 0) {
|
|
@@ -836,6 +992,33 @@ class WordPressGenerator {
|
|
|
836
992
|
}
|
|
837
993
|
catch (error) {
|
|
838
994
|
console.warn(`⚠️ Could not fetch menu data for menu ID ${menuId}:`, error);
|
|
995
|
+
// Fallback: Try to find menu by name (mainmenu, main-menu, Main Menu, etc.)
|
|
996
|
+
console.log('🔍 Menu fetch failed, attempting to find menu by name "mainmenu"...');
|
|
997
|
+
try {
|
|
998
|
+
const namedMenu = await findMenuByName(client, 'mainmenu');
|
|
999
|
+
if (namedMenu && namedMenu.items && namedMenu.items.length > 0) {
|
|
1000
|
+
menuData = namedMenu;
|
|
1001
|
+
console.log(`✅ Found menu by name "mainmenu": ${namedMenu.name} (${namedMenu.items.length} items)`);
|
|
1002
|
+
}
|
|
1003
|
+
else {
|
|
1004
|
+
console.log('ℹ️ No menu found with name "mainmenu"');
|
|
1005
|
+
// Try extracting from Navigation block HTML as last resort
|
|
1006
|
+
console.log('🔍 Attempting to extract navigation from Navigation block innerHTML...');
|
|
1007
|
+
try {
|
|
1008
|
+
const extractedMenu = extractMenuFromNavigationBlock(navBlock);
|
|
1009
|
+
if (extractedMenu && extractedMenu.items && extractedMenu.items.length > 0) {
|
|
1010
|
+
menuData = extractedMenu;
|
|
1011
|
+
console.log(`✅ Extracted navigation from Navigation block: ${extractedMenu.items.length} items`);
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
1014
|
+
catch (extractError) {
|
|
1015
|
+
console.warn('⚠️ Error extracting navigation from Navigation block:', extractError);
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
catch (nameError) {
|
|
1020
|
+
console.warn('⚠️ Error finding menu by name:', nameError);
|
|
1021
|
+
}
|
|
839
1022
|
}
|
|
840
1023
|
}
|
|
841
1024
|
else {
|