当前位置:首页>PPT>《别再让 AI 生成“图片 PPT”:科研人如何构建可编辑汇报工作流?》——从“大纲+参考风格”到 Codex Skill 自动生成可编辑

《别再让 AI 生成“图片 PPT”:科研人如何构建可编辑汇报工作流?》——从“大纲+参考风格”到 Codex Skill 自动生成可编辑

  • 2026-08-23 10:29:38
《别再让 AI 生成“图片 PPT”:科研人如何构建可编辑汇报工作流?》——从“大纲+参考风格”到 Codex Skill 自动生成可编辑

前面的几篇文章,我们一直围绕一个问题展开:

科研人如何利用 AI 提高信息获取、知识整理和研究分析效率。从 AI 辅助阅读论文,到建立文献卡片,再到梳理研究方向和搭建综述框架,我们解决的是科研过程中的“输入”和“思考”问题。

但科研工作还有另一个重要环节:如何把自己的研究成果清晰、高效地表达出来?

无论是组会汇报、开题答辩、基金申请还是学术交流,PPT 都是科研人员最常使用的表达工具。因此,在进入 AI 论文写作系列之前,这一期先讨论一个科研人都会遇到的问题:

如何让 AI 不只是生成漂亮页面,而是真正帮助我们构建可编辑、可复用的科研表达工具。

01 / AI 做 PPT,真正难的不是生成,而是修改

你可能遇到过这种情况:AI 生成的“PPT”预览效果不错,但打开文件后才发现,整页其实只是一张图片。

标题改不了,正文选不中,卡片、表格和箭头也无法单独调整;有些页面在预览时字体和换行正常,导出后却突然错位。它看起来像 PPT,却很难继续用于答辩、汇报或正式交付。

