MCPcopy Index your code
hub / github.com/gridstack/gridstack.js / reorderMainContent

Function reorderMainContent

scripts/reorder-html-docs.js:40–130  ·  view source on GitHub ↗
(html)

Source from the content-addressed store, hash-verified

38// Reorder the main content sections (Classes and Interfaces)
39
40function reorderMainContent(html) {
41 // Reorder Classes section
42 const classesRegex = /<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"[^>]*>[\s\S]*?<h2>Classes<\/h2><\/summary><dl class="tsd-member-summaries">([\s\S]*?)<\/dl><\/details>/;
43 const classesMatch = html.match(classesRegex);
44
45 if (classesMatch) {
46 const classesContent = classesMatch[1];
47
48 // Extract individual class items
49 const classItemRegex = /<dt class="tsd-member-summary"[^>]*>[\s\S]*?<\/dt><dd class="tsd-member-summary"><\/dd>/g;
50 const classItems = [];
51 let match;
52
53 while ((match = classItemRegex.exec(classesContent)) !== null) {
54 const item = match[0];
55 // Extract class name
56 const nameMatch = item.match(/<a href="[^"]*">([^<]+)<\/a>/);
57 if (nameMatch) {
58 classItems.push({
59 name: nameMatch[1],
60 content: item
61 });
62 }
63 }
64
65 // Define priority order for classes
66 const classPriorityOrder = ['GridStack', 'GridStackEngine', 'Utils'];
67
68 // Separate priority classes from others
69 const priorityClasses = [];
70 const otherClasses = [];
71
72 classItems.forEach(item => {
73 if (classPriorityOrder.includes(item.name)) {
74 priorityClasses.push(item);
75 } else {
76 otherClasses.push(item);
77 }
78 });
79
80 // Sort priority classes
81 priorityClasses.sort((a, b) => {
82 const aIndex = classPriorityOrder.indexOf(a.name);
83 const bIndex = classPriorityOrder.indexOf(b.name);
84 return aIndex - bIndex;
85 });
86
87 // Create new classes content
88 const reorderedClasses = [...priorityClasses, ...otherClasses];
89 const newClassesContent = reorderedClasses.map(item => item.content).join('');
90
91 html = html.replace(classesMatch[0], classesMatch[0].replace(classesContent, newClassesContent));
92 }
93
94 // Reorder Interfaces section to prioritize GridStackOptions
95 const interfacesRegex = /<details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Interfaces"[^>]*>[\s\S]*?<h2>Interfaces<\/h2><\/summary><dl class="tsd-member-summaries">([\s\S]*?)<\/dl><\/details>/;
96 const interfacesMatch = html.match(interfacesRegex);
97

Callers 1

Calls 2

sortMethod · 0.80
findMethod · 0.80

Tested by

no test coverage detected