11

Я ищу инструмент поколения помощи/документации, которая удовлетворяла бы такие требования:Помощи инструмент поколения с поддержкой # xmldoc MS Word и C

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

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

Проблема в том, как создать эти ссылки. Файлы MS Word ничего не знают о C# 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

Вопрос по-прежнему актуальный – Shrike

+0

Теперь я рассматриваю возможность переноса всей моей концентрической документации (которая является Word-файлами) в Wikipedia. Это не проблема. Гораздо сложнее интегрировать его с выходом sandcastle. – Shrike

+0

Что именно вы подразумеваете под документом Word Word? Это не похоже на общий способ импорта документа Word и сохранения форматирования. –

ответ

-1

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

+1

Вы полностью читали мое сообщение? Думаю, нет. Sandcastle не поддерживает файлы Word. – Shrike

1

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

+0

Как создать ссылки из содержимого файлов Word в справочный документ, созданный из исходного кода? – Shrike

1

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

0

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

0

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

1

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

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