HVML 是由中国首款开源基础软件 MiniGUI 的作者魏永明设计的描述式编程语言,也是世界首款可编程标记语言。

从 2020 年 5 月开始构思算起,魏永明带领团队历经两年多的时间,于 2022 年 7 月 31 日正式开源发布了 HVML 规范文档以及解释器、渲染器等软件,总代码行数逾百万!

面向未来多屏协同场景下的应用开发需求,HVML 为应用的跨端运行提供了全新的技术框架。HVML 蕴含了大量新颖的设计和独创的思想,是魏永明及其团队近三十年基础软件开发经验的结晶,一经发布便获得了业界的广泛关注。2022 年底,HVML 项目获评 CSDN 2022 “年度开源影响力项目”。

本文将向读者介绍 HVML 社区的近期动态。

喜报!

2022 年 12 月 28 日,在 CSDN 发布的 2022 中国开发者影响力年度榜单中,HVML 项目喜获“年度开源影响力项目”称号。

软件及文档的更新

HVML 解释器 PurC 0.9.4

2022 年 12 月 30 日,HVML 社区发布 PurC 0.9.4,这也是 PurC 1.0.x 的第五个 alpha 版本。若发现任何错误、不兼容性和问题,请向 https://github.com/HVML/PurC/issues 报告。

在这个版本中,主要完成了解释器 PurC 的增强,并修复了一些缺陷。一些主要的增强说明如下:

  1. 完善了对 updaterequest 两个动作标签的支持,至此,PurC 实现了 HVML 1.0 规范定义的所有动作元素。

  2. 增强 purc 命令行中内置的字符渲染器 Foil,使之支持绝大多数 CSS 2.2 样式属性(除字体相关属性之外),基本实现了 block 和 inline 布局算法。

本版本全部的错误修复、增强、优化和调整罗列如下:

  • 变化:
    • 调整了某些接口的名称,整理了大部分常用的接口描述。
  • 增强:
    • 增强了 update 动作元素的实现。
    • 完善了 request 工作元素的实现。
    • 新增若干测试用例。
    • 增强 Foil 以支持绝大部分 CSS 2.2 样式属性以及 block 和 inline 布局。
  • 错误修正:
    • 修复议题 #42 提及的缺陷。
    • 修复 macOS 上的编译错误。

HVML 渲染器 xGUI Pro 0.6.2

在这个版本中,我们主要根据 HVML 规范并配合 PurC 0.9.4 版本完成了一些小的增强,并修复了一些缺陷。

若发现任何错误、不兼容性和问题,请向 https://github.com/HVML/xGUI-Pro/issues 报告。

HVML 规范 1.0 RC9

我们于 2022 年 12 月 30 日发布了 HVML 规范 1.0 RC9 版本,并进入到 HVML 规范的 1.0 RC10 版本。

在 RC9 版本中,我们围绕 HVML 语言规范主要做了如下调整及增强:

  1. 使用 &= 运算符,用于指定骨架元素的特定属性是响应式的。
  2. 调整文档片段的结构化数据表达:
    • 使用 dataContent 替代 jsonContent
    • 移除 style.width 这类虚拟键名。
    • 移除 content[<index>] 这类虚拟键名。
  3. 调整 update 元素相关细节:
    • 增加了 add 动作,可用于集合。
    • 调整 remove 动作,可用于集合。
    • 调整 merge/uniteoverwriteintersectsubtractxor 等动作,可用于对象。
  4. 调整 request 元素相关细节
    • 调整了协程令牌相关的描述。
    • 调整了 $RDR 预定义变量的描述。

有关详情,可点击阅读如下链接:

社区活动

2022 年 12 月 9 日,HVML 社区举办了主题为“如何参与 HVML 开源项目”的技术研讨会,介绍了 PurC 中 FOIL 字符渲染器的开发目标以及有关 CSS 的背景知识,还讲解了如何实现动态对象。视频回放如下:

