Skip to content

OpenCard v0.4.8

Choose a tag to compare

@github-actions github-actions released this 13 Sep 01:19

升级前请注意:本版暂时移除了“自定义块”功能。
升级不会删除你已有的自定义块包与项目文件,但本版无法查看、插入或使用自定义块,卡面上已有的这类内容也可能无法正常显示。该功能会在后续版本回来;如果你当前依赖自定义块,建议先不升级,等功能恢复后再升。

  • 项目内部资源配置现在统一使用 .opencard 下的 project.json、fonts/fonts.json、icons/icons.json 和 locale.json,包使用 .ocpack。内置模板已移除旧格式配置文件,新建项目不再夹带这些文件。

新增

  • 软件存储里现在可以存放“附加包”:没有打开项目时把 .ocpack 拖进窗口、直接打开它,或从侧栏导入,都会先校验归档,不能用的包不会被收进来;之后每次新建项目都能在侧栏的附加包列表里按需勾选要装入的包,侧栏会显示每个包的版本,也可以随时取消附加或从软件存储移除。装入新项目的附加包与从包管理页添加的包完全相同,可以在包管理页查看、同步和移除,装包失败也只影响那一个包,项目照常可用。

  • 图标页现在改为“一个图标一个文件”:一次选中多个图标文件,或直接选择一个装满图标的文件夹(图标集名称默认取该文件夹名),每个文件成为一个图标。矢量图标放到卡片上放大后依然清晰,不再像位图那样变模糊;单色图标默认跟随所在文字与主题的颜色,彩色图标默认保留自己的配色,像素画会自动按原样放大不糊,每个图标都能单独切换配色方式。位图图标(PNG / JPEG / WebP)同样可以这样导入,只是默认保留原色。

  • 图标文件会统一放进该项目图标专属的子目录,并按图标自身的引用名称保存,因此直接创建和导入图标包得到的目录结构一致;这类图标集同样可以导出为图标包、随资源包和项目模板一起分发。如果同名的图标文件夹里还留着别的东西,新图标集会改用带序号的新文件夹,不会和旧文件混在一起。

  • 创建、导入、导出图标包不再弹出阻塞窗口:这些操作改在窗口进度里进行,期间相关按钮会暂时不可用,完成或失败都以标题栏提示告知。批量创建图标集时选完文件当即确认即可,不需要在弹窗里等待读取。

  • 移除项目图标集现在会先确认,并可勾选同时清理它不再使用的图标文件;这些文件会被移入历史记录,误删可以用“撤销”完整恢复,其他图标集仍在使用的文件不会被删除。

  • 项目现在可以设置一张封面:在“配置”页的“项目信息”里直接填写项目内的图片相对路径(如 assets/cover.png),或从文件对话框选择项目内的图片,支持 PNG、JPEG、WebP、AVIF、GIF 和 SVG,矢量封面放大后依然清晰;封面文件不存在时按未设置封面处理,不影响打开项目、导出与打包。

  • 制作包时会自动沿用项目封面,包信息页会显示它;项目没有封面时包仍可正常制作。

  • 欢迎页背景现在是一面桌游封面墙:内置一批知名桌游盒面,并混入你自己项目的封面,以网格排布、缓慢朝右上角流动、整体模糊后作为背景;同一格周围八格不会出现同一张图。在侧栏“最近打开的项目”里选中某个项目时,背景中属于它的封面会放大突出。背景本身不响应鼠标和键盘,系统开启“减少动态效果”或窗口不可见时停止流动。

  • 欢迎页中间新增引力背景:一颗纯色圆盘,边缘有一圈小球来回环绕,让它看起来一直在涌动;远端不断生出小球,小球从出现的位置慢慢长大,再被向心引力加速吸进去并消失,不会先看不见、再突然整个冒出来,所有形状之间平滑融合。圆盘与小球的轮廓带一层颗粒状的磨砂过渡,边缘像砂面玻璃一样把背后的封面墙隐约透出来。圆盘与小球填的就是页面背景色,配色跟随主题;系统开启“减少动态效果”时只显示静止画面。

  • 欢迎页左下角新增“背景效果”开关,同时控制上面的封面墙与引力背景,开关状态会记进配置里。

  • 包管理页面现在可以在“树形列表”和“相册视图”之间切换:相册视图把每个包显示为一张卡片,包声明了封面时卡片直接显示封面,没有封面时卡片留白;无论有没有封面,包图标都会和包名一起显示在卡片底部,封面加载失败也不会顶掉包图标。卡片上仍可移除包;切换按钮与其他操作一起位于顶部栏,会跟随当前视图提示将要切换到的视图;切换结果会记进配置,下次打开包管理页面时沿用。

  • 项目文件列表标题栏现在提供文件夹按钮,可直接在系统文件管理器中显示当前项目文件夹。

  • 侧栏的“项目”“字典”“字体”“图标”和“包”现在会显示各自对应的项目文件路径(如 .opencard/fonts/fonts.json),便于直接找到这些受管理的文件。

  • 列表里每一行的状态标记和操作按钮现在按声明顺序排在同一行内,鼠标移到该行时才显现按钮;行内空间不够时优先保住名称:先省略行内的状态文字,再把按钮收进一个“更多操作”菜单,仍然放不下才省略名称。

  • 现在可以把系统文件管理器里的文件或文件夹直接拖进侧栏的项目文件列表:拖到某个文件夹上就放进该文件夹,拖到某一行上就放进它所在的文件夹,拖到列表空白处就放进项目根目录。文件是复制进来的,不会改动你磁盘上的原始文件,遇到重名时自动添加序号,不覆盖已有内容;拖拽时目标行会高亮显示将要放入的位置。拖到窗口其他位置仍然是原来的“打开文件”行为。

  • 包管理页面现在可以一键从 GitHub Release 获取并安装项目中缺失或版本不符的包,并显示批量安装进度和结果提示;单个包安装失败的原因会直接显示在输出面板,点击条目可复制完整详情。

  • 滑块现在支持显示指定数值的刻度,并会区分当前位置之前和之后的刻度。

  • 新增自动保存设置,可在文件菜单中随时开启或关闭,并配置自动保存间隔;自动保存只处理已落盘且已修改的文件,不会替草稿触发首次保存。

  • 图片块现在会按项目的远程资源策略缓存允许的 HTTPS 图片;首次下载完成后自动显示本地缓存,网络暂时不可用时继续使用已有缓存,被安全策略阻止的远程图片会显示在问题列表中。

  • CDE 切换到数据表视图时,数据表会自动定位在编辑区域右下方并占用约一半屏幕高度;返回设计视图后,卡面会自动居中并适配视口。

  • 开发环境的帮助菜单新增 CDE 调试开关,可持续隐藏编辑器浮层,方便观察纯画布布局。

  • 开发环境的帮助菜单新增两个 CDE 调试开关,可分别暴露上层背景,或将画布切换为不响应点击的纯展示状态。

  • 包管理页面现在支持添加多个本地 .ocpack 或远程包声明(github:作者/包名@标签,可一行一个或用分号分隔),并集中查看当前项目需要的包及版本;在侧栏“包”下选中子包会打开专用信息查看器并持续高光,通过文件管理器增删包目录后列表会自动同步。

  • 文件菜单现在提供“制作包”工作台:可选择包对外提供的项目字体、字体组合和图标集;字体组合依赖的成员字体会随包保存,但只有明确选择的字体资源会列为包的公开能力;图标集只保存所选图标和它们各自的文件,并在包信息中提供图标数量摘要;所选项目图片会按原目录随包保存,不会夹带其他图片。首次打开时默认选中项目的全部可用资源,制作后再次打开会沿用上次的包名称、版本和内容选择。

  • 窗口标题栏现在会以内嵌提示显示即时操作结果,悬停标题栏时可重新查看当前提示;提示再长也只会自己省略收起,窗口标题始终保持居中,不会被提示挤偏。

  • 标题栏空白处现在都可以按住拖动窗口,标题文字本身也能拖动;只有按钮和即时提示保留点击操作,不会误触拖动。

  • 悬停标题栏中的即时提示区域时,当前提示会从原位置展开为包含全部历史消息的浮窗,并可在设置中调整历史消息保留上限。

  • 资源引用现在统一支持当前环境、宿主项目和可见包作用域;包内资源不会因为同名而误解析到其他包,非法路径和不可用资源会稳定显示为不可用。

  • 图片块、Markdown 图片、字体文件和图标文件现在都支持作用域简写路径:普通路径读取当前项目或包,@路径 读取当前项目,包Key@路径 读取当前作用域的子包;制作包时会自动收集跨包依赖并改写为可独立使用的包内路径。

  • 卡面设计器的文件路径补全现在会列出可用的包,可直接进入包内选择文件,并通过 .. 返回上一级;包入口显示名称,选择后自动写入包引用路径。

  • 富文本中的字体和图标引用现在使用统一资源语法校验,包限定引用不会被误当作当前项目资源。

  • 卡面字体引用现在也按统一资源规则解析,支持包限定字体并隔离同名字体。

  • Markdown 和富文本中的图标现在会逐个按其实际来源解析,同一段内容可以混用项目图标和包图标。

  • 卡面设计器的字体补全现在先选择当前项目或包,再选择其中的字体,可通过 .. 返回项目与包列表,支持连续键盘选择并保留分号分隔的回退字体;富文本字体列表也会显示可用的包字体。补全候选只显示名称,并使用对应字体预览,包列表更新后候选随之更新;字体列表不再附带固定的六种系统字体,已有字体设置不受影响。

  • 使用电脑本地安装的字体时,问题列表现在会提示该字体在其他开发者的电脑上可能无法正常显示;系统字体仍可继续保存和渲染,通用字体族不会触发提示。

  • 新增 .ocpack 安装能力:打开、拖入或从包管理页导入时,会先检查归档大小、路径、内容摘要及字体和图标完整性;同 Key 的不同版本会同时显示新旧版本并询问是否替换,安装结果会记录到项目包清单。

  • 包使用独立的 .ocpack 运输格式;需要分发的资源都收在包内,不再混进其他文件。

