Пикша - ссылка на функцию во внешнем модуле (весь модуль импортирован)
Предположим, у меня есть модуль на 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.