mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2025-04-29 20:13:31 +08:00
- fix a bug that add a | when the keyword has a trailing whitespace
- the function cleanKeywords() substitute organizeKeywords() (better code)
This commit is contained in:
parent
a4ac23c124
commit
ec45bfaea4
@ -55,37 +55,27 @@ class Search {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// clean input keywords list
|
/// clean input keywords list
|
||||||
private reorganizeKeywords(keywords: string[]) {
|
private cleanKeywords(keywords: string[]) {
|
||||||
let tmp: string[] = [];
|
for (let i=0; i < keywords.length; i++){
|
||||||
/// do the search only on keywords length >= 2
|
/// remove the white spaces
|
||||||
for (let i=0; i < keywords.length; i++){
|
keywords[i]=keywords[i].trim();
|
||||||
if (keywords[i].length === 1) keywords.splice(i,1);
|
/// do the search only on keywords length >= 2
|
||||||
}
|
if (keywords[i].length <= 1) {
|
||||||
/// Sort keywords from short to long
|
keywords.splice(i,1);
|
||||||
keywords.sort((a, b) => {
|
i--;
|
||||||
return b.length - a.length
|
}
|
||||||
});
|
|
||||||
/// remove the keywords contained in other keywords
|
|
||||||
for (let i = 0; i < keywords.length; i++) {
|
|
||||||
for (let j = 0; j < keywords.length; j++) {
|
|
||||||
if (i !== j) {
|
|
||||||
if (keywords[j].includes(keywords[i])) {
|
|
||||||
keywords.splice(i,1);
|
|
||||||
i=j=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return keywords;
|
||||||
}
|
}
|
||||||
return keywords;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private async searchKeywords(keywords: string[]) {
|
private async searchKeywords(keywords: string[]) {
|
||||||
const rawData = await this.getData();
|
const rawData = await this.getData();
|
||||||
let results: pageData[] = [];
|
let results: pageData[] = [];
|
||||||
|
|
||||||
keywords = this.reorganizeKeywords(keywords);
|
|
||||||
if (keywords.length === 0) return;
|
if (keywords.length === 0) return;
|
||||||
|
keywords = this.cleanKeywords(keywords);
|
||||||
|
|
||||||
/// from a b to a|b for regexp
|
/// from a b to a|b for regexp
|
||||||
let k = "";
|
let k = "";
|
||||||
|
Loading…
Reference in New Issue
Block a user