Как мы можем упростить просмотр HTML-документации?

Резюме: я ищу способ для рецензентов совместно комментировать как можно более близкие к «встроенным» комментарии в большом HTML-проекте.

Проблема в деталях

Я работаю в команде, которая документирует большой продукт. Набор документации HTML состоит из сотен отдельных страниц (с иерархическим оглавлением боковой панели, как и следовало ожидать); PDF всего набора документов составляет более 5000 страниц.

Когда мы документируем новую функцию или вносим значительные улучшения, такие как реорганизация, мы публикуем сборку в формате HTML для проверки разработчиками, отделом контроля качества, службой поддержки, менеджером по продукту и другими авторами. Мы публикуем в этой сборке весь набор документов, а не только измененные страницы, потому что иногда контекст имеет значение. Чтобы смягчить это, мы предоставляем ссылки на конкретные темы, которые изменились. Мы фактически добавляем эти ссылки в план документации, спецификацию, которую мы подготовили ранее, описывающую предполагаемые изменения — таким образом люди могут, если они хотят, увидеть предысторию того , почему мы внесли то или иное изменение. План документации — это страница на внутренней вики.

Прямо сейчас, когда мы отправляем запрос на проверку, мы направляем людей на эту вики-страницу и просим людей оставлять свои отзывы в виде комментариев. Это позволяет всем видеть отзывы друг друга, что означает (а) меньше повторений по сравнению с отдельными ответами и (б) более раннее обнаружение разногласий между рецензентами. Но в длинных цепочках комментариев тоже может быть сложно ориентироваться, даже с использованием потоков. И людям по-прежнему приходится проделывать дополнительную работу, чтобы писать эти комментарии, потому что они должны сообщить нам, на что они реагируют. Типичные комментарии начинаются примерно так: «в разделе «Установка плагинов» описание в третьем абзаце не совсем верно, потому что…».

Этот подход работает лучше для нас, чем ответы по электронной почте или индивидуальные комментарии к PDF-файлам только по выбранным темам. (Мы сделали и то, и другое.) Есть ли способ сделать это еще проще, позволяя людям прикреплять комментарии прямо в HTML, вроде комментирования в Документах Google, но без необходимости импортировать наш большой набор документов в какой-либо другой инструмент как раз для этого? Или текущий подход — это лучшее, что мы можем сделать без дополнительной работы?

Мы хотим, чтобы людям было легко комментировать и видеть комментарии других. Планка, которую нужно побить, — это комментарии на вики-странице. Мы не заинтересованы в том, чтобы импортировать большой набор HTML-документов в какой-то другой инструмент (который людям придется изучить). Мне интересно, есть ли уже, скажем, какой-то пакет Javascript, который мы можем внедрить в эти сборки для поддержки этой цели, или какой-то другой способ достичь этой цели.

Используемые инструменты

Мы используем систему управления исходным кодом (git), при этом работа над функциями выполняется в ветках. Сборки обзора создаются из этих ветвей и являются постоянными. (Большинству наших рецензентов неудобно просматривать исходный HTML-код, иначе я бы обошла все это, заставив их просматривать необработанный исходный код в ветке.)

Мы используем Madcap Flare для создания и сборки документации. Схема Flare для источника документа представляет собой расширенный HTML; весь HTML действителен, плюс они добавляют некоторые специфичные для инструмента теги, которые используются во время сборки. На выходе обычный HTML.

Мы используем Jenkins для управления процессом сборки. В настоящее время Дженкинс вызывает скрипт, который выполняет некоторую уборку и вызывает madbuild.exe (механизм сборки Flare). Этот скрипт публикует HTML на внутреннем сервере. Таким образом, в принципе, мы могли бы модифицировать скрипт сборки, чтобы добавить что-то дополнительное в вывод только для этих сборок веток. Мы владеем сервером, поэтому при необходимости можем что-то добавлять (например, способ хранения комментариев).

Возможно, вы захотите изучить «онлайн-обработчик текстов для совместной работы» в качестве термина для Google. Их намного больше, чем было, когда я в последний раз нуждался в них, поэтому я не имею права рекомендовать какой-то конкретный. Но как класс программного обеспечения они позволяют размещать документы в Интернете, а затем предоставлять права на чтение (и, возможно, редактирование/комментирование) выбранным вами лицам.
Просто для ясности: то, что вы, по сути, ищете, сводится к чему-то очень похожему на комментарии на боковой панели в Word или LibreOffice Writer, за исключением того, что они должны храниться внутри HTML и не требуют использования внешних инструментов. рецензент (помимо веб-браузера, я полагаю)? Это может быть сложной задачей, учитывая общую поддержку браузерами изменения файлов на диске... вам, вероятно, понадобится что -то на стороне сервера, по крайней мере, для хранения и извлечения комментариев рецензента.
@MichaelKjörling, это правильно; Я спрашиваю о введении комментариев в отображаемый HTML. Для этого потребуется хранилище данных на стороне сервера, и это нормально (это наш сервер, поэтому мы можем делать там все, что захотим). Или, может быть, есть лучший способ; это идея, которую я придумал, но я открыт для любых улучшений «напишите это отдельно в комментариях к вики».
Каков исходный формат вашей документации? Это HTML?
@Alexander, это схема Madcap, представляющая собой HTML с некоторыми надстройками для таких вещей, как всплывающие окна, аннотации и фрагменты.

