2

我正在使用通过转换较旧的 WinHelp 帮助源(从使用 Microsoft 转换工具使用 Word 编辑的 .RTF 文件转换而来)生成的 HTML 帮助源。这个来源自从它被转换以来就没有被触及过,并且在 2014 年左右或更早的某个时候完成了一些初步工作。

我目前正在使用带有 Windows 7 PC 的 Visual Studio 2005 来更新此 HTML 帮助源。我创建了一个项目并添加了所有各种源:HTML 文件、包含图像的 BMP 文件、包含 JavaScript 的文件和包含 CSS 的文件。较旧的基于 WinHELP 的内容使用了许多弹出窗口,这些弹出窗口转换为单个文件,并且通过仅合并这些仅在一个地方使用的小文件,我将文件数量减少了三分之一。

我要做的第一件事是手动清理标签,通过合并和重写内容来消除文件,并更改旧样式标记以使用更现代的 CSS。

我的帮助文件的目标是 Windows 7 和 Windows 10 的桌面用户。一旦我清理了基础知识,我计划使用此源迁移到 Visual Studio 2015。我已经完成了一个将 VS 2005 转换为 VS 2015 的测试项目,转换似乎工作正常,并且 HTML 源代码编译成可用的 .chm 文件。

据我所知,Microsoft 的 HTML Help Workshop 似乎正在维护中,但不再处于积极开发中。根据HTML 帮助研讨会和文档下载页面,最后一个版本似乎是 2012 年发布的 1.32,尽管它适用于 HTML 帮助 1.4 版。另请参阅Microsoft Docs 中的Microsoft HTML 帮助 1.4

Visual Studio 2005 表明某些标记(我认为是 HTML4)已被弃用。无论如何, html 帮助源似乎都可以.chm很好地编译为文件,并且生成的 .chm 文件在 Windows 7 下可以正常工作。

我对这个编译过程有点困惑。我的印象是,workshop 编译器将所有各种 .html 文件连同它生成的几个文件打包在一起,然后将它们全部压缩到一个存档中。

这是否意味着我使用的 HTML 标准取决于我假设的 Microsoft 浏览器、Edge 以及它支持的 HTML 标准?

这个问题真的意味着 HTML Help Workshop 中是否存在任何依赖关系,这意味着我不能使用 HTML5 或更新的 CSS?

有一些简单的 Javascript 使用div标签进行一些基本的用户交互。这工作得很好。我是否可以期望 Microsoft Edge 支持的任何 Javascript HTML DOM 都可用于此帮助文本?

4

1 回答 1

4

您知道 Windows HTML 帮助以LZX压缩二进制文件的形式提供,扩展名为 .chm。它包含一组 HTML 文件、一个超链接目录和一个索引文件。文件格式已经过逆向工程,其文档可免费获得,例如非官方(初步)HTML 帮助规范

该文件以字节“ITSF”(ASCII)开头,表示“信息技术存储格式”(请参阅​​ Microsoft 的 HTML 帮助 (.chm) 格式文档)。可以使用 FAR HTML 打开 CHM,如此 SO 线程的屏幕截图所示, 以从帮助 ID 获取 CHM 详细信息

请注意,HTMLHelp Viewer (hh.exe) 中使用陈旧的 Internet Explorer 来呈现 HTML 内容。HH.EXE 与 HTML 帮助一起分发,因此您可以依赖它的存在。它位于 Windows 文件夹中,并且具有有限数量的命令行选项。HH.EXE 与 .CHM 文件相关联。因此,双击 *.CHM 文件,Windows 将使用 HH.EXE 打开该文件。它是一个非常小的文件,例如包装器,它主要将帮助文件名传递给 HH API 库。

在此上下文中不使用 Edge 浏览器。20 多年前的 HTMLHelp 仍然可以做很多事情,例如 SVG 的集成。但是,我建议不要完全使用标准 HTML5 并且要非常小心。内容本身应尽可能易于维护。这也可以通过简化的 HTML 来实现。

你可能知道微软正在构建一个基于 Chromium 的 Web 浏览器,它将取代 Windows 10 上的 Edge。我不确定微软将如何集成所需的 Internet Explorer 渲染引擎以在未来的环境中支持 CHM 查看器。

它有点过时,但请阅读让您的 CHM 帮助文件显示 HTML5 和 CSS3 内容。另请参阅讨论使用HTML 元标记的 Web 浏览器控制和指定 IE 版本。X-UA-Compatible

看到这个标签,<meta http-equiv="X-UA-Compatible" content="IE=edge"> 做什么?.

于 2019-03-15T08:04:34.920 回答