Пикша - ссылка на функцию во внешнем модуле (весь модуль импортирован)

Предположим, у меня есть модуль на Haskell MyModule который импортирует внешний модуль следующим образом:

import ModuleA hiding (a, b, c)

И я не могу изменить это утверждение импорта, потому что программа не совсем моя.

Я хочу дать ссылку на ModuleA.external_function в документации для ModuleAв комментариях выше функция называется my_function, Итак, код выглядит примерно так:

-- | my_function makes use of 'ModuleA.external_function'
my_function :: Int -> Int

Использование пикши 2.10.0 и запуск cabal haddock, ссылка на ModuleA.external_function генерируется как dist/doc/html/MyModule/ModuleA.html#v:external_function, Однако проблема в том, что dist/doc/html/MyModule/ModuleA.html файл не существует.

Как создать ссылку на документацию для ModuleA вместо этого, как module-A-package/docs/ModuleA.html#v:external_function, Другими словами, нечто похожее на то, что http://hackage.haskell.org/package/text-0.11.2.0/docs/Data-Text.html имеет для своих ссылок на String тип (они ссылаются на http://hackage.haskell.org/package/base-4.5.0.0/docs/Data-String.html)? Имейте в виду, что я не могу изменить import заявление.

Спасибо.

1 ответ

Чтобы сделать ссылки на внешние пакеты в документации Haddock, вам нужно указать, где найти документацию для этих пакетов.

Это делается с помощью --read-interface Опция командной строки пикши.

Используя ваш пример, это будет:

haddock --read-interface module-A-package/docs/,module-A-package/docs/module-A-package.haddock

Файл .haddock создается при создании документации для пакета module-A-package с использованием ----dump-interface Опция командной строки пикши.

Дополнительную информацию можно найти в документации Haddock или на этой странице HaskellWiki.

Другие вопросы по тегам