Что-то меня озадачило на лучшую половину рабочего дня: что на самом деле происходит во время преобразования уценки в HTML в Dita, когда я пытаюсь сохранить скобки нетронутыми.
В частности, это моя оригинальная уценка:
1. Value[:, :]
Который должен быть написан как есть в HTML. Однако, глядя на элемент HTML, созданный Dita:
<li class="li">
<p class="p">
Value
<span class="xref"></span>
</p>
</li>
Ожидаемый результат:
<li class="li">
<p class="p">
Value[:, :]
</p>
</li>
Что означает, что скобки интерпретируются как внешние ссылки (?)
Я выполняю преобразование уценки в HTML в dita CLI версии 3.1.2 (windows 10) с помощью следующей команды:
dita --input=root.ditamap --output=./output --format=html5
Файл root.ditamap просто содержит одну тему, которая является моим файлом уценки.
Сначала я попробовал следующее:
1) Использование \ для экранирования строки приводит к:
1. Value\[:, :\]
2) использование html-сущности вместо скобок ([
и ]
) приводит к: 1. Value:, :
3) использование UTF-кода вместо скобок ([
и ]
) приводит к:
1. Value:, :
Затем я попытался добавить дополнительные скобки, и это сработало!
4) Сработавшая уценка: 1. Value[[]:, :[]]
выдало ожидаемый результат 1. Value[:, :]
Мой вопрос (ы):
1) Какая из трех частей отвечает за это поведение: Markdown, Dita или HTML? (под этим поведением я подразумеваю интерпретацию скобок таким образом, чтобы они исчезали при первоначальном преобразовании).
2) Есть ли "лучший" / "универсальный" способ экранирования строк в уценке -> html от dita? (Под лучшим способом я подразумеваю что-то, что оставляет исходную строку разметки, означающую то же самое, а под универсальной я подразумеваю что-то, что может быть применено ко всем строкам, а не только к скобкам)
По крайней мере, я надеюсь, что мои выводы будут кому-то полезны, хотя я понимаю, что мой вариант использования очень специфичен. :)