2014-07-01 4 views
7

Stavo cercando di servire un file go locale specifico come pagina web di documentazione, ma non ero in grado di farlo.In che modo si server una semplice documentazione per i programmi go che utilizzano Godoc come pagina Web?

Il official godoc documentation dice:

Con la bandiera -http (vale a dire il comando GODOC), viene eseguito come un server web e presenta la documentazione come una pagina web.

user_me$ godoc -http=:6060 

Questo fa creare qualcosa di simile come pagina go, ma non rende il file specifico che voglio per il rendering. Così ho provato a condizione che il nome del file che volevo:

user_me$ godoc -http=:6000 hello.go 

Tuttavia, semplicemente risponde con:

usage: godoc package [name ...] 
    godoc -http=:6060 
    -ex=false: show examples in command line mode 
    -goroot="/usr/local/go": Go root directory 
    -html=false: print HTML in command-line mode 
    -http="": HTTP service address (e.g., ':6060') 
    -httptest.serve="": if non-empty, httptest.NewServer serves on this address and blocks 
    -index=false: enable search index 
    -index_files="": glob pattern specifying index files;if not empty, the index is read from these files in sorted order 
    -index_throttle=0.75: index throttle value; 0.0 = no time allocated, 1.0 = full throttle 
    -links=true: link identifiers to their declarations 
    -maxresults=10000: maximum number of full text search results shown 
    -notes="BUG": regular expression matching note markers to show 
    -play=false: enable playground in web interface 
    -q=false: arguments are considered search queries 
    -server="": webserver address for command line searches 
    -src=false: print (exported) source in command-line mode 
    -tabwidth=4: tab width 
    -templates="": directory containing alternate template files 
    -timestamps=false: show timestamps with directory listings 
    -url="": print HTML for named URL 
    -v=false: verbose mode 
    -write_index=false: write index to a file; the file name must be specified with -index_files 
    -zip="": zip file providing the file system to serve; disabled if empty 

Ho anche provato:

user_me$ godoc -url="localhost:8080" hello.go 

, ma non ha funzionato .

Ho anche provato:

godoc -server=localhost:8080 hello.go 

ma ha risposto con:

2014/07/01 10:45:56 open /usr/local/go/src/pkg/hello.go: no such file or directory 

Ho anche provato appena generare html cosa stessa:

godoc -html hello.go > hello.html 

stesso errore come sopra.

Ho anche provato (dal momento che si lamentava che non vi era alcun file nella directory pkg):

godoc -html -goroo=$GOPATH hello.go > hello.html 

Alla fine, ho rinunciato. Non so come funzioni questa cosa Godoc. Ho installato il programma hello.go in modo che ci fosse qualcosa nel file pkg nello spazio di lavoro. Come si genera una pagina Web con la documentazione del proprio codice?

risposta

7

godoc funziona su nome pacchetto e tipo, non nome file.

Ad esempio, per conoscere io/ioutil pacchetto:

  • output testuale: godoc io/ioutil

  • solo la funzione ReadAll: godoc io/ioutil ReadAll

  • in HTML: godoc -html io/ioutil ReadAll

  • in il br owser:

    • godoc -http=:6060
    • su Packages e navigare da lì
    • o andare direttamente alla http://localhost:6060/pkg/io/ioutil#ReadAll

Per visualizzare la documentazione per il proprio codice, deve essere incluso nella vostra GOPATH.

Supponiamo che il vostro GOPATH include $HOME/go/src, e il file che ci interessa è $HOME/go/src/hey/world/doc.go, si dovrebbe eseguire:

godoc hey/world 

... o avviare GODOC in modalità HTTP e selezionare http://localhost:6060/pkg/hey/world

+0

quando ho fatto Godoc 'hey/world' ho ottenuto solo' COMMAND DOCUMENTATION' e questo è tutto, nient'altro.Quando dici start Godoc e vado in quella pagina, vedo il nome del repository, tuttavia, non mostra la documentazione per il mio unico programma hello.go. Perché? – Pinocchio

+0

devo eseguire di nuovo l'installazione o qualcosa del genere? Anche se non funzionava davvero ... – Pinocchio

+3

Hai dimenticato di menzionare: godoc funziona in modo diverso se l'obiettivo è un eseguibile (ad esempio "pacchetto principale"); in tal caso mostra solo il commento a livello di pacchetto. Per un esempio, vedi anche http://golang.org/src/cmd/gofmt/doc.go – lnmx

-4

Si può usa semplicemente qualcosa come: godoc -http=:6060 -path="/path/to/your-code" dove /path/to/your-code contiene i tuoi pacchi.

Da lì, andare a http://localhost:6060/pkg/your-code per sfogliare i pacchetti

+0

'flag fornito ma non definito: -path' –

+0

it mi sembra che sia abbastanza chiaramente descritto però ... – acros

-1

Per impostazione predefinita, godoc guarda i pacchetti che trova tramite $ GOROOT e $ GOPATH. Quindi, dato che il pacchetto è in Go lavoro cioè in GOPATH, è possibile eseguire

godoc fmt

che stampa la documentazione per il pacchetto fmt.

Se si desidera generare documenti per il pacchetto foo che è in $GOPATH/src/github.com/abcd/foo luogo, è necessario eseguire

godoc github.com/abcd/foo

Con la bandiera -http, GODOC viene eseguito come un server web e presenta la documentazione come web pagina.

godoc -http=:6060

Ora passare alla http://localhost:6060/pkg/github.com/abcd/foo nel browser per trovare della documentazione come pagina web.

Il flag -play può essere utilizzato per abilitare il campo da gioco nell'interfaccia web.

Problemi correlati