assets-for-api-docs

此仓库用于托管和提供静态资源,以支持 docs.flutter.dev,以及一些使用特殊制作的图形的手动测试。

提交到此仓库并推送到 GitHub 的资源会立即提供链接和引用。

添加新资源

根据 Flutter 风格指南,提交到此存储库的资源应易于重现,例如,通过运行 Flutter 应用程序或脚本。这使得在将来需要时更容易更新资源。请查看此存储库中现有的图表(及其生成代码)以查看示例。避免只提交静态图像文件(例如 PNG、JPEG),而不提供重新生成和更新它的方法。

创建新图表

要创建新图表

  1. /packages/diagrams/lib/src/ 中创建一个新的 Dart 文件。

  2. /packages/diagrams/lib/diagrams.dart 导出该文件。

  3. 创建一个或多个混合了 DiagramMetadata 的图表 widget,覆盖 name getter 以返回它们的名称,该名称应为 lower_snake_case 格式。

    • 如果您的图表是动画的,请覆盖 duration getter 以返回动画的持续时间。

    • 如果您的图表的状态需要强制等待,请混合 LockstepStateMixin 并调用 waitLockstep(duration)

    • 如果您的图表需要模拟手势输入,请通过调用 DiagramWidgetController.of(context) 来获取 WidgetController

  4. 创建一个扩展 DiagramStep 的类。

  5. 覆盖 DiagramStepdiagrams getter 以返回包含新图表的列表。

  6. 覆盖 DiagramStepcategory getter 以返回它所属的类别,这对应于 /assets 下的文件夹。

  7. 将您的新 DiagramStep 添加到 packages/diagrams/lib/src/steps.dart 中的列表中,并按字母顺序排序。

  8. 使用 bin/generate -s MyDiagramStep 生成资源,有关更多选项,请参阅生成部分。

URL 结构

使用此 URL 结构引用资源

https://github.flutterdart.cn/assets-for-api-docs/assets/<library>/<asset>

例如,一个名为 app_bar.png 的关于 material 库中的 AppBar 的图像应该放在 assets/material/ 目录下,并且位于 https://github.flutterdart.cn/assets-for-api-docs/assets/material/app_bar.png

所有资源文件都应位于 assets 目录下的适当子目录中。

生成

图像必须通过代码生成。

要创建新图像,请参阅 packages/diagrams/lib/src/ 目录。

generate.dart 脚本使用您安装的 Flutter 版本重新生成几乎所有现有资源。 提供了一个小的包装器 bin/generate (bin\generate.bat 在 Windows 上) 以方便使用。

要将图像生成限制为某些类别和/或名称,请运行

# Filter by category
bin/generate -c cupertino,material
# Filter by name
bin/generate -n basic_material_app,blend_mode
# Filter by step class name
bin/generate -s MaterialAppDiagramStep,BlendModeDiagramStep

bin/generate --help 列出可用的参数。

先决条件

generate.dart 脚本可在 macOS、Linux 和 Windows 上运行,但它需要一些先决条件才能运行。在 Linux 和 macOS 上,运行 bin/generate。在 Windows 上,运行 bin\generate.bat

要优化 PNG 文件,它需要 optipng,它可通过 Homebrew 用于 macOS,通过 apt-get 用于 Linux,并且可从 optipng 网站用于 Windows。

要将动画转换为 mp4 文件,它需要 ffmpeg,它可通过 Homebrew 用于 macOS,通过 apt-get 用于 Linux,并且可从 FFMPEG 网站用于 Windows。

运行生成脚本时,optipngffmpeg 都需要位于您的路径中。

命令 flutterdart 和(当使用 Android 设备时)adb 需要在 PATH 环境变量的目录中可用(例如,PATH=~/<path_to_flutter>/flutter/bin/cache/dart-sdk/bin:~/Android/Sdk/platform-tools:$PATH)。该脚本需要最新开发版本的 Flutter,并且打算与已发布的 Flutter 版本一起使用。

当使用 Android 设备时,请确保 adb 命令与作为服务器运行的命令相同(通常由您的 IDE 启动,因此请使用 IDE 正在运行的相同的 adb)。

您目前无法在 iOS 设备上生成文档(尽管您可以在 macOS 上生成它们)。

优化

请考虑使用资源优化工具。

对于 PNG,我们建议使用 optipng,使用以下命令行

optipng -zc1-9 -zm1-9 -zs0-3 -f0-5 *.png

小心不要过于激进地应用此操作。特别是,assets/tests 目录中的文件不应进行优化。

自动生成工具会自动将其生成的资源应用优化。

问题

请在 主 Flutter 仓库中提交任何问题。

第三方内容的来源