From fd5c8d17d3b3cd0a13b0a21a2b78d85010e02e12 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Tue, 20 Jun 2023 03:37:45 +0000
Subject: [PATCH] basic search implementation

---
 quartz/plugins/emitters/contentIndex.ts |   45 +++++----------------------------------------
 1 files changed, 5 insertions(+), 40 deletions(-)

diff --git a/quartz/plugins/emitters/contentIndex.ts b/quartz/plugins/emitters/contentIndex.ts
index 0e03c23..cd7c924 100644
--- a/quartz/plugins/emitters/contentIndex.ts
+++ b/quartz/plugins/emitters/contentIndex.ts
@@ -1,20 +1,7 @@
-import { visit } from "unist-util-visit"
 import { QuartzEmitterPlugin } from "../types"
-import { Element } from "hast"
 import path from "path"
-import { trimPathSuffix } from "../../path"
 
-interface Options {
-  indexAnchorLinks: boolean,
-  indexExternalLinks: boolean,
-}
-
-const defaultOptions: Options = {
-  indexAnchorLinks: false,
-  indexExternalLinks: false,
-}
-
-export type ContentIndex = Map<string, ContentDetails> 
+export type ContentIndex = Map<string, ContentDetails>
 export type ContentDetails = {
   title: string,
   links?: string[],
@@ -22,39 +9,17 @@
   content: string,
 }
 
-export const ContentIndex: QuartzEmitterPlugin<Options> = (userOpts) => {
-  const opts = { ...userOpts, ...defaultOptions }
+export const ContentIndex: QuartzEmitterPlugin = () => {
   return {
     name: "ContentIndex",
     async emit(_contentDir, _cfg, content, _resources, emit) {
       const fp = path.join("static", "contentIndex")
       const linkIndex: ContentIndex = new Map()
-      for (const [tree, file] of content) {
-        let slug = trimPathSuffix(file.data.slug!)
-
-        const outgoing: Set<string> = new Set()
-        visit(tree, 'element', (node: Element) => {
-          if (node.tagName === 'a' && node.properties && typeof node.properties.href === 'string') {
-            let dest = node.properties.href
-            if (dest.startsWith(".")) {
-              const normalizedPath = path.normalize(path.join(slug, dest))
-              dest = trimPathSuffix(normalizedPath)
-              outgoing.add(dest)
-            } else if (dest.startsWith("#")) {
-              if (opts.indexAnchorLinks) {
-                outgoing.add(dest)
-              }
-            } else {
-              if (opts.indexExternalLinks) {
-                outgoing.add(dest)
-              }
-            }
-          }
-        })
-
+      for (const [_tree, file] of content) {
+        let slug = file.data.slug!
         linkIndex.set(slug, {
           title: file.data.frontmatter?.title!,
-          links: [...outgoing],
+          links: file.data.links ?? [],
           tags: file.data.frontmatter?.tags,
           content: file.data.text ?? ""
         })

--
Gitblit v1.10.0