Инструмент создания справки с поддержкой MS Word и С# xmldoc

Я ищу инструмент для создания справки/документации, который бы удовлетворял таким требованиям:

  • он должен поддерживать комментарий xmldoc, созданный компилятором С# или (даже лучше), напрямую поддерживает sandcastle
  • он должен поддерживать импорт документов MS Word.
  • он должен поддерживать создание ссылок из концептуальной документации в справочную документацию, подготовленную из исходного кода.
  • было бы неплохо, если бы оно поддерживало концептуальное создание документа в MS Word

Подробнее. Мой проект - это платформа/библиотека для .NET. Он имеет несколько решений VS с полностью более чем 50 проектами на С#. Прежде всего, я хочу сгенерировать помощь (chm и help2 и help3 в будущем) из исходного кода моих проектов. Я буду ссылаться на эту документацию как "справочный документ". Sandcastle (особенно с использованием SCFB) может сделать это очень красиво. Но (я думаю, это очень распространенная ситуация). У меня есть дополнительная документация для рамки/библиотеки. Эта документация находится в файлах MS Word (5-10 файлов). Я буду ссылаться на эту документацию как на "концептуальный документ". Я хочу создать прочную справочную систему с концептуальным документом и справочным документом (например, MSDN). И я хочу, чтобы в концептуальной части справки содержались ссылки (URL), которые ссылаются на справочную часть справки для каждого имени типа .NET из фреймворка/библиотеки. (Очевидно, что любая справочная система - это просто HTML).

Проблема заключается в том, как создавать эти ссылки. Файлы MS Word ничего не знают о С# xmldoc. Sandcastle не поддерживает файлы Word. Поэтому я должен взять инструмент создания справки (HAT). К моменту, когда я не могу найти подходящего инструмента для меня. И я был бы очень признателен за любую помощь!

Камнем преткновения для всего инструмента является автоматическое создание ссылок. Я бы хотел, чтобы ссылки создавались автоматически, и они не могли генерировать (что может иметь место на сервере сборки). Почему автоматически? Потому что это позволяет легко переименовывать типы. Для примера. У меня есть текст в концептуальном документе: "для доступа к контексту обработки запроса используйте статическое свойство Current of XOperationContext type". Здесь XOperationContext - это имя типа. Я бы хотел, чтобы это стало ссылкой (URL) для спецификации класса XOperationContext в системе справки результатов без каких-либо значительных усилий. Я хотел бы отметить его в Word (возможно, с установленным плагином HAT) или в редакторе HAT, как-то вроде "сделайте эту ссылку слова, если это возможно". Во время генерации каждое такое слово станет ссылкой, если есть имя типа с таким именем.

Я знаю об этих инструментах:

Doc-o-Matic поддерживает ссылки на автовосстановление. Поистине автоматически. Он пытается создать ссылку для каждого слова в PascalCase - блестяще. Но он не поддерживает MS Word. Программное обеспечение Innovasys и ComponentOne не поддерживают создание ссылок автоматически. Программное обеспечение Innovasys не поддерживает MS Word (я не уверен на 100% об этом).

Я попытался спросить на форумах Innovasys и ComponentOne. Пока не повезло. Сценарий сочной поддержки Innovasys, такой как мой: создание концептуального документа в отдельном инструменте - HelpStudio и генерация справки из исходного кода с помощью другого инструмента - DocumentX. Но нет возможности автоматически создавать ссылки и импортировать файлы MS Word.

Итак, поделитесь своим опытом для этой общей задачи (я уверен, что это должно быть распространено).

p.s. пожалуйста, дайте мне знать, если мне не удалось правильно объяснить мои мысли с точки зрения грамматики английского языка, я попробую еще один.

Ответ 1

Как экспортировать файлы MS Word в HTML и затем слить их в HTML для файлов справки? Это вариант? Там может быть некоторая потеря форматирования, но это может позволить вам интегрировать все немного лучше.

Ответ 2

Sandcastle - это с открытым исходным кодом, так почему бы вам не изобретать что-то самостоятельно? Написать инструмент автоматизации офиса не так уж и тяжелый. И вы даже можете создать бизнес на этом инструменте.

Ответ 3

Я предлагаю начать с SandCastle, а затем обработать один из форматов выходных файлов для создания документов Word. Создание документов Word Word 2007 (*.docx) с нуля не так уж сложно, как только вы хорошо понимаете, как вещи упаковываются. Брайан Джонс имеет отличный блог на Open XML SDK, который обеспечивает поддержку работы с документами Office из .NET.

И вы всегда можете решить начать с существующего документа Word, а затем заменить заполнители собственным текстом, если создание полного пакета кажется слишком сложным или слишком большим для того, что вы пытаетесь выполнить.

Ответ 4

Я думаю, что решение будет состоять в том, чтобы сначала конвертировать ваши файлы Word в (X) HTML или другой не двоичный формат, а затем импортировать концептуальные документы вместе со справочными документами. Вы можете автосоздавать ссылки на основе текстового содержимого органов документа (как вы указали) или запускать концептуальные документы с помощью этапа предварительной обработки, чтобы аннотировать их. Это может быть даже запуск script перед импортом.

Ответ 5

Вы посмотрели Doxygen? Он ничего не делает с файлами Word, но с открытым исходным кодом, поэтому, возможно, вы можете добавить эти функции самостоятельно. Мне очень нравятся документы, которые он производит, и он очень легкий, поэтому я включил его в процесс сборки, чтобы автоматически обновлять документы.

Ответ 6

Попробуйте взглянуть на SandCastle.