Как вставлять изображения в документацию Haddock

Как встроить изображения в локальную документацию Haddock?

Я вижу, например, что пакет lens просто использует внешние ссылки на изображения, но я хотел бы хранить изображения локально.

(Этот вопрос очень похож на вопрос (без ответа) о список рассылки).


person amindfv    schedule 24.12.2012    source источник


Ответы (3)


Если вы хотите сохранить свое изображение локально, вы можете:

-- A longer description of the package.
description: Some haskell package description.

    <<file:///home/user/your_image.png>>

Результат:

Введите здесь описание изображения

Если вы не хотите или не можете добавлять изображение по относительному пути, просто укажите имя изображения без полного пути:

<<your_image.png>>

В этом случае ваше изображение должно находиться в каталоге project/docs.

person 0xAX    schedule 26.12.2012
comment
Я не могу найти способ взломать это, чтобы получить относительный путь, так что это хрупко, потому что предполагает каталог, в котором документация будет использоваться на пользовательском диске. Верно? - person amindfv; 27.12.2012
comment
Да, ты прав. Если вы не можете получить относительный путь к своим изображениям, вы также можете добавить только <<Haskell-Logo-Variation.png>>, а изображение Haskell-Logo-Variation.png должно находиться в каталоге документации проекта. - person 0xAX; 27.12.2012
comment
Идеально! Это именно то, что я искал. Можете ли вы добавить это к своему ответу? Также обратите внимание, что если ваше изображение находится, например, в. docs/images/, вы можете сослаться на него с помощью <<images/some_img.jpg>> - person amindfv; 27.12.2012
comment
Кто-нибудь разобрался, как подключиться к кабале, чтобы автоматически копировать картинку в каталог документации? - person lpsmith; 28.12.2012
comment
@lpsmith: если у вас уже есть каталог документов с изображениями в нем, cabal-install следует просто поместить документацию с изображениями. - person amindfv; 28.12.2012
comment
(По крайней мере, для документации в каталоге пакета) - person amindfv; 29.12.2012

Как объяснялось в той ветке списка рассылки, на которую вы ссылаетесь, одним из вариантов является использование URL-адреса данных для встроенных изображений в вашу документацию. Это делает сам источник несколько неприятным для чтения (поскольку он перемежается большими блоками данных в кодировке base64), хотя и используется именованные фрагменты могут помочь, поместив все изображения в именованные фрагменты в конце файла. Реальный пример этого подхода см. в Документация Haddock для пакета round-packing.

person Brent Yorgey    schedule 26.12.2012
comment
Странно, что он не должен позволять вам ссылаться на файлы данных в вашем пакете Cabal. о_о - person Christopher Done; 26.12.2012
comment
Я не думаю, что Хэддок знает что-нибудь о Cabal или даже о ghc-pkg, не так ли? - person Dag; 26.12.2012
comment
Трюк с URL-адресом данных довольно изящный. Это может исправить проблемы с производительностью, которые мы получаем из вики в lens. (Мы изменили ссылки в файле lens.cabal, чтобы они указывали на imgur, потому что у него нет проблем с отключением кеша.) - person Edward KMETT; 27.12.2012
comment
Интересно, что если вы попытаетесь сделать изображение, которое намного больше, чем изображение из пакета circle-packing, пикша умрет с переполнением стека. знак равно - person Edward KMETT; 27.12.2012

Как поясняется в сообщении в блоге Яна Росса. вы можете использовать опцию extra-doc-files для объединения дополнительных файлов в документацию.

person phadej    schedule 10.05.2014