Документерра: руководство пользователя

Частичное обновление — алгоритм обновления Дерева страниц

В этом разделе мы предоставим вам информацию об алгоритме слияния Дерева страниц в режиме частичного обновления публикации.

Как работает обновление Дерева страниц публикации?

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

  1. Дерево страниц публикации обновляется с минимально возможными изменениями.
  2. Страницы, не участвующие в процессе публикации (например, дочерние или родительские элементы обновляемых страниц), не затрагиваются.

В основном обновляются все страницы, которые уже существуют в публикации, а если каких-то страниц еще нет, то они будут добавлены в публикацию, если Документерра сумеет найти для них подходящее место в Дереве страниц.   Если Документерра не может определить, куда следует добавить страницу в иерархии Дерева страниц данной публикации, то страница и ее дочерние элементы не будут опубликованы (при этом в журнале публикаций будут выдаваться соответствующие предупреждения). 

Важно
При частичном обновлении система не изменяет позиции страниц и не удаляет страницы из публикаций. Если необходимо переместить страницы или удалить их, рассмотрите возможность перемещения/удаления вручную или используйте режим публикации Заменить полностью.

Предположим, что вы публикуете страницу, имеющую идентификатор getting-started. Документерра ищет страницу с таким же идентификатором в обновленной публикации. Если такая страница существует, то обновляется ее контент и свойства. При этом положение страницы и ее видимость в Дереве страниц публикации не изменяются, даже если они различны в публикации и проекте. Это делается для того, чтобы соблюсти два вышеуказанных принципа.

Если в публикации нет страницы с таким же идентификатором, то происходит следующее:

  • Документерра проверяет родительскую страницу на наличие в проекте страницы getting-started.
  • Если родительская страница существует в публикации, то страница getting-started будет добавлена в качестве ее дочернего элемента.
  • Если родительская страница не существует, но будет добавлена в ходе текущей публикации, то будет также добавлена страница getting started. Это означает, что таким образом можно публиковать целые ветви новых страниц; необходимо только убедиться, что самые верхние из публикуемых страниц или, по крайней мере, их ближайшие родительские элементы имеют соответствующие существующие страницы в данной публикации.
  • Если страница getting-started не имеет аналогов в публикации, ее родительский элемент не имеет аналогов в публикации и он не участвует в текущей операции публикации, то страница и все ее дочерние элементы не будут опубликованы, поскольку в этом случае для нее не может быть определено желаемое местоположение в Дереве страниц.

Работа с элементами навигации

Страницы могут содержать различные элементы навигации — списки связанных статей, ссылки Далее/Назад/Наверх и Хлебные крошки. При публикации таких страниц в режиме частичного обновления навигационные элементы будут обновляться в публикуемых страницах в соответствии с Деревом страниц целевой публикации. Однако элементы навигации в других страницах (тех, которые вы не публикуете) обновляться не будут, в соответствии с двумя вышеизложенными принципами.

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

Примеры работы алгоритма слияния Дерева страниц при частичном обновлении

Ниже приведены некоторые случаи, на которые следует обратить внимание.

Пример №1: Страницы, которых нет в целевой публикации, но которые должны быть опубликованы, будут добавлены в целевую публикацию в соответствии с их текущей позицией в Дереве страниц

Вы создаете страницу в проекте:

Элемент Дерева страниц в проекте

Вы увидите его в той же позиции в Дереве страниц публикации после публикации с частичным обновлением:

Элемент Дерева страниц в публикации

Пример №2: Вновь созданные дочерние страницы будут добавлены с сохранением их позиции в Дереве страниц

В вашем проекте есть страница без дочерних элементов, и эта страница была опубликована ранее:

Элемент Дерева страниц в проекте

Вы решаете добавить дочерние элементы:

Добавление дочерних страниц в проект

Вы выбираете дочерние страницы для публикации и публикуете их:

Дочерние страницы, выбранные для публикации

