Skip to content

Commit 67cfb85

Browse files
Update buildContent.mjs
Co-Authored-By: Aviv Keller <[email protected]>
1 parent 555a61e commit 67cfb85

File tree

1 file changed

+30
-19
lines changed

1 file changed

+30
-19
lines changed

src/generators/jsx-ast/utils/buildContent.mjs

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -187,36 +187,47 @@ export const transformHeadingNode = (entry, remark, node, index, parent) => {
187187
undefined,
188188
{ textHandling: { boundaries: 'preserve' } }
189189
).node.children;
190+
// Helper to recursively extract all text from a node and its children
191+
/**
192+
*
193+
* @param node
194+
*/
195+
function extractText(node) {
196+
if (!node) {
197+
return '';
198+
}
199+
if (typeof node.value === 'string') {
200+
return node.value;
201+
}
202+
if (Array.isArray(node.children)) {
203+
return node.children.map(extractText).join('');
204+
}
205+
return '';
206+
}
190207

191208
// Derive plain text for type matching
192-
const typeText = sliced
193-
.map(n => {
194-
if (n.type === 'text') {
195-
return n.value;
196-
}
197-
if (n.type === 'inlineCode') {
198-
return n.value;
199-
}
200-
if (n.type === 'link' && Array.isArray(n.children)) {
201-
return n.children.map(c => c.value || '').join('');
202-
}
203-
return '';
204-
})
205-
.join('')
206-
.trim()
207-
.toLowerCase();
209+
const typeText = sliced.map(extractText).join('').trim().toLowerCase();
208210

209211
// Map user-facing deprecation types to AlertBox levels
210212
// documentation / compilation -> blue (`info`)
211213
// runtime / application -> orange (`warning`)
212214
// fallback -> danger (red)
213215
let level = 'danger';
214216

215-
if (typeText.includes('documentation') || typeText.includes('compil')) {
217+
// Use stricter matching to avoid false positives (e.g., "compilation" inside "End-of-Life")
218+
const normalizedTypeText = typeText
219+
.replace(/[.,]/g, ' ')
220+
.split(/\s+/)
221+
.filter(Boolean);
222+
223+
if (
224+
normalizedTypeText.includes('documentation') ||
225+
normalizedTypeText.includes('compilation')
226+
) {
216227
level = 'info';
217228
} else if (
218-
typeText.includes('runtime') ||
219-
typeText.includes('application')
229+
normalizedTypeText.includes('runtime') ||
230+
normalizedTypeText.includes('application')
220231
) {
221232
level = 'warning';
222233
}

0 commit comments

Comments
 (0)