mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-09 05:39:12 +00:00
Clean duplicate title shown in reference snippets of hierarchical docs
Hierarchical documents like org-mode, markdown have their ancestry shown in first line. Remove it to show cleaner, deduplicated reference text from org-mode, markdown files
This commit is contained in:
@@ -252,15 +252,11 @@ export default function ChatMessage(props: ChatMessageProps) {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const observer = new MutationObserver((mutationsList, observer) => {
|
const observer = new MutationObserver((mutationsList, observer) => {
|
||||||
console.log("called mutation observer");
|
|
||||||
// If the addedNodes property has one or more nodes
|
// If the addedNodes property has one or more nodes
|
||||||
if (messageRef.current) {
|
if (messageRef.current) {
|
||||||
for (let mutation of mutationsList) {
|
for (let mutation of mutationsList) {
|
||||||
if (mutation.type === "childList" && mutation.addedNodes.length > 0) {
|
if (mutation.type === "childList" && mutation.addedNodes.length > 0) {
|
||||||
// Call your function here
|
// Call your function here
|
||||||
|
|
||||||
console.log("render katex in body");
|
|
||||||
|
|
||||||
renderMathInElement(messageRef.current, {
|
renderMathInElement(messageRef.current, {
|
||||||
delimiters: [
|
delimiters: [
|
||||||
{ left: "$$", right: "$$", display: true },
|
{ left: "$$", right: "$$", display: true },
|
||||||
|
|||||||
@@ -35,14 +35,23 @@ interface NotesContextReferenceCardProps extends NotesContextReferenceData {
|
|||||||
showFullContent: boolean;
|
showFullContent: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function extractSnippet(props: NotesContextReferenceCardProps): string {
|
||||||
|
const hierarchicalFileExtensions = ["org", "md", "markdown"];
|
||||||
|
const extension = props.title.split(".").pop() || "";
|
||||||
|
const cleanContent = hierarchicalFileExtensions.includes(extension)
|
||||||
|
? props.content.split("\n").slice(1).join("\n")
|
||||||
|
: props.content;
|
||||||
|
return props.showFullContent
|
||||||
|
? DOMPurify.sanitize(md.render(cleanContent))
|
||||||
|
: DOMPurify.sanitize(cleanContent);
|
||||||
|
}
|
||||||
|
|
||||||
function NotesContextReferenceCard(props: NotesContextReferenceCardProps) {
|
function NotesContextReferenceCard(props: NotesContextReferenceCardProps) {
|
||||||
const snippet = props.showFullContent
|
|
||||||
? DOMPurify.sanitize(md.render(props.content))
|
|
||||||
: DOMPurify.sanitize(props.content);
|
|
||||||
const fileIcon = getIconFromFilename(
|
const fileIcon = getIconFromFilename(
|
||||||
props.title || ".txt",
|
props.title || ".txt",
|
||||||
"w-6 h-6 text-muted-foreground inline-flex mr-2",
|
"w-6 h-6 text-muted-foreground inline-flex mr-2",
|
||||||
);
|
);
|
||||||
|
const snippet = extractSnippet(props);
|
||||||
const [isHovering, setIsHovering] = useState(false);
|
const [isHovering, setIsHovering] = useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user