1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lunarsf-Lunar-Markdown-Editor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
010_制作CHM应注意的问题.md 5.8 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
LunarSF Отправлено 8 лет назад dfb74dd

[+] 2016年7月8日 %关于 CHM 文件

;2016/7/8 7:15:38

#CHM 是什么?

CHM 是一种文件格式,即 Compiled HTML Help,翻译过来就是“编译的 Html 帮助文档”。这是微软公司 1998 年推出的基于 HTML 文件特性的帮助文件系统,以替代早先的 WinHelp 帮助系统。

通常人们使用微软公司的 Html Help Workshop 来创建 CHM 工程文件,并利用这个工程文件和事先准备好的 Html 网页及其相关资源文件(图像、声音、视频等等)来编译(打包)成 CHM 帮助文档。

CHM 文件将几乎所有资源文件(仅限本地)都打包在一个文件中,从而做到了超高的便携性。而且自 Win98 以来,Windows 操作系统中都自带 CHM 阅读器,从而使得几乎每台 Windows 计算机都能顺利打开 CHM 文档——用户不需要再另行安装阅读器软件。

事实上,在 Linux 等其它操作系统上也有些 CHM 阅读器——只是通常它们的特性不是太全。

#CHM 的局限

CHM 十分适合用来制作本地帮助文件,具有很高的灵活性、便携性、通用性。

但这是一种比较老旧的文件格式,存在一些缺陷(比如它对 Unicode 字符集的支持就比较差,对中文路径的支持也很差)。

大家可以试试将一个图像文件的名称中加入“应用程序”四个字,然后再编译、打包到 CHM 文件中——你会发现这张图像虽然被打包进去了,但死活显示不出来。

微软公司已经放弃了这种文件格式的更新,也就是说它的问题不会得到解决了。

#为什么下载的 CHM 文件会打不开或者打开之后无法正常显示?

这个问题通常发生在 NTFS 格式的磁盘分区中,基于安全考虑,微软的操作系统会禁止从网上直接下载的 CHM 文件直接打开。

解决的办法有两个:

  • 先把 CHM 压缩再上传到网上,下载后解压缩出 CHM 文件

这个办法是针对要向别人提供 CHM 文件的用户的。

  • 在“文件属性”中“解除锁定”即可

用鼠标右键单击下载的 CHM 文件,在弹出的快捷菜单中选择属性菜单项,然后在常规选项卡底部找到解除锁定按钮,点击之后再按确定按钮即可。

当然还有一些其它原因可能造成 CHM 文件打不开,例如 CHM 语言设置与操作系统语言设置不一致等情况。这些百度一下就可以找到办法。

#编译工具问题

LME 并没有实现自己的 CHM 编译器,而是通过调用微软的 Html Help Workshop 来进行编译。

由于版权问题,不能直接将 Html Help Workshop 嵌入安装包,用户需要自行下载、安装(微软公司提供了免费的英文版,网上也可以找到网友汉化的版本)。

LME 本身只负责根据用户设置的工作区目录来生成 Html Help Workshop 所需要的 Html 源文件、工程文件、目录文件、索引文件。

其中,Html 文件是由 LME 从 Markdown 文件编译而成的。

{ 为什么不自己设计一个编译器?

  • 水平问题

  • 重复造轮子没必要

  • 兼容性问题

}

#字符集问题

LME 仅针对简体中文用户,也没有考虑其它语言的 Windows 操作系统的需求。因此,在使用 LME 编译 Html 文件时,如果需要编译为 CHM 文件,则应使用 GB2312 字符集。

虽然可以在使用 LME 编译 Html 文件时选择 UTF-8 字符集。但这样生成的 Html 文件在编译为 CHM 文件时效果较差。

这是因为微软的 Html Help Workshop 对 Unicode 支持很差。如果没有编译为 CHM 文件这样的需求,是可以选择使用 UTF-8 字符集来将工作区中的 Markdown 文件编译为 Html 网页文件的。

#文件路径问题

文件名不能带“应用程序”字样,否则会导致编译的 CHM 文档中的图片无法显示。

这是一个 Bug,但并不是由 LME 造成的,所以也无法修复。

推荐大家使用英文来命名文件,然后在 Markdown 文件中设置中文标题(Title)。

事实上,较新版本的 LME 中,文件名输入框会自动将文件名里的汉字转换为对应的拼音首字母来处理。用户输入的中文文件名会自动被当作 Markdown 文件或图像文件的标题

在工作区管理器的左下角,有一个切换按钮,可以在显示 Markdown 文件的标题显示 Markdown 文件的文件名这两种状态间切换。

这样,即使使用全英文来命名文件,我们生成的网页的标题、编译后的 CHM 文件中的目录条目都仍然可以显示中文标题——而文件的真实路径却仍然是英文!

这样可以避免很多潜在的错误。

#关于在 CHM 中嵌入声音文件

LME 之前是不支持在 Markdown 文件中添加对声音文件的链接的,这终究有些不便。

虽然之前用户可以自行在 Markdown 文档中用 Html 语法来编写链接文本来使编译后的 Html 网页文件支持播放声音,但这毕竟很繁琐。

现在,终于不必再手工完成路径计算了——LME 支持将常见的几种音频格式文件(.mp3、.wma)直接拖动到编辑区。此时会自动将声音文件复制到当前 Markdown 文件的对应资源目录中。然后就可以使用“插入链接”功能在工作区中各 Markdown 文件中到处引用了。

#页面中的层级标题是否应该折叠?

一般来说,如果打算将工作区编译为 CHM 文件,不应使用“<H1>-<H6>自动折叠”这个 Html 编译选项。

由于标题可以折叠其下的内容,所以锚可能被它前面的标题折叠起来——这时锚就不起作用了——这很容易带来极不美妙的阅读体验。

而且,除非想做填空题的教程,否则也不应使用“<code>..</code>块编译为填空”选项。

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
git@gitlife.ru:oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
oschina-mirror
lunarsf-Lunar-Markdown-Editor
lunarsf-Lunar-Markdown-Editor
v0.4-beta8