Fondo
Buscando unificar la documentación técnica, uniendo el contenido generado por la computadora y el usuario, utilizando herramientas de código abierto. El objetivo es escribir (o generar) contenido en un formato de archivo independiente de salida, que luego se transforma en un documento final. La siguiente figura ayuda a ilustrar cómo se conectan las piezas en general.
![Arquitectura de la documentación](https://i.stack.imgur.com/JhXEW.png)
La solución debería ser independiente del sistema operativo.
Funciones de salida
El documento final debe incluir:
- Mesas
- Cifras
- Fragmentos de código
- Títulos numerados automáticamente (para tablas, figuras y fragmentos de código)
- Referencias cruzadas (con hipervínculos a tablas, figuras y citas bibliográficas)
- Títulos (hasta siete niveles; 1., 1.1., ..., 1.1.1.1.1.1.1.)
- Apéndices (hasta siete niveles; A., A.1, ..., A.1.1.1.1.1.1.)
- Encabezados y apéndices numerados automáticamente
- Índice (con hipervínculos)
- Lista de tablas (con hipervínculos)
- Lista de figuras (con hipervínculos)
- Bibliografía (libros, artículos, revistas, libros blancos, sitios web [con hipervínculos])
- Variedad de formatos (APA, Chicago, IEEE, etc.)
Lo que es más importante, la estilización (a través de plantillas o codificación) debe ser posible para que toda la documentación pueda volver a generarse con una nueva apariencia. ConTeXt , por ejemplo, sobresale en esto.
Markdown y Pandoc ofrecen gran parte de esta funcionalidad, aunque no estoy seguro de si maneja referencias cruzadas, subtítulos automáticos, bibliografías y fragmentos de código.
Funciones de entrada
- Variables entre documentos (p. ej., un nombre de servidor se documenta una vez, pero se hace referencia a la arquitectura de la aplicación y las especificaciones de los requisitos del software).
- Editor WYSIWYG basado en navegador (posiblemente Confluence)
- editor de tablas
- Transclusión (extractos incrustados para ayudar al contenido de una sola fuente)
- Colaborativo (idealmente, en tiempo real)
- Revisiones
- Markdown (capacidad de ver la fuente, pero se usa predominantemente como un procesador de textos moderno)
- El contenido generado por computadora se transforma en formato Markdown:
- Documentación del código fuente (descripciones de los paquetes, no se necesita contenido con hipervínculos); Javadocs, Doxygen, etc.
- SNMP (nombres y direcciones IP de dispositivos de red)
- Diagramas (entidad-relaciones, UML, GraphViz, etc.)
- Idealmente, se podrían importar imágenes JPG, PNG y SVG
- Lista de descripciones y claves sustitutas de la base de datos (descargadas de la base de datos)
Preguntas
¿Es posible generar un documento técnico de alta calidad que incluya una variedad tan amplia de artefactos utilizando solo Markdown como contenido de origen?
Aquí están las piezas sobre las que agradecería recomendaciones o sugerencias:
- Incluido el código fuente (p. ej., Javadoc/Doxygen -> Markdown)
- Posibilidad de reformatear varias salidas de comandos *nix a Markdown (
nmap
, traceroute
, ls
, tree
, df
, salida SNMP, etc.); la traducción podría modificarse usando awk
y sed
, por ejemplo.
- Editor WYSIWYG ( alternativas de FOSS a Confluence)
- FOSS que puede manejar la agitación de las características de salida de la fuente de Markdown en los formatos de salida deseados (PDF definitivamente y MS Word opcionalmente).
- Si Pandoc/ConTeXt no puede lograr esta hazaña, ¿qué puede hacerlo?
- ¿Software y/o formatos de datos (p. ej., Markdown, YAML) para integrar bibliografías y referencias cruzadas de modo que el generador de documentos (p. ej., ConTeXt) pueda utilizarlos (p. ej., RStudio ) ?
Si existe un único paquete de software que reúna todas estas funciones, también me gustaría saberlo.
Relacionado
Las preguntas relacionadas incluyen:
Software
Especificaciones
david jarvis
david jarvis
steve barnes