Ho usato Asciidoc per anni. Ho creato un manuale di 400 pagine che fornisce istruzioni passo passo su praticamente tutto ciò che fa il mio programma (lo fa molto ma le schermate catturate tendono ad espandere il conteggio delle pagine). Fondamentalmente si crea la documentazione in un semplice markup di testo che è abbastanza facile da ottenere. I grandi vantaggi del markup in testo semplice sono che può essere facilmente aggiunto al repository di controllo della versione in modo che ogni versione del manuale corrisponda alla versione del software. È anche più semplice per gli altri sviluppatori aggiungere documentazione sulle nuove funzionalità e correzioni di errori. Inoltre, è possibile creare più formati di output (pdf, chm, html, xml, testo normale, ecc.) Da un set di file sorgente.
Ho anche scoperto che puoi facilmente compilare pezzi più piccoli del manuale. Ad esempio, ho una sezione che descrive in dettaglio le modifiche e le correzioni dei bug per ogni versione che ho rilasciato. Avevo un cliente che chiedeva di vederlo prima dell'acquisto ed era abbastanza semplice scrivere un piccolo file di configurazione che puntava alle sezioni appropriate e quindi generare un pdf delle sole note di rilascio (insieme a una bella pagina di copertina, un sommario, una pagina numero, ecc.). Ciò mi ha anche risparmiato un bel po 'di lavoro quando anche la direzione me lo ha chiesto - non c'è niente come mostrare loro molte pagine di lavoro effettivo.
L'unico problema che ho è che è un po 'difficile da girare su Windows perché devi usare cygwin per renderlo lavoro. C'è anche Sphinx , sul lato python che usa il testo ristrutturato come linguaggio di markup e può fare più o meno la stessa cosa. Sto pensando di provarlo su un altro progetto software con cui sono coinvolto. Il motivo, spero che sarà un processo di installazione più semplice su Windows.