鸿蒙 PC Markdown 编辑器桌面信息架构:文件树、标签、编辑器与大纲
鸿蒙 PC Markdown 编辑器桌面信息架构文件树、标签、编辑器与大纲PC编辑器的界面不是卡片集合而是高频工作面。用户视线需要在文件树、标签、源码、预览、大纲和状态之间快速移动同时窗口可以自由缩放。信息架构如果层级过多、控件尺寸漂移或侧栏挤压正文再多功能也会降低效率。本文基于 OhMarkdown分析活动栏、上下文侧栏、标签工具栏、编辑器和状态栏五层结构以及900vp、760px和640vp边界。代码位于 https://gitcode.com/VON-/codex_md_oh工作台是水平主结构build(){Row(){this.activityRail()if(this.shouldShowSidebar()){this.contextualPanel()}this.editorWorkspace()}.width(100%).height(100%).constraintSize({minWidth:640,minHeight:480})}最左活动栏固定窄宽中央上下文面板264vp右侧编辑工作区layoutWeight(1)占剩余。页面不是多个浮动卡片分隔线建立连续工作面适合扫描和拖动窗口。最小640×480保证核心工具栏和编辑区仍可操作。真正窗口管理还应在系统层设置最小尺寸组件 constraint是内部防线。活动栏只负责切换上下文活动栏入口包括文件、搜索、大纲和更多/导出。按钮使用系统 symbol、固定尺寸、选择态背景和 accessibilityText不用大段文字。同一个 panel再次点击切换侧栏开关点击另一个 panel打开并切换privateselectPanel(panel:string):void{if(this.activePanelpanel){this.sidebarOpen!this.sidebarOpen;return;}this.activePanelpanel;this.sidebarOpentrue;// 搜索和大纲额外处理}活动栏不承载业务内容只决定264vp区域显示什么。文件树、查找、大纲和导出互斥避免四个侧栏同时挤压正文。上下文面板共享骨架每个面板宽264、高100%背景和右边框一致顶部42vp标题行下面内容列表或表单。共享稳定尺寸让切换不造成编辑区水平跳动。文件面板顶部提供打开文件夹和文档的图标命令无工作区时中部显示空状态与两个清晰动作有工作区时显示根名称、截断提示和 List。搜索面板需要输入和选项大纲使用 List导出使用两个按钮。功能形态不同但标题和边界一致。侧栏在窄窗口自动隐藏privateshouldShowSidebar():boolean{returnthis.sidebarOpenthis.windowWidth900;}onAreaChange更新 windowWidth。低于900时隐藏264vp面板保留活动栏和编辑器防止正文变成过窄条。用户回到宽窗口时sidebarOpen意图仍在面板可恢复。隐藏不等于功能消失活动栏仍可表达入口当前低于900时即使点击也因条件隐藏后续可改为覆盖式抽屉。PC优先不代表窄窗口不用设计。编辑工作区的垂直结构Column(){this.tabBar()this.editorSurface()this.statusBar()}.layoutWeight(1).height(100%)顶部42vp标签工具栏中间 Web填满底部26vp状态栏。固定上下高度让动态字数、dirty和标签不会推挤编辑区。编辑器是主要任务面不放在装饰卡片里。Web宽高100%、layoutWeight 1窗口变化直接传给 CodeMirror布局。标签与命令共用顶栏标签区水平滚动并占可用空间Scroll(){Row(){ForEach(this.documentSessions,...)this.iconButton($r(sys.symbol.plus),$r(app.string.new_document),()this.requestEditorCommand(new))}}.layoutWeight(1).scrollable(ScrollDirection.Horizontal).scrollBar(BarState.Off)右侧 Open、Save、Source/Split/Preview、Sync和侧栏切换保持固定。标签多时只滚动标签区不把命令挤出。单标签宽156标题省略关闭按钮22×22。模式使用分段控件表达互斥选择Sync使用 Toggle表达二元状态。Open/Save是明确命令使用文字按钮。控件语义与交互类型一致。状态栏只放可扫描事实左侧操作状态右侧字数/大文件、Markdown、UTF-8/BOM、LF/CRLF/Mixed。文本11vp、单行操作状态可省略右侧使用固定间距。Text(this.largeDocumentMode?$r(app.string.large_file_mode):${this.wordCount}words)Text($r(app.string.markdown_label))Text(this.documentFormat.hasUtf8Bom?$r(app.string.encoding_utf8_bom):$r(app.string.encoding_utf8))状态栏不显示教程只反馈当前文档事实。将 BOM和换行可视化让无损保存不再是隐藏实现。窄窗口右侧文本可能拥挤后续应按优先级隐藏低价值项或进入菜单不能允许重叠。文件树是导航不是项目管理器根目录名称单行省略目录和 Markdown文件列表使用稳定 URI key。节点行按 depth缩进目录图标/展开箭头与文件图标区分。点击目录展开点击文件进入会话。当前不显示图片、Git状态、右键重命名和复杂资源操作保持 Alpha范围。信息架构为未来增加功能留入口但不提前塞占位控件。搜索面板面向键盘查询框第一替换框第二Case/Whole/Regex同一行Replace/Replace All同一行。向前向后使用箭头图标匹配数放标题行。CtrlF后输入框自动聚焦。面板宽264标签短小长本地化文字可能换行需要后续国际化测试。当前英文按钮与中文应用目标还需统一资源化。大纲表达层级每项显示 H级别、标题和行号缩进.padding({left:8(entry.level-1)*10,right:10})标题单行省略行号弱化。点击整行跳转不放额外“前往”按钮。层级通过缩进与 H数字双重表达不只靠颜色。Web 内部分栏响应宽窗口 Source/Split/Preview由 CSS Grid控制。Split两列各minmax(0,1fr)避免长代码撑破。低于760px改为上下两行media(max-width:760px){#workspace[data-modesplit]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)minmax(0,1fr);}}ArkUI在900隐藏侧栏Web在760重排分栏两层断点职责不同。需要跨断点连续缩放验证避免外壳和 Web各自判断造成中间拥挤。主题保持层级亮暗资源为 background、surface、subtle surface、rail、control、selected和多级 text提供语义色。深色不是整页单一黑色侧栏、活动栏和编辑区仍有边界。强调绿色只用于活动、主操作和链接不让界面成为单一绿色主题。危险放弃使用红色格式警告使用琥珀色语义颜色分工明确。鸿蒙 PC 完整工作台下图展示活动栏、Documents面板、标签、工具栏、源码编辑器和状态栏下一屏功能不依赖营销首页。模拟器还保存搜索、大纲、工作区、分栏和深色专项图。完整工作台图适合检查总体层级专项图检查交互状态。自由窗口测试矩阵至少验证640、720、900、1280、1440vp。每档检查侧栏可见规则标签滚动Open/Save与模式不溢出状态栏不重叠Web分栏方向长文件名和长错误文案。还要测试系统字体缩放、中文/英文资源、最大化、分屏和前后台。不能用 viewport字体缩放做响应式字体遵循系统设置。焦点顺序键盘顺序应从活动栏到侧栏控件、标签、工具栏、编辑器和状态栏可交互项。当前核心依赖鼠标与快捷键完整 Tab遍历和焦点环仍需补齐。关闭、同步和活动按钮有 accessibilityTextdirty标签还需要把“未保存”加入读屏名称。状态不能只靠星号和颜色。当前边界低于900没有覆盖式侧栏状态栏窄屏优先级未完善标签虽可水平滚动但无溢出菜单拖放、右键、多窗口和命令面板未实现部分英文文案未本地化真机多窗口待验证。信息密度如何继续增长后续加入图片、链接、Front Matter、Git和历史时不能为每项再添加一条永久侧栏。新能力应先判断属于文档导航、编辑命令、文档属性还是全局设置再进入现有上下文面板、命令面板或非阻断弹层。活动栏只保留高频一级任务避免图标不断增长。文件树行不应同时塞入 Git徽标、字数、更新时间和同步状态这些信息可在悬停、右键或详情面板按需出现。标签只保留名称、dirty和关闭编码与换行继续放状态栏。每项事实有唯一主要位置减少重复和冲突。新增工具栏命令要做宽度预算最小窗口下高频命令仍可见低频命令进入菜单熟悉动作使用图标和 tooltip危险动作保留文字确认。UI增长以工作流次数和错误成本排序不以功能清单逐项占位。视觉回归与布局断言人工截图适合观察整体但还应自动读取关键元素尺寸活动栏和侧栏宽度、顶栏和状态栏高度、编辑器可用宽度、标签/命令是否超出容器、窄窗口 Grid行列数。最长文件名、最长错误消息和十二标签作为压力数据。每次资源本地化后跑同一矩阵中文、英文和未来德文长度差异可能让按钮溢出。断言不要求每个像素固定要求没有重叠、不可见命令和负尺寸。设计系统的稳定性应由响应约束证明而不是只选一张最好看的截图。结语OhMarkdown桌面信息架构把高频路径压缩在连续工作面活动栏选择上下文264vp侧栏承载文件/搜索/大纲顶部标签与命令中央编辑器底部显示文档事实。900和760两个断点分别保护原生侧栏与 Web分栏。鸿蒙 PC生产力界面不需要用大卡片解释功能。稳定尺寸、明确层级、键盘焦点和自由窗口下不重叠才是用户每天愿意停留的工作台。

