首页
/ Fumadocs Core 15.5.1版本发布:优化搜索与组件迁移

Fumadocs Core 15.5.1版本发布:优化搜索与组件迁移

2025-06-09 18:42:55作者:郜逊炳

Fumadocs是一个现代化的文档构建工具链,旨在帮助开发者快速创建美观、功能丰富的文档网站。作为其核心组件,Fumadocs Core提供了基础的功能支持和API接口。本次发布的15.5.1版本虽然是一个小版本更新,但包含了几个值得注意的改进点。

组件迁移:hide-if-empty加入核心库

在本次更新中,开发团队将hide-if-empty组件从其他位置迁移到了Fumadocs Core库中。这一变动意味着:

  1. 更好的集中管理:现在所有基础组件都集中在核心库中,减少了依赖关系,使项目结构更加清晰
  2. 更稳定的API:作为核心组件,其API将得到更长期的维护保证
  3. 更便捷的导入:开发者现在可以直接从核心库中导入该组件,无需额外安装其他包

hide-if-empty组件的主要功能是根据内容是否为空自动控制元素的显示/隐藏状态,这在构建动态文档界面时非常有用。

国际化支持改进:非ASCII字符的slug编码

对于使用非英语语言的文档项目,本次更新解决了slug生成的一个痛点:

// 改进前:非ASCII字符可能导致问题
const slug = generateSlug("中文文档"); // 可能生成不兼容的URL

// 改进后:自动编码非ASCII字符
const slug = generateSlug("中文文档"); // 生成兼容的编码URL

这一改进特别有利于:

  • 中文、日文、韩文等非拉丁语系的文档项目
  • 包含特殊字符的技术术语
  • 多语言混合的文档内容

开发团队在loader()函数中实现了这一改进,确保生成的slug在各种环境下都能正常工作。

搜索API优化:更清晰的参数传递方式

本次更新对useDocsSearch钩子函数进行了重要改进,将原本分散的参数整合为一个配置对象:

// 旧版API(将被废弃)
const { search, setSearch, query } = useDocsSearch(
  'fetch',
  'optional-locale',
  'optional-tag',
  100,
  false
);

// 新版API(推荐)
const { search, setSearch, query } = useDocsSearch({
  type: 'fetch',
  locale: 'optional',
  tag: 'optional',
  delayMs: 100,
  allowEmpty: false,
});

这一改进带来了以下优势:

  1. 更好的可读性:通过命名参数,代码意图更加清晰
  2. 更灵活的扩展性:未来添加新参数不会破坏现有代码
  3. 更安全的类型检查:TypeScript类型提示更加准确
  4. 可选参数更易用:可以只设置需要的参数,忽略其他

开发者应尽快迁移到新的API形式,因为旧版参数传递方式已被标记为"废弃"状态。

升级建议

对于正在使用Fumadocs的项目,建议尽快升级到15.5.1版本以获取这些改进。特别是:

  1. 如果你的项目使用非英语内容,slug编码改进将直接提升兼容性
  2. 如果使用了文档搜索功能,建议按照新版API进行重构
  3. 如果之前从其他位置导入hide-if-empty,现在可以改为从核心库导入

这个版本保持了向后兼容性,升级过程应该是平滑的。对于大多数项目,只需更新依赖版本即可,不需要额外的代码修改,除非你希望利用新的搜索API改进代码结构。

Fumadocs团队通过这些看似小的改进,持续提升开发者体验和国际化支持,体现了对细节的关注和对开发者需求的响应。

登录后查看全文
热门项目推荐
相关项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
178
262
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
866
513
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
261
302
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
598
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K