我想解决的不是“如何生成一组更像 PPT 的图片”,而是如何得到一份真正可继续编辑的 PPTX:

    • 标题和正文可以修改;
    • 卡片、表格、编号和总结句可以调整;
    • 箭头、连接线和形状可以移动;
    • 照片、Logo 和复杂科研图作为独立图片保留;
    • 参考图只用于比对,不直接整页铺进最终幻灯片。

    本次案例逆向重建的是一份 8 页“AI 维修研究基础”答辩 PPT。页面保持原图 16:9 比例,文字、矩形、箭头、编号和表格重新创建;发动机照片、Logo 等复杂素材作为独立图片保留,蓝色图标优先使用 SVG 或其他矢量对象。每页生成后,还要重新渲染,与参考图逐页比较并进行多轮校正。


      02 / 更适合科研人的 AI PPT 工作流

      相比直接告诉 AI:“帮我生成一个 PPT。”更合理的流程应该是:

      FLOW 01

      1. 研究内容

      首先明确:汇报对象是谁?核心信息是什么?希望突出哪些研究成果?AI 可以帮助整理内容,但研究重点仍需要科研人员确定。


      FLOW 02

      2. AI 梳理大纲

      让 AI 根据研究内容规划:页面结构;信息层级;每页核心内容。先确定“讲什么”,再设计“怎么展示”。


      FLOW 03

      3. 参考风格分析

      提供已有 PPT 模板或参考图片,让 AI 理解:页面布局;配色风格;图表形式;视觉规范。重点不是复制页面,而是提取可复用的设计规则。


      FLOW 04

      4. 生成可编辑 PPT

      最终目标不是生成一张漂亮图片,而是一份真正可以修改的 PPT:文字可以调整;图形可以移动;数据可以替换;页面可以复用。


      FLOW 05

      5. 人工修改完善

      AI 负责提高效率,科研人员负责最终判断。需要人工确认:内容是否准确;逻辑是否清晰;表达是否符合汇报目标。因为科研 PPT 的核心,不是“看起来高级”,而是:让研究内容被准确理解。

      下一部分,我们将介绍如何利用 Codex + Skill,将“大纲 + 参考风格”转化为真正可编辑、可迭代的科研 PPT 工作流。

      首先

      准备一份文本大纲和至少一份 PPTX、PDF、PNG 或 JPEG 风格参考,就能让 Codex 按固定流程完成模板审计、视觉样稿、可编辑重建与逐页验收。本文从插件安装到实际使用,一次讲清。

      为什么要把这套流程封装成 Skill

      真正节省时间的,并不是第一轮把页面“生成出来”,而是领导临时修改标题、数据或结论时,你仍能像编辑普通 PPT 一样改字、调色、移动框线和替换图片。

      为此,我把整套方法封装成了一个 Codex Skill:$outline-to-editable-ppt

      可以把 Skill 理解为一份完整的工作规范:它规定 Codex 应该先检查什么、什么时候向用户确认、哪些元素必须重建为可编辑对象,以及最终如何验收。插件则是安装入口,让这套 Skill 能够被注册、安装,并出现在 Codex 的插件体系中。

      它不会从一份大纲直接跳到最终成品,而是严格按照下面的流程执行:

      大纲检查 → 模板审计 → 样式提取 → 两页样稿 → 用户确认 → 完整参考图 → 可编辑重建 → 渲染比较 → 多轮校正 → 最终验收

      其中,“可编辑重建”使用 PptxGenJS——一个通过 JavaScript 生成 PPTX 的工具——将标题、正文、卡片、编号、表格、连接线、箭头和总结句写成独立对象。

      正式制作前,Skill 会先判断模板是否适合重建,避免强行复刻复杂三维文字、艺术字或整页栅格信息图;随后生成一页文字密集型样稿和一页图示型样稿,待用户确认后再继续制作全稿。自动检查负责定位结构和视觉风险,但最终的重点、清晰度与美感仍需人工判断。

      插件入口与调用名称

      我已经把这套 Skill 封装成完整插件包。

      安装后,Codex 插件菜单中会出现展示名:

      TEXT · 可直接复制

      可编辑PPT生成器

      在提示词中,则使用下面的调用名启动:

      TEXT · 可直接复制

      $outline-to-editable-ppt

      03 / 安装插件:先回复“PPT插件”领取完整 ZIP

      这一部分只完成一个目标:把作者提供的完整插件包装入当前 Windows 用户的 Codex,并确认最终状态为 installed, enabled

      普通读者不需要自己编写 SKILL.mdplugin.json 或 marketplace.json,按顺序执行即可。

      说明:这不是 OpenAI 公共插件市场中的公开插件。它通过作者提供的 ZIP 包安装到个人 personal marketplace。更换电脑或 Windows 账户后,需要重新安装。

      INSTALL 01

      第 1 步:领取并保存完整 ZIP 包

      在本文对应的公众号后台回复:

      TEXT · 可直接复制

      PPT插件

      下载配套文件后,不要解压,也不要修改压缩包内部的目录名。文件名应以 outline-to-editable-ppt-plugin 开头,例如:

      TEXT · 可直接复制

      outline-to-editable-ppt-plugin-0.1.0-transfer-20260729.zip

      把 ZIP 保存到当前 Windows 账户的“下载”文件夹。后面的脚本会自动查找该文件夹中最新的同名 ZIP,无须手工修改用户名或路径。

      验收标准:“下载”文件夹中能够看到完整 ZIP,且文件大小不是 0 KB。

      INSTALL 02

      第 2 步:从 Windows 开始菜单打开独立 PowerShell

      点击 Windows 开始菜单,搜索并打开“Windows PowerShell”或“PowerShell”。

      不要在 Codex 当前任务的终端中执行安装命令。任务终端可能使用 CodexSandboxOffline 身份,该身份看到的插件状态与真实 Windows 用户不同。

      先运行:

      POWERSHELL · 可直接复制

      whoami

      正常输出应类似:

      TEXT · 可直接复制

      你的电脑名\你的Windows用户名

      如果输出中包含 CodexSandboxOffline,请立即关闭该窗口,并从 Windows 开始菜单重新打开 PowerShell。

      验收标准:whoami 显示你日常登录 Windows 使用的账户,不包含 CodexSandboxOffline

      INSTALL 03

      第 3 步:运行环境检查

      把下面整段复制到刚打开的独立 PowerShell:

      POWERSHELL · 可直接复制

      $creatorRoot = "$env:USERPROFILE\.codex\skills\.system\plugin-creator"$codex = "$env:USERPROFILE\.codex\plugins\.plugin-appserver\codex.exe"$package = Get-ChildItem `  -LiteralPath "$env:USERPROFILE\Downloads" `  -Filter "outline-to-editable-ppt-plugin*.zip" `  -File |  Sort-Object LastWriteTime -Descending |  Select-Object -First 1Write-Output "IDENTITY=$([Security.Principal.WindowsIdentity]::GetCurrent().Name)"Write-Output "PLUGIN_CREATOR=$(Test-Path "$creatorRoot\scripts\create_basic_plugin.py")"Write-Output "CODEX_CLI=$(Test-Path $codex)"Write-Output "PACKAGE_FOUND=$($null -ne $package)"if ($package) {  Write-Output "PACKAGE=$($package.FullName)"}

      脚本使用 $env:USERPROFILE 自动适配当前 Windows 用户。不要把示例中的 Garyasus08 或其他人的用户名和路径照抄到自己的电脑。

      验收标准:必须同时出现:

      TEXT · 可直接复制

      PLUGIN_CREATOR=TrueCODEX_CLI=TruePACKAGE_FOUND=True

      如果 PACKAGE_FOUND=False,检查 ZIP 是否确实位于“下载”文件夹,以及文件名是否以 outline-to-editable-ppt-plugin 开头。

      如果前两项为 False,先更新或修复 Codex Desktop,不要继续安装。

      INSTALL 04

      第 4 步:首次安装时运行一键脚本

      下面的脚本只用于首次安装。如果检测到同名插件目录已经存在,脚本会主动停止,不会删除或覆盖现有文件。

      把下面整段复制到同一个 PowerShell:

      POWERSHELL · 可直接复制

      $pluginRoot = "$env:USERPROFILE\plugins\outline-to-editable-ppt-plugin"$marketPath = "$env:USERPROFILE\.agents\plugins\marketplace.json"if ([Security.Principal.WindowsIdentity]::GetCurrent().Name -match "CodexSandboxOffline") {  throw "当前是 Codex 沙箱身份。请从 Windows 开始菜单重新打开 PowerShell。"}if (-not $package) {  throw "未在下载文件夹找到插件 ZIP。请先回复关键词 PPT插件 领取并下载。"}if (-not (Test-Path "$creatorRoot\scripts\create_basic_plugin.py")) {  throw "未找到 plugin-creator。请先更新或修复 Codex Desktop。"}if (Test-Path $pluginRoot) {  throw "已存在同名插件目录。请停止首次安装,转到文末的已有插件更新说明。"}python "$creatorRoot\scripts\create_basic_plugin.py" `  outline-to-editable-ppt-plugin `  --with-skills `  --with-marketplace$unpackRoot = Join-Path `  $env:TEMP `  ("outline-to-editable-ppt-" + [guid]::NewGuid().ToString("N"))New-Item -ItemType Directory -Path $unpackRoot | Out-NullExpand-Archive -LiteralPath $package.FullName -DestinationPath $unpackRoot$manifest = Get-ChildItem `  -LiteralPath $unpackRoot `  -Recurse `  -Force `  -Filter "plugin.json" |  Where-Object { $_.Directory.Name -eq ".codex-plugin" } |  Select-Object -First 1if (-not $manifest) {  throw "ZIP 中未找到 .codex-plugin\plugin.json,请重新领取完整插件包。"}$packageRoot = Split-Path (Split-Path $manifest.FullName -Parent) -Parent$skillSource = Join-Path $packageRoot "skills\outline-to-editable-ppt"$skillTarget = Join-Path $pluginRoot "skills\outline-to-editable-ppt"if (-not (Test-Path "$skillSource\SKILL.md")) {  throw "ZIP 中未找到完整 SKILL.md,请重新领取完整插件包。"}New-Item -ItemType Directory -Path $skillTarget -Force | Out-NullCopy-Item `  -LiteralPath $manifest.FullName `  -Destination "$pluginRoot\.codex-plugin\plugin.json" `  -ForceGet-ChildItem -LiteralPath $skillSource -Force |  Copy-Item -Destination $skillTarget -Recurse -ForceWrite-Output "MANIFEST=$(Test-Path "$pluginRoot\.codex-plugin\plugin.json")"Write-Output "SKILL=$(Test-Path "$skillTarget\SKILL.md")"Write-Output "MARKETPLACE=$(Test-Path $marketPath)"

      脚本主要完成三件事:

      1. 使用官方脚手架创建个人插件入口;
      2. 将 ZIP 解压到唯一临时目录;
      3. 把经过检查的插件清单和完整 Skill 复制到目标目录。

      临时目录会保留在系统临时文件夹中,不影响插件使用。

      验收标准:脚本末尾必须连续出现:

      TEXT · 可直接复制

      MANIFEST=TrueSKILL=TrueMARKETPLACE=True

      只要有一项为 False,就不要进入下一步。常见原因包括 ZIP 不完整、目录被手工改名,或脚手架没有成功创建。

      INSTALL 05

      第 5 步:安装并启用插件

      仍在这个独立 PowerShell中运行:

      POWERSHELL · 可直接复制

      & $codex plugin add "outline-to-editable-ppt-plugin@personal"& $codex plugin list |  Select-String "outline-to-editable-ppt-plugin"

      如果 plugin add 提示已经安装,仍要继续执行 plugin list,并以列表中的最终状态为准。

      验收标准:

      TEXT · 可直接复制

      outline-to-editable-ppt-plugin@personal  installed, enabled  0.1.0

      三个状态的含义分别是:

      • available:个人插件源中可以发现,但尚未安装;
      • installed:已经安装到当前 Windows 用户的 Codex;
      • enabled:已经启用,新任务可以加载。

      只有同时看到 installed, enabled,才算安装完成。

      INSTALL 06

      第 6 步:重新打开 Codex 或新建任务

      安装完成后,完全退出并重新打开 Codex Desktop,或者至少新建一个任务。

      旧任务可能保留安装前的插件快照。因此,即使 plugin list 已显示 installed, enabled,旧任务菜单中暂时看不到插件,也不一定意味着安装失败。

      在新任务中打开输入框附近的插件菜单,查找:

      TEXT · 可直接复制

      可编辑PPT生成器

      它与内置的 Presentations 不是同一个入口:

      • Presentations是通用演示文稿能力;
      • “可编辑PPT生成器”承载的是本文封装的模板审计、两页样稿、PptxGenJS 可编辑重建与视觉验收流程。

      你可以从菜单中选择该插件,也可以在新任务中直接输入:

      TEXT · 可直接复制

      $outline-to-editable-ppt

      验收标准:新任务的插件列表中出现“可编辑PPT生成器”,并且输入框仍可继续输入任务要求。

      04 / 使用插件:从大纲到可编辑 PPT

      USE 01

      第 1 步:提交完整大纲和首次调用提示词

      Skill 需要知道每一页承担什么信息,才能合理拆页、选择图示结构,并在数据不足时向你追问,而不是用看似合理的数字填空。

      大纲至少应包括:

      PPT 总标题;汇报对象;预计页数;每页标题;每页核心内容;希望使用的图片、图表或流程结构。

      例如,下面是一份简短的 Markdown 大纲:

      MARKDOWN · 可直接复制

      # AI维修研究基础汇报对象:工程技术答辩委员会预计页数:8页## 第1页|AI维修系统总体建设目标- 核心内容:构建数据、知识、模型、推理、生成、校验与反馈一体化系统- 视觉:系统总体架构流程图## 第2页|任务书需求与平台能力对应关系- 核心内容:将研究任务映射到平台支撑能力- 视觉:双栏映射表;真实数据待补充

      真实图表数据不完整时,Skill 不会自行编造,而是保留待补位置或继续向你索取数据。

      准备好大纲后,可以直接使用下面的首次调用提示词:

      TEXT · 可直接复制

      请使用 $outline-to-editable-ppt 制作一份可编辑PPT。这是我的文本大纲:【在这里粘贴大纲】请先检查大纲,然后向我索取参考模板。先进行模板可重建性审计,再生成两页视觉样稿;等我确认样稿后,再制作完整PPT并执行渲染对比和最终验收。

      即使你已经从插件菜单中选择了“可编辑PPT生成器”,也建议保留这段流程要求。它能明确告诉 Skill:模板审计和样稿确认不能跳过。

      验收标准:Skill 先检查空标题、重复页码和信息缺口,再向你索取参考模板,而不是立刻批量生成页面。

      任务开始后,Skill 会把过程文件保存到清晰的目录中:

      • outline/:用户大纲;
      • style/source/:模板或参考图;
      • src/:PptxGenJS 生成代码;
      • render/:PPT 重新渲染后的 PNG;
      • reports/:模板审计、差异和可编辑性报告。

      即使任务中断,也能继续检查进度和复用已有证据。

      USE 02

      第 2 步:提交模板,先做可重建性审计

      并不是每一张参考图都适合按原样重建。先做审计,可以在写代码前识别不可拆分的元素,避免最后才发现整页内容只能作为图片保留。

      将模板或参考图拖入任务,推荐优先级为:

      PPTX → PDF → PNG/JPEG

      PPTX 能提供页面比例、字体、主题色、字号体系、母版,以及形状与图片之间的结构关系;PDF 和 PNG/JPEG 仍可用于视觉参考,但能恢复的结构信息更少。

      审计主要检查:

      • 页面比例;
      • 字体与主题色;
      • 字号和标题格式;
      • 版式与间距;
      • 图形是否可以拆分;
      • 是否包含复杂三维效果、艺术字、密集纹理或整页栅格图。

      审计结果分为三个区间:

      • 80—100:pass,可以继续;
      • 60—79:conditional,列出限制,等待用户明确接受;
      • 低于 60:不适合按原样精确重建,需要更换模板,或接受明显简化后重新审计。

      PNG 也可以作为参考,但其中的文字、图形和背景已经像素化,必须根据审计报告理解可恢复范围。

      验收标准:任务中出现模板文件名和审计报告,报告包含分数、pass 或 conditional 状态,以及需要确认的限制项。

      审计通过后:提取 style tokens

      当审计结果为 pass,或用户明确接受 conditional 的限制后,Skill 会把字体、颜色、间距和位置等视觉规则保存到:

      TEXT · 可直接复制

      style/style-tokens.json

      其中包括页面比例、已验证字体、主题色、字号、标题位置、页边距、段落间距、重复网格和对齐方式。后续两页样稿必须依据这些参数设计。

      USE 03

      第 3 步:先确认两页样稿,再制作全稿

      多页 PPT 最怕在全部生成后,才发现字体、颜色、间距或图示语言不合适。因此,Skill 会先选择两页具有代表性的页面:

      • 一页文字密集型,用于检查标题、正文、卡片和总结句;
      • 一页图示型,用于检查流程、图标、图片和连接关系。

      图像生成只负责无正文视觉底图、照片、插图或纹理。标题、正文、数字和标签不能交给图片模型生成,必须由程序叠加准确文字。

      无正文视觉底图的提示词可以这样写:

      TEXT · 可直接复制

      16:9技术汇报页面视觉底图,白色背景,蓝色与红色强调,使用独立内容区域和扁平二维结构,预留文字区域,不要出现文字、字母、数字、标签、水印或伪文字。

      查看两页样稿后,只有你给出明确批准,Skill 才会继续生成剩余页面。可以直接回复:

      TEXT · 可直接复制

      两页样稿已确认,可以按照当前字体、颜色、间距和版式生成完整PPT。

      未收到明确批准时,Skill 不会继续制作全稿。这不是任务卡住,而是把视觉决策留在修改成本最低的阶段。

      验收标准:文字密集页和图示页并排显示,文字清晰可读,任务中记录了用户的明确确认语。

      样稿确认后:冻结设计版本

      这里的“冻结”并不是禁止后续修改,而是锁定已经确认的设计基线,包括:

      • 无正文视觉底图的提示词;
      • style tokens;
      • 字体、颜色、间距和版式;
      • 素材版本与哈希。

      这样在后续校正可编辑对象时,底图和版式不会反复变化,避免设计逐轮漂移。

      冻结后,Skill 会按照相同规则生成其余页面的完整 reference PNG。全部参考图确认无误后,才进入 PptxGenJS 可编辑重建。

      USE 04

      第 4 步:使用 PptxGenJS 重建可编辑对象

      PptxGenJS 可以通过 JavaScript 创建 PowerPoint 对象。它的核心价值是让最终 PPTX 中的元素仍然可以单独选择和修改,而不是把整个页面压成一张图。

      样稿获批后,Skill 会在 src/ 目录中编写生成代码。下列内容必须重建为独立可编辑对象:

      • 标题与正文;
      • 标签与数字;
      • 卡片与编号;
      • 表格;
      • 连接线与箭头;
      • 简单图标;
      • 页面底部总结句。

      照片、官方 Logo、生成插图和复杂科研图可以作为独立图片保留,但必须记录在可编辑性报告中。

      参考 PNG 只能用于视觉比较,不能直接整页铺到最终幻灯片中。

      验收标准:在 PowerPoint 中,多个文字框、形状和箭头可以分别选中、移动和修改;复杂图片作为独立图片存在,不充当整页背景。

      USE 05

      第 5 步:逐页渲染、比较和校正

      PPTX 能成功生成,并不代表实际渲染结果一定正确。中文字体、换行、文本框尺寸、图片裁剪和连接线都可能与代码预期不同,因此必须检查重新渲染后的页面。

      每轮生成后,依次执行:

      1. 使用 PowerPoint 或 LibreOffice 将 PPTX 重新渲染为 PNG;
      2. 将 reference 与 render 逐页比较;
      3. 生成 diff 差异图和机器指标;
      4. 人工检查标题、卡片、流程线、中文字体、换行、文本框尺寸、图片裁剪、连接线和底部总结句;
      5. 修正后重新生成,并开始下一轮比较。

      自动比较主要关注像素差异、结构相似度、区域重合、位置误差和主色差异;结构检查则用于发现页面溢出、空占位符、缺失页面、整页栅格图和意外换行。

      这些指标能快速定位风险,但不能替代人对重点、清晰度和美感的判断。

      流程要求至少进行三轮校正,除非所有验收阈值提前全部通过;最多进行四轮,或连续两轮综合分提升不足 1 个百分点时停止,并在报告中列出未解决的例外。任何硬门槛失败,都不能标记为完成。

      对于中文 PPT,建议按以下优先级修正:

      整体结构 → 关键元素位置 → 中文字体与换行 → 文本框尺寸 → 图片裁剪 → 线条箭头 → 图标与装饰细节

      验收标准:同一页的 referencerender 和 diff 可以并排比较;机器检查与人工验收均确认页面接近参考样式,同时保持对象可编辑。

      05 / 它不是“一键生成神器”

      这套 Skill 的价值,是把重复劳动交给稳定流程,而不是承诺任何模板都能一键精确复刻。

      复杂三维效果、艺术字、密集纹理和不可拆分的整页信息图,可能需要简化;模板字体缺失时,应安装原字体,或先确认替代字体后再继续。

      PowerPoint 与 LibreOffice 的渲染结果也可能存在差异。自动评分可以定位位置、尺寸、图片和文本风险,却不能替代人对内容重点、清晰度和美感的最终判断。

      让人只在模板选择、样稿确认和最终验收这些真正需要判断的节点介入。

      06 / macOS 用户须知

      本文的一键安装脚本只在 Windows PowerShell 中完成了实机验证,不能原样粘贴到 macOS 的 zsh 中执行。macOS 的目录分隔符、临时目录和 Codex CLI 位置都可能不同。

      macOS 用户仍可回复“PPT插件”领取同一个 ZIP。建议将压缩包与下面的提示词一起交给 Codex,让系统调用当前电脑实际可用的 $plugin-creator 完成安装:

      TEXT · 可直接复制

      请使用 $plugin-creator 安装我附带的outline-to-editable-ppt-plugin 完整 ZIP 包。要求:1. 先检查 ZIP 中存在 .codex-plugin/plugin.json;2. 检查 skills/outline-to-editable-ppt/SKILL.md;3. 创建或确认 personal marketplace;4. 不覆盖已有同名插件;5. 安装后运行 plugin list;6. 只有看到 installed, enabled 才算完成。

      安装完成后,重新打开 Codex 或新建任务。

      由于本文尚未完成 macOS 实机复核,不建议直接把 Windows 的 appserver 备用路径改写后使用。

      07 / 插件安装与运行故障排查

      排查时先判断现象,再处理对应层级。尤其需要注意:available 只表示插件来源可以被发现,并不等于已经安装。

      01 · 插件菜单找不到“可编辑PPT生成器”

      首要检查:plugin list 是否显示 installed, enabled

      处理方式:未安装则回到安装第 5 步;状态正确则重新打开 Codex 或新建任务。

      02 · 只显示 available

      首要检查:是否仅注册了 marketplace

      处理方式:执行 plugin add,再检查 plugin list

      03 · plugin was not found in marketplace 'personal'

      首要检查:三项结构检查是否为 True

      处理方式:若 MARKETPLACE=False,重新运行首次安装脚本;若插件目录已存在,不要强行覆盖,按“已有插件如何更新”处理。

      04 · MANIFEST=False 或 SKILL=False

      首要检查:ZIP 是否完整、目录名是否被修改

      处理方式:重新领取完整 ZIP;不要只复制 SKILL.md,也不要从 cache 目录拼装。

      05 · Codex 终端显示未安装,外部 PowerShell 正常

      首要检查:whoami 是否包含 CodexSandboxOffline

      处理方式:以 Windows 开始菜单打开的独立 PowerShell 为准,不要在 Codex 沙箱终端安装或判断状态。

      06 · Skill 无法调用

      首要检查:Skill 入口和目录层级

      处理方式:确认 skills/outline-to-editable-ppt/SKILL.md 存在,并排除双层同名目录。

      07 · python 不是内部或外部命令

      首要检查:Python 是否安装并加入 PATH

      处理方式:先安装或修复 Python,再重新打开独立 PowerShell;不要跳过脚手架步骤。

      08 · 模板审计不通过

      首要检查:审计分数和限制项

      处理方式:更换 PPTX,或明确接受简化后重新审计。

      09 · 中文字体或换行错位

      首要检查:模板字体是否已安装

      处理方式:安装同款字体或确认替代字体,再重新渲染。

      10 · PPTX 无法渲染

      首要检查:PowerPoint/LibreOffice 是否可用

      处理方式:修复渲染器后再执行视觉验收。

      11 · 最终结果像一张整页图片

      首要检查:可编辑性报告和整页栅格图硬门槛

      处理方式:使用独立对象重新构建;整页栅格图不能作为合格交付。

      已有插件如何更新

      先在独立 PowerShell 中确认本地插件与个人 marketplace 的 source.path 指向同一来源。随后定义路径、更新 cachebuster(缓存刷新标记)并重新安装:

      POWERSHELL · 可直接复制

      $creatorRoot = "$env:USERPROFILE\.codex\skills\.system\plugin-creator"$pluginRoot = "$env:USERPROFILE\plugins\outline-to-editable-ppt-plugin"$codex = "$env:USERPROFILE\.codex\plugins\.plugin-appserver\codex.exe"python "$creatorRoot\scripts\update_plugin_cachebuster.py" $pluginRootpython "$creatorRoot\scripts\read_marketplace_name.py"& $codex plugin add "outline-to-editable-ppt-plugin@personal"& $codex plugin list |  Select-String "outline-to-editable-ppt-plugin"

      验收标准:plugin list 再次显示 installed, enabled,随后在新任务中测试更新后的 Skill。

      08 / 常见问题

      没有参考模板,能开始吗?

      不需要现成的可编辑 PPTX 模板,但必须提供至少一份 PPTX、PDF、PNG 或 JPEG 风格参考。如果完全没有风格参考,Skill 会先向你索取,并在正式设计前暂停。

      所有元素都能编辑吗?

      常规文字、表格、形状、编号和连接线可以编辑;照片、官方 Logo 和复杂插图会作为独立图片保留。

      能迁移到另一台电脑吗?

      可以。新电脑不需要复制旧电脑的 cache,也不要只拷贝一个 SKILL.md

      直接在公众号回复“PPT插件”重新领取完整 ZIP,再从本文安装部分的第 1 步开始操作。每个 Windows 账户都必须分别通过三项 True 检查,并最终看到 installed, enabled

      09 / 开发者进阶:快速安装脚本为什么能够工作

      普通读者不需要继续配置。下面只面向希望研究或二次开发插件的人。

      完整插件由两部分组成:

      TEXT · 可直接复制

      outline-to-editable-ppt-plugin/├── .codex-plugin/│   └── plugin.json└── skills/    └── outline-to-editable-ppt/        ├── SKILL.md        ├── agents/        ├── assets/        ├── references/        └── scripts/

      .codex-plugin/plugin.json 负责插件 ID、版本、展示名和 Skill 入口;skills/outline-to-editable-ppt/ 承载真正的工作说明、脚本和资源。

      个人 marketplace 只记录本地插件来源,使插件变为 available;执行 plugin add 后,插件才会进入 installed, enabled 状态。

      如果你已经拥有完整 Skill 源目录,并希望自行封装插件,可以使用系统自带的 $plugin-creator。首次创建骨架的核心命令是:

      POWERSHELL · 可直接复制

      $creatorRoot = "$env:USERPROFILE\.codex\skills\.system\plugin-creator"python "$creatorRoot\scripts\create_basic_plugin.py" `  outline-to-editable-ppt-plugin `  --with-skills `  --with-marketplace

      随后必须把完整 Skill 目录复制到 skills/outline-to-editable-ppt/,并确认没有形成双层同名目录。再使用 validate_plugin.py 验证结构,最后在独立 PowerShell 中执行 plugin add 和 plugin list

      对于只想使用“可编辑PPT生成器”的读者,不建议手工修改 marketplace.json,也不建议从 .codex/plugins/cache 中复制文件。快速安装脚本已经把这些容易出错的步骤收拢成了一套可验证流程。

      10 / 最后

      这不是把图片塞进 PPT,而是把模板分析、样稿确认、可编辑重建和质量验收,变成一套可以重复调用的 Codex 工作流。

      配置完成后,你既可以从插件菜单选择“可编辑PPT生成器”,也可以直接输入:

      TEXT · 可直接复制

      $outline-to-editable-ppt

      然后提交大纲和参考风格,开始制作真正可以继续修改的 PPT。

      在公众号后台回复:

      TEXT · 可直接复制

      PPT插件

      即可领取完整插件包。

      PPT 解决的是科研成果“如何展示”的问题。但科研表达还有一个更核心的载体:论文。

      下一阶段,「AI辅助科研之路」将进入 AI 论文写作系列,探索如何利用 AI 辅助论文结构设计、语言优化和投稿准备。

      但需要始终记住:

      AI 可以帮助科研人提高表达效率,但真正的科学问题、实验结果和创新观点,仍然需要研究者自己完成。

      最新文章

      随机文章

      基本 文件 流程 错误 SQL 调试
      1. 请求信息 : 2026-08-26 08:00:22 HTTP/2.0 GET : https://h.sjds.net/a/549596.html
      2. 运行时间 : 0.213781s [ 吞吐率:4.68req/s ] 内存消耗:4,580.16kb 文件加载:140
      3. 缓存信息 : 0 reads,0 writes
      4. 会话信息 : SESSION_ID=66c7bf61b45393f36453ec8b6c4d8747
      1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
      2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
      3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
      4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
      5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
      6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
      7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
      8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
      9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
      10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
      11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
      12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
      13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
      14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
      15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
      16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
      17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
      18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
      19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
      20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
      21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
      22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
      23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
      24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
      25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
      26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
      27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
      28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
      29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
      30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
      31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
      32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
      33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
      34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
      35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
      36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
      37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
      38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
      39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
      40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
      41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
      42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
      43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
      44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
      45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
      46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
      47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
      48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
      49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
      50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
      51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
      52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
      53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
      54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
      55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
      56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
      57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
      58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
      59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
      60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
      61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
      62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
      63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
      64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
      65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
      66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
      67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
      68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
      69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
      70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
      71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
      72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
      73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
      74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
      75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
      76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
      77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
      78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
      79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
      80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
      81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
      82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
      83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
      84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
      85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
      86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
      87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
      88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
      89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
      90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
      91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
      92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
      93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
      94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
      95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
      96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
      97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
      98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
      99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
      100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
      101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
      102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
      103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
      104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
      105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
      106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
      107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
      108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
      109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
      110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
      111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
      112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
      113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
      114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
      115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
      116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
      117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
      118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
      119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
      120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
      121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
      122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
      123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
      124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
      125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
      126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
      127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
      128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
      129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
      130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
      131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
      132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
      133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
      134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
      135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
      136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
      137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
      138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
      139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
      140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
      1. CONNECT:[ UseTime:0.001031s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
      2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001759s ]
      3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001031s ]
      4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000707s ]
      5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001462s ]
      6. SELECT * FROM `set` [ RunTime:0.003736s ]
      7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001476s ]
      8. SELECT * FROM `article` WHERE `id` = 549596 LIMIT 1 [ RunTime:0.002713s ]
      9. UPDATE `article` SET `lasttime` = 1787702422 WHERE `id` = 549596 [ RunTime:0.008983s ]
      10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.001964s ]
      11. SELECT * FROM `article` WHERE `id` < 549596 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003175s ]
      12. SELECT * FROM `article` WHERE `id` > 549596 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001163s ]
      13. SELECT * FROM `article` WHERE `id` < 549596 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006306s ]
      14. SELECT * FROM `article` WHERE `id` < 549596 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005779s ]
      15. SELECT * FROM `article` WHERE `id` < 549596 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003086s ]
      0.217484s