Skip to content

Commit 245717c

Browse files
fix: filter by correct header rank
1 parent 9871255 commit 245717c

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

__tests__/transform-html-mode.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ describe('transform', () => {
1515
'<a href="#installation">Installation</a>',
1616
'<span>|</span>',
1717
'<a href="#api">API</a>',
18+
'<span>|</span>',
19+
'<a href="#license">^License</a>',
1820
'</p>',
1921
''],
2022
);
@@ -37,6 +39,8 @@ describe('transform', () => {
3739
'<li><a href="#installation" target="_blank">Installation</a></li>',
3840
'',
3941
'<li><a href="#api" target="_blank">API</a></li>',
42+
'',
43+
'<li><a href="#license" target="_blank">^License</a></li>',
4044
'</ul>',
4145
''],
4246
);

src/lib/transform.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,9 @@ const getHeaderItem = (header: HeaderWithAnchor, indentation: string, lowestRank
126126
return `${indentation.repeat(header.rank - lowestRank)}${entryPrefix} ${header.anchor}`;
127127
};
128128

129-
const getHtmlHeaderContents = (headers: Array<HeaderWithAnchor>, htmlTemplate: string | undefined, itemTemplate: string | undefined, separator: string | undefined): string => replaceVariables(htmlTemplate ?? DEFAULT_HTML_TEMPLATE, [{
129+
const getHtmlHeaderContents = (headers: Array<HeaderWithAnchor>, lowestRank: number, htmlTemplate: string | undefined, itemTemplate: string | undefined, separator: string | undefined): string => replaceVariables(htmlTemplate ?? DEFAULT_HTML_TEMPLATE, [{
130130
key: 'ITEMS',
131-
replace: `\n${headers.map(header => getHeaderItemHtml(header, itemTemplate)).join(`\n${separator ?? DEFAULT_SEPARATOR}\n`)}\n`,
131+
replace: `\n${headers.filter(header => header.rank === lowestRank).map(header => getHeaderItemHtml(header, itemTemplate)).join(`\n${separator ?? DEFAULT_SEPARATOR}\n`)}\n`,
132132
}]);
133133

134134
const getHeaderItemHtml = (header: HeaderWithAnchor, itemTemplate: string | undefined): string => {
@@ -165,7 +165,7 @@ export const transform = (
165165

166166
// only limit *HTML* headings by default
167167
// eslint-disable-next-line no-magic-numbers
168-
const maxHeaderLevelHtml = isHtml ? 1 : (maxHeaderLevel || 4);
168+
const maxHeaderLevelHtml = maxHeaderLevel || 4;
169169
const lines = content.split('\n');
170170
const info: SectionInfo = updateSection.parse(lines, matchesStart(checkOpeningComments), matchesEnd(checkClosingComments));
171171

@@ -197,7 +197,7 @@ export const transform = (
197197
const toc =
198198
inferredTitle +
199199
titleSeparator +
200-
(isHtml ? getHtmlHeaderContents(linkedHeaders, htmlTemplate, itemTemplate, separator) : getHeaderContents(linkedHeaders, indentation, lowestRank, _entryPrefix)) +
200+
(isHtml ? getHtmlHeaderContents(linkedHeaders, lowestRank, htmlTemplate, itemTemplate, separator) : getHeaderContents(linkedHeaders, indentation, lowestRank, _entryPrefix)) +
201201
'\n';
202202
const wrappedToc = (openingComment ?? OPENING_COMMENT) + '\n' + wrapToc(toc, inferredTitle, isFolding) + '\n' + (closingComment ?? CLOSING_COMMENT);
203203
if (currentToc === wrappedToc) {

0 commit comments

Comments
 (0)