相关新闻

鸿蒙 PC Markdown 编辑器桌面无障碍与焦点:键鼠、Slider 与 ArkWeb 焦点归还

鸿蒙 PC Markdown 编辑器桌面无障碍与焦点:键鼠、Slider 与 ArkWeb 焦点归还

鸿蒙 PC Markdown 编辑器桌面无障碍与焦点:键鼠、Slider 与 ArkWeb 焦点归还 PC Markdown 编辑器的无障碍不是给按钮补几个名称就结束。OhMarkdown 同时包含 ArkUI 活动栏、搜索输入、可调侧栏、设置分段控件和 ArkWeb CodeMirror;键盘焦点会跨原生与 W…

2026/7/21 2:24:14阅读更多 →
开源项目盈利模式与开发者生存指南

开源项目盈利模式与开发者生存指南

1. 开源开发者的生存现状在代码开源的世界里,有一个令人尴尬的悖论:最受欢迎的开源项目往往由最贫穷的开发者维护。我认识一位维护着下载量过亿的npm包的开发者,他每天下班后要花4小时处理issue,周末还要写新功能,而这…

2026/7/21 2:24:14阅读更多 →
鸿蒙 PC Markdown 编辑器状态一致性:脏标记、修订号与保存基线

鸿蒙 PC Markdown 编辑器状态一致性:脏标记、修订号与保存基线