改进

  • 新建项目不再需要挑选图标包:图标集只属于项目,需要时在项目的图标页导入,或随附加包一起带入。打开 .ociconpack 图标包时,如果已经打开项目,会直接进入该项目的图标页;没有打开项目时会提示先打开项目。

  • 打开应用时不再预先准备代码编辑器:界面显示之后的空闲时间会自动把它准备好,等你真正打开配置、脚本等文件时通常已经就绪,启动因此更轻、更快。

  • 打开另一个项目(选择文件夹、最近项目、从模板创建)现在会先走一遍“关闭当前项目”的流程:当前项目里有未保存的改动时会先询问保存或放弃,确认之后才切换;不再把上一个项目打开过的文件作为“外部文件”继续留在编辑器列表里。

  • 项目相关编辑器现在共用工作区顶部的一条标题栏:字体、图标、字典、包、项目配置、图片预览和卡面设计器都不再各自重复显示页内标题,各自的图标、标题和说明统一显示在顶部栏,操作按钮也统一收在该栏右侧;卡面设计器的标题显示卡片自身的名称,其余页面显示文件名。

  • “打开的编辑器”中的条目现在可以显示比文件名更贴切的标题(例如无对应文件的管理类编辑器),未设置标题时仍显示文件名;未保存的星号标记、外部文件与草稿前缀都会继续保留,重命名或另存为后条目重新以文件名为准。

  • 输出面板现在只显示 OpenCard 各模块主动告知你的消息,不再混入开发者调试日志和未处理的错误;每条记录统一显示时间、级别和内容,并按级别区分文字与底色,失败记录会直接给出具体原因,级别改为信息、成功、警告和错误。

  • 项目包清单现在只记录跨设备协作所需的包 Key、版本和来源;包管理页只显示清单中的声明,可按需检查实际目录和版本,移除声明时不会删除包文件。

  • 卡面使用包内资源时,问题列表现在会分别提示包不存在和资源文件不存在,便于检查包是否完整。

  • 图标页的列表和属性区域现在均分可用宽度,窄窗口下属性自动上下排列,避免图标列表被挤窄。

  • 导出项目模板时,窗口标题栏现在会显示全局进度提示,导出完成或失败后自动收起。

  • 设置中的主题导出现在会直接复制 JSON,导入时可在标准弹窗中粘贴 JSON,不再需要创建主题文件。

  • 路径、字体和图标的分级补全现在可以使用 Shift+Tab 直接返回上一级;位于根级时仍会正常切换到上一个输入项。

  • 设置页的自动保存间隔、编辑器历史记录和标题栏即时消息上限现在显示关键数值刻度,调整范围更直观。

  • 工作区左下角现在与左上角使用一致圆角;侧边栏折叠后,左下角会随工作区贴边变为直角,侧边栏宽度调节线的上下两端也会对称渐隐。

  • 底部问题面板的浮动开关现在收紧了右下角,并通过边框和图标颜色表达问题级别,不再用整块背景着色。

  • 添加包和制作包不再让窗口停在被弹窗挡住的状态:确认之后操作改在窗口进度里继续,你可以同时查看和操作其他内容,完成或失败都以标题栏即时消息告知;制作包在选定保存位置后才开始在后台打包,取消保存会回到原来的选择界面,不会丢掉已选内容。

  • 悬停提示现在会按控件排布选择弹出方向:工具栏、列表行、字段行这类横向排列的操作,提示出现在控件的上方或下方,不再盖住紧挨着的同级按钮;只有侧边栏图标栏这类纵向排布的控件才在左右弹出。提示方向放不下时会自动翻到另一侧,并始终完整显示在窗口内。

  • 同一排操作之间连续查看提示不再每次都要重新等待:停留片刻看到第一个提示后,直接把鼠标移到旁边的同级按钮上,提示会立即换成新内容,中间跨过空隙时也不会闪一下;提示在整段连续查看期间保持同一侧,不会左右跳动。一旦把鼠标移开这排操作、点击、按 Esc 或切换焦点,下次仍会重新等待。

  • 树形列表的行高光现在带有小圆角,选中、悬停和拖放状态的轮廓更加柔和一致。

  • 软件启动加载期间会立即显示与应用内一致的 OpenCard 标志和主题背景,完整界面准备好后启动画面会平滑淡出。

  • 启动时自动检查更新失败现在只显示警告;手动检查更新后会明确提示已是最新版、发现新版本或检查失败。

  • 主题 JSON、包、工作簿、项目导出和常用文件操作的结果现在统一显示在标题栏即时消息中;可恢复的错误不再弹出系统消息框,仍需确认的包升级会继续等待用户选择。

  • 深浅主题切换时,背景、边框和强调色会平滑渐变,进度着色器会立即切换到新配色,前景文字与图标会在过渡中点切换,并通过标题栏即时信息确认当前主题;颜色变化不再打断侧边栏展开、浮窗显隐等交互动效,欢迎页和设置中的动态品牌图形也会保持正常显示。

  • 外观设置现在可以调节相位动画速度,欢迎页和其他动态品牌图形会统一按新的速度运行。

  • 项目管理区域现在会显示包目录,已安装的 .ocpack 可以从项目结构中直接查看。

  • 包制作工作台现在将包名称、Key 和版本输入集中到右侧预览区域,打开时会自动使用项目名称,并在 Key 留空时提示由名称生成的默认值。

  • 自定义字段现在默认可以绑定并供其他字段引用;属性面板中的只读、隐藏和输入限制不再改变字段的绑定能力。

  • 块的显示规则现在与属性面板配置相互独立;调整附加字段的编辑控件、范围或选项,不再改变宽高、颜色等内置属性的实际显示与异常值回退结果。

  • Git 变更列表现在会在文件名右侧稳定显示状态图标:新增显示绿色加号,删除显示红色减号,修改显示黄色圆点;窄侧栏中的长文件名会正确省略,悬停时可查看完整名称。连续文件变化会合并刷新,切回应用或打开版本控制面板时也会自动同步。刷新失败时会保留上次结果并标记为过期。尚未启用 Git 的项目会隐藏时间线和版本树,改为提供“初始化仓库”按钮;初始化时可以设置提交者信息,并可选择立即创建包含当前项目文件的首次提交。

  • 编辑器现在可以直接并排查看图片、项目字体与图标配置文件、字体文件的前后版本;图片对比支持同步缩放、平移和像素化预览,便于确认资源变化。

  • 侧边栏中的空列表现在会在可用区域中央说明内容来源,例如打开的项目文件会出现在“打开的编辑器”中,当前文件的提交记录会出现在“时间线”中。

  • CDE 数据表的预览浮窗不再显示选中块,并会始终显示在固定表头之上。

  • CDE 现在会分别记住卡牌正面与背面的块选中状态,切换编辑器或翻转卡面后可以回到对应的编辑上下文。

  • CDE 现在可以通过结构树右键菜单或 Ctrl/Cmd+C、Ctrl/Cmd+V,在不同卡面和打开的编辑器之间复制粘贴块,并保留完整嵌套结构。

  • CDE 粘贴块时不再弹出浏览器剪贴板授权询问。

  • 改进多个右键菜单的操作分组,让编辑、复制、移动和删除等操作更容易区分。

  • 调整侧边栏宽度时会即时跟随拖拽,并保持在合理范围内,不再出现滞后的过渡动画;拖拽触发展开或收起时仍会平滑切换。

  • 界面中的名称、状态、版本和路径等组合信息现在改用空格分隔,文字显示更简洁。

