В модуле B
У меня есть документация со ссылкой 'A.foo'
, ссылающаяся на foo
член модуля A
. В модуле A
я импортирую модуль B
. Пикша делает это ссылкой на A.html#t:foo
, а именно на типfoo
(которого нет) не функция foo
, которая находится на A.html#v:foo
.Связная ссылка на функции в не импортируемых модулях
- Почему Haddock ссылается на
t:
для переменных, начинающихся с буквы нижнего регистра? Это ошибка? Для'A.Foo'
Я вижу, что это может быть тип или конструктор, поэтому возникают проблемы с именами. Дляfoo
кажется, что переменная, по крайней мере, наиболее правдоподобна. - Есть ли способ подделать ссылку? Я пишу это в образцах кода, поэтому мне нужно, чтобы он отображался как
foo
. Я пробовал привязки, но они отображались как имя модуля, а для прямых гиперссылок у вас нет контроля над отображаемым текстом. - Я рассмотрел почтовый процессор (заменив
t:[a-z]
наv:
), но для этого требуется специальная Setup.hs, которая вызывает проблемы и довольно уродлива. - Я не смог найти флаги командной строки Haddock, чтобы получить более разумное поведение, например, указать, что
foo
является переменной. - Невозможно добавить импорт:
A
-B
без ввода круговых оборотов, что подливает его добавление исключительно для документации.
Я столкнулся с этой проблемой в Shake documentation, где в качестве примера removeFilesAfter
не получил правильную ссылку.
очень хороший анализ, любой шанс вы можете отправить патч вверх по течению? –
Я знаю только * как * код работает таким образом, а не * почему *, это может быть веской причиной. Но я думаю, вы можете открыть отчет об ошибке и указать их здесь, чтобы они знали, в какой части кода они должны думать. –
У меня есть груды открытых ошибок Haddock (по крайней мере, 6 по моему счету), которые никогда не получали ответа - кажется, им все равно ... –