Ответы (3)

В одном проекте, над которым я работал, мы делали обзоры через незавершенный сервер, который представлял собой HTML-версию текущего состояния документации. Мы создали модифицированный скрипт сборки для этого сервера, который включал следующее:

  • Индикатор статуса для каждой темы (готов к рассмотрению, черновик, окончательная версия и т. д.)
  • Идентификатор для каждой темы.
  • Номера абзацев в каждой теме.
  • Инструкция поднимать любые проблемы, обнаруженные в процессе проверки или иным образом, в системе отслеживания проблем с использованием идентификатора темы и номера абзаца.

Это было относительно низкотехнологично. Комментирование не происходило в самом интерфейсе документов. Но, похоже, это сработало хорошо. У рецензентов был простой способ указать, к чему относятся их комментарии. Я думаю, что они, как правило, проверяли с открытым окном текстового редактора и делали комментарии по номеру абзаца, а затем вставляли его в средство отслеживания ошибок. Это были все операции, к которым они хорошо привыкли, поэтому им не нужно было учиться или использовать незнакомые инструменты.

Сервер незавершенного производства работал все время, пока разрабатывалась документация, с соответствующими уведомлениями о статусе по каждой теме. Мы обнаружили, что ряд людей в организации сочли полезным иметь эту информацию доступной во время разработки, и иногда мы получали отзывы вне формального процесса проверки.

О, внедрить статус и идентификаторы/метки вместо того, чтобы пытаться встроить комментарии — интересная идея! И гораздо проще.

Не уверен, что смогу адекватно ответить на этот вопрос, так как мало разбираюсь в веб-разработке. Но я постараюсь дать некоторые идеи.

Я бы использовал JavaScript для встроенных комментариев и SQL для хранения комментариев.

  1. Дважды щелкните/выберите слово в тексте. Появится окно комментария. Пользователь может ввести комментарий и нажать «ОК». Комментарий (запись) создается, и слово выделяется. [При желании вы можете позволить людям выбирать тип комментария (например, орфографическая ошибка или концептуальная ошибка).]

  2. Запись создается в базе данных: в ней хранится URL-адрес, абзац, отмеченное слово (слова).

  3. Каждая запись получает свой идентификатор.

  4. Скрипт записывает маркер с идентификатором в источник HTML.

  5. JavaScript открывает сохраненные (отмеченные) комментарии и позволяет добавить ответ. Вы, вероятно, должны также добавить время и автора. Проще всего было бы позволить автору написать собственное уникальное имя. Лучше было бы иметь учетные записи пользователей при написании обзоров.

В зависимости от ваших потребностей вы можете выбрать отображение всех комментариев для этой страницы в правой части этой страницы. Или вы можете открыть комментарий, нажав на выделенное слово.

Я надеюсь, что смог дать вам несколько идей. Удачи!

Спасибо. Знаете ли вы какие-либо готовые пакеты, которые делают что-то подобное (или его части)?
Нет, не знаю. Вы можете попробовать выполнить поиск на github по комментариям javascript .

Простое решение:

  • Комментаторы должны ссылаться на код по номеру строки. Число (или диапазон) набирается быстро.

Простое решение:

  • Каждая строка кода хранится в базе данных как:
    Line number String
    4763 printf("Hello, World!");

  • В вики строка кода кликабельна. При нажатии на нее под строкой разворачивается форма комментариев.

  • В базе данных комментарии хранятся как:
    Line number Comment Comment author
    4763 lol John

  • Когда к строке есть комментарии, Wiki отображает количество комментариев за ссылкой. Этот номер кликабельный. Щелчок по нему отображает комментарии под строкой, повторный щелчок скрывает комментарии.

    Все это не должно занимать больше дня, чем опытный программист.


Вы говорите, что «большинству наших рецензентов неудобно просматривать исходный код HTML». Что тогда они рассматривают? Остальная часть вашего вопроса, кажется, говорит о том, что ваши рецензенты смотрят на строки кода. Разве это не «источник HTML»? Если нет, объясните.

Они просматривают отображаемый HTML с помощью браузера. Нет видимых номеров строк. Если бы они просматривали необработанный HTML, мы могли бы сделать что-то вроде того, что вы описываете, используя Bitbucket, веб-интерфейс git.