Просмотр документации пакета локально в браузере

Я хочу локально посмотреть, как будет выглядеть документация моего пакета. То есть я хочу видеть то же самое, что вы видите на godoc.org, но локально.

У меня есть простая папка примера локально, но я не могу заставить ее работать. Он корректно выводит текстовую документацию:

~/code/go/gonotes (master) $ godoc .
PACKAGE DOCUMENTATION

package gonotes
    import "."


FUNCTIONS

func Blah()
    Here is header

    Blah is function being use to test:

    - go documentation
    - blah like things

    It is nice

Но если я запущу godoc -http=:6060 и перейду к http://localhost:6060/, я увижу практически тот же контент, что и на домашней странице golang.com. http://localhost:6060/gonotes дисплеи

lstat $GOROOT/gonotes: no such file or directory

Я неправильно понимаю, как работает -http? Есть ли способ локально просмотреть http-версию моих документов?

Обновлено

Я смог заставить его появиться, скопировав файлы в src/gonotes и запустив:

GOPATH=/Users/jonah/code/go/gonotes godoc -http=:6060

чтобы актуальные файлы были доступны по адресу /Users/jonah/code/go/gonotes/src/gonotes.

Побочным эффектом этого является не отображение каких-либо библиотек третьей части, установленных по умолчанию GOPATH, поэтому я все же хотел бы найти решение, которое просто позволяет мне добавить текущий каталог, как есть, без добавления src/curdir к нему, и все равно появится.

godoc -http будет обслуживать документы всех доступных пакетов, включая стандартную библиотеку. Не беспокойтесь, среди них есть и ваши пакеты, просто посмотрите еще раз. В качестве ярлыка просто введите http://localhost:6060/pkg/your/package.
icza 27.05.2019 23:30

@icza Спасибо. Я попробовал http://localhost:6060/pkg/gonotes и получил cannot find package "." in: /src/gonotes. Нужно ли помещать мои исходные файлы под src? В настоящее время они просто находятся в папке gonotes, как вы можете видеть из сеанса терминала, который я включил в ОП.

Jonah 28.05.2019 00:44

Чтобы это сработало, ваш gonotes пакет должен быть внутри GOPATH/src/gonotes.

icza 28.05.2019 09:24

Вы не можете просто поместить свой код Go в произвольные папки. Вы должны следовать соглашению GOPATH, подробнее см. Как написать код Go.

icza 28.05.2019 11:36

@icza разве не в этом весь смысл использования модулей go? так ты не привязан к GOPATH?

Jonah 28.05.2019 13:36

Не весь смысл, но да, если вы используете модули, вам не нужно использовать GOPATH (хотя раньше вы не упоминали модули). Но тогда зачем вы ставите GOPATH? GOPATH и модули взаимоисключающий, см. Go Modules не распознает файлы в GOPATH. Инструмент godoc не поддерживает модули, и он устарел, поэтому на данный момент, если вы хотите видеть свои документы пакета локально в godoc, вам нужно прибегнуть к размещению их исходных кодов в папке src.

icza 28.05.2019 14:04

Этот комментарий - ответ на мой вопрос. Не стесняйтесь добавлять в качестве правильного ответа.

Jonah 28.05.2019 14:15
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
3
7
2 157
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В режиме GOPATH

godoc -http будет обслуживать документы всех доступных пакетов, включая стандартную библиотеку. Не беспокойтесь, среди них есть и ваши пакеты, просто посмотрите еще раз. В качестве ярлыка просто введите http://localhost:6060/pkg/your/package.

В режиме с поддержкой модулей

GOPATH и модули взаимоисключающий, см. Go Modules не распознает файлы в GOPATH. Инструмент godoc не поддерживает модули, и он устарел (см. предупреждение об устаревании), поэтому на данный момент, если вы хотите видеть свои пакетные документы модулей локально в godoc, вам нужно прибегнуть к размещению их исходных кодов в папке src.

«Обходной путь» для просмотра документов модулей:

  • Поместите репо в папку, например /some/folder/src

  • Начать годоки с godoc -goroot=/some/folder -http=:6060

См. соответствующую проблему: поддержка модулей Go

Также групповое обсуждение: Является ли инструмент godoc версии 1.11 «модульным»?

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