HVML 是由中国首款开源基础软件 MiniGUI 的作者魏永明设计的描述式编程语言,也是世界首款可编程标记语言。
从 2020 年 5 月开始构思算起,魏永明带领团队历经两年多的时间,于 2022 年 7 月 31 日正式开源发布了 HVML 规范文档以及解释器、渲染器等软件,总代码行数逾百万!
面向未来多屏协同场景下的应用开发需求,HVML 为应用的跨端运行提供了全新的技术框架。HVML 蕴含了大量新颖的设计和独创的思想,是魏永明及其团队近三十年基础软件开发经验的结晶,一经发布便获得了业界的广泛关注。2022 年底,HVML 项目获评 CSDN 2022 “年度开源影响力项目”。
本文将向读者介绍 HVML 社区的近期动态。
软件及文档的更新
HVML 解释器 PurC 0.9.6
2023 年 02 月 24 日,HVML 社区发布 PurC 0.9.6,这也是 PurC 1.0.x 的第七个 alpha 版本。若发现任何错误、不兼容性和问题,请向 https://github.com/HVML/PurC/issues 报告。
在这个版本中,主要完成了解释器 PurC 的增强,并修复了一些缺陷。一些主要的增强说明如下:
-
优化了变体和 VCM 求值的相关代码,执行 HVML 程序的整体性能提高了 20%。
-
增强
purc
命令行中内置的字符渲染器 Foil,提供了对progress
和meter
两个 HTML 5 标签的支持,并增加如下自定义 CSS 属性或属性值,用于定制这两个标签的外观:appearance
属性,支持progress-bar
、progress-mark
、和progress-bkgnd
三个值,分别使用条、轮换的符号和背景来展示progress
元素的外观。appearance
属性,支持meter-bar
、meter-mark
、和meter-bkgnd
三个值,分别使用条、轮换的符号和背景来展示meter
元素的外观。-foil-candidant-makrs
属性,可用于自定义progress
和meter
元素使用的轮换符号。-foil-color-primary
、-foil-color-secondary
、-foil-color-warning
、-foil-color-danger
属性,可用于自定义progress
和meter
元素的颜色。
-
增强了
init
动作元素,使之可直接装载 MIME 为text/html
的内容为文档实体,并通过 CSS 选择器来选择其中的元素或内容。
本版本全部的错误修复、增强、优化和调整罗列如下:
- 增强:
- 完整实现预定义变量
$DOC
的接口。 - 增强
init
元素,使之可直接装载 MIME 类型为text/html
的内容,并使用文档实体接口来访问该内容。 - 增强抽象文档接口,使之支持 CSS 2 选择器。
- 增强 Foil 渲染器以支持 HTML 5
meter
和progress
元素。
- 完整实现预定义变量
- 优化:
- 优化变体模块,提升性能。
- 优化 VCM 的求值模块。
- 缺陷修正:
- 修复了 Foil 渲染器中的一些布局计算错误。
- 示例:
- 新增
spider-headline.hvml
,该示例程序可从新闻网站上获取最新的头条新闻并集中展示在渲染器页面中。 - 新增
foil-progress.hvml
,该示例程序展示了 Foil 渲染器渲染progress
元素的效果。 - 新增
foil-meter.hvml
,该示例程序展示了 Foil 渲染器渲染meter
元素的效果。
- 新增
爬虫
Foil 渲染器
社区活动
2023 年 01 月 02 日,HVML 社区举办了主题为“如何参与开发”的第二次技术研讨会,总结了 2022 年 HVML 项目的进展,分享了 HVML 项目 2023 年度的规划,并为大家讲解了如何参与开发,有哪些待开发的内容,以及有了这些东西可以做什么等等。视频回放如下:
2023 年 01 和 02 月,社区小伙伴们围绕如下方面做出了贡献:
- 修复文档中的拼写等错误;添加针对 cjk-dcimal 的支持。由 @tiansiyuan 提交拉取请求。
另外,2023 年 02 月 26 日 19:00 ~ 20:30,我们将举办 HVML 社区的第三次线上研讨会,主要内容是总结 HVML 项目的进展,以及如何使用 HVML 实现爬虫。这是对 HVML 应用场景之一的具体演示,可以使大家对 HVML 有更加清晰的了解。欢迎大家积极参加!
下一步计划
2023 年 03 月底,我们将发布 PurC 0.9.7 版本,预期功能包括:
- 增强 Foil 字符渲染器以支持浮动元素和绝对定位元素。
- 增强 Foil 字符渲染器以支持表格布局。
- 新增对预定义变量
$PY
的支持,以便 HVML 程序可以直接调用 Python 模块提供的函数或者类方法。 - 新增对预定义变量
$SOCKET
的支持,以便 HVML 程序可以作为服务器程序运行。
2023 年 04 月底,我们将发布 PurC 0.9.8 版本,预期功能包括:
- 全功能的 Foil 字符渲染器,支持多窗口、构件及交互。
2023 年 05 月底,我们将发布 PurC 0.9.9 版本(PurC 1.0.0 Beta 版本),预期功能包括:
- 内存及性能的初步优化。
- 预定义动态对象的完整实现。
预计我们将在 2023 年 06 月底发布 PurC 1.0.0 RC1 版本。
- 对 Windows 平台的支持。
常见问题及解答
Q:HVML 是针对嵌入式和物联网使用的吗?
A:不仅仅是。HVML 是一种通用的胶水语言,HVML 的目标平台包括传统的桌面、服务器、智能手机、平板、嵌入式设备和物联网设备。
Q:HVML 是打算取代现有的 Web 前端开发技术,比如 JavaScript 吗?
A:没有这个计划。HVML 的渲染器会用到 Web 前端技术,但 HVML 的目标并不是取代现有的 Web 前端开发技术,而是面向未来的多屏协同场景下的需求,为应用的跨端运行提供全新的技术框架,同时作为合璧操作系统(HybridOS)的首选编程语言。
Q:在哪里可以看到 HVML 相关的源代码?
A:HVML 相关文档及代码仓库在 https://github.com/HVML 上开源发布,其中包括:
- HVML 解释器(PurC):https://github.com/HVML/PurC
- HVML 图形渲染器(xGUI Pro):https://github.com/HVML/xGUI-Pro
- 扩展 WebKit 引擎(仅源代码包)
- 开发用 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
,我们会及时联系您。