feat: Support search when there is no title (#1519)

* feat: Support search when there is no title
* test: Support search when there is no title
This commit is contained in:
沈唁 2021-03-05 14:23:04 +08:00 committed by GitHub
parent abda30d336
commit bc3726853f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 1 deletions

View File

@ -85,7 +85,7 @@ export function genIndex(path, content = '', router, depth) {
let slug;
let title = '';
tokens.forEach(token => {
tokens.forEach(function(token, tokenIndex) {
if (token.type === 'heading' && token.depth <= depth) {
const { str, config } = getAndRemoveConfig(token.text);
@ -106,6 +106,15 @@ export function genIndex(path, content = '', router, depth) {
index[slug] = { slug, title: title, body: '' };
} else {
if (tokenIndex === 0) {
slug = router.toURL(path);
index[slug] = {
slug,
title: path !== '/' ? path.slice(1) : 'Home Page',
body: token.text || '',
};
}
if (!slug) {
return;
}

View File

@ -124,4 +124,36 @@ describe('Search Plugin Tests', function() {
await page.fill('input[type=search]', 'estáticos');
await expect(page).toEqualText('.results-panel h2', 'Que es');
});
test('search when there is no title', async () => {
const docsifyInitConfig = {
markdown: {
homepage: `
This is some description. We assume autoHeader added the # Title. A long paragraph.
`,
sidebar: `
- [Changelog](changelog)
`,
},
routes: {
'/changelog.md': `
feat: Support search when there is no title
## Changelog Title
hello, this is a changelog
`,
},
scriptURLs: ['/lib/plugins/search.min.js'],
};
await docsifyInit(docsifyInitConfig);
await page.fill('input[type=search]', 'paragraph');
await expect(page).toEqualText('.results-panel h2', 'Home Page');
await page.click('.clear-button');
await page.fill('input[type=search]', 'Support');
await expect(page).toEqualText('.results-panel h2', 'changelog');
await page.click('.clear-button');
await page.fill('input[type=search]', 'hello');
await expect(page).toEqualText('.results-panel h2', 'Changelog Title');
});
});