Как связать сторонние документы по Racket в Scribble? - PullRequest
1 голос
/ 13 марта 2020

Я пытаюсь создать ссылку на документы Scribble, предоставленные сторонней (в отличие от базовой) библиотекой (в частности, data / collection ), но у меня возникают проблемы с ее работой.

С этим импортом:

@require[scribble/manual
         scribble-abbrevs/manual
         scribble/example
         racket/sandbox
         @for-label[(only-in racket
                             (foldl f:foldl)
                             (foldr f:foldr))
                    (only-in data/collection
                             (foldl d:foldl)]]

Работает следующая ссылка на встроенные документы Racket:

@racketlink[f:foldl "foldl"]

Но эта версия data/collection:

@racketlink[d:foldl "foldl"]

... приводит к следующей ошибке:

raco setup: WARNING: undefined tag in <pkgs>/relation/scribblings/relation.scrbl:
raco setup:  (undef "--UNDEFINED:d:foldl--")
raco setup:  ((lib "data/collection.rkt") foldl)

Я также пытался использовать тег @tech, что-то вроде:

@tech[#:doc '(lib "scribblings/data/collection/collections.scrbl")]{"foldl"}

Я попробовал несколько вариантов этого и не смог заставить его работать - одна вещь, которую я не мог раскрыть при сканировании документации, например здесь , была, как lib ссылка работает - на что конкретно указывает путь? Очевидно, "scribblings" относится не к локальной папке scribblings, а к какому-то глобальному пути к документации. Но как узнать, какой путь использовать для документации конкретной библиотеки? Возможно, это скорее второстепенный вопрос к первичному, который задают выше, но любой свет, который вы можете здесь пролить, был бы полезен.

1 Ответ

1 голос
/ 15 марта 2020

Проблема в том, что вы устанавливаете только collections-lib. Это не включает его документацию, которая живет в collections-doc.

Так что либо установите пакет collections-doc, либо (мета) пакет collections, который будет включать в себя collections-lib и collections-doc. Затем запустите raco setup relation, чтобы заново обработать документацию. Этого будет достаточно для ваших собственных сборок.

Возможно, вам также следует изменить info.rkt, чтобы другие люди, устанавливающие ваш пакет, загружали нужные зависимости. Есть несколько способов настроить это.

  • Простой способ - ввести collections в deps, что потребует от пользователей установки метапакета collections, следовательно, и collections-lib, и collections-doc.
  • Более сложный способ - collections-lib в deps (вы уже сделали это) и collections-doc в build-deps. Преимущество этого подхода состоит в том, что пользователям не нужно загружать все инструменты, необходимые для построения документации, если они устанавливают ваш пакет как бинарный пакет (который уже выполняет предварительную визуализацию документации).
...