改进

修复

  • 模板只是一个文件夹:模板内部的项目文件不合规时不再拒绝创建项目,OpenCard 会照常复制副本并填入新的项目名称;能读出模板原有的项目信息就只替换名称,读不出来就用一份最小配置写上项目名称。

  • 模板无法使用时不再只在新建项目页常驻一行“已跳过 N 个无效模板”:现在改为标题栏的一次性提示,并在输出面板逐条列出是哪个模板、为什么用不了;模板目录读取失败、新建或导入模板失败、项目打不开等一次性报错也一并改走同样的提示方式,页面不再长期挂着一条已经过期的错误,同一个问题也不会反复提示。

  • 图片块的来源现在既可使用项目图片或远程图片,也可填写 icon:系列/图标 或 包Key@icon:系列/图标,并沿用完整显示、裁切填满和拉伸设置。

  • 图片块在资源环境刷新后不会再把已经加载的本地图片误显示为不可用占位。

  • 空白文本块和 Markdown 文本块不再将空内容误报为缺失字段。

  • 软件启动加载期间会立即显示与默认主题一致的深色背景,不再反复露出刺眼的白色底层。

  • 颜色选择器中的颜色值与通道文字现在会正确使用当前主题字体。

  • CDE 的卡牌树、预览、结构树和属性面板标题现在会正确跟随界面语言切换。

  • 版本对比中的“新增”“修改”“删除”标记现在只是状态提示:不再显示成按下去没有反应的按钮,鼠标悬停仍可看到标记含义。

  • 只显示图标的按钮现在悬停时都会显示名称,包括侧边栏收起后的图标栏、标题栏里的任务取消按钮、项目导出与字体设置中的添加、删除、调整顺序按钮;展开显示文字时不再重复弹出同样的提示。

  • 提示不再重复界面上已经看得见的内容:数字输入框的加减箭头、卡面选择框的调整手柄、富文本中“点击选中”的说明,以及按钮自带的可见名称都不再弹出多余提示;带子菜单的按钮悬停时会直接展开菜单,不再同时弹出盖住菜单的提示;版本对比中的卡面名称、只读字段和未保存文件路径只在显示不全时才提示完整内容。

  • 打开包制作工作台时不再因翻译提示反复刷新页面或持续刷出大量警告。

  • 切换预览文件时,文档编辑器现在可以正常打开,不再因旧预览释放时的异常而中断。

  • 在卡面或结构树中选择块时不再因重复回写同一选区而卡顿或触发递归更新错误。

  • 问题列表中的富文本诊断现在会显示正确的中文或英文说明,不再显示内部翻译键。

  • 卡面绑定现在不会再把正常的布尔值和数字值误报为类型错误,字段最终仍由渲染阶段负责校验和回退。

  • 所有块的宽高调整手柄现在根据实例是否拥有 width、height 字段显示,不再受字段当前值是否已定义影响。

  • 卡面中的容器块会重新按照设置的 X/Y 与锚点准确定位,嵌套内容不再整体偏移。

  • 打开含有已移除或不完整块记录的卡牌文档时,编辑器会将其稳定显示为通用不可用节点,不再因结构树渲染异常造成工作区空白或界面卡死。

  • 打开卡牌文档时,侧边栏尺寸测量不会再反复写回相同值,避免首屏触发递归更新并卡住编辑器。

  • 删除包含子块的结构后,会同步清理所有卡牌实例中对应的无效字段覆盖数据,避免实例数据残留已不存在的块。

  • CSS 长度字段现在可以正确接受负数值,不再错误显示渲染警告。

  • 树形列表的操作浮窗现在会直接出现在触发位置,不再从窗口左上角闪现。

  • 未选择项目图标集时,右侧的提示现在会正确显示在可用区域中央。

  • 侧边栏树在节点内容与空状态提示之间切换时会保持可用高度,刷新时间线等内容时不再引起面板抖动。

  • 未启用 Git 的项目不再短暂显示“正在加载时间线”,打开或切换编辑器时侧边栏中的其他列表也不会因此跳动。

  • 新建文本块的空富文本不再包含额外的换行。

  • 底部面板的圆形控制按钮现在固定在窗口右下角并始终显示在编辑器内容上方,编辑卡牌内容时不会再影响画布区域的位置或被画布遮挡。

  • 图标较多的项目现在打开速度不再随图标数量变慢:以前每打开一次项目,都会把所有图标图片完整解码两遍,几百个图标就要解码上千次;现在改为直接读取图标文件自身记录的尺寸,并且整个项目只测量一次,打开项目、创建图标集和编辑图标都不再反复解码。

  • 在文件列表中用“在文件管理器中显示”打开项目文件时,路径或文件名中包含空格的文件现在会正确打开所在文件夹并选中该文件,不再只是打开文件管理器的默认目录。

  • 创建和导入图标集的速度现在与项目里已有的图标数量无关:以前每写入一个图标文件都会重新扫描一遍整个项目,图标越多越慢,几百个图标就明显卡顿;现在一批图标只重新扫描一次,并且会先把所有图标读取和识别完再统一写入,中途读不到某个文件时也不会留下已复制却无法使用的图标文件。