Как создать централизованное хранилище документации кода с возможностью поиска с использованием DocFx
Я хочу создать центральное хранилище для всей нашей опубликованной документации по API с использованием DocFx. У меня есть документация, автоматически сгенерированная с помощью моей сборки (с использованием TFS) и опубликованная с помощью моей версии (с использованием Octopus), которая отлично подходит для нескольких отдельных сайтов. Тем не менее, я хочу вытащить его в одном месте. Смысл в том, что через родительский сайт вы можете фильтровать контент на любом из отдельных сайтов без необходимости углубляться в них. У вас есть рекомендации, как это сделать?
Кроме того, в этом же хранилище документации я хочу предоставить возможность поиска по всем метаданным (документация уровня проекта) по сотням проектов в нашем портфеле. Это даст нашим командам BA, DEV и QA более легкий доступ к тому, что делают все наши системы. Мне нравится возможность "фильтрации", встроенная в DocFx, но мне нужен полнотекстовый поиск по всем метаданным. Есть ли у вас рекомендации для этой функции?
2 ответа
Чтобы изменить расположение вывода docfx, отредактируйте docfx.json
файл и укажите dest
значение. По умолчанию это "dest": "_site"
, Дополнительные инструкции по форматированию см. По https://dotnet.github.io/docfx/tutorial/docfx.exe_user_manual.html.
Что касается полнотекстового поиска, это возможно, просто обеспечив ExtractSearchIndex
постпроцессор вызывается (для того, чтобы генерировать index.json
файл ключевых слов) и что глобальный _enableSearch
значение установлено в true
в docfx.json
файл. Фрагмент из этого файла будет выглядеть так:
"postProcessors": [ "ExtractSearchIndex" ],
"globalMetadata": {
"_enableSearch": "true"
}
Для вашего первого вопроса:
Я думаю, что вы ожидаете, как браузер.NET API. Исходный код этой страницы не является общедоступным, поэтому вам нужно создать эту страницу самостоятельно, собрав xrefmap.yml с нескольких сайтов и извлекая необходимые данные на эту страницу.
На ваш второй вопрос:
DocFX использует Luna для сканирования всех выходных файлов и создания индексного файла с именем index.json
для последующего использования в поиске. В вашем случае вам следует ограничить область поиска только метаданными, которые вы определили. Это также не поддерживается DocFX по умолчанию. Вы также можете использовать Луну в вашем центральном месте для поиска этих мета. Вы можете создать свой конкретный index.json
для каждого проекта в первую очередь, и центральное место, чтобы собрать их для страницы поиска.