@mdfriday/foundry 25.9.2 → 25.9.4
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/README.md +10 -0
- package/dist/internal/application/ssg.d.ts.map +1 -1
- package/dist/internal/application/ssg.js +12 -0
- package/dist/internal/application/ssg.js.map +1 -1
- package/dist/internal/domain/config/entity/config.d.ts +8 -2
- package/dist/internal/domain/config/entity/config.d.ts.map +1 -1
- package/dist/internal/domain/config/entity/config.js +10 -3
- package/dist/internal/domain/config/entity/config.js.map +1 -1
- package/dist/internal/domain/config/entity/social.d.ts +66 -0
- package/dist/internal/domain/config/entity/social.d.ts.map +1 -0
- package/dist/internal/domain/config/entity/social.js +126 -0
- package/dist/internal/domain/config/entity/social.js.map +1 -0
- package/dist/internal/domain/config/factory/config.d.ts.map +1 -1
- package/dist/internal/domain/config/factory/config.js +2 -1
- package/dist/internal/domain/config/factory/config.js.map +1 -1
- package/dist/internal/domain/config/index.d.ts +2 -0
- package/dist/internal/domain/config/index.d.ts.map +1 -1
- package/dist/internal/domain/config/index.js +5 -1
- package/dist/internal/domain/config/index.js.map +1 -1
- package/dist/internal/domain/config/tests/entity-config.test.js +16 -12
- package/dist/internal/domain/config/tests/entity-config.test.js.map +1 -1
- package/dist/internal/domain/config/tests/social.test.d.ts +2 -0
- package/dist/internal/domain/config/tests/social.test.d.ts.map +1 -0
- package/dist/internal/domain/config/tests/social.test.js +164 -0
- package/dist/internal/domain/config/tests/social.test.js.map +1 -0
- package/dist/internal/domain/config/type.d.ts +22 -0
- package/dist/internal/domain/config/type.d.ts.map +1 -1
- package/dist/internal/domain/config/type.js.map +1 -1
- package/dist/internal/domain/config/vo/root.d.ts.map +1 -1
- package/dist/internal/domain/config/vo/root.js +2 -1
- package/dist/internal/domain/config/vo/root.js.map +1 -1
- package/dist/internal/domain/config/vo/social.d.ts +23 -0
- package/dist/internal/domain/config/vo/social.d.ts.map +1 -0
- package/dist/internal/domain/config/vo/social.js +212 -0
- package/dist/internal/domain/config/vo/social.js.map +1 -0
- package/dist/internal/domain/content/entity/page.d.ts +7 -1
- package/dist/internal/domain/content/entity/page.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/page.js +36 -3
- package/dist/internal/domain/content/entity/page.js.map +1 -1
- package/dist/internal/domain/content/entity/pagebuilder.d.ts +3 -2
- package/dist/internal/domain/content/entity/pagebuilder.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/pagebuilder.js +16 -5
- package/dist/internal/domain/content/entity/pagebuilder.js.map +1 -1
- package/dist/internal/domain/content/entity/pagemeta.d.ts +10 -2
- package/dist/internal/domain/content/entity/pagemeta.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/pagemeta.js +17 -1
- package/dist/internal/domain/content/entity/pagemeta.js.map +1 -1
- package/dist/internal/domain/content/entity/paginator.d.ts +6 -0
- package/dist/internal/domain/content/entity/paginator.d.ts.map +1 -1
- package/dist/internal/domain/content/entity/paginator.js +26 -2
- package/dist/internal/domain/content/entity/paginator.js.map +1 -1
- package/dist/internal/domain/content/entity/section.js +5 -5
- package/dist/internal/domain/content/entity/section.js.map +1 -1
- package/dist/internal/domain/content/factory/hub.d.ts.map +1 -1
- package/dist/internal/domain/content/factory/hub.js +2 -1
- package/dist/internal/domain/content/factory/hub.js.map +1 -1
- package/dist/internal/domain/content/type.d.ts +59 -1
- package/dist/internal/domain/content/type.d.ts.map +1 -1
- package/dist/internal/domain/content/type.js.map +1 -1
- package/dist/internal/domain/content/vo/frontmatter.d.ts +29 -1
- package/dist/internal/domain/content/vo/frontmatter.d.ts.map +1 -1
- package/dist/internal/domain/content/vo/frontmatter.js +242 -1
- package/dist/internal/domain/content/vo/frontmatter.js.map +1 -1
- package/dist/internal/domain/markdown/entity/markdown.d.ts.map +1 -1
- package/dist/internal/domain/markdown/entity/markdown.js +5 -4
- package/dist/internal/domain/markdown/entity/markdown.js.map +1 -1
- package/dist/internal/domain/markdown/vo/content.d.ts +3 -6
- package/dist/internal/domain/markdown/vo/content.d.ts.map +1 -1
- package/dist/internal/domain/markdown/vo/content.js +32 -31
- package/dist/internal/domain/markdown/vo/content.js.map +1 -1
- package/dist/internal/domain/module/entity/module.d.ts.map +1 -1
- package/dist/internal/domain/module/entity/module.js +10 -6
- package/dist/internal/domain/module/entity/module.js.map +1 -1
- package/dist/internal/domain/module/vo/themes.test.js +12 -8
- package/dist/internal/domain/module/vo/themes.test.js.map +1 -1
- package/dist/internal/domain/site/entity/language.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/language.js +2 -0
- package/dist/internal/domain/site/entity/language.js.map +1 -1
- package/dist/internal/domain/site/entity/menu-builder.d.ts +39 -21
- package/dist/internal/domain/site/entity/menu-builder.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/menu-builder.js +264 -107
- package/dist/internal/domain/site/entity/menu-builder.js.map +1 -1
- package/dist/internal/domain/site/entity/page.d.ts +22 -8
- package/dist/internal/domain/site/entity/page.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/page.js +67 -6
- package/dist/internal/domain/site/entity/page.js.map +1 -1
- package/dist/internal/domain/site/entity/pager.d.ts +2 -0
- package/dist/internal/domain/site/entity/pager.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/pager.js +11 -0
- package/dist/internal/domain/site/entity/pager.js.map +1 -1
- package/dist/internal/domain/site/entity/site.d.ts +14 -8
- package/dist/internal/domain/site/entity/site.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/site.js +35 -8
- package/dist/internal/domain/site/entity/site.js.map +1 -1
- package/dist/internal/domain/site/entity/url.d.ts.map +1 -1
- package/dist/internal/domain/site/entity/url.js +3 -1
- package/dist/internal/domain/site/entity/url.js.map +1 -1
- package/dist/internal/domain/site/factory/navigation-factory.d.ts +4 -2
- package/dist/internal/domain/site/factory/navigation-factory.d.ts.map +1 -1
- package/dist/internal/domain/site/factory/navigation-factory.js +5 -4
- package/dist/internal/domain/site/factory/navigation-factory.js.map +1 -1
- package/dist/internal/domain/site/factory/site.d.ts.map +1 -1
- package/dist/internal/domain/site/factory/site.js +7 -9
- package/dist/internal/domain/site/factory/site.js.map +1 -1
- package/dist/internal/domain/site/type.d.ts +11 -0
- package/dist/internal/domain/site/type.d.ts.map +1 -1
- package/dist/internal/domain/site/valueobject/author.d.ts +14 -2
- package/dist/internal/domain/site/valueobject/author.d.ts.map +1 -1
- package/dist/internal/domain/site/valueobject/author.js +29 -4
- package/dist/internal/domain/site/valueobject/author.js.map +1 -1
- package/dist/internal/domain/site/valueobject/menu.d.ts +28 -115
- package/dist/internal/domain/site/valueobject/menu.d.ts.map +1 -1
- package/dist/internal/domain/site/valueobject/menu.js +44 -192
- package/dist/internal/domain/site/valueobject/menu.js.map +1 -1
- package/dist/internal/domain/site/valueobject/organization.d.ts +66 -0
- package/dist/internal/domain/site/valueobject/organization.d.ts.map +1 -0
- package/dist/internal/domain/site/valueobject/organization.js +115 -0
- package/dist/internal/domain/site/valueobject/organization.js.map +1 -0
- package/dist/internal/domain/site/valueobject/organization.test.d.ts +2 -0
- package/dist/internal/domain/site/valueobject/organization.test.d.ts.map +1 -0
- package/dist/internal/domain/site/valueobject/organization.test.js +78 -0
- package/dist/internal/domain/site/valueobject/organization.test.js.map +1 -0
- package/dist/internal/domain/template/vo/namespace.d.ts.map +1 -1
- package/dist/internal/domain/template/vo/namespace.js +8 -0
- package/dist/internal/domain/template/vo/namespace.js.map +1 -1
- package/dist/internal/domain/template/vo/registry.d.ts +18 -0
- package/dist/internal/domain/template/vo/registry.d.ts.map +1 -1
- package/dist/internal/domain/template/vo/registry.js +387 -9
- package/dist/internal/domain/template/vo/registry.js.map +1 -1
- package/dist/pkg/maps/scratch.d.ts +1 -0
- package/dist/pkg/maps/scratch.d.ts.map +1 -1
- package/dist/pkg/maps/scratch.js +4 -0
- package/dist/pkg/maps/scratch.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,16 +6,29 @@ const menu_1 = require("../valueobject/menu");
|
|
|
6
6
|
// Create domain-specific logger for menu building operations
|
|
7
7
|
const log = (0, log_1.getDomainLogger)('site', { component: 'menu-builder' });
|
|
8
8
|
/**
|
|
9
|
-
* MenuBuilder - Entity responsible for building menus from
|
|
10
|
-
*
|
|
9
|
+
* MenuBuilder - Entity responsible for building menus from frontmatter menu configurations
|
|
10
|
+
*
|
|
11
|
+
* This builder processes page frontmatter to extract menu configurations and builds
|
|
12
|
+
* hierarchical menu structures. It supports:
|
|
13
|
+
* - Multiple menu sections (nav, footer, etc.)
|
|
14
|
+
* - Menu merging across multiple files
|
|
15
|
+
* - Weight-based sorting
|
|
16
|
+
* - Smart URL generation:
|
|
17
|
+
* - Empty URLs: Uses page permalink via site.sitePage().Permalink
|
|
18
|
+
* - Non-empty URLs: Processed through site.getURL().relURL()
|
|
19
|
+
* - Disabled menu sections (menu: [] or menu: false)
|
|
11
20
|
*/
|
|
12
21
|
class MenuBuilder {
|
|
13
|
-
constructor(contentService) {
|
|
22
|
+
constructor(contentService, site) {
|
|
14
23
|
this.contentService = contentService;
|
|
24
|
+
this.site = site;
|
|
15
25
|
}
|
|
16
26
|
/**
|
|
17
|
-
* Build menus for a specific language
|
|
18
|
-
*
|
|
27
|
+
* Build menus for a specific language from frontmatter configurations
|
|
28
|
+
*
|
|
29
|
+
* Walks through all pages and extracts menu configurations from their frontmatter.
|
|
30
|
+
* Merges menu items from multiple files, handles weight-based sorting, and
|
|
31
|
+
* auto-generates URLs for empty URL fields.
|
|
19
32
|
*/
|
|
20
33
|
async buildMenusForLanguage(langIndex) {
|
|
21
34
|
const menuMap = new Map();
|
|
@@ -27,165 +40,309 @@ class MenuBuilder {
|
|
|
27
40
|
return this.convertToMenus(menuMap);
|
|
28
41
|
}
|
|
29
42
|
/**
|
|
30
|
-
* Process a single page and update menu structure
|
|
43
|
+
* Process a single page and update menu structure based on frontmatter menu configuration
|
|
31
44
|
*/
|
|
32
45
|
async processPage(page, menuMap) {
|
|
33
46
|
try {
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return;
|
|
47
|
+
// Get menu configuration from page meta
|
|
48
|
+
const menu = page.menu();
|
|
49
|
+
if (!menu) {
|
|
50
|
+
return; // No menu configuration, skip this page
|
|
39
51
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
52
|
+
const pageUrl = await this.generatePageUrl(page);
|
|
53
|
+
// Process each menu section defined in frontmatter
|
|
54
|
+
for (const [menuName, menuSection] of Object.entries(menu)) {
|
|
55
|
+
await this.processMenuSection(menuName, menuSection, pageUrl, page, menuMap);
|
|
44
56
|
}
|
|
45
|
-
// Build menu structure
|
|
46
|
-
this.buildMenuStructure(pathParts, urlPath, page, menuMap);
|
|
47
57
|
}
|
|
48
58
|
catch (error) {
|
|
49
59
|
log.error(`Error processing page for menu: ${error}`);
|
|
50
60
|
}
|
|
51
61
|
}
|
|
52
62
|
/**
|
|
53
|
-
*
|
|
63
|
+
* Process a menu section (nav, footer, etc.) from frontmatter
|
|
54
64
|
*/
|
|
55
|
-
|
|
56
|
-
//
|
|
57
|
-
if (
|
|
58
|
-
return
|
|
65
|
+
async processMenuSection(menuName, menuSection, pageUrl, page, menuMap) {
|
|
66
|
+
// Handle disabled menu sections (false or empty array)
|
|
67
|
+
if (menuSection === false || (Array.isArray(menuSection) && menuSection.length === 0)) {
|
|
68
|
+
return; // Skip this menu section
|
|
69
|
+
}
|
|
70
|
+
if (Array.isArray(menuSection)) {
|
|
71
|
+
// Direct menu items array (like nav: [...])
|
|
72
|
+
await this.processMenuItems(menuName, menuSection, pageUrl, page, menuMap);
|
|
73
|
+
}
|
|
74
|
+
else if (menuSection && typeof menuSection === 'object') {
|
|
75
|
+
// Menu section with subsections (like footer: { legal: [...], company: [...] })
|
|
76
|
+
let subsectionIndex = 0;
|
|
77
|
+
for (const [subsectionName, subsectionItems] of Object.entries(menuSection)) {
|
|
78
|
+
if (subsectionItems === false || (Array.isArray(subsectionItems) && subsectionItems.length === 0)) {
|
|
79
|
+
continue; // Skip disabled subsections
|
|
80
|
+
}
|
|
81
|
+
if (Array.isArray(subsectionItems)) {
|
|
82
|
+
const fullMenuName = `${menuName}.${subsectionName}`;
|
|
83
|
+
await this.processMenuItems(fullMenuName, subsectionItems, pageUrl, page, menuMap);
|
|
84
|
+
// Create a placeholder structure to track subsection order for footer menus
|
|
85
|
+
if (menuName === 'footer') {
|
|
86
|
+
const subsectionKey = `${fullMenuName}::__subsection__`;
|
|
87
|
+
if (!menuMap.has(subsectionKey)) {
|
|
88
|
+
menuMap.set(subsectionKey, {
|
|
89
|
+
title: subsectionName,
|
|
90
|
+
url: '',
|
|
91
|
+
children: new Map(),
|
|
92
|
+
weight: 1000,
|
|
93
|
+
level: 0,
|
|
94
|
+
menuName: fullMenuName,
|
|
95
|
+
order: subsectionIndex,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
subsectionIndex++;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
59
102
|
}
|
|
60
|
-
// Only process markdown files and directories
|
|
61
|
-
return path.endsWith('.md') || !path.includes('.');
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Parse path into meaningful parts for menu structure
|
|
65
|
-
*/
|
|
66
|
-
parsePathParts(path) {
|
|
67
|
-
// Remove leading slash and file extension
|
|
68
|
-
let cleanPath = path.replace(/^\/+/, '').replace(/\.md$/, '');
|
|
69
|
-
// Split by slash and filter empty parts
|
|
70
|
-
const parts = cleanPath.split('/').filter(part => part.length > 0);
|
|
71
|
-
return parts;
|
|
72
103
|
}
|
|
73
104
|
/**
|
|
74
|
-
*
|
|
105
|
+
* Process menu items array and merge into menu structure
|
|
75
106
|
*/
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
107
|
+
async processMenuItems(menuName, menuItems, pageUrl, page, menuMap) {
|
|
108
|
+
for (let index = 0; index < menuItems.length; index++) {
|
|
109
|
+
const item = menuItems[index];
|
|
110
|
+
if (!item || typeof item !== 'object')
|
|
111
|
+
continue;
|
|
112
|
+
// Validate required fields
|
|
113
|
+
if (!item.title || typeof item.title !== 'string')
|
|
114
|
+
continue;
|
|
115
|
+
// Handle URL - if empty, use current page URL; if not empty, process through site.getURL().relURL()
|
|
116
|
+
let itemUrl = item.url || '';
|
|
117
|
+
if (itemUrl === '') {
|
|
118
|
+
itemUrl = pageUrl;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
itemUrl = await this.processMenuItemUrl(itemUrl);
|
|
122
|
+
}
|
|
123
|
+
// Get weight for sorting
|
|
124
|
+
const weight = typeof item.weight === 'number' ? item.weight : 1000;
|
|
125
|
+
// Create menu structure key
|
|
126
|
+
const menuKey = `${menuName}::${item.title}`;
|
|
127
|
+
// Create or update menu structure
|
|
128
|
+
let menuStructure = menuMap.get(menuKey);
|
|
84
129
|
if (!menuStructure) {
|
|
85
130
|
menuStructure = {
|
|
86
|
-
title:
|
|
87
|
-
url:
|
|
88
|
-
isDir: !isLeaf || isIndex,
|
|
89
|
-
hasIndex: isIndex && pathParts[i] === 'index',
|
|
131
|
+
title: item.title,
|
|
132
|
+
url: itemUrl,
|
|
90
133
|
children: new Map(),
|
|
91
|
-
weight:
|
|
92
|
-
level:
|
|
134
|
+
weight: weight,
|
|
135
|
+
level: 0,
|
|
136
|
+
menuName: menuName || undefined, // Track which menu this belongs to
|
|
137
|
+
order: index, // Track original order
|
|
93
138
|
};
|
|
94
|
-
menuMap.set(
|
|
139
|
+
menuMap.set(menuKey, menuStructure);
|
|
95
140
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
menuStructure.
|
|
99
|
-
|
|
100
|
-
menuStructure.
|
|
101
|
-
menuStructure.isDir = false; // index.md makes it a leaf
|
|
141
|
+
else {
|
|
142
|
+
// Merge with existing structure - keep the one with lower weight
|
|
143
|
+
if (weight < menuStructure.weight) {
|
|
144
|
+
menuStructure.weight = weight;
|
|
145
|
+
menuStructure.url = itemUrl;
|
|
102
146
|
}
|
|
103
147
|
}
|
|
104
|
-
//
|
|
105
|
-
if (
|
|
106
|
-
|
|
107
|
-
const parentStructure = menuMap.get(parentPath);
|
|
108
|
-
if (parentStructure) {
|
|
109
|
-
parentStructure.children.set(currentPath, menuStructure);
|
|
110
|
-
parentStructure.isDir = true; // Parent is definitely a directory
|
|
111
|
-
}
|
|
148
|
+
// Process children if present
|
|
149
|
+
if (Array.isArray(item.children)) {
|
|
150
|
+
await this.processChildrenItems(menuKey, item.children, pageUrl, page, menuMap, menuStructure);
|
|
112
151
|
}
|
|
113
152
|
}
|
|
114
153
|
}
|
|
115
154
|
/**
|
|
116
|
-
*
|
|
155
|
+
* Process children menu items
|
|
117
156
|
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
.
|
|
126
|
-
|
|
157
|
+
async processChildrenItems(parentKey, children, pageUrl, page, menuMap, parentStructure) {
|
|
158
|
+
for (let childIndex = 0; childIndex < children.length; childIndex++) {
|
|
159
|
+
const child = children[childIndex];
|
|
160
|
+
if (!child || typeof child !== 'object')
|
|
161
|
+
continue;
|
|
162
|
+
if (!child.title || typeof child.title !== 'string')
|
|
163
|
+
continue;
|
|
164
|
+
let childUrl = child.url || '';
|
|
165
|
+
if (childUrl === '') {
|
|
166
|
+
childUrl = pageUrl;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
childUrl = await this.processMenuItemUrl(childUrl);
|
|
170
|
+
}
|
|
171
|
+
const weight = typeof child.weight === 'number' ? child.weight : 1000;
|
|
172
|
+
const childKey = `${parentKey}::${child.title}`;
|
|
173
|
+
const childStructure = {
|
|
174
|
+
title: child.title,
|
|
175
|
+
url: childUrl,
|
|
176
|
+
children: new Map(),
|
|
177
|
+
weight: weight,
|
|
178
|
+
level: parentStructure.level + 1,
|
|
179
|
+
menuName: parentStructure.menuName || undefined,
|
|
180
|
+
order: childIndex, // Track original order
|
|
181
|
+
};
|
|
182
|
+
menuMap.set(childKey, childStructure);
|
|
183
|
+
parentStructure.children.set(childKey, childStructure);
|
|
184
|
+
// Recursively process grandchildren
|
|
185
|
+
if (Array.isArray(child.children)) {
|
|
186
|
+
await this.processChildrenItems(childKey, child.children, pageUrl, page, menuMap, childStructure);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Generate page URL using site's sitePage method to get permalink
|
|
192
|
+
*/
|
|
193
|
+
async generatePageUrl(page) {
|
|
194
|
+
try {
|
|
195
|
+
// Convert ContentPage to SitePage through site
|
|
196
|
+
const sitePage = await this.site.sitePage(page);
|
|
197
|
+
// Get the permalink from the site page
|
|
198
|
+
return sitePage.RelPermalink;
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
log.error(`Error generating page URL for ${page.path()}: ${error}`);
|
|
202
|
+
// Fallback to simple path-based URL generation
|
|
203
|
+
return this.fallbackUrlFromPath(page.path());
|
|
204
|
+
}
|
|
127
205
|
}
|
|
128
206
|
/**
|
|
129
|
-
*
|
|
207
|
+
* Process menu item URL through site.getURL().relURL()
|
|
130
208
|
*/
|
|
131
|
-
|
|
132
|
-
|
|
209
|
+
async processMenuItemUrl(url) {
|
|
210
|
+
try {
|
|
211
|
+
// Use site's URL processing for non-empty URLs
|
|
212
|
+
return this.site.getURL().relURL(url);
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
log.error(`Error processing menu item URL ${url}: ${error}`);
|
|
216
|
+
// Return original URL as fallback
|
|
217
|
+
return url;
|
|
218
|
+
}
|
|
133
219
|
}
|
|
134
220
|
/**
|
|
135
|
-
*
|
|
221
|
+
* Fallback URL generation from path (used when site page conversion fails)
|
|
136
222
|
*/
|
|
137
|
-
|
|
138
|
-
//
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
223
|
+
fallbackUrlFromPath(path) {
|
|
224
|
+
// Remove file extension and ensure proper URL format
|
|
225
|
+
let url = path.replace(/\.md$/, '');
|
|
226
|
+
if (!url.startsWith('/')) {
|
|
227
|
+
url = '/' + url;
|
|
228
|
+
}
|
|
229
|
+
if (!url.endsWith('/') && !url.includes('.')) {
|
|
230
|
+
url = url + '/';
|
|
231
|
+
}
|
|
232
|
+
return url;
|
|
145
233
|
}
|
|
146
234
|
/**
|
|
147
|
-
* Convert MenuStructure map to Menus
|
|
235
|
+
* Convert MenuStructure map to Menus, grouped by menu name
|
|
148
236
|
*/
|
|
149
237
|
convertToMenus(menuMap) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const
|
|
153
|
-
|
|
238
|
+
// Group structures by menu name
|
|
239
|
+
const menuGroups = new Map();
|
|
240
|
+
for (const [key, structure] of menuMap.entries()) {
|
|
241
|
+
// Skip placeholder structures used for tracking order
|
|
242
|
+
if (key.includes('::__subsection__')) {
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
// Only include root level items (level 0) in the final menus
|
|
154
246
|
if (structure.level === 0) {
|
|
155
|
-
|
|
247
|
+
const menuName = structure.menuName || 'main';
|
|
248
|
+
if (!menuGroups.has(menuName)) {
|
|
249
|
+
menuGroups.set(menuName, []);
|
|
250
|
+
}
|
|
251
|
+
menuGroups.get(menuName).push(structure);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// Build nav and footer menus
|
|
255
|
+
const navItems = this.buildMenuItems(menuGroups.get('nav') || [], menuMap);
|
|
256
|
+
const footerItems = [];
|
|
257
|
+
// Build footer menus with proper hierarchy
|
|
258
|
+
const footerSubMenus = new Map();
|
|
259
|
+
const footerSubMenuOrder = new Map();
|
|
260
|
+
for (const [menuName, structures] of menuGroups.entries()) {
|
|
261
|
+
if (menuName.startsWith('footer.')) {
|
|
262
|
+
const subsectionName = menuName.substring('footer.'.length); // Extract subsection name (product, resources, community)
|
|
263
|
+
const items = this.buildMenuItems(structures, menuMap, false); // Don't sort footer items
|
|
264
|
+
footerSubMenus.set(subsectionName, items);
|
|
265
|
+
// Get the order from the placeholder structure
|
|
266
|
+
const subsectionKey = `${menuName}::__subsection__`;
|
|
267
|
+
const placeholderStructure = menuMap.get(subsectionKey);
|
|
268
|
+
if (placeholderStructure) {
|
|
269
|
+
footerSubMenuOrder.set(subsectionName, placeholderStructure.order);
|
|
270
|
+
}
|
|
156
271
|
}
|
|
157
272
|
}
|
|
158
|
-
//
|
|
159
|
-
|
|
160
|
-
const
|
|
161
|
-
|
|
273
|
+
// Create top-level footer menu items for each subsection in original order
|
|
274
|
+
const sortedFooterSubMenus = Array.from(footerSubMenus.entries()).sort((a, b) => {
|
|
275
|
+
const orderA = footerSubMenuOrder.get(a[0]) || 0;
|
|
276
|
+
const orderB = footerSubMenuOrder.get(b[0]) || 0;
|
|
277
|
+
return orderA - orderB;
|
|
278
|
+
});
|
|
279
|
+
for (let i = 0; i < sortedFooterSubMenus.length; i++) {
|
|
280
|
+
const [subsectionName, items] = sortedFooterSubMenus[i];
|
|
281
|
+
if (items.length > 0) {
|
|
282
|
+
const topLevelMenu = new menu_1.Menu({
|
|
283
|
+
title: this.capitalizeFirstLetter(subsectionName),
|
|
284
|
+
url: '', // Top-level footer menus typically don't have URLs
|
|
285
|
+
children: items,
|
|
286
|
+
weight: i + 1, // Use index + 1 as weight to preserve order
|
|
287
|
+
identifier: `footer-${subsectionName}`,
|
|
288
|
+
});
|
|
289
|
+
footerItems.push(topLevelMenu);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
const options = {};
|
|
293
|
+
if (navItems.length > 0) {
|
|
294
|
+
options.nav = navItems;
|
|
162
295
|
}
|
|
163
|
-
|
|
296
|
+
if (footerItems.length > 0) {
|
|
297
|
+
options.footer = footerItems;
|
|
298
|
+
}
|
|
299
|
+
return new menu_1.Menus(options);
|
|
164
300
|
}
|
|
165
301
|
/**
|
|
166
|
-
*
|
|
302
|
+
* Capitalize first letter of a string
|
|
167
303
|
*/
|
|
168
|
-
|
|
169
|
-
|
|
304
|
+
capitalizeFirstLetter(str) {
|
|
305
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Recursively build Menu items from MenuStructure
|
|
309
|
+
*/
|
|
310
|
+
buildMenuItems(structures, menuMap, shouldSort = true) {
|
|
311
|
+
const items = [];
|
|
170
312
|
for (const structure of structures) {
|
|
171
313
|
// Build children
|
|
172
314
|
const childStructures = Array.from(structure.children.values());
|
|
173
315
|
const children = childStructures.length > 0
|
|
174
|
-
? this.
|
|
316
|
+
? this.buildMenuItems(childStructures, menuMap, shouldSort)
|
|
175
317
|
: [];
|
|
176
|
-
// Create menu
|
|
177
|
-
const
|
|
318
|
+
// Create menu item
|
|
319
|
+
const item = new menu_1.Menu({
|
|
178
320
|
title: structure.title,
|
|
179
321
|
url: structure.url,
|
|
180
|
-
isDir: structure.isDir,
|
|
181
|
-
hasIndex: structure.hasIndex,
|
|
182
322
|
children: children,
|
|
183
323
|
weight: structure.weight,
|
|
184
324
|
identifier: structure.url,
|
|
185
325
|
});
|
|
186
|
-
|
|
326
|
+
items.push(item);
|
|
187
327
|
}
|
|
188
|
-
|
|
328
|
+
// Sort by weight and title only if shouldSort is true
|
|
329
|
+
if (shouldSort) {
|
|
330
|
+
return items.sort((a, b) => {
|
|
331
|
+
if (a.weight() !== b.weight()) {
|
|
332
|
+
return a.weight() - b.weight();
|
|
333
|
+
}
|
|
334
|
+
return a.title().localeCompare(b.title());
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
// Return items in original order (sorted by order field)
|
|
338
|
+
return items.sort((a, b) => {
|
|
339
|
+
// Find the corresponding structures to get their order
|
|
340
|
+
const structureA = structures.find(s => s.title === a.title());
|
|
341
|
+
const structureB = structures.find(s => s.title === b.title());
|
|
342
|
+
const orderA = structureA?.order || 0;
|
|
343
|
+
const orderB = structureB?.order || 0;
|
|
344
|
+
return orderA - orderB;
|
|
345
|
+
});
|
|
189
346
|
}
|
|
190
347
|
}
|
|
191
348
|
exports.MenuBuilder = MenuBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-builder.js","sourceRoot":"","sources":["../../../../../internal/domain/site/entity/menu-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu-builder.js","sourceRoot":"","sources":["../../../../../internal/domain/site/entity/menu-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Page as ContentPage, PageGroups, PageMeta, PageOutput, Pager, PageSource, Position } from '../../../domain/content';
|
|
1
|
+
import { Page as ContentPage, PageGroups, PageMeta, PageOutput, Pager, Pages, PageSource, Position } from '../../../domain/content';
|
|
2
2
|
import { LanguageService, Template } from '../type';
|
|
3
3
|
import { Site } from './site';
|
|
4
4
|
import { Publisher } from './publisher';
|
|
@@ -67,6 +67,7 @@ export declare class Page implements ContentPage, PageMeta {
|
|
|
67
67
|
title(): string;
|
|
68
68
|
kind(): string;
|
|
69
69
|
scratch(): Scratch;
|
|
70
|
+
get Scratch(): Scratch;
|
|
70
71
|
IsAncestor(other: Page): boolean;
|
|
71
72
|
get Title(): string;
|
|
72
73
|
get Section(): string;
|
|
@@ -74,8 +75,12 @@ export declare class Page implements ContentPage, PageMeta {
|
|
|
74
75
|
get IsSection(): boolean;
|
|
75
76
|
get IsPage(): boolean;
|
|
76
77
|
get Content(): Promise<any>;
|
|
78
|
+
Summary(): Promise<string>;
|
|
79
|
+
ReadingTime(): Promise<number>;
|
|
80
|
+
WordCount(): Promise<number>;
|
|
77
81
|
get Description(): string;
|
|
78
82
|
get Date(): Date;
|
|
83
|
+
get LocalDate(): String;
|
|
79
84
|
get RelPermalink(): string;
|
|
80
85
|
get GitInfo(): {};
|
|
81
86
|
get File(): {
|
|
@@ -83,6 +88,7 @@ export declare class Page implements ContentPage, PageMeta {
|
|
|
83
88
|
Dir: string;
|
|
84
89
|
};
|
|
85
90
|
isHome(): boolean;
|
|
91
|
+
get IsHome(): boolean;
|
|
86
92
|
isPage(): boolean;
|
|
87
93
|
isSection(): boolean;
|
|
88
94
|
isAncestor(other: ContentPage): boolean;
|
|
@@ -92,34 +98,40 @@ export declare class Page implements ContentPage, PageMeta {
|
|
|
92
98
|
output(): PageOutput;
|
|
93
99
|
pageOutputs(): PageOutput[];
|
|
94
100
|
truncated(): boolean;
|
|
101
|
+
get Truncated(): boolean;
|
|
95
102
|
parent(): ContentPage | null;
|
|
96
|
-
pages(): Promise<
|
|
103
|
+
pages(): Promise<Pages>;
|
|
97
104
|
isStale(): boolean;
|
|
98
105
|
clearStale(): void;
|
|
99
106
|
prevInSection(): ContentPage | null;
|
|
100
107
|
nextInSection(): ContentPage | null;
|
|
101
|
-
sections(langIndex: number):
|
|
102
|
-
regularPages(): Promise<
|
|
103
|
-
regularPagesRecursive():
|
|
104
|
-
terms(langIndex: number, taxonomy: string): Promise<
|
|
108
|
+
sections(langIndex: number): Pages;
|
|
109
|
+
regularPages(): Promise<Pages>;
|
|
110
|
+
regularPagesRecursive(): Pages;
|
|
111
|
+
terms(langIndex: number, taxonomy: string): Promise<Pages | null>;
|
|
105
112
|
isTranslated(): Promise<boolean>;
|
|
106
|
-
translations(): Promise<
|
|
113
|
+
translations(): Promise<Pages>;
|
|
107
114
|
rawContent(): string;
|
|
108
115
|
description(): string;
|
|
109
116
|
params(): Record<string, any>;
|
|
117
|
+
pageBaseUrl(): string;
|
|
110
118
|
pageWeight(): number;
|
|
111
119
|
pageDate(): Date;
|
|
112
120
|
publishDate(): Date;
|
|
121
|
+
get PublishDate(): Date;
|
|
113
122
|
relatedKeywords(cfg: any): Promise<import("../../../domain/content").Keyword[]>;
|
|
114
123
|
shouldList(global: boolean): boolean;
|
|
115
124
|
shouldListAny(): boolean;
|
|
116
125
|
noLink(): boolean;
|
|
126
|
+
organization(): import('../../../domain/content').Organization | undefined;
|
|
127
|
+
author(): import('../../../domain/content').Author | undefined;
|
|
128
|
+
menu(): import('../../../domain/content').Menu | undefined;
|
|
117
129
|
current(): Promise<Pager>;
|
|
118
130
|
setCurrent(current: Pager): void;
|
|
119
131
|
posOffset(offset: number): Promise<Position>;
|
|
120
132
|
paginator(): Promise<Pager>;
|
|
121
133
|
paginate(groups: PageGroups): Promise<Pager>;
|
|
122
|
-
|
|
134
|
+
paginate(pages: Pages): Promise<Pager>;
|
|
123
135
|
get Plain(): string;
|
|
124
136
|
get TableOfContents(): string;
|
|
125
137
|
get Params(): Record<string, any>;
|
|
@@ -136,6 +148,7 @@ export declare class Page implements ContentPage, PageMeta {
|
|
|
136
148
|
};
|
|
137
149
|
get IsTranslated(): Promise<boolean>;
|
|
138
150
|
Paginator(): Promise<SitePager | null>;
|
|
151
|
+
Paginate(pages: Page[]): Promise<SitePager | null>;
|
|
139
152
|
setupCurrentPaginator(): Promise<void>;
|
|
140
153
|
get Language(): {
|
|
141
154
|
Lang: string;
|
|
@@ -161,6 +174,7 @@ export declare class Page implements ContentPage, PageMeta {
|
|
|
161
174
|
Pages(): Promise<Page[]>;
|
|
162
175
|
get Page(): ContentPage;
|
|
163
176
|
get Kind(): string;
|
|
177
|
+
get Type(): string;
|
|
164
178
|
get Parent(): Page | null;
|
|
165
179
|
/**
|
|
166
180
|
* Get site pages method - following Go's Page.Pages() pattern
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/site/entity/page.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,IAAI,WAAW,EACnB,UAAU,EACV,QAAQ,EACR,UAAU,EACV,KAAK,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/site/entity/page.ts"],"names":[],"mappings":"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"}
|