import type Image from "next/image"; import EcosystemIconDark from "../public/images/docs/shared/feature-icons/ecosystem-dark.svg"; import EcosystemIconLight from "../public/images/docs/shared/feature-icons/ecosystem-light.svg"; import LightningIconDark from "../public/images/docs/shared/feature-icons/lightning-dark.svg"; import LightningIconLight from "../public/images/docs/shared/feature-icons/lightning-light.svg"; import BarsIconDark from "../public/images/docs/shared/feature-icons/bars-dark.svg"; import BarsIconLight from "../public/images/docs/shared/feature-icons/bars-light.svg"; import MultiEnvTargetsIconDark from "../public/images/docs/shared/feature-icons/multi-env-targets-dark.svg"; import MultiEnvTargetsIconLight from "../public/images/docs/shared/feature-icons/multi-env-targets-light.svg"; import NextJSIconDark from "../public/images/docs/shared/feature-icons/nextjs-dark.svg"; import NextJSIconLight from "../public/images/docs/shared/feature-icons/nextjs-light.svg"; import ServerComponentsIconDark from "../public/images/docs/shared/feature-icons/server-components-dark.svg"; import ServerComponentsIconLight from "../public/images/docs/shared/feature-icons/server-components-light.svg"; import FingerprintIconDark from "../public/images/docs/shared/feature-icons/fingerprint-dark.svg"; import FingerprintIconLight from "../public/images/docs/shared/feature-icons/fingerprint-light.svg"; import CloudIconDark from "../public/images/docs/shared/feature-icons/cloud-dark.svg"; import CloudIconLight from "../public/images/docs/shared/feature-icons/cloud-light.svg"; import CpuIconDark from "../public/images/docs/shared/feature-icons/cpu-dark.svg"; import CpuIconLight from "../public/images/docs/shared/feature-icons/cpu-light.svg"; import PieconDark from "../public/images/docs/shared/feature-icons/piecon-dark.svg"; import PieconLight from "../public/images/docs/shared/feature-icons/piecon-light.svg"; import RefreshIconDark from "../public/images/docs/shared/feature-icons/refresh-dark.svg"; import RefreshIconLight from "../public/images/docs/shared/feature-icons/refresh-light.svg"; import ArrowsExpandIconDark from "../public/images/docs/shared/feature-icons/arrows-expand-dark.svg"; import ArrowsExpandIconLight from "../public/images/docs/shared/feature-icons/arrows-expand-light.svg"; import BeakerIconDark from "../public/images/docs/shared/feature-icons/beaker-dark.svg"; import BeakerIconLight from "../public/images/docs/shared/feature-icons/beaker-light.svg"; type NextImageSrc = Parameters[0]["src"]; export type Feature = { name: string; description: string; iconDark: NextImageSrc; iconLight: NextImageSrc; page: "all" | "home" | "docs"; }; export type Features = Array; const REPO_FEATURES: Features = [ { name: "逐步增量的设计", description: `只需构建一次工作流——一旦HydroRollAI完成一个任务,它就不会再重新执行。`, iconDark: RefreshIconDark, iconLight: RefreshIconLight, page: "all", }, { name: "内容感知哈希", description: `HydroRollAI根据文件内容而不是时间戳来确定需要构建的内容。`, iconDark: FingerprintIconDark, iconLight: FingerprintIconLight, page: "home", }, { name: "并行执行", description: `以最大并行性使用每个核心来执行构建,避免浪费空闲CPU。`, iconDark: LightningIconDark, iconLight: LightningIconLight, page: "all", }, { name: "远程缓存", description: `与团队成员和CI/CD共享远程构建缓存,加快构建速度。`, iconDark: CloudIconDark, iconLight: CloudIconLight, page: "all", }, { name: "零运行时开销", description: `HydroRollAI不会干扰您的运行时代码,也不会修改您的源映射文件。 `, iconDark: CpuIconDark, iconLight: CpuIconLight, page: "all", }, { name: "精简子集", description: `通过生成仅包含构建特定目标所需内容的部分,加快模型的部署速度。`, iconDark: PieconDark, iconLight: PieconLight, page: "all", }, { name: "任务流水线", description: `定义任务之间的关系,然后让HydroRollAI优化构建顺序和时间。`, iconDark: ArrowsExpandIconDark, iconLight: ArrowsExpandIconLight, page: "all", }, { name: "满足您的需求", description: `正在使用Pytorch或者Tensorflow?保持您的包发布工作流程,并使用HydroRollAI加速任务运行。`, iconDark: BeakerIconDark, iconLight: BeakerIconLight, page: "home", }, { name: `在浏览器中进行性能分析`, description: `生成构建分析文件,并在Chrome或Edge中导入,以了解哪些任务耗时最长`, iconDark: BarsIconDark, iconLight: BarsIconLight, page: "home", }, ]; const PACK_FEATURES: Features = [ { name: "逐步增量设计", description: `只需构建一次工作流——一旦HydroRollCore完成一个任务,它就不会再重新执行。`, iconDark: BarsIconDark, iconLight: BarsIconLight, page: "all", }, { name: "生态系统友好", description: `可以直接支持Python与TypeScript,也可以通过插件支持其他语言,且官方给出的规则包十分丰富。`, iconDark: EcosystemIconDark, iconLight: EcosystemIconLight, page: "home", }, { name: "闪电般快速的HMR", description: `无论你写的规则包大小如何,热加载(HMR)始终保持快速的读取和运行速度。`, iconDark: LightningIconDark, iconLight: LightningIconLight, page: "all", }, { name: "模型与HydroRoll本体组件", description: `在使用HydroRollCore时,可以获得对AI模型以及水系本体组件的原生支持。`, iconDark: ServerComponentsIconDark, iconLight: ServerComponentsIconLight, page: "all", }, { name: "同时多个环境目标", description: `一起构建并优化多个环境(webui、本地静态wiki站点、服务器接口组件)`, iconDark: MultiEnvTargetsIconDark, iconLight: MultiEnvTargetsIconLight, page: "all", }, { name: "站点支持 Next.js", description: `HydroRollCore将为Next.js的生产构建提供动力,无论是在本地还是在云端。`, iconDark: NextJSIconDark, iconLight: NextJSIconLight, page: "all", }, ]; export const REPO_DOCS_FEATURES = REPO_FEATURES.filter( (f) => f.page === "docs" || f.page === "all" ); export const REPO_HOME_FEATURES = REPO_FEATURES.filter( (f) => f.page === "home" || f.page === "all" ); export const PACK_HOME_FEATURES = PACK_FEATURES.filter( (f) => f.page === "home" || f.page === "all" );