Skip to content

Commit

Permalink
fix: search titles containing ignored characters (#1395)
Browse files Browse the repository at this point in the history
* fix: search titles containing ignored characters

* fix

* add default value

* add test

* fix test

Co-authored-by: Koy <koy@ko8e24.top>
  • Loading branch information
sy-records and Koooooo-7 committed Nov 8, 2020
1 parent 58fbca0 commit a2ebb21
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/plugins/search/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ export function genIndex(path, content = '', router, depth) {
const slugify = window.Docsify.slugify;
const index = {};
let slug;
let title = '';

tokens.forEach(token => {
if (token.type === 'heading' && token.depth <= depth) {
Expand All @@ -94,7 +95,16 @@ export function genIndex(path, content = '', router, depth) {
slug = router.toURL(path, { id: slugify(escapeHtml(token.text)) });
}

index[slug] = { slug, title: str, body: '' };
if (str) {
title = str
.replace(/<!-- {docsify-ignore} -->/, '')
.replace(/{docsify-ignore}/, '')
.replace(/<!-- {docsify-ignore-all} -->/, '')
.replace(/{docsify-ignore-all}/, '')
.trim();
}

index[slug] = { slug, title: title, body: '' };
} else {
if (!slug) {
return;
Expand Down
38 changes: 38 additions & 0 deletions test/e2e/search.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,42 @@ describe('Search Plugin Tests', function() {
await page.fill('input[type=search]', 'test');
await expect(page).toEqualText('.results-panel h2', 'Test Page');
});

test('search ignore title', async () => {
const docsifyInitConfig = {
markdown: {
homepage: `
# Hello World
This is the homepage.
`,
sidebar: `
- [Home page](/)
- [GitHub Pages](github)
`,
},
routes: {
'/github.md': `
# GitHub Pages
This is the GitHub Pages.
## GitHub Pages ignore1 <!-- {docsify-ignore} -->
There're three places to populate your docs for your Github repository1.
## GitHub Pages ignore2 {docsify-ignore}
There're three places to populate your docs for your Github repository2.
`,
},
scriptURLs: ['/lib/plugins/search.min.js'],
};
await docsifyInit(docsifyInitConfig);
await page.fill('input[type=search]', 'repository1');
await expect(page).toEqualText('.results-panel h2', 'GitHub Pages ignore1');
await page.click('.clear-button');
await page.fill('input[type=search]', 'repository2');
await expect(page).toEqualText('.results-panel h2', 'GitHub Pages ignore2');
});
});

1 comment on commit a2ebb21

@vercel
Copy link

@vercel vercel bot commented on a2ebb21 Nov 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.