Thanks to visit codestin.com
Credit goes to github.com

Skip to content

virzs/Search-Next

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

222 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Search 导航页

stars forks

公共组件库 🎉    公共后端接口 🎉    公共后台 🎉    第三方组件库 ⏳
      |                  |                  |                  |
      |                  |                  |                  |
      +------------------+------------------+------------------+
                         |
                         |
                         v
                    本项目 🚧

状态说明:

  • 🚧 开发中
  • ⏳ 等待中
  • 🎉 已完成

公共组件库地址:https://zs-library.virs.xyz/

在线地址

https://search_next.virs.xyz/

2x 正在开发中,查看历史版本请切换至 1x 分支

后端部分暂不开源,待项目稳定后发布

功能说明

  • 账号 🎉
  • 图标排序配置 🎉
  • 搜索建议 🚧
  • 添加自定义网站 🚧
  • 自定义主题 🚧
  • 自定义壁纸 🚧
  • 数据同步 🚧
  • 插件系统 🚧
  • 移动端支持 ⏳
  • AI 搜索 ⏳

版本说明

  • 1.x 分支 1.x
  • 2.x 分支 2.x

在线交流

Discord: https://discord.gg/NRMxAmqG

QQ 群:859791575

欢迎提供意见或建议

启动项目

需要 nodejs(版本不限,建议最新)、pnpm。当前仓库已调整为 pnpm workspace,多项目依赖统一在仓库根目录安装。

安装依赖:

pnpm install

启动项目:

pnpm dev

编译项目:

pnpm build

小组件开发

项目内置 apps/widgets/<name> 小组件工作流。小组件需要导出 mount(container, props = {}),并返回清理函数;打包产物入口固定为 index.js,清单文件 widget.config.jsonentry 也应保持为 index.js

创建脚手架:

pnpm widget:create react my-widget
pnpm widget:create vue my-widget
pnpm widget:create solid my-widget

脚手架会生成 apps/widgets/<name>/package.jsontsconfig.jsonvite.config.jswidget.config.jsonsrc/index、组件、样式、图标和本地开发页。React 模板默认使用 TypeScript/TSX、Tailwind CSS utilities 和 shadcn/ui 风格的本地组件;React、Vue 和 Solid 模板都按各自框架的标准组件写法开发,并随小组件打包各自运行时,避免不同框架或不同版本依赖在宿主页面中互相冲突。React 模板只引入带 tw: 前缀的 Tailwind utilities,不引入全局 preflight/base,并把样式注入到小组件容器内,减少组件之间和宿主页面之间的样式串扰。模板细节见 scripts/widget-templates/README.md

安装依赖并启动某个小组件:

pnpm install
pnpm --filter my-widget-widget dev

构建某个小组件:

pnpm --filter my-widget-widget build

构建输出位于 dist/widget-build/<name>/index.js,并在 dist/widget-build/<name>/screenshots/icon 生成 icon 模式下每个 sizeConfigs 与浅/深主题组合的截图;screenshots/manifest.json 会记录截图清单。生成 .snwidget

pnpm widget:pack my-widget

该命令会通过 pnpm workspace 执行对应小组件的 build,复制 widget.config.json,确保截图清单已生成,并把 screenshots 目录一起写入 dist/widgets/<name>-<version>.snwidget。生成后可在开发者小组件页面填写后端解压后的远程入口进行调试。

注意:小组件入口是远程 ESM 代码,会在宿主页面权限下运行并访问注入的 SDK。仅加载自己开发或可信来源的小组件。

常见问题说明

待更新

插件

规划中,预计采用微前端方案

Search Next Plugins

后端支持

待更新,不开源,提供构建后的文件

多语言:

VS Code 安装 i18n Ally 插件

引用资源

-----none------

About

一个简单的浏览器主页 / 新标签页,由React编写,支持本地账户切换,多引擎搜索,网址导航,更多功能正在开发

Topics

Resources

Stars

Watchers

Forks

Contributors