@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.
Files changed (134) hide show
  1. package/README.md +10 -0
  2. package/dist/internal/application/ssg.d.ts.map +1 -1
  3. package/dist/internal/application/ssg.js +12 -0
  4. package/dist/internal/application/ssg.js.map +1 -1
  5. package/dist/internal/domain/config/entity/config.d.ts +8 -2
  6. package/dist/internal/domain/config/entity/config.d.ts.map +1 -1
  7. package/dist/internal/domain/config/entity/config.js +10 -3
  8. package/dist/internal/domain/config/entity/config.js.map +1 -1
  9. package/dist/internal/domain/config/entity/social.d.ts +66 -0
  10. package/dist/internal/domain/config/entity/social.d.ts.map +1 -0
  11. package/dist/internal/domain/config/entity/social.js +126 -0
  12. package/dist/internal/domain/config/entity/social.js.map +1 -0
  13. package/dist/internal/domain/config/factory/config.d.ts.map +1 -1
  14. package/dist/internal/domain/config/factory/config.js +2 -1
  15. package/dist/internal/domain/config/factory/config.js.map +1 -1
  16. package/dist/internal/domain/config/index.d.ts +2 -0
  17. package/dist/internal/domain/config/index.d.ts.map +1 -1
  18. package/dist/internal/domain/config/index.js +5 -1
  19. package/dist/internal/domain/config/index.js.map +1 -1
  20. package/dist/internal/domain/config/tests/entity-config.test.js +16 -12
  21. package/dist/internal/domain/config/tests/entity-config.test.js.map +1 -1
  22. package/dist/internal/domain/config/tests/social.test.d.ts +2 -0
  23. package/dist/internal/domain/config/tests/social.test.d.ts.map +1 -0
  24. package/dist/internal/domain/config/tests/social.test.js +164 -0
  25. package/dist/internal/domain/config/tests/social.test.js.map +1 -0
  26. package/dist/internal/domain/config/type.d.ts +22 -0
  27. package/dist/internal/domain/config/type.d.ts.map +1 -1
  28. package/dist/internal/domain/config/type.js.map +1 -1
  29. package/dist/internal/domain/config/vo/root.d.ts.map +1 -1
  30. package/dist/internal/domain/config/vo/root.js +2 -1
  31. package/dist/internal/domain/config/vo/root.js.map +1 -1
  32. package/dist/internal/domain/config/vo/social.d.ts +23 -0
  33. package/dist/internal/domain/config/vo/social.d.ts.map +1 -0
  34. package/dist/internal/domain/config/vo/social.js +212 -0
  35. package/dist/internal/domain/config/vo/social.js.map +1 -0
  36. package/dist/internal/domain/content/entity/page.d.ts +7 -1
  37. package/dist/internal/domain/content/entity/page.d.ts.map +1 -1
  38. package/dist/internal/domain/content/entity/page.js +36 -3
  39. package/dist/internal/domain/content/entity/page.js.map +1 -1
  40. package/dist/internal/domain/content/entity/pagebuilder.d.ts +3 -2
  41. package/dist/internal/domain/content/entity/pagebuilder.d.ts.map +1 -1
  42. package/dist/internal/domain/content/entity/pagebuilder.js +16 -5
  43. package/dist/internal/domain/content/entity/pagebuilder.js.map +1 -1
  44. package/dist/internal/domain/content/entity/pagemeta.d.ts +10 -2
  45. package/dist/internal/domain/content/entity/pagemeta.d.ts.map +1 -1
  46. package/dist/internal/domain/content/entity/pagemeta.js +17 -1
  47. package/dist/internal/domain/content/entity/pagemeta.js.map +1 -1
  48. package/dist/internal/domain/content/entity/paginator.d.ts +6 -0
  49. package/dist/internal/domain/content/entity/paginator.d.ts.map +1 -1
  50. package/dist/internal/domain/content/entity/paginator.js +26 -2
  51. package/dist/internal/domain/content/entity/paginator.js.map +1 -1
  52. package/dist/internal/domain/content/entity/section.js +5 -5
  53. package/dist/internal/domain/content/entity/section.js.map +1 -1
  54. package/dist/internal/domain/content/factory/hub.d.ts.map +1 -1
  55. package/dist/internal/domain/content/factory/hub.js +2 -1
  56. package/dist/internal/domain/content/factory/hub.js.map +1 -1
  57. package/dist/internal/domain/content/type.d.ts +59 -1
  58. package/dist/internal/domain/content/type.d.ts.map +1 -1
  59. package/dist/internal/domain/content/type.js.map +1 -1
  60. package/dist/internal/domain/content/vo/frontmatter.d.ts +29 -1
  61. package/dist/internal/domain/content/vo/frontmatter.d.ts.map +1 -1
  62. package/dist/internal/domain/content/vo/frontmatter.js +242 -1
  63. package/dist/internal/domain/content/vo/frontmatter.js.map +1 -1
  64. package/dist/internal/domain/markdown/entity/markdown.d.ts.map +1 -1
  65. package/dist/internal/domain/markdown/entity/markdown.js +5 -4
  66. package/dist/internal/domain/markdown/entity/markdown.js.map +1 -1
  67. package/dist/internal/domain/markdown/vo/content.d.ts +3 -6
  68. package/dist/internal/domain/markdown/vo/content.d.ts.map +1 -1
  69. package/dist/internal/domain/markdown/vo/content.js +32 -31
  70. package/dist/internal/domain/markdown/vo/content.js.map +1 -1
  71. package/dist/internal/domain/module/entity/module.d.ts.map +1 -1
  72. package/dist/internal/domain/module/entity/module.js +10 -6
  73. package/dist/internal/domain/module/entity/module.js.map +1 -1
  74. package/dist/internal/domain/module/vo/themes.test.js +12 -8
  75. package/dist/internal/domain/module/vo/themes.test.js.map +1 -1
  76. package/dist/internal/domain/site/entity/language.d.ts.map +1 -1
  77. package/dist/internal/domain/site/entity/language.js +2 -0
  78. package/dist/internal/domain/site/entity/language.js.map +1 -1
  79. package/dist/internal/domain/site/entity/menu-builder.d.ts +39 -21
  80. package/dist/internal/domain/site/entity/menu-builder.d.ts.map +1 -1
  81. package/dist/internal/domain/site/entity/menu-builder.js +264 -107
  82. package/dist/internal/domain/site/entity/menu-builder.js.map +1 -1
  83. package/dist/internal/domain/site/entity/page.d.ts +22 -8
  84. package/dist/internal/domain/site/entity/page.d.ts.map +1 -1
  85. package/dist/internal/domain/site/entity/page.js +67 -6
  86. package/dist/internal/domain/site/entity/page.js.map +1 -1
  87. package/dist/internal/domain/site/entity/pager.d.ts +2 -0
  88. package/dist/internal/domain/site/entity/pager.d.ts.map +1 -1
  89. package/dist/internal/domain/site/entity/pager.js +11 -0
  90. package/dist/internal/domain/site/entity/pager.js.map +1 -1
  91. package/dist/internal/domain/site/entity/site.d.ts +14 -8
  92. package/dist/internal/domain/site/entity/site.d.ts.map +1 -1
  93. package/dist/internal/domain/site/entity/site.js +35 -8
  94. package/dist/internal/domain/site/entity/site.js.map +1 -1
  95. package/dist/internal/domain/site/entity/url.d.ts.map +1 -1
  96. package/dist/internal/domain/site/entity/url.js +3 -1
  97. package/dist/internal/domain/site/entity/url.js.map +1 -1
  98. package/dist/internal/domain/site/factory/navigation-factory.d.ts +4 -2
  99. package/dist/internal/domain/site/factory/navigation-factory.d.ts.map +1 -1
  100. package/dist/internal/domain/site/factory/navigation-factory.js +5 -4
  101. package/dist/internal/domain/site/factory/navigation-factory.js.map +1 -1
  102. package/dist/internal/domain/site/factory/site.d.ts.map +1 -1
  103. package/dist/internal/domain/site/factory/site.js +7 -9
  104. package/dist/internal/domain/site/factory/site.js.map +1 -1
  105. package/dist/internal/domain/site/type.d.ts +11 -0
  106. package/dist/internal/domain/site/type.d.ts.map +1 -1
  107. package/dist/internal/domain/site/valueobject/author.d.ts +14 -2
  108. package/dist/internal/domain/site/valueobject/author.d.ts.map +1 -1
  109. package/dist/internal/domain/site/valueobject/author.js +29 -4
  110. package/dist/internal/domain/site/valueobject/author.js.map +1 -1
  111. package/dist/internal/domain/site/valueobject/menu.d.ts +28 -115
  112. package/dist/internal/domain/site/valueobject/menu.d.ts.map +1 -1
  113. package/dist/internal/domain/site/valueobject/menu.js +44 -192
  114. package/dist/internal/domain/site/valueobject/menu.js.map +1 -1
  115. package/dist/internal/domain/site/valueobject/organization.d.ts +66 -0
  116. package/dist/internal/domain/site/valueobject/organization.d.ts.map +1 -0
  117. package/dist/internal/domain/site/valueobject/organization.js +115 -0
  118. package/dist/internal/domain/site/valueobject/organization.js.map +1 -0
  119. package/dist/internal/domain/site/valueobject/organization.test.d.ts +2 -0
  120. package/dist/internal/domain/site/valueobject/organization.test.d.ts.map +1 -0
  121. package/dist/internal/domain/site/valueobject/organization.test.js +78 -0
  122. package/dist/internal/domain/site/valueobject/organization.test.js.map +1 -0
  123. package/dist/internal/domain/template/vo/namespace.d.ts.map +1 -1
  124. package/dist/internal/domain/template/vo/namespace.js +8 -0
  125. package/dist/internal/domain/template/vo/namespace.js.map +1 -1
  126. package/dist/internal/domain/template/vo/registry.d.ts +18 -0
  127. package/dist/internal/domain/template/vo/registry.d.ts.map +1 -1
  128. package/dist/internal/domain/template/vo/registry.js +387 -9
  129. package/dist/internal/domain/template/vo/registry.js.map +1 -1
  130. package/dist/pkg/maps/scratch.d.ts +1 -0
  131. package/dist/pkg/maps/scratch.d.ts.map +1 -1
  132. package/dist/pkg/maps/scratch.js +4 -0
  133. package/dist/pkg/maps/scratch.js.map +1 -1
  134. 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 content directory structure
