本地生图工作台 canvas-workbench:开自己的 API…
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
dsh plugin --profile web add elangan1997-cmyk/canvas-workbench状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
安装兼容性检查需源码安装仓库根目录无 package.json,浅层子目录有 2 份 dsh 插件清单(canvas-workbench/package.json、dsh-codex/package.json),无法唯一定位安装名
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 11:41:49
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
查看扫描证据(共 35 处,展示前 31 条)
- 读取本地文件canvas-workbench/lib/chat-image-router.js:32
try { await stat(target); } catch { return target; } - 读取本地文件canvas-workbench/lib/chat-image-router.js:45
const info = await stat(join(directory, 'canvas.json')); - 读取本地文件canvas-workbench/lib/chat-image-router.js:105
const parsed = JSON.parse(await readFile(foldersIndexPath(), 'utf8')); - 写入本地文件canvas-workbench/lib/chat-image-router.js:112
await mkdir(dirname(path), { recursive: true }); - 写入本地文件canvas-workbench/lib/chat-image-router.js:115
await writeFile(temporary, value, 'utf8'); - 写入本地文件canvas-workbench/lib/chat-image-router.js:116
await rename(temporary, path); - 写入本地文件canvas-workbench/lib/chat-image-router.js:118
await writeFile(path, value, 'utf8').catch(() => {}); - 读取本地文件canvas-workbench/lib/chat-image-router.js:124
const exists = async (path) => { try { await stat(path); return true; } catch (err) { return false; } }; - 读取本地文件canvas-workbench/lib/chat-image-router.js:127
const parsed = JSON.parse(await readFile(markerPathOf(folder), 'utf8')); - 写入本地文件canvas-workbench/lib/chat-image-router.js:155
await rename(folder, target).catch(() => { target = folder; }); - 写入本地文件canvas-workbench/lib/chat-image-router.js:157
await mkdir(target, { recursive: true }); - 执行外部命令来自配置/变量dsh-codex/lib/bin.js:25
const child = spawn(command.file, command.args, { - 读取本地文件dsh-codex/lib/src-C3kK80Ix.js:42
mode = (await stat(filename)).mode; - 读取本地文件dsh-codex/lib/src-C3kK80Ix.js:114
text = await readFile(this.filename, "utf8"); - 写入本地文件dsh-codex/lib/src-C3kK80Ix.js:135
await mkdir(dirname(this.filename), { - 写入本地文件dsh-codex/lib/src-C3kK80Ix.js:157
await mkdir(dirname(this.filename), { - 删除本地文件dsh-codex/lib/src-C3kK80Ix.js:161
await withFileLock(this.filename, () => rm(this.filename, { force: true })); - 发起网络请求dsh-codex/lib/src-C3kK80Ix.js:591
response = await fetch(OPENAI_CODEX_RESPONSES_URL, { - 发起网络请求dsh-codex/lib/src-C3kK80Ix.js:962
const response = await fetch(OPENAI_CODEX_USAGE_URL, { - 读取本地文件dsh-codex/lib/src-C3kK80Ix.js:1010
metadata = await lstat(filename); - 读取本地文件dsh-codex/lib/src-C3kK80Ix.js:1094
text = await readFile(this.filename, "utf8"); - 写入本地文件dsh-codex/lib/src-C3kK80Ix.js:1117
await mkdir(dirname(this.filename), { - 写入本地文件dsh-codex/lib/src-C3kK80Ix.js:1139
await mkdir(dirname(this.filename), { - 发起网络请求dsh-codex/lib/src-C3kK80Ix.js:2325
response = await fetch(OPENAI_CODEX_SEARCH_URL, { - 写入本地文件dsh-codex/lib/src-C3kK80Ix.js:2401
await mkdir(parent, { recursive: true }); - 写入本地文件dsh-codex/lib/src-C3kK80Ix.js:2418
else await rename(temporary, path); - 删除本地文件dsh-codex/lib/src-C3kK80Ix.js:2421
await rm(temporary, { force: true }).catch(() => void 0); - 读取本地文件dsh-codex/lib/src-C3kK80Ix.js:2435
const native = info === void 0 ? void 0 : await lstat(processPath); - 发起网络请求dsh-codex/lib/src-C3kK80Ix.js:2535
response = await fetch(endpoint, { - 读取本地文件dsh-codex/lib/src-C3kK80Ix.js:2894
const parsed = JSON.parse(await readFile(candidate, "utf8")); - 执行外部命令来自配置/变量dsh-codex/lib/tui.js:86
const child = spawn(command.file, command.args, {
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
功能亮点
- 本地API生图
- 画布排版与修图
- PS/AI图层双向桥接
展开完整介绍(106 字)↓
本地生图工作台 canvas-workbench:开自己的 API 生图,画布排版+修图/擦除/去背景/OCR/转矢量,可编辑 PSD/AI 交付,PS/AI 图层级双向桥接 · DSH 插件,与 npm 包同名
README
由 DeepSeek 最新模型翻译生成展开完整文档(README 剩余 1 节)
Canvas Workbench · DSH 画布工作台 本地优先的 AI 图像工作台,跑在 DeepSeek Harness 里——零订阅,自带 API:生成、编辑、交付全在你自己的机器上完成,图层级的 Photoshop/Illustrator 双向联动是它的溢价点。 开自己的 API 生图,不交订阅费——在 DSH 里完成「生成 → 编辑 → 交付」整条链路:聊天生图自动上画布、画布排版、修图擦除、可编辑 PSD/AI 交付,文件全程在你自己的磁盘上。可视为零订阅的本地 AI 设计工作台:核心链路对齐,成本是你自己的 API 用量;再叠加两个云端产品给不了的溢价点——PS/AI 图层级双向联动与可编辑文件交付。 最新版本 v1.9.60(一键图片拆层、可编辑 PSD/AI/SVG、聊天画布 API 与后台批处理,修复 AI 文字对齐)。近期功能看点: - 安装通道全面修复(1.9.42):插件市场 / npm 安装即全功能可用(依赖自动装齐,不再出现「装好了入口却消失」);画布内「检查更新」一键自升级,当天发布的新版也能立即装; - 「加入画布」全入口(1.9.43~1.9.47):新版 DSH 桌面的原生缩略图带、文件卡片「打开方式」菜单里都能一键上画布;任何渠道产出的图——包括智能体换工具、换通道重试成功的——都会自动上画布;失败占位卡在新图上画布后自动清除、且不再复活;判重升级到字节级(md5),重新生成的图不再被误拦; - 复制即原图(1.9.48~1.9.49):画布上复制图片得到的是原图字节(宿主进程直写系统剪贴板,macOS / Windows 均可用),不是带白边的渲染图; - 更早底座:聊天生图全自动上画布(生成中占位 → 原位替换)、比例 13 档 + 数量 ×1~×8、智能擦除蒙版精确送达模型、dsh-codex 按内核动态配对(0.2.0 正式桌面直接可用)、Windows 分支全量并入。 你可能在找它(Looking for one of these?) - 「本地生图工具 / 零订阅 AI 设计 / 不想交订阅费的 AI 设计」→ 开自己的 API(任意 OpenAI 兼容接口,国内大模型/企业网关直连),本地零订阅 - 「批量生图 / 抽卡 / 一次生成多张挑图」→ 数量 ×2/×4/×8,画布占位逐张替换,同规格排列 - 「AI 生图比例控制 / 9:16 竖版 / 16:9 / 21:9 电影感」→ 输入区 13 档比例卡片,生成后精确裁切 - 「DSH / DeepSeek Harness 画布插件、无限画布、白板、设计模式」→ 对话旁的无限设计画布 - 「DSH 里怎么修图 / 改图 / P 图 / 去背景 / 抠图 / 擦除 / 消除」→ 画布内图片工具,选中即用 - 「AI 生成的图片保存到哪、怎么管理、自动上画布」→ 自动归档 + 全局找回 + 自动/一键上画布 - 「DSH 图片转 PSD / 导出分层 / 文字识别 / 文字重建 / 转矢量 / OCR」→ 本地图片处理工具链 - 「DSH 和 Photoshop / Illustrator 联动 / 图层互传 / PS 桥接」→ Adobe 双向桥接 - 「DSH 素材库 / 素材管理 / 设计素材」→ 带颜色标签的本机素材库 - 「不想开 ChatGPT 订阅,用自己的图片 API / 国内大模型 API / 企业网关做设计」→ 任意 OpenAI 兼容接口直连 - DSH canvas plugin · local AI design workstation · infinite canvas · auto image placement · batch generation · image editing · smart erase · background removal · PSD export · Photoshop bridge · designer workbench 30 秒看懂 1. DSH 聊天框上方点开设计模式,右侧出现无限画布; 2. 输入区选好比例(比如 9:16)和数量(比如 ×4),直接在聊天里说「生成一张……」; 3. 画布上先出现 ×4 个生成中占位(和智能擦除同款动画),每张生成完原位替换成图; 4. 原图同步归档到项目 DSH聊天生成图片/会话/日期/,永不丢; 5. 选中图直接改图/擦除/去背景/重建文字,复制拿到的就是原图;需要精修就一键送进 PS/AI,改完像素级归位。 设计师能做什么 图片拆层与后台批处理 - 图片按实际内容拆成完整照片、透明主体、可编辑文字、独立形状和背景;支持 PSD、原生 AI、SVG。AI 需安装 Illustrator。 - 一键完成分析、校准、提取、导出与上画布;按当前聊天工作目录保存,关闭窗口后可恢复。模型识别或复杂隐藏区域仍可能需要核对。 - 当前聊天智能体可使用正式工具 canvas_workbench 操作指定对象,或传入文件夹批量抠图、拆 PSD/AI、局部编辑,完成后自动建立项目展示。见 API 与用法。 - 分析使用当前聊天模型;图像重建使用工作台所选引擎,dsh-codex 默认 Image 2.5。整批额度、未知结果和失败恢复均受持久任务管理。 - Windows 已完成代码、编码、路径及 COM 模拟回归;本版本新增拆层/后台功能尚无 Windows Adobe 实机验收。 🖼 对话旁的无限画布 - 输入框上方一键切换设计模式,左侧对话、右侧画布并排工作,分栏宽度可拖动。 - 画布基于 Excalidraw:白板级自由排版——拖入、粘贴、多选、对齐、复制、撤销重做、PNG 导出;Alt + 滚轮缩放贴合 PS 习惯。 - 画布内容就是本地项目文件(项目内 canvas.json 快照),断电不丢,跟项目走;删除画布元素不影响聊天原图。 - 未绑定画布的聊天会生成图时,输入区横幅询问「选择已有项目 / 新建画布 / 本次手动加入」,绑定后自动补上。 🤖 聊天生图全自动上画布 设计模式开启时,聊天里每一次生图都会: - 先占位:画布立即出现「生成中」占位卡(智能擦除同款动画,跟随系统深浅主题),批量时标注 ×N; - 完成即替换:每张成图原位替换对应占位,同一批生成的图尺寸规格完全一致,不会一大一小; - 任何渠道都认:不只本插件管线——agent 换工具、换通道(包括首次失败后重试成功)写出的图,同样自动归档上画布; - 失败有兜底:占位替换万一失败,成图立即按当前视野放置并提示;新图上画布后,残留的「生成失败」占位卡自动清除;删除过的失败占位不会复活; - 绝不重复:判重按源路径 + 文件名主干疑似比对 + md5 字节级确认——同名重新生成的新图放行,同一张图绝不重复上画布; - 可关可调:不想要自动上画布时在「更多 → 图像引擎设置」关闭,回到卡片上手动「加入画布」。 📐 生图比例与数量 聊天输入区、设计模式开关旁的比例芯片,点开是完整选择面板: - 13 档比例:1:1、3:2/2:3、4:3/3:4、16:9/9:16、21:9/9:21(电影感)、2:1/1:2(banner/长图)、5:4/4:5(摄影/打印)+ 自动档; - 数量 ×1/×2/×4/×8:串行逐张生成,占位与产出严格一一对应,适合抽卡; - 两个引擎都生效:API 引擎请求自动映射到网关标准尺寸、生成后精确裁到所选比例;dsh-codex 引擎在提示词注入构图要求 + 生成后裁切双保险; - 编辑也认比例:聊天里发起的改图,只要显式选了比例就按所选比例出图;画布上的编辑和智能擦除始终跟随原图,不会被意外裁切。 📥 生成图不丢、随手可用 - 聊天生成的每张图自动归档到 DSH聊天生成图片/<会话标题>/<日期>/<时段>/,文件夹名跟随会话标题自动同步; - 「加入画布」入口全覆盖:聊天图片输出卡、新版桌面的原生缩略图带、文件卡片「打开方式」菜单里都有;聊天里的其他附件图同样一键上画布; - 复制即原图:画布上选中单张图复制,得到的是原图字节(PNG 直写,JPEG/WebP 自动转换),贴进微信/文档/PPT 不降质、不带画布白边; - 历史会话里的图按文件名全局找回,旧图引用不再裂图。 ✏️ 画布内直接改图 选中画布上的图,不离开 DSH 完成: - 编辑图片:提示词改图,可框选区域(未选区域自动作为「保持不变」约束),改完原位替换; - 智能擦除:涂抹要擦掉的部分,按选区原生分辨率窗口重绘,边缘色调匹配无补丁感;蒙版会精确送达模型(无 mask 参数的引擎自动把选区烘焙成可见标记,擦什么模型看得见),紧邻元素不误伤(选区安全边界收紧 + 被边缘扫到的相邻文字/图形按可见部分自动补齐); - 去背景:一键抠图,透明背景,选区自动扩展羽化;默认 BiRefNet-lite 模型,已缓存零下载,界面如实显示实际使用的模型; - 文字识别(OCR):整图+选区框交给视觉模型,返回结构化 JSON(文字/位置/颜色/字号/字体/置信度); - 转矢量:位图转 SVG 线稿,印刷与放大可用; - 导出 PSD:按图层/文字分层的 PSD 落盘; - 连续编辑以原图母版合成,多次蒙版不叠加、不糊图。 ✍️ 文字重建:图片上的字变成可编辑文字 - 识别海报/包装上的文字后,用免费商用字体(阿里巴巴普惠体 3.0、思源黑体 SC、Inter 等)重建为可编辑的 PSD / AI / SVG——文字是活的,不是贴图; - 可直接生成原生 Illustrator 文档(.ai) 并自动回到画布(Windows 同样支持,走 COM 驱动); - PSD 输出含背景修复层 + 可编辑文字层(文字层位于清洁背景之上,点开「小眼睛」即可见),位置/字号/颜色按原图坐标换算。 🗂 素材库 - 画布右侧素材侧栏:Mac 式七色标签、多选批量标记、按颜色/类型/时间/尺寸/大小/名称排序筛选; - 画布 ↔ 素材库双向拖拽;素材集中存在本机,跨项目复用; - 项目文件夹里的新文件(PS/AI 另存、访达拷入)实时刷新自动上画布。 🔁 Photoshop / Illustrator 双向桥接 - 画布点「取 Ps 图层」「取 Ai 对象」:把 PS/AI 里选中的图层直接拉进画布(约 2 秒,PS 逐层裁到图层边界并记住坐标); - 画布选中图点「→Ps」「→Ai」:改完按格式归位——PSD 并图层进当前文档、AI/SVG 按对象并入,像素级归位(PS 2025 / AI 2026 真机验收); - 传输只靠本地文件夹握手,无端口无网络,CS6→2026 通用; - Windows 同样支持:远程驱动走 COM 自动化,自定义安装路径也能从注册表定位; - PS 2025+ 无旧扩展面板?画布按钮和「文件 → 脚本」一键脚本都可用。协议与排障见 canvas-workbench/adobe-bridge/PROTOCOL.md。 🧾 操作日志与检查更新 - 「更多 → 操作日志」记录项目加载、文件刷新、图片落盘、模型请求、响应解析、预览转换、PSD 生成和失败原因。反馈问题时复制日志步骤即可,不含账号与 Key。 - 「更多 → 检查更新」一键升级到最新版——自更新走完整依赖解析(装后自动自检补齐),当天发布的新版也能立即装,不受插件市场 24 小时新包保护限制。 安装 方式一:插件市场 / npm(推荐,已装 DSH 的机器) DSH 设置 → 插件 → 市场,搜索 canvas-workbench,点安装;或命令行: dsh plugin --profile web add canvas-workbench 中国大陆网络会自动回退 registry.npmmirror.com 镜像,无需额外配置。 1.9.42 起,市场 / npm 安装即全功能可用(依赖自动装齐,PSD 导出对缺依赖做了优雅降级);后续升级用画布内「检查更新」即可。 方式二:源码同步(要最新 main / 参与开发) macOS: git clone https://github.com/elangan1997-cmyk/canvas-workbench.git cd canvas-workbenchbash ./sync-local-plugins.sh # 同步插件到本机全部 DSH Profile 并做健康检查 Windows(PowerShell 或双击 install-windows.cmd): powershell git clone https://github.com/elangan1997-cmyk/canvas-workbench.git cd canvas-workbench .\install-windows.cmd # 同步 + 健康检查(先完全退出 DSH) .\install-windows.cmd -CheckOnly # 只检查不改文件 安装后完全退出并重启 DSH Desktop 生效。 方式三:新电脑(还没有 DSH) 先从官方渠道安装 DSH Desktop(DeepSeek Harness),再用方式一安装画布插件——这是当前推荐的完整路径,插件跟随官方正式版桌面(0.2.0 系)运行。 仓库历史完整安装包(v1.5.9 macOS 的 macOS-Complete DMG/PKG 等)仅作离线重装基线保留,内置画布版本较旧,装好后请用方式一/「检查更新」升级。 npm 包与源码包都不含 DSH 本体、Python 运行时、模型文件、账号或 API Key。 图片引擎(带什么 API 都行) 画布右上角「更多 → 图像引擎设置」,两条路线自由切换,不锁定任何厂商: | 引擎 | 适合 | 说明 | | API(推荐起点) | 任何 OpenAI 兼容图片接口 | 国内大模型 API、企业网关、自建服务均可直连——不需要 ChatGPT 订阅;密钥只存本机(0600) | | dsh-codex | 已有 ChatGPT 订阅 | 与 dsh-codex 插件共用 OAuth 与订阅额度;未安装时画布会自动装与当前内核兼容的最新版(0.2.0 正式桌面 → 0.3.2);走 dsh-codex 自身的代理设置,国内网络可用 | 比例与数量对两个引擎统一生效。另有本地工具链完全不依赖任何 API:去背景、OCR、转矢量、PSD 导出、文字重建全部在本机 Python 环境运行,断网可用、零调用成本(Python 缺库时自动自举隔离环境)。引擎不会静默切换,状态面板实时显示安装/登录/凭据状态;你选的引擎/比例/数量升级也不丢(配置只补缺失字段,覆盖前自动留备份)。 和云端订阅平台比? 对核心链路——生图 → 编辑 → 交付来说,是: | 维度 | 云端设计 Agent | Canvas Workbench | | 成本 | 平台订阅 + 按量 | 自带 API 按用量;本地工具链零 API 成本 | | 数据 | 云端会话 | 本地项目文件 + 自动归档,不上云 | | 交付 | 多为扁平图 | 可编辑 PSD/AI/SVG | | 联动 | 无 | PS/AI 图层级双向往返 | | 追责复现 | 黑盒 | 项目路径/模型路由/失败步骤本机可查 | | 隐私 | 上传 | 凭据与内容留在本机,仅调用所选模型时发送必要请求 | 不在当前范围的:团队云端协作、视频/动效、模板灵感生态——需要这些时配合云端平台使用(云端出概念稿,本地精修交付)。 推荐的设计工作流 1. 抽卡:设计模式开 → 比例选 9:16、数量 ×4 → 聊天里描述方向 → 画布 4 个占位逐张替换 → 圈选满意的; 2. 整理:无限画布排列多版本,素材库七色标签分类,文件夹新素材实时刷新上画布; 3. 局部修改:选中调整区域 → 编辑/智能擦除/去背景,未选区域保持原样; 4. 文字重建:框选文字 → 视觉模型返回 JSON → 确认后输出背景图 + 可编辑 PSD/AI 文字层; 5. 精修交付:「→Ps」「→Ai」送进 Adobe 细化,改完归位;原图、修复背景、分层文件与操作日志全程保留。 系统要求 - DeepSeek Harness(DSH)0.2.0 系正式桌面(推荐)或 0.1.7-rc 系内核;新版会话 v4 格式、附件 API 与原生图片展示带均已适配;dsh-codex 引擎按当前内核自动配对兼容版本,无需手动管理。 - 去背景 / OCR / 转矢量 / PSD 导出 / .ai/.pdf 预览依赖本机 Python 3.11(缺失时自动自举隔离运行时);完全没有 Python 时画布仍可用,仅对应本地图片处理停用。 - Adobe 桥接需已安装 Photoshop / Illustrator;macOS 与 Windows 均已实机验收(PS 2025 / AI 2026,见 WINDOWS-TEST-CHECKLIST)。 数据与隐私 所有文件都在你的本地项目目录与 ~/.dsh 下:画布即项目文件,生成图即归档原图,素材库即本机素材目录。不云同步、不上传、不进 Git。发布包不含开发者账号、OAuth Token、API Key;API 凭据只从使用者自己的本机读取。 文档与支持 - Windows 完整安装说明 · Windows 独立插件 · macOS 独立插件 - 发布、校验和版本策略 · npm 分发 · Windows 验收清单 - Adobe 桥接协议 · 变更记录 常见问题速查 | 症状 | 处理 | | 安装后仍是旧版本 | 完全退出 DSH(含托盘)重跑安装脚本,再 -CheckOnly 检查;或用画布「更多 → 检查更新」一键升级 | | 当天发布的新版装不到 | DSH 市场有 24 小时新包保护;用画布「检查更新」可立即装当天新版 | | 装完看不到设计模式入口 | 1.9.42 已根治(依赖自动装齐);仍遇到请完全重启 DSH 并附操作日志反馈 | | API 连不上/超时 | 「图像引擎设置」核对路由、地址、超时;操作日志里有精确失败阶段 | | dsh-codex 生图报请求失败 | 引擎设置里确认 dsh-codex 已登录;国内网络走其代理设置(画布会自动透传) | | 擦除后图没变化 | 已在 1.9.41 修复(蒙版现在必然送达模型);仍遇到请附操作日志反馈 | | PDF/AI 无预览 | 文件仍可上画布;macOS 装 Poppler 或用 Illustrator 打开;Windows 已内置 PyMuPDF 预览(自动自举) | 报告问题请附:操作步骤、系统版本、插件版本、操作日志失败步骤、Codex 或 API 路由。请勿粘贴 API Key、OAuth Token 或个人项目文件。 目录结构 text canvas-workbench/ 画布插件源码(客户端分段源码 + 宿主服务 + Provider) canvas-workbench/scripts/ 构建/检查/打包脚本 + Python 图片工具链 install-canvas-plugin.sh macOS 独立插件同步入口 install-windows.ps1/.cmd Windows 源码安装器 + 健康检查 windows-installer/ Windows 完整安装器 docs/ 安装与发布说明 开发 bash cd canvas-workbench npm install npm run build # 分段源码拼接 lib/client.js npm run check # 语法/构建漂移/vendor 补丁/Windows 兼容守卫 npm test # node --test 单元测试 npm run package:npm # 生成 dist-npm/canvas-workbench 发布变体 License MIT
预览分享卡片长什么样 ↓
本地生图工作台 canvas-workbench:开自己的 API…
相关插件 · 视觉能力
这是你的仓库?认领条目