Questa domanda riguarda l'utilizzo di ASDoc per creare documentazione da AS3. Non sto facendo questo da Flex o altro, semplicemente usando la riga di comando, e anche se tutto funziona correttamente e ASDoc non restituisce errori, alcuni dei collegamenti nella documentazione risultante sono interrotti.Correggere i percorsi danneggiati in ASDoc?
In particolare, in tutti i punti in cui sono presenti collegamenti a proprietà o metodi in altre parti della documentazione (incluso nella stessa classe), il collegamento termina raddoppiando la cartella corrispondente al pacchetto.
Ad esempio, dire che sto documentando myPackage.MyClass
. Se MyClass
ha una proprietà chiamata MyProperty
, e da qualche parte nei miei documenti includo una linea come questa:
@see #MyProperty
poi i documenti vengono analizzati correttamente e la "Consulta anche:" collegamento viene correttamente creato, ma finisce di puntamento a
.../output_directory/myPackage/myPackage/MyClass.html#MyProperty
dove ovviamente, nel file system attuale v'è un solo myPackage
cartella.
La parte rilevante del mio comando ASDoc assomiglia a questo:
asdoc
-source-path .
-doc-sources myPackage
-output D:\dev\repository\docs\myPackage_docs
-external-library-path "C:\Progra~1\Adobe\flex_sdk_3\frameworks\libs\player\10\playerglobal.swc"
Perchè sono forse manca qualche argomento ASDoc che specificare l'URL di base per i collegamenti, o qualcosa del genere? Se questo fosse un errore, sarebbe evidente a molti, ma non riesco a trovare alcun risultato su Google per il problema, quindi la mia ipotesi di lavoro è che non succede alle persone che eseguono ASDoc da Flex, forse a causa di qualche impostazione I Ho omesso.
Grazie per qualsiasi aiuto!
Su suggerimento di TypeOneError, ho provato diversi tipi di collegamenti @see. Ho scoperto che questi funzionano bene:
@see some.package
@see ClassName
@see ClassName#property
mentre questi non funzionano:
@see #property
@see full.package.ClassName
@see full.package.ClassName#property
Che cosa è un po 'peggio è, anche se tutti i link di navigazione funzionano, lo stesso percorso raddoppiato avviene nei collegamenti di tipo generate automaticamente. Ad esempio, dove mostra la firma di ogni metodo, quando il metodo restituisce una classe presente nella documentazione, quel collegamento è interrotto.
Ho anche dato un'occhiata all'HTML e ho scoperto che il problema non sembra essere relativo all'URL di base della pagina o altro, sono solo collegamenti incoerenti. Quindi in una fila di link consecutivi @see
, alcuni di essi si collegano a ClassName.html
e alcuni link a package/ClassName.html
, secondo le regole mostrate sopra. Tutto questo, a proposito, è vero indipendentemente dal fatto che le pagine siano visualizzate in frame o meno.
Ulteriori informazioni se capisco qualcosa, ma le idee per soluzioni alternative sono i benvenuti.
Aggiornamento: qualche dettaglio in più: io non sono sicuro della mia versione esatta SDK, tranne che accompagnava Flex 3, ma se corro ASDoc senza argomenti, esso segnala: Adobe ASDoc Version 3.3.0 build 4852
. Sto eseguendo tutto questo su Windows XP, da un file batch inserito nella directory classpath.
soluzione parziale: tutti, ma uno dei miei problemi sono stati risolti con l'aggiornamento alla versione 4.0.0.7219 beta del SDK di Flex 4 (e utilizzando l'ASDoc ivi distribuito). Ora, tutti i miei tag @see
funzionano come previsto. L'unico problema rimanente è che, ovunque disponga di un metodo che restituisce una classe che fa parte della mia documentazione, ASDoc semplicemente altera il collegamento. Ad esempio, se ho un metodo la cui firma è ClassA#getB():ClassB
, quindi dove è mostrato nei documenti, il testo "ClassB" si collega a "packageName: ClassB.html" anziché a "packageName/ClassB.html". Questo sembrerebbe essere un bug semplice. Bleh.
Hmm, ha fatto la differenza ... aggiornerò con i risultati. – fenomas
Aggiunto un test, FYI – typeoneerror
Grazie MOLTO per l'accoppiamento, questo sembra risolvibile. Sto chiamando ASDoc in modo simile a te - tengo il file batch nella mia directory classpath, allo stesso livello del mio pacchetto più in alto ("com" nel tuo esempio). Aggiungerò alcuni dettagli sulla versione alla mia domanda. Non stai usando FlexBuilder o Eclipse per eseguire ASDoc, giusto? – fenomas