10
- * Implements the logic described in menu.md
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
- * Walks through pages and builds hierarchical menu structure
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
- const pagePath = page.path();
35
- const urlPath = pagePath; // Use path directly as URL path
36
- // Skip if not a valid menu path
37
- if (!this.isValidMenuPath(pagePath)) {
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
- // Parse path components
41
- const pathParts = this.parsePathParts(pagePath);
42
- if (pathParts.length === 0) {
43
- return;
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
- * Check if path is valid for menu generation
63
+ * Process a menu section (nav, footer, etc.) from frontmatter
54
64
  */
55
- isValidMenuPath(path) {
56
- // Skip hidden files, system files, etc.
57
- if (path.startsWith('.') || path.includes('/.')) {
58
- return false;
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
- * Build hierarchical menu structure
105
+ * Process menu items array and merge into menu structure
75
106
  */
76
- buildMenuStructure(pathParts, urlPath, page, menuMap) {
77
- // Process each level of the path
78
- for (let i = 0; i < pathParts.length; i++) {
79
- const currentPath = pathParts.slice(0, i + 1).join('/');
80
- const isLeaf = i === pathParts.length - 1;
81
- const isIndex = pathParts[i] === 'index' || pathParts[i] === '_index';
82
- // Get or create menu structure
83
- let menuStructure = menuMap.get(currentPath);
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: this.formatTitle(pathParts[i]),
87
- url: this.buildUrl(pathParts.slice(0, i + 1)),
88
- isDir: !isLeaf || isIndex,
89
- hasIndex: isIndex && pathParts[i] === 'index',
131
+ title: item.title,
132
+ url: itemUrl,
90
133
  children: new Map(),
91
- weight: this.calculateWeight(pathParts[i]),
92
- level: i,
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(currentPath, menuStructure);
139
+ menuMap.set(menuKey, menuStructure);
95
140
  }
96
- // Update properties based on page type
97
- if (isLeaf) {
98
- menuStructure.url = urlPath;
99
- if (pathParts[i] === 'index') {
100
- menuStructure.hasIndex = true;
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
- // Add to parent if not root level
105
- if (i > 0) {
106
- const parentPath = pathParts.slice(0, i).join('/');
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
- * Format directory/file name into menu title
155
+ * Process children menu items
117
156
  */
118
- formatTitle(name) {
119
- // Skip formatting for index files
120
- if (name === 'index' || name === '_index') {
121
- return name;
122
- }
123
- // Convert kebab-case and snake_case to Title Case
124
- return name
125
- .replace(/[-_]/g, ' ')
126
- .replace(/\b\w/g, letter => letter.toUpperCase());
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
- * Build URL from path parts
207
+ * Process menu item URL through site.getURL().relURL()
130
208
  */
131
- buildUrl(pathParts) {
132
- return '/' + pathParts.join('/') + '/';
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
- * Calculate weight for sorting (lower weight = higher priority)
221
+ * Fallback URL generation from path (used when site page conversion fails)
136
222
  */
137
- calculateWeight(name) {
138
- // Special handling for index files
139
- if (name === 'index')
140
- return 0;
141
- if (name === '_index')
142
- return 1;
143
- // Default weight based on alphabetical order
144
- return name.charCodeAt(0);
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
- const menus = new Map();
151
- // Find root level entries (no parent)
152
- const rootEntries = [];
153
- for (const [path, structure] of menuMap.entries()) {
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
- rootEntries.push(structure);
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
- // Build main menu from root entries
159
- if (rootEntries.length > 0) {
160
- const mainMenu = this.buildMenuFromStructures(rootEntries, menuMap);
161
- menus.set('main', mainMenu);
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
- return new menu_1.Menus(menus);
296
+ if (footerItems.length > 0) {
297
+ options.footer = footerItems;
298
+ }
299
+ return new menu_1.Menus(options);
164
300
  }
165
301
  /**
166
- * Recursively build Menu from MenuStructure
302
+ * Capitalize first letter of a string
167
303
  */
168
- buildMenuFromStructures(structures, menuMap) {
169
- const entries = [];
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.buildMenuFromStructures(childStructures, menuMap).entries()
316
+ ? this.buildMenuItems(childStructures, menuMap, shouldSort)
175
317
  : [];
176
- // Create menu entry
177
- const entry = new menu_1.MenuEntry({
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
- entries.push(entry);
326
+ items.push(item);
187
327
  }
188
- return new menu_1.Menu(entries).sortMenu();
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<import("../../../domain/content").Pages>;
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): import("../../../domain/content").Pages;
102
- regularPages(): Promise<import("../../../domain/content").Pages>;
103
- regularPagesRecursive(): import("../../../domain/content").Pages;
104
- terms(langIndex: number, taxonomy: string): Promise<import("../../../domain/content").Pages | null>;
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<import("../../../domain/content").Pages>;
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
- Summary(): Promise<string>;
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":"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"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/site/entity/page.ts"],"names":[],"mappings":"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"}