2022 年 12 月,社区小伙伴们围绕如下方面做出了贡献:

  1. 更新 PurC 0.9.2 版本的 AUR 包描述信息,由 @taotieren 提交拉取请求。
  2. 更新 xGUI Pro 0.6.1 版本的 AUR 包描述信息,由 @taotieren 提交拉取请求。
  3. @lisimeng123 提交了 PurC README 文档的中文版,@KenLSoft、@Gu-Hongyan、@yongkangl 等参与了讨论。
  4. @bkmgit、@longlongvip 等提交了缺陷报告。

另外,2023 年 01 月 02 日 19:00 ~ 21:00,我们将举办 HVML 社区的第二次线上研讨会,主要内容是总结 HVML 项目的进展,分享 HVML 项目 2023 年度的规划,谈谈如何参与开发,有哪些待开发的内容,以及有了这些东西可以做什么等等。并请 HVML 核心开发者为我们讲述“如何增加新的动态对象接口并增加单元测试用例”以及“HVML 的 FS 模块代码点滴”等内容。相信这些内容可以帮助大家更直观地了解如何从完善 HVML 动态对象起步,从而参与到 HVML 项目的开发当中。欢迎大家积极参加!

(腾讯会议二维码)

下一步计划

2023 年 02 月底,我们将发布 PurC 0.9.6 版本,预期功能包括:

  1. 增强 Foil 字符渲染器以支持 meterprogress 元素属性。
  2. 增强 Foil 字符渲染器以支持表格布局。
  3. 完善对 $URL$STR 预定义动态对象的支持。
  4. 支持 CSS Level 3 选择器规范,完善预定义 $DOC 变量各属性获取器及设置器。
  5. 增强文档定位功能。
  6. 将来自外部数据源的 text/html 类型装载为原生实体对象,以方便对网页内容的处理和操作。

2023 年 03 月底,我们将发布 PurC 0.9.8 版本,预期功能包括:

  1. 预定义变量规范中定义的,但尚未完成的动态对象属性及方法。
  2. 全功能的 Foil 字符渲染器,支持多窗口、构件及交互。

2023 年 05 月底,我们将发布 PurC 0.9.9 版本(PurC 1.0.0 Beta 版本),预期功能包括:

  1. 内存及性能的初步优化。
  2. 对 Windows 平台的支持。
  3. 预定义动态对象的完整实现。

预计我们将在 2023 年 06 月底发布 PurC 1.0.0 RC1 版本。

常见问题及解答

Q:HVML 是针对嵌入式和物联网使用的吗?

A:不仅仅是。HVML 是一种通用的胶水语言,HVML 的目标平台包括传统的桌面、服务器、智能手机、平板、嵌入式设备和物联网设备。

Q:HVML 是打算取代现有的 Web 前端开发技术,比如 JavaScript 吗?

A:没有这个计划。HVML 的渲染器会用到 Web 前端技术,但 HVML 的目标并不是取代现有的 Web 前端开发技术,而是面向未来的多屏协同场景下的需求,为应用的跨端运行提供全新的技术框架,同时作为合璧操作系统(HybridOS)的首选编程语言。

Q:在哪里可以看到 HVML 相关的源代码?

A:HVML 相关文档及代码仓库在 https://github.com/HVML 上开源发布,其中包括:

  1. HVML 解释器(PurC):https://github.com/HVML/PurC
  2. HVML 图形渲染器(xGUI Pro):https://github.com/HVML/xGUI-Pro
  3. 扩展 WebKit 引擎(仅源代码包)
  4. 开发用 HVML 字符渲染器(PurC Midnight Commander):https://github.com/HVML/PurC-Midnight-Commander

Q:有可以直接下载安装的软件包吗?

A:因开发团队精力有限,目前尚没有制作针对各个操作系统的安装包,但来自开源社区的小伙伴们已经积极行动,帮助我们完成了一些 Linux 发行版的安装包。我们将这些软件包收集到了如下页面,可访问查看:

https://hvml.fmsoft.cn/software

Q:如何赞助 HVML 相关的项目?

A:个人打赏性质的赞助,您可以点击文后的阅读原文。大额的赞助,可通过本公众号后台留下联系方式,或者致信 hvml@fmsoft.cn,我们会及时联系您。

原文链接

https://store.fmsoft.cn/campaign/denoteoss-lt