Skip to content

Commit e50968b

Browse files
Merge pull request #7 from technote-space/release/next-v2.1.1
release: v2.1.2
2 parents 2d337a5 + 2a188a5 commit e50968b

File tree

4 files changed

+18
-23
lines changed

4 files changed

+18
-23
lines changed

__tests__/transform-not-transformed.test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,6 @@ describe('transform', () => {
1212
expect(headers.reason).toBe('update only');
1313
});
1414

15-
it('no headers', () => {
16-
const content = readFileSync(resolve(__dirname, 'fixtures/readme-no-headers.md'), 'utf8');
17-
const headers = transform(content);
18-
19-
expect(headers.transformed).toBe(false);
20-
expect(headers.reason).toBe('no headers');
21-
});
22-
2315
it('not updated', () => {
2416
const content = readFileSync(resolve(__dirname, 'fixtures/readme-not-updated.md'), 'utf8');
2517
const headers = transform(content);

__tests__/transform-weird-headers.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,16 @@ describe('transform', () => {
4343
expect(headers.transformed).toBe(false);
4444
expect(headers.reason).toBe('not updated');
4545
});
46+
47+
it('should remove toc if no headers', () => {
48+
const content = readFileSync(resolve(__dirname, 'fixtures/readme-no-headers.md'), 'utf8');
49+
const headers = transform(content);
50+
51+
expect(headers.transformed).toBe(true);
52+
expect(headers.toc.split('\n')).toEqual(
53+
['',
54+
'',
55+
''],
56+
);
57+
});
4658
});

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@technote-space/doctoc",
3-
"version": "2.1.1",
3+
"version": "2.1.2",
44
"description": "Generates TOC for markdown files of local git repo.",
55
"keywords": [
66
"github",

src/lib/transform.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -152,27 +152,18 @@ export const transform = (
152152
};
153153
}
154154

155-
const inferredTitle = determineTitle(title, isNotitle, isFolding, lines, info);
156-
const titleSeparator = inferredTitle ? '\n\n' : '\n';
157155
// eslint-disable-next-line no-magic-numbers
158-
const currentToc = info.hasStart && lines.slice(info.startIdx, info.endIdx + 1).join('\n');
159-
const linesToToc = getLinesToToc(lines, currentToc, info, processAll);
160-
const headers = getMarkdownHeaders(linesToToc, maxHeaderLevel).concat(getHtmlHeaders(linesToToc, maxHeaderLevelHtml));
156+
const currentToc = info.hasStart && lines.slice(info.startIdx, info.endIdx + 1).join('\n');
157+
const linesToToc = getLinesToToc(lines, currentToc, info, processAll);
158+
const headers = getMarkdownHeaders(linesToToc, maxHeaderLevel).concat(getHtmlHeaders(linesToToc, maxHeaderLevelHtml));
161159
headers.sort((header1, header2) => header1.line - header2.line);
162160

163161
const allHeaders = countHeaders(headers, mode, moduleName);
164162
const lowestRank = Math.min(...allHeaders.map(header => header.rank));
165163
const linkedHeaders = allHeaders.map(header => addAnchor(mode, moduleName, header));
166164

167-
if (!linkedHeaders.length) {
168-
return {
169-
transformed: false,
170-
data: '',
171-
toc: '',
172-
wrappedToc: '',
173-
reason: 'no headers',
174-
};
175-
}
165+
const inferredTitle = linkedHeaders.length ? determineTitle(title, isNotitle, isFolding, lines, info) : '';
166+
const titleSeparator = inferredTitle ? '\n\n' : '\n';
176167

177168
// 4 spaces required for proper indention on Bitbucket and GitLab
178169
const indentation = (mode === 'bitbucket.org' || mode === 'gitlab.com') ? ' ' : ' ';

0 commit comments

Comments
 (0)