Частичное обновление — алгоритм обновления Дерева страниц
В этом разделе мы предоставим вам информацию об алгоритме слияния Дерева страниц в режиме частичного обновления публикации.
Как работает обновление Дерева страниц публикации?
В системе Документерра используются идентификаторы страниц для сопоставления страниц в вашем проекте со страницами в обновленной публикации, чтобы определить, какие страницы уже существуют в публикации. Система выполняет обновление на основе двух принципов:
- Дерево страниц публикации обновляется с минимально возможными изменениями.
- Страницы, не участвующие в процессе публикации (например, дочерние или родительские элементы обновляемых страниц), не затрагиваются.
В основном обновляются все страницы, которые уже существуют в публикации, а если каких-то страниц еще нет, то они будут добавлены в публикацию, если Документерра сумеет найти для них подходящее место в Дереве страниц. Если Документерра не может определить, куда следует добавить страницу в иерархии Дерева страниц данной публикации, то страница и ее дочерние элементы не будут опубликованы (при этом в журнале публикаций будут выдаваться соответствующие предупреждения).
Важно | |
При частичном обновлении система не изменяет позиции страниц и не удаляет страницы из публикаций. Если необходимо переместить страницы или удалить их, рассмотрите возможность перемещения/удаления вручную или используйте режим публикации Заменить полностью. |
Предположим, что вы публикуете страницу, имеющую идентификатор getting-started. Документерра ищет страницу с таким же идентификатором в обновленной публикации. Если такая страница существует, то обновляется ее контент и свойства. При этом положение страницы и ее видимость в Дереве страниц публикации не изменяются, даже если они различны в публикации и проекте. Это делается для того, чтобы соблюсти два вышеуказанных принципа.
Если в публикации нет страницы с таким же идентификатором, то происходит следующее:
- Документерра проверяет родительскую страницу на наличие в проекте страницы getting-started.
- Если родительская страница существует в публикации, то страница getting-started будет добавлена в качестве ее дочернего элемента.
- Если родительская страница не существует, но будет добавлена в ходе текущей публикации, то будет также добавлена страница getting started. Это означает, что таким образом можно публиковать целые ветви новых страниц; необходимо только убедиться, что самые верхние из публикуемых страниц или, по крайней мере, их ближайшие родительские элементы имеют соответствующие существующие страницы в данной публикации.
- Если страница getting-started не имеет аналогов в публикации, ее родительский элемент не имеет аналогов в публикации и он не участвует в текущей операции публикации, то страница и все ее дочерние элементы не будут опубликованы, поскольку в этом случае для нее не может быть определено желаемое местоположение в Дереве страниц.
Работа с элементами навигации
Страницы могут содержать различные элементы навигации — списки связанных статей, ссылки Далее/Назад/Наверх и Хлебные крошки. При публикации таких страниц в режиме частичного обновления навигационные элементы будут обновляться в публикуемых страницах в соответствии с Деревом страниц целевой публикации. Однако элементы навигации в других страницах (тех, которые вы не публикуете) обновляться не будут, в соответствии с двумя вышеизложенными принципами.
Это может привести к несоответствию навигации — вновь добавленная страница не будет находиться в списке связанных статей родительской страницы в публикации, если родительская страница не была опубликована. Помните об этом при использовании режима частичного обновления — возможно, вам придется обновить несколько дополнительных страниц, чтобы убедиться в согласованности элементов навигации, даже если вы не вносили в них изменений.
Примеры работы алгоритма слияния Дерева страниц при частичном обновлении
Ниже приведены некоторые случаи, на которые следует обратить внимание.
Пример №1: Страницы, которых нет в целевой публикации, но которые должны быть опубликованы, будут добавлены в целевую публикацию в соответствии с их текущей позицией в Дереве страниц
Вы создаете страницу в проекте:

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

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

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

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

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

Пример №3: Страницы, не выбранные для публикации, обновляться не будут
Это означает, что контент, верхние и нижние колонтитулы этих страниц не будут обновляться, в то время как контент, верхние и нижние колонтитулы страниц, выбранных для публикации, будут обновлены. Если вы внесли изменения в мастер-страницу проекта, то при публикации необходимо использовать режим Заменить полностью, чтобы убедиться, что ко всем опубликованным страницам применена новая мастер-страница.
Пример №4: Страницы, исключенные из проекта, останутся в публикации
Итак, вот страница нашего проекта:

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

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

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

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

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

Если необходимо изменить положение страницы в Дереве страниц, это можно сделать двумя способами: перетащить ее в публикацию вручную или заменить существующую публикацию, опубликовав проект в режиме Заменить полностью.
Пример № 6: Режим частичного обновления не влияет на видимость опубликованной страницы в качестве элемента Дерева страниц
Предположим, что вы изменили видимость элемента Дерева страниц для конкретной страницы в вашем проекте. При публикации этой страницы в режиме частичного обновления видимость опубликованной страницы как элемента Дерева страниц не изменяется, поскольку это может повлиять на дочерние элементы, не участвовавшие в операции публикации. Однако этот параметр можно изменить вручную в опубликованной странице или воспользоваться режимом публикации Заменить полностью.
Пример №7: Обновление страниц, имеющих статус «Готово»
Если вы используете режим частичного обновления для публикации только Опубликоват со статусом Готово, имейте в виду, что система все равно будет обрабатывать структуру оглавления сверху. Если какая-то страница имеет статус Готово, а ее родительский элемент — Черновик, то готовая страница все равно не будет опубликована в этом режиме.
Например, выделенные страницы имеют статус Готово:

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

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

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

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