dumi 1.0 在 2020 年 3 月 2 日正式公布,到现在一共有 80 位 Contributor、递交 1100 Commit、为近 4000 个开源软件带来了组件库/站点文本文档计划方案;dumi 作为一个 GitHub 数千万开源软件里的微不足道一粒,会有那么多人共同努力、可以为那么多项目提供使用价值,可谓是十分幸运地。
与这一份好运一同来临,还有很多感受难题的反馈、部件产品研发的探索、具体工程项目的情景,再加上小区的底层技术栈还在飞快迭代更新,现在是时候给 dumi 做一次全面升级了,因此我们在今年 7 月 29 日全面启动了 dumi 2.0 的开发,但在今日,它总算和大家宣布见面!
关键更新
全新升级主题风格系统软件
先晒一下一个全新的默认主题,而且也是主题风格全面的一部分:
除开更精致之外,dumi 2 活动的主题系统软件还提供如下所示水平。
主题风格适用部分遮盖
在 dumi 1 里,想订制侧栏就必须要覆盖整个 Layout,成本费很高;
dumi 2 参照 Docusaurus 的 Swizzing 设计方案、带来了 slots(UI 扩展槽)特点,只需在新项目里建立 .dumi/theme/slots/{SlotName}
就可以做到相匹配 slot 的部分遮盖,并且提供什么 slots 是通过主题包决定的,在保证开放式的与此同时、在很大程度上减少了订制成本费。
内置全球化计划方案
在 dumi 1 里,主题包想要做多语种,只有自主分辨 locale 展现不一样文案;
dumi 2 承诺主题包里的 locales/{lang-LOCALE}.json
文档为全球化创意文案,能被架构自动加载,主题包部件只必须从 dumi 里导出来 react-intl
的有关 API,仅需启用创意文案 key 就可以实现创意文案的全球化。
值得一提的是,创意文案都是适用 key 覆盖,这就意味着客户如果要订制主题包给予文案,只需建立 .dumi/theme/locales{lang-LOCALE}.json
遮盖相匹配 key 文案就可以。
适用申请注册 dumi 软件
主题包很有可能伴随默认配置、甚至架构水平拓展,因此 dumi 2 承诺主题包的 plugin.ts
或 plugin/index.ts
为主题包的软件、就会自动初始化,为主题包给予更强大的定制能力。
其他信息热烈欢迎换步官方文档查询:主题风格-如何运行。
内嵌全文检索
静态数据站点检索一直是棘手问题,小区一般就二种计划方案:
- 传统式文章的标题检索计划方案,由于形成 TOC 原本就必须收集文章标题,拿来当检索是自然而然的,那也是 SSG 框架的普遍作法,主要缺点能找到的物品过少
- 连接三方的站内搜索而且产出率预渲染的 HTML 和
sitemap.xml
,好处就是能确保检索品质,主要缺点有一定门坎,比如 Algolia 那就需要申请办理 AppKey
听上去都有缺憾,但 dumi 2 此次增添了第 3 种计划方案,即不必须连接三方服务项目、又可完成全篇配对、还不会导致物质规格提升,才是真正开箱即用的全文检索计划方案!
搜索的全过程在 Service Worker 内进行,这就意味着无需担心百度搜索配对引起兼容性问题、还可以线下布署,与此同时 dumi 也提供了检索 API、能够主题包订制百度搜索的表达。
承诺式路由器提高
dumi 1 被抨击较多的问题在于『路由器形成无法控制』,配备完不跑一跑还不知道长什么样子儿,因此 dumi 2 此次对承诺式路由器进行了 3 全面升级。
配备简单化
除掉 Markdown FrontMatter 里的 nav.path
和 group.path
配置项,最后路由器便是目标文件夹,简洁明了。
定义分割
将路由器分成『文本文档路由器』和『财产路由器』,文本文档路由器一般放到 docs 目录下,会嵌入等级,而财产路由器一般放到 src 下,不容易嵌入等级、且默认设置分类在某一作为前缀(例如 /components
)下,例如:
docs/guide/getting-started.md 会形成 /guide/getting-started
src/Foo/index.md 会形成 /components/foo
之上分析路径和财产路由器作为前缀都可根据配备改动。
承诺式 Tab
适用以承诺式方式为 Markdown 具体内容提升 Tab,例如 index.$tab-key.md
便会做为 index.md
的 Tab 展现,能帮助我们能够更好地机构文本文档具体内容的表达:
值得一提的是,Tab 还支持根据软件 API 申请注册,为其他功能的拓展带来了很有可能。
更加好的编译程序特性
dumi 2 根据结合使用 Umi 4 MFSU、esbuild、SWC、长久缓存文件等计划方案,产生比 dumi 1 更快地编译程序速率。
此外,dumi 2 也应用最新 Unified.js 绿色生态重新写过整个 Markdown 编译程序逻辑性,还提供对 remark 和 rehype 软件配置水平,在性能卓越的同时还更为便于订制。
变成符合要求的 SSG
dumi 1 尽管本质上是 SSG(Static Site Generator),但实际是出现异常两极分化的,此次把做好本职工作凑合做达标:
自然达标依然还远远不够,也希望大家可以一起参与健全,毕竟是『为部件产品研发而生静态数据网站架构』,那么就部件研发与静态数据网站也不能落下来。
总算『有面儿』了
回忆起当时 dumi 取名字的一个过程,总觉得很特别,一个编号能是冷冰冰的英文字母,还可以是有温度呢称。
但是这么久以来,dumi 一直都使用的 Umi 的 LOGO,现在是时候借着 2.0 的升级版,给有温度呢称配上一张有温度脸孔了:
这便是 dumi 的 LOGO,用过硬的文本文档扛起精美的部件,一定要记住它样子,假如是脸盲症就不强求了 :D
除了上述关键更新,dumi 2.0 还有很多的小细节改善,受制于篇数也就不再进行了,欢迎在评论区官方网站文本文档与实际使用时渐渐发现。
马上入门
假如是 dumi 1.x 项目,请见更新文本文档升级成 dumi 2:d.umijs.org/guide/upgra… 假如是准备新创建全新升级新项目,请直接应用 create-dumi 钢管脚手架:d.umijs.org/guide/initi…
后面整体规划
还有很多想做的事作用还没来得及做,dumi 2.0 公布之后还会新增加作用,也期望拥有更多的小区同学们一起参与,那样 dumi 2.1 很快就来临:
- 手机端部件产品研发主题风格
- Umi 4 新项目集成模式
- 互动式的 API 报表
- 部件 Playground
- Vue 部件3D渲染适用
- Monorepo 方案及良好实践
- ……
感激
dumi 2 的出台离不了诸位小区开发者的奉献,谢谢你们让开源系统越来越幸福 :
- PeachScript
- wyy0521
- miracles1919
- xierenyuan
- BoyYangzai
- wangyi12358
- sorrycc
- mortalYoung
- tangying1027
- Dunqing
- zhouzyc
- yimingbot
Ant Design 5.0 在今天上午开展公布直播间,其新官网都是应用 dumi 2.0 构建的