В результате они будут добавлены в публикацию в соответствии с их положением в Дереве страниц проекта. Вот как будет выглядеть Дерево страниц целевой публикации:

Дочерняя страница появилась в публикации

Пример №3: Страницы, не выбранные для публикации, обновляться не будут

Это означает, что контент, верхние и нижние колонтитулы этих страниц не будут обновляться, в то время как контент, верхние и нижние колонтитулы страниц, выбранных для публикации, будут обновлены. Если вы внесли изменения в мастер-страницу проекта, то при публикации необходимо использовать режим Заменить полностью, чтобы убедиться, что ко всем опубликованным страницам применена новая мастер-страница.

Пример №4: Страницы, исключенные из проекта, останутся в публикации

Итак, вот страница нашего проекта:

Элемент Дерева страниц в проекте

А затем мы ее удаляем:

Элемент Дерева страниц, удаленный из проекта

Если опубликовать проект в режиме частичного обновления, то он не будет удален из публикации:

Удаленная страница не была удалена из публикации

Чтобы убрать удаленную страницу из публикации, необходимо обновить публикацию с помощью режима Заменить полностью, чтобы полностью заменить ее новым Деревом страниц, или удалить страницу из самой публикации вручную.

Пример №5: В режиме частичного обновления обновляется контент страницы, которая уже существует в публикации, но не ее позиция в Дереве страниц

Вот страница в проекте:

Элемент Дерева страниц в проекте

Мы перенесли страницу в другое место в Дереве страниц и решили обновить только эту страницу:

Элемент Дерева страниц в проекте был перемещен в другое место в Дереве страниц

В результате будет обновлен контент страницы в публикации, но не позиция страницы в Дереве страниц публикации:

Элемент Дерева страниц не изменил своего положения в Дереве страниц публикации

Если необходимо изменить положение страницы в Дереве страниц, это можно сделать двумя способами: перетащить ее в публикацию вручную или заменить существующую публикацию, опубликовав проект в режиме Заменить полностью.

Пример № 6: Режим частичного обновления не влияет на видимость опубликованной страницы в качестве элемента Дерева страниц

Предположим, что вы изменили видимость элемента Дерева страниц для конкретной страницы в вашем проекте. При публикации этой страницы в режиме частичного обновления видимость опубликованной страницы как элемента Дерева страниц не изменяется, поскольку это может повлиять на дочерние элементы, не участвовавшие в операции публикации. Однако этот параметр можно изменить вручную в опубликованной странице или воспользоваться режимом публикации Заменить полностью.

Пример №7: Обновление страниц, имеющих статус «Готово»

Если вы используете режим частичного обновления для публикации только Опубликоват со статусом Готово, имейте в виду, что система все равно будет обрабатывать структуру оглавления сверху. Если какая-то страница имеет статус Готово, а ее родительский элемент — Черновик, то готовая страница все равно не будет опубликована в этом режиме.

Например, выделенные страницы имеют статус Готово:

Готовые страницы в проекте

Таким образом, они не будут опубликованы, потому что их родительский элемент имеет статус Черновик:

Готовые страницы отсутствуют в публикации, поскольку их родительский элемент имеет статус «Черновик»

Для этого необходимо изменить статус родительского элемента на Готово. В качестве альтернативы можно использовать публикацию по страницам — выбрать нужные дочерние страницы с помощью кнопки Функция массового редактирования и опубликовать их. Как это сделать, читайте здесь .

Пример № 8: Дочерняя страница не будет опубликована, если ее родительская страница не находится в публикации и не будет опубликована в ходе данной операции

Например, вы решили обновить дочернюю страницу родительской под названием Level 1:

Элемент Дерева страниц в проекте

Однако страница Level 1 в публикации отсутствует:

Элемент Дерева страниц отсутствует в публикации

В этом случае дочерние страницы не могут быть опубликованы, пока не будет опубликована страница Level 1 или выбрана для той же операции публикации.