Nel modulo B
ho la documentazione con un collegamento 'A.foo'
, collegamento al membro foo
del modulo A
. Nel modulo A
importare il modulo B
. Haddock lo rende come un collegamento a A.html#t:foo
, che punta al tipofoo
(che non esiste) non alla funzione foo
, che è a A.html#v:foo
.Collegamento eglefino alle funzioni nei moduli non importati
- Perché l'eglefino collega a
t:
per le variabili che iniziano con una lettera minuscola? È un bug? Per'A.Foo'
posso vedere che potrebbe essere un tipo o un costruttore, quindi ci sono problemi di namespacing. Perfoo
sembra che una variabile sia almeno la più plausibile. - C'è un modo per simulare un collegamento? Sto scrivendo questo in esempi di codice, quindi ho bisogno di renderlo come
foo
. Ho provato le ancore, ma esse rappresentano il nome del modulo e per i collegamenti ipertestuali diretti non si ha il controllo sul testo visualizzato. - Ho considerato un post processore (sostituendo
t:[a-z]
conv:
), ma ciò richiede un Setup.hs personalizzato che causa problemi ed è piuttosto brutto. - Impossibile trovare i flag della riga di comando di Haddock per ottenere un comportamento più ragionevole, ad esempio specificando che
foo
è una variabile. - Non riesco ad aggiungere un'importazione di
A
aB
senza introdurre le importazioni circolari, che è vile aggiungerlo solo per la documentazione.
Sto riscontrando questo problema nello Shake documentation, dove ad esempio removeFilesAfter
non ottiene il collegamento corretto.
analisi molto belle, ogni possibilità di inviare una patch upstream? –
So solo * come * il codice funziona in questo modo, non * perché *, potrebbe esserci una buona ragione per questo. Ma suppongo che tu possa aprire una segnalazione di bug e indirizzarla qui in modo che sappiano a quale parte del loro codice hanno bisogno di pensare. –
Ho pile di bug di Haddock aperti (almeno 6 dal mio conteggio) che non hanno mai avuto alcuna risposta - sembra che a loro non importi ... –