CHM внешняя ссылка с амперсандом
Я строю файл CHM со многими внешними ссылками. Ссылки находятся в Index.hhk
и должны отображать внешнюю страницу в справке CHM.
Все ссылки примерно такие: http://dle.rae.es/srv/search?m=30&w=casa
Как видите, путь имеет символ &
в этом, и, очевидно, CHM не может справиться с этим. Все ссылки урезаны до " http://dle.rae.es/srv/search?m=30?" С помощью HTML Help Workshop.
Есть ли способ это исправить?
Я пытался с%26, но это не работает.
1 ответ
Это немного сложно и связано с поведением HTMLHelp Workshop. Помните, HTMLHelp (CHM) уже почти 20 лет, а справочная система Microsoft на базе Windows находится только в "режиме обслуживания". Некоторые символы обрабатываются особым образом, что приводит к проблемам, особенно с именами файлов.
Так, например, хеш (#) является зарегистрированным символом, который используется для гиперссылок. Этот символ нельзя использовать (а также символы "?","&" И "+"). Все это имеет особое значение.
Мы должны решить вашу проблему сейчас и найти решение для вашей index.hhk
и HTMLHelp Workshop. Вы можете знать index.hhk
файл - это текстовый файл (старый формат карты сайта), который можно редактировать с помощью обычного текстового редактора, такого как NotePad++
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="WindowName" value="Stackru">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Ampersand-casa">
<param name="Local" value="http://dle.rae.es/srv/search?m=30&w=casa">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Ampersand-cerveza">
<param name="Local" value="http://dle.rae.es/srv/search?m=30&w=cerveza">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Welcome">
<param name="Local" value="index.htm">
</OBJECT>
</UL>
</BODY></HTML>
Таким образом, вы можете искать и заменять &
с &
используя регулярное выражение и предпочитаемый вами текстовый редактор, как показано выше. С помощью %26
приводит к ошибке сервера при использовании вашего образца URL из скомпилированного файла справки (*.CHM).
Пожалуйста, обратите внимание - открытие index.hhk
по HTMLHelp Workshop снова сокращает URL, как вы уже видели. Так что вам нужно очистить свой index.hhk
и скомпилируйте сразу после этого, не открывая index.hhk
,
Как показано на снимке ниже, это приводит к панели содержимого для ваших нужд.