wiki:DitaOtAndEclipseEditing

Требования к редакторам DITA-файлов

Для редактирования файлов можно использовать любой xml-редактор, при условии, что он не проявляет излишнюю "прыть" при переформатировании xml-файлов. А именно, текст между некоторыми тегами трогать нельзя, поскольку это влияет на смысл документа. Например, некоторые редакторы "ради красоты" заменяют

<codeblock>
void f {
  return;
}
</codeblock>

на

  <codeblock>
    void f {
      return;
    }
  </codeblock>

что приводит к тому, что в результирующем документе добавляется отступ слева перед фрагментом программного кода. Т.е. форматирование DITA-файла приводит к изменениям в результирующем документе, что "не есть хорошо".

Желательность использования одного редактора для редактирования одного файла

Но тут есть такая проблема. Если мы используем управление версиями, желательно, чтобы для редактирования xml-файлов использовались редакторы, которые форматируют одинаково. А то, если переформатировать весь файл одним редактором, а потом - другим, то изменяются ВСЕ строчки файла, хотя, на содержательном уровне, изменение было совсем маленьким.

Имеющиеся редакторы для сочинения и редактирования DITA-документов

Можно работать на уровне тегов, а можно в режиме WYSIWYM (what you see is what you mean).

Практика показывает, что сочинять и редактировать удобнее в режиме WYSIWYM, а при "перевоспитании" в DITA из DocBook или html удобнее работать на уровне тегов.

Работа на уровне тегов

Годится любой редактор, который умеет валидировать xml-документы относительно DTD, грамотно форматировать xml-документы и помогать при вводе xml-тегов (показывать список тегов, которые разрешается вставить в тукущей позиции курсора).

В документации, прилагаемой к DITA OT, есть рекомендации по поводу подходящих редакторов (один из них - Emacs). Но эти редакторы работают "сбоку" от Эклипса. Если есть желание редактировать изнутри Эклипса, то выбор невелик.

Использование Web Tools Platform (WTP)

Web Tools Platform (WTP) Project

WTP включает в себя xml-редактор.

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

Help | Software | Updates | Find and install | Search for new features to install

Ставим галочку супротив Europa Discovery Site. Нажимаем Finish. Находим Web and JEE Development, а под ним - Eclipse XML Editors and Tools а также Web Standard Tools (WST) и ставим две галочки. Появляется ругательный красный кружок с белым крестиком. Это означает, что нужны еще некоторые компоненты. Давим кнопку "Select Required". Выставляются дополнительные галочки, а красный кружок исчезает. Жмем Next и все устанавливаем.

Потом идет в Window | Preferences | Web and XML | XML Files | Source.

После этого ставим галочку супроив Preserve whitespace in tags with PCDATA content.

Некоторое время назад эта опция появилась, но не работала. Но сейчас, в свежей версии, вроде бы заработала! :-)

Так что, вроде бы, можно работать через этот редактор. Но есть у него недостатки, связанные с форматированием.

Вот кусок документа, отформатированный через oXygen:

      <p>Suppose we have a condition represented by a source
      <codeph>S</codeph> and two paths <codeph>Q'</codeph>
      and <codeph>Q''</codeph>. Consider the path
      <codeblock>
    \? {S \! Q'; \! Q";}
</codeblock></p>

Whitespace внутри тегов <codeblock> ... </codeblock> менять нельзя! Теперь переформатируем это через эклипсовский xml-редактор. Получается

      <p>
        Suppose we have a condition represented by a source
        <codeph>S</codeph>
        and two paths
        <codeph>Q'</codeph>
        and
        <codeph>Q''</codeph>
        . Consider the path
        <codeblock>
    \? {S \! Q'; \! Q";}
</codeblock>
      </p>

Видно, что содержимое тегов <codeblock> ... </codeblock> не испоганилось. Однако, форматирование получилось какое-то жидкое. На отдельные строчки вынеслись теги, которые что-то размечают внутри абзаца.

Как-то жиденько получается... Впрочем, вопрос вкуса.

Но есть у xml-редактора в WTP еще одна неприятная особенность! Например

<codeph>Env<sub>1</sub></codeph>

переформатируется в

<codeph>
   Env
  <sub>1</sub>
</codeph>

Что не есть хорошо... А нехорошо то, что между Env и <sub>1</sub> вставляется whitespace. И в результирующем документе между Env и нижним индексом 1 появляется пробел (которого быть не должно).

Можно ли это побороть - пока неясно... Почему никак не "доведут до ума" xml-редактор в Эклипсе - полная загадка. А может быть, не хотят? (Но это уже - "теория заговора".)

Использование oXygen

Редактор в oXygen

oXygen - XML Editor & XSLT Debugger

все делает как надо. Основной его недостаток - небесплатность лицензий. :-)

oXygen существует в двух вариантах: как плагин к Эклипсу и как самостояятельная IDE.

Редактирование в режиме WYSIWYM

Можно использовать редактор

XMLmind XML Editor

Незарегистрированная версия годится для редактирования, но генерация выходных документов в ней заблокирована.

Last modified 13 years ago Last modified on Sep 17, 2007, 11:12:17 PM