(html)
| 38 | // Reorder the main content sections (Classes and Interfaces) |
| 39 | |
| 40 | function 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 |
no test coverage detected