鸿蒙 PC Markdown 编辑器状态一致性:脏标记、修订号与保存基线 编辑器状态不是一个 isDirty布尔值。正文可能等于打开基线、恢复基线或保存请求时快照;保存期间还可以继续输入;多标签各有 URI、格式、revision和撤销历史;ArkUI与…

2026/7/21 2:24:14阅读更多 →
《奇迹mu荣耀出征》|官方指南 1.03H原汁原味怀旧服

《奇迹mu荣耀出征》|官方指南 1.03H原汁原味怀旧服

游戏简介|正版1.03H复古奇迹 纯净无魔改 《荣耀出征》又名《奇迹MU1.03H复古荣耀服》《罗兰百人攻城怀旧奇迹》,是由安徽游昕联合忆往游戏正版运营的复古魔幻MMORPG怀旧手游。游戏严格复刻经典端游1.03H原版全部内容,无数值魔改、无浮夸特效…

2026/7/22 4:46:33阅读更多 →
基于ResNet的胸部X光影像识别系统开发实践

基于ResNet的胸部X光影像识别系统开发实践

1. 项目概述胸部X光影像识别一直是医疗AI领域的热门研究方向。作为一名长期从事医学影像分析的从业者,我最近完成了一个基于ResNet算法的胸部X光影像识别系统,这个项目整合了带标签数据集、模型训练权重以及基于PyQt5的可视化界面,为医生和研…

2026/7/22 4:46:33阅读更多 →
上海工业一站式涂装服务商:上海善屹涂装,多工艺复合喷涂解决高端制造表面处理痛点

上海工业一站式涂装服务商:上海善屹涂装,多工艺复合喷涂解决高端制造表面处理痛点

一、上海本地涂装市场现状:制造企业选择喷涂加工厂的核心痛点2026 年长三角高端制造产业持续扩容,新能源汽车、精密医疗设备、户外工程机械、不锈钢泵阀金属构件出货量逐年上涨,金属表面涂装不再只是简单上色,而是决定产品使用寿命…

2026/7/22 4:46:33阅读更多 →
03-协议基础02:USB架构与设备交互

03-协议基础02:USB架构与设备交互

文章目录 概述 一、USB拓扑结构回顾 1.1 Root Hub与External Hub 二、USB设备状态迁移 2.1 状态机 2.2 状态详解 2.3 从连接到可用 三、USB设备硬件识别 3.1 速度分类 3.2 全速设备识别 3.3 低速设备识别 3.4 高速设备识别(Chirp协商) 3.5 高速协商三种情况 四、USB3.0设备识别…

2026/7/22 4:46:33阅读更多 →
Docker快速入门:30分钟掌握容器化部署

Docker快速入门:30分钟掌握容器化部署

1. Docker 快速入门实操指南 作为一名在容器化领域摸爬滚打多年的老手,我经常被问到"如何快速上手Docker"。今天就用最直白的方式,带你在30分钟内完成从安装到运行第一个容器的完整流程。不同于官方文档的学院派风格,这里只讲真正…

2026/7/22 4:46:31阅读更多 →
告别数据孤岛与AI“水土不服”:金仓多模融合时序库如何让数据真正服务于业务

告别数据孤岛与AI“水土不服”:金仓多模融合时序库如何让数据真正服务于业务

当AI走进工业、能源等真实业务场景,常常会“水土不服”。一个简单的设备异常判断,AI需要的不仅是当下的读数,更需要理解设备过去的状态变化、关联设备的同步信息,甚至要结合维修记录和故障知识库。这些分散在不同系统中的数据&…

2026/7/22 4:44:31阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →