mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-30 19:03:01 +01:00
For each result: snip it by lines, show filename, remove frontmatter
Based on PR #135 Resolves #134
This commit is contained in:
parent
240db7b4f0
commit
40091489c0
1 changed files with 19 additions and 5 deletions
|
@ -90,12 +90,26 @@ export class KhojSearchModal extends SuggestModal<SearchResult> {
|
||||||
}
|
}
|
||||||
|
|
||||||
async renderSuggestion(result: SearchResult, el: HTMLElement) {
|
async renderSuggestion(result: SearchResult, el: HTMLElement) {
|
||||||
let words_to_render = 30;
|
// Max number of lines to render
|
||||||
let entry_words = result.entry.split(' ')
|
let lines_to_render = 8;
|
||||||
let entry_snipped_indicator = entry_words.length > words_to_render ? ' **...**' : '';
|
|
||||||
let snipped_entry = entry_words.slice(0, words_to_render).join(' ');
|
// Extract filename of result
|
||||||
|
let os_path_separator = result.file.includes('\\') ? '\\' : '/';
|
||||||
|
let filename = result.file.split(os_path_separator).pop();
|
||||||
|
|
||||||
|
// Remove YAML frontmatter when rendering string
|
||||||
|
result.entry = result.entry.replace(/---[\n\r][\s\S]*---[\n\r]/, '');
|
||||||
|
|
||||||
|
// Truncate search results to lines_to_render
|
||||||
|
let entry_snipped_indicator = result.entry.split('\n').length > lines_to_render ? ' **...**' : '';
|
||||||
|
let snipped_entry = result.entry.split('\n').slice(0, lines_to_render).join('\n');
|
||||||
|
|
||||||
|
// Show filename of each search result for context
|
||||||
|
el.createEl("div",{ cls: 'khoj-result-file' }).setText(filename ?? "");
|
||||||
|
let result_el = el.createEl("div", { cls: 'khoj-result-entry' })
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
MarkdownRenderer.renderMarkdown(snipped_entry + entry_snipped_indicator, el, null, null);
|
MarkdownRenderer.renderMarkdown(snipped_entry + entry_snipped_indicator, result_el, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
async onChooseSuggestion(result: SearchResult, _: MouseEvent | KeyboardEvent) {
|
async onChooseSuggestion(result: SearchResult, _: MouseEvent | KeyboardEvent) {
|
||||||
|
|
Loading…
Reference in a new issue