Фон
Стремление к унификации технической документации, объединению компьютерного и пользовательского контента с использованием инструментов с открытым исходным кодом. Цель состоит в том, чтобы написать (или сгенерировать) контент в выходном независимом формате файла, который затем преобразуется в окончательный документ. Рисунок ниже помогает проиллюстрировать, как соединяются общие части.
Решение должно быть независимым от операционной системы.
Выходные характеристики
Итоговый документ должен включать:
- Столы
- Цифры
- Фрагменты кода
- Подписи с автоматической нумерацией (для таблиц, рисунков и фрагментов кода)
- Перекрестные ссылки (гиперссылки на таблицы, рисунки и библиографические ссылки)
- Заголовки (до семи уровней; 1., 1.1., ..., 1.1.1.1.1.1.1.)
- Приложения (до семи уровней; А., А.1, ..., А.1.1.1.1.1.1.)
- Автонумерация заголовков и приложений
- Содержание (с гиперссылкой)
- Список таблиц (с гиперссылкой)
- Список рисунков (гиперссылка)
- Библиография (книги, статьи, журналы, технические документы, веб-сайты [с гиперссылками])
- Разнообразие форматов (APA, Chicago, IEEE и т. д.)
Самое главное, должна быть возможна стилизация (с помощью шаблонов или кодирования), чтобы всю документацию можно было воссоздать заново с новым внешним видом. ConTeXt , например, отлично справляется с этим.
Markdown и Pandoc предлагают большую часть этой функциональности, хотя я не уверен, что они поддерживают перекрестные ссылки, автозаголовки, библиографии и фрагменты кода.
Входные функции
- Междокументные переменные (например, имя сервера документируется один раз, но на него ссылаются архитектура приложений и спецификации требований к программному обеспечению).
- Браузерный редактор WYSIWYG (возможно, Confluence)
- Редактор таблиц
- Включение (встроенные выдержки, чтобы помочь с контентом из одного источника)
- Совместная (в идеале, в режиме реального времени)
- Редакции
- Markdown (возможность просмотра исходного кода, но преимущественно используется как современный текстовый процессор)
- Компьютерный контент преобразуется в формат Markdown:
- Документация по исходному коду (описания пакетов, гиперссылки не требуются); Javadocs, Doxygen и т. д.
- SNMP (имена и IP-адреса сетевых устройств)
- Диаграммы (сущности-отношения, UML, GraphViz и т. д.)
- В идеале можно было бы импортировать изображения JPG, PNG и SVG.
- Список суррогатных ключей и описаний базы данных (выгружен из базы данных)
Вопросы
Возможно ли вообще создать высококачественный технический документ, включающий такое большое разнообразие артефактов, используя только Markdown в качестве исходного контента?
Вот части, по которым я был бы признателен за рекомендации или предложения:
- Включая исходный код (например, Javadoc/Doxygen -> Markdown)
- Возможность переформатировать различные выходные данные команд *nix в Markdown (
nmap
, traceroute
, ls
, tree
, df
, вывод SNMP и т. д.); перевод можно массировать с помощью awk
и sed
, например.
- Редактор WYSIWYG ( альтернативы FOSS для Confluence)
- FOSS, который может обрабатывать выходные функции из исходного кода Markdown в желаемые выходные форматы (PDF обязательно и MS Word необязательно).
- Если Pandoc/ConTeXt не может совершить этот подвиг, то что может?
- Программное обеспечение и/или форматы данных (например, Markdown, YAML) для интеграции библиографий и перекрестных ссылок, чтобы генератор документов (например, ConTeXt) мог их использовать (например, RStudio ) ?
Если есть единый программный пакет, объединяющий все эти функции, я бы тоже хотел об этом узнать.
Связанный
Связанные вопросы включают:
Программного обеспечения
Характеристики
Дэйв Джарвис
Дэйв Джарвис
Стив Барнс