修改Van Nav搜索结果不显示百度谷歌必应搜索

Van Nav是一个轻量的导航站

Github开源仓库:https://github.com/Mereithhh/van-nav

现在的浏览器地址栏都集成了搜索功能,用不上导航站里的在线搜索,以下列出去除该功能的操作步骤

我将其定位为半内网使用的一个导航站

下载源码

git clone 或 Download ZIP

修改npm为阿里云镜像

国内连接官方的npm时常抽风,替换yarn.lock 里面的resolved为registry.npmmirror.com,从阿里云镜像源下载依赖.

两个文件的路径为:

  • ui/admin/yarn.lock
  • ui/website/yarn.lock

修改相应代码

修改代码ui\website\src\components\Content\index.tsx文件

Line:13 (删除此行import)

import { generateSearchEngineCard } from "../../utils/serachEngine";

Line:87-116 (替换内容)

const filteredData = useMemo(() => {
  if (!data.tools) {
    return null; // 如果没有 tools 属性,直接返回 null
  }

  const localResult = data.tools
    .filter((item: any) => {
      const hide = item.hide;
      if (!hide) return true; // 如果 item 没有 hide 属性,保留该项
      if (hide && isLogin()) return false; // 如果 item 隐藏且用户已登录,丢弃该项
      return false; // 默认丢弃该项
    })
    .filter((item: any) => {
      if (currTag === "全部工具") {
        return true; // 如果当前标签是“全部工具”,保留该项
      }
      return item.catelog === currTag; // 只保留与当前标签匹配的项
    })
    .filter((item: any) => {
      if (searchString === "") {
        return true; // 如果搜索字符串为空,保留该项
      }
      // 保留与搜索字符串匹配的项
      return (
        mutiSearch(item.name, searchString) ||
        mutiSearch(item.desc, searchString) ||
        mutiSearch(item.url, searchString)
      );
    });

  return localResult; // 返回过滤后的结果
}, [data, currTag, searchString]);

构建镜像

将代码文件夹上传至linux,需提前安装号docker(网络上教程多如牛毛,一搜便知)

docker build -t my-nav:v0.1 .

image-20241121175134975

创建容器

docker run -d --name my-van-nav --restart always -p 6412:6412 -v /opt/superE/van-nav-data:/app/data my-nav:v0.1

访问Van Nav

地址栏输入访问服务器的IP+端口号(我本地自建了dns+nginx,所以显示如下)

image-20241121175623917

image-20241121175700154

image-20241121175740609

image-20241121175812069

通过观察发现,输入关键字后,结果中并没有必应谷歌百度的选项列出,效果达成


最后

  • 自动获取网站logo图标不好使,可F12查看–网络–image,将图标的URL地址手动添加
  • 图标会储存到数据库,我也不知道怎么实现的,设置完成后即使网络断开或对应的服务网站没开启导航站也能加载图标
  • 如果将导航站部署在服务器,所有人打开的页面都是一致的,不能做到每个人都自定义其访问链接(适合定位为统一入口)
  • 如果个人使用部署可以下载对应的安装包(各种跨平台的都有),需要设置开机自启,访问地址为:http://localhost:6412
  • 惊叹到Go语言编写的程序占用空间如此之小