尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

FAST 官方文档站 fast-site 的演进与构建实践:从 0.2.0 到 0.6.2 的变更记录解读与当前 Eleventy 架构剖析

发布时间:2026/9/26 16:11:13

资讯中心
01
ARTICLE

FAST 官方文档站 fast-site 的演进与构建实践:从 0.2.0 到 0.6.2 的变更记录解读与当前 Eleventy 架构剖析

FAST 官方文档站 fast-site 的演进与构建实践:从 0.2.0 到 0.6.2 的变更记录解读与当前 Eleventy 架构剖析
前端UI组件【免费下载链接】fastThe adaptive interface system for modern web experiences.项目地址https://gitcode.com/gh_mirrors/fa/fast点击查看免费下载FASTThe adaptive interface system for modern web experiences仓库中的官方文档网站包microsoft/fast-site对应sites/website目录记录了项目文档体系从搭建、功能扩张到工程化完善的完整轨迹。本文以 sites/website/CHANGELOG.md 为骨架逐版本解读 fast-site 从 0.2.02020 年 8 月到 0.6.22021 年 4 月的核心变更并结合当前仓库源码剖析文档站的构建流水线、版本横幅机制与底层样式共享实现帮助读者理解 FAST 官方文档站的演进逻辑与现状掌握其查看、本地运行与构建方式。一、fast-site 是什么项目定位fast-site 是 FAST 项目官方文档网站所在的 npm 包private: true仅仓库内部使用负责承载 FAST 的组件文档、API 参考、迁移指南与社区内容。从 sites/website/package.json 可以看到当前包版本为0.6.2构建脚本已完全基于Eleventy11ty静态站点生成器{ name: microsoft/fast-site, version: 0.6.2, private: true, type: module, scripts: { clean: clean build tmp, prebuild: npm run clean node scripts/generate-docs.cjs 3, build: npm run prebuild npx 11ty/eleventy --outputbuild --inputsrc, start: npm run prebuild npx 11ty/eleventy --outputbuild --inputsrc --serve --incremental, help: npx 11ty/eleventy --help } }依赖方面站点使用11ty/eleventy^3.1.2、11ty/eleventy-navigation侧边栏导航、11ty/eleventy-plugin-syntaxhighlight代码高亮并通过microsoft/api-documenter从 API 报告生成 API 参考文档。这与变更日志早期 new docusaurus v2 setup 的时代形成了鲜明对比是理解文档站演进的关键线索。二、版本全景fast-site 0.2.0 → 0.6.2 变更一览CHANGELOG 记录的所有版本与核心变更如下含 4 次纯版本号 bump 与 7 个实质性版本版本日期类型核心变更0.2.02020-08-27首版Docusaurus v2 站点搭建、Webpack 首页构建、实时代码示例、文档文案修订、logo/favicon 统一等0.2.12020-09-10bump仅版本号提升0.3.02020-09-28功能新增 skeleton、tooltip 组件文档0.4.02020-11-19功能新增 fast-breadcrumb 组件文档DesignSystemProvider 支持共享 CSSStyleSheets0.5.02021-01-30功能高对比度high contrast文档、fast-number-field 组件、select 规范文档0.5.12021-02-08bump仅版本号提升0.5.22021-02-08bump仅版本号提升0.6.02021-03-06功能引入 Playwright 端到端测试0.6.12021-03-16修复修复文档站点生成时的格式错误与链接失效0.6.22021-04-06bump仅版本号提升版本号遵循 Conventional Commits 规范CHANGELOG 头部有明确声明因此 0.x.y 的 minor 版本0.3.0、0.4.0、0.5.0、0.6.0均携带 Featurespatch 版本多为核心依赖版本联动Version bump only。三、0.2.0文档站奠基版本一次完整的从无到有0.2.0 是 fast-site 的起始版本2020-08-27承载了最多类型的变更可归纳为四类工程决策。3.1 站点框架与构建体系new docusaurus v2 setup with launch toc configuration#3159引入 Docusaurus v2 作为文档框架并配置了启动 TOCTable of Contents。这是文档站技术栈的第一代定型。switch to webpack for homepage building#3510首页构建切换到 Webpack是当时首页构建体系的一次重构。update docusaurus and use local fast-components min bundle#3605升级 Docusaurus 并改用本地 fast-components 压缩产物减少对外部 CDN 的依赖。3.2 品牌与页面表现update the sites to use the same favicon, update the logo#3406与update logo on documentation pages#3686统一各站点 favicon 与 logo保证品牌一致性。当前仓库 sites/website/src/static/favicon.ico 与 sites/website/src/static/fast-inline-logo.svg 即这一工作的延续且被根布局 sites/website/src/_includes/root.njk 引用。restore original docusaurus footer#3719恢复 Docusaurus 原始页脚当前 root.njk 中仍保留 Docs / Community / Social / Legal 四栏页脚结构。website: add more obvious styles to the mobile ToC button#3714增强移动端目录按钮的可见性呼应移动端阅读体验的重视。3.3 文档内容与可读性add live code examples to docs site#3216文档站加入实时代码示例能力提升文档的交互性。add links to documentation header#3684文档页头部加入导航链接。copy editing for writing-documentation markdown#3724、correct typo in docs introduction#3725、join documentation copywriting and edits#3729对文档写作指南与引言页进行文案编辑与勘误体现了 FAST 对文档质量本身docs about docs的工程投入。fixing link to documentation#3362与addresses an issue where website will not show on safari#3409前者修复文档链接后者修复网站在 Safari 上不显示的问题是早期兼容性修复的典型。3.4 与底层框架能力联动0.2.0 中有三条变更直接反映 FAST 底层库fast-element能力的升级被文档站消费design-system-provider now paints CSS color and background color#3278DesignSystemProvider 开始渲染 CSS color 与 background-color。export MatchMediaStylesheetBehavior constructor#3445导出 MatchMediaStylesheetBehavior 构造函数用于基于媒体查询切换样式的行为。export form-associated under alpha flag#3618在 alpha 标志下导出 form-associated表单关联组件能力。adding directional stylesheet behavior#3559新增方向性样式表行为配合 RTL/LTR 布局方向切换。这一模式在后续版本中反复出现文档站的版本变更往往与 FAST 组件库、fast-element 的新能力同步落地。四、0.3.0 与 0.4.0组件文档版图扩张0.3.02020-09-28新增skeleton 组件#3877与tooltip 组件#3549的文档。这两个组件分别用于加载占位与浮层提示如今在 sites/website/src/docs/3.x/components 目录下仍有对应的组件文档页。0.4.02020-11-19新增fast-breadcrumb 与 fast-breadcrumb-item 组件#3627同时落地enable shared CSSStyleSheets in DesignSystemProvider#4065即 DesignSystemProvider 中启用共享 CSSStyleSheets——这是与 fast-element 样式系统深度相关的底层优化详见第七节。五、0.5.0可访问性与数据应用组件0.5.02021-01-30的三项变更展示了文档站的两个方向adding high contrast document to the FAST documentation website#4178新增高对比度high contrast主题文档服务于 Windows 高对比度模式下 Web 组件的可访问性指导。addressed missing images in the high contrast document#4216紧随其后修复了高对比度文档中图片缺失的问题属于典型的内容质量闭环新增 → 补漏。add fast-number-field component for data applications#4204为数据应用新增 number-field 组件文档。add select spec#4194补充 select 组件的规范文档。六、0.6.0 与 0.6.1测试基建与文档生成修复0.6.02021-03-06add playwright#4337文档站引入 Playwright 端到端测试能力。这与仓库当前的整体测试策略一脉相承——packages/fast-element/playwright.config.ts 显示组件核心库同样以 Playwright 为浏览器级测试基座大量*.pw.spec.ts测试文件说明文档站的工程化与核心库测试体系保持同频。0.6.12021-03-16broken formatting and link when generating docs site#4459修复了生成文档站点时出现的格式错误与链接失效问题。这与今天 sites/website/scripts/generate-docs.cjs 中大量链接重写逻辑将./xxx.md重写为./xxx/、面包屑链接修正等要解决的问题同源——自动生成文档的链接可靠性是文档站长期维护的重点。七、源码佐证从 CSSStyleSheets 共享看 fast-element 样式系统的底层实现CHANGELOG 中 0.4.0 的 enable shared CSSStyleSheets in DesignSystemProvider 与 0.2.0 的 design-system-provider now paints CSS color 背后是 fast-element 的样式策略StyleStrategy体系。当前源码 packages/fast-element/src/styles/element-styles.ts 中可以看到完整的实现StyleTarget接口packages/fast-element/src/styles/style-strategy.ts定义了样式应用目标必须具备adoptedStyleSheets、append、removeChild、querySelectorAll能力同时支持 adopted style sheets 与style元素两条注入路径。ElementStyles在构造strategy时通过能力检测选择策略packages/fast-element/src/styles/element-styles.tsthis.withStrategy( ElementStyles.supportsAdoptedStyleSheets ? createAdoptedSheetsStrategy() : createStyleElementStrategy(), );能力检测本身element-styles.tspublic static readonly supportsAdoptedStyleSheets Array.isArray((document as any).adoptedStyleSheets) replace in CSSStyleSheet.prototype;createAdoptedSheetsStrategy()element-styles.ts用Mapstring, CSSStyleSheet缓存字符串 → 样式表的映射使同一份 CSS 字符串在多个组件实例间共享同一个 CSSStyleSheet这正是shared CSSStyleSheets的底层机制它通过向目标的adoptedStyleSheets数组追加/过滤实现样式的添加与移除避免重复解析 CSS。由此可见fast-site 变更日志中关于 DesignSystemProvider 的条目并非孤立的文档工作而是 fast-element 样式性能优化样式共享、避免重复序列化在文档与站点层面的同步体现。八、当下架构从 Docusaurus 到 Eleventy 的文档站现状尽管 CHANGELOG 记录的是 Docusaurus v2 时代当前仓库中的文档站已全面迁移到Eleventy11ty。理解现状有助于读者正确查看与使用这份文档8.1 文档生成流水线npm run build会先执行prebuildnode scripts/generate-docs.cjs 3再运行 Eleventy。生成脚本 sites/website/scripts/generate-docs.cjs 承担三项工作copyAPI从packages/fast-element/dist/拷贝fast-element.api.json及context、declarative、di三个子导出的 API 报告到临时目录。runApiDocumenter调用microsoft/api-documenter将 API 报告转换为 Markdown输出到src/docs/3.x/api/。convertDocFiles为生成的 API Markdown 注入 Eleventy frontmatterid、title、layout、eleventyNavigation、navigationOptions并将相对链接改写为站点可用的路径格式如./index.md→../index.html、./xxx.md→./xxx/。同时buildSizesPage会从 packages/fast-element/SIZES.md 生成src/docs/3.x/resources/export-sizes.md页面。8.2 版本横幅机制站点为不同文档大版本1.x、2.x、3.x提供可配置的版本状态横幅。配置位于 sites/website/src/_data/versionBanners.jsexport default function () { return { 1.x: { enabled: true, type: legacy, message: You are viewing documentation for a previous version of FAST. The latest version is 3.x., }, 2.x: { enabled: true, type: legacy, message: You are viewing documentation for a previous version of FAST. The latest version is 3.x., }, 3.x: { enabled: false, type: stable, message: You are viewing the current stable version of FAST., }, }; }三种type对应三种视觉语义详见 sites/website/README.md 与 sites/website/src/css/version-banner.csstype颜色用途legacy灰色#3a3a3a 背景旧版本文档提供 View latest docs 链接stable绿色#1a3a2a 背景当前稳定版本prerelease琥珀色#3a2e1a 背景预发布 / RC 版本横幅通过 sites/website/src/_includes/version-banner.njk 渲染由 sites/website/src/_includes/doc.njk include并且只在/docs/路径下展示CSS 通过 sites/website/src/_includes/root.njk 全站加载。legacy横幅中的版本判断依赖 Eleventy 过滤器version在 sites/website/eleventy.config.js 中从 URL 提取版本段默认回退到3.x。8.3 导航、分页与扩展语法侧边栏导航基于11ty/eleventy-navigation插件sites/website/eleventy.config.js布局模板如 sites/website/src/_includes/2x-container.njk 通过eleventyNavigationToHtml渲染菜单。上一篇/下一篇分页prevNext过滤器eleventy.config.js深度优先展平导航树按侧边栏顺序找到当前页的前后条目供分页导航组件使用。Admonition 提示块仓库自研的 markdown-it 插件 sites/website/plugins/admonitions.js 解析 Docusaurus 风格的:::tip/:::note/:::warning/:::important围栏块渲染为带alert--success、alert--secondary、alert--warning、alert--info样式的提示框支持单段与跨段闭合两种形态。九、本地运行与构建指南根据 sites/website/README.md在仓库根目录执行# 安装依赖仓库锁文件驱动 npm ci # 构建文档站生成 API 文档到 src/docs/3.x/api/再输出静态站点到 build 目录 npm run build # 本地开发生成文档并启动增量热更新服务器 npm startnpm run build生成的build目录为纯静态产物可用任意静态托管服务部署。npm start走--serve --incremental模式适合文档写作时的实时预览。仓库使用 lage 进行任务编排见 lage.config.js构建产物缓存于dist/**与wasm/**。十、结语一份 CHANGELOG 背后的工程演进史从 0.2.0 的 Docusaurus v2 奠基到 0.5.0 的可访问性与数据应用组件扩张再到 0.6.0 的 Playwright 测试基建fast-site 的 CHANGELOG 完整记录了一个官方文档站在框架选型、品牌统一、内容质量、能力扩张、测试工程化五个维度的演进节奏而当前仓库则展示其最终形态——基于 Eleventy 的静态站点生成、脚本驱动的 API 文档流水线、可配置的版本横幅与导航分页体系。若读者希望进一步探索推荐依次阅读 sites/website/CHANGELOG.md、sites/website/scripts/generate-docs.cjs 与 packages/fast-element/src/styles/element-styles.ts从变更记录 → 构建逻辑 → 底层实现三个层面完整还原这条演进链路。赞分享前端UI组件【免费下载链接】fastThe adaptive interface system for modern web experiences.项目地址https://gitcode.com/gh_mirrors/fa/fast点击查看免费下载相关推荐读透 microsoft/fast-element 变更日志从 v0.1 到 v3.0.3 的版本演进与 v3 重构的源码级解读读透 microsoft/fast element 变更日志从 v0.1 到 v3.0.3 的版本演进与 v3 重构的源码级解读 本文以 packages/前端UI组件使用 Eleventy 构建并运维 FAST 官方文档网站安装、构建流程与版本横幅系统实战指南使用 Eleventy 构建并运维 FAST 官方文档网站安装、构建流程与版本横幅系统实战指南 导读 本指南以 sites/website/README.md前端UI组件Cal.diy架构演进指南从单体应用到现代微服务架构的完整演进历程 Cal.diy架构演进指南从单体应用到现代微服务架构的完整演进历程 Cal.diy作为一个完全开源的调度平台其架构演进历程体现了现代Web应用从单体架后端前端企业应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。