Разработка технической документации и технические писатели Технические писатели и разработка технической документации технические писатели в Телеграм 

 obmen_soobsheniyami.png Чат для технических писателей 
 Зарегистрируйтесь
Страницы: 1
RSS
Как связывать между собой отдельные модули ссылками?, Ссылки из модуля «А» –> «В» и в свою очередь из «В» –> «А».
 
Здравствуйте уважаемые форумчане,
столкнулась с такой вот ситуацией, помогите мне пожалуйста.

Предполагается, что будет один общий глобальный проект, в который будут добавляться другие модули (проекты). Между модулями мне нужно осуществлять связь ссылками, НО ссылки эти должны быть не как бы в "одностороннем" порядке (из одного проекта в другой только в одном из каких-либо модулей), а в "двустороннем" что ли или "обратном" (связь должна быть как в одном, так и в другом модуле), т.е. например:
проект «А» – это глобальный проект, который содержит другие модули (проекты): «Б», «В», «Г», «Д» и т.д. Модуль проекта «Б» нужно связать с модулем проекта «В» и в свою очередь также модуль проекта «В» связать с модулем проекта «Б».

Как в H&M осуществляется такой сложный маневр с модулями? И как это сделать?

В свое время в 5-й версии мне приходилось связывать оба модуля – главный и второстепенный. Но связь ссылкой была только из одного главного модуля проекта со вторым и поэтому этой сложной ситуации я тогда не коснулась.

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


________________________
Свой проект я делаю приоритетно в формате html, но правда попутно, в качестве теста, чтобы понять по возможности все плюсы и минусы между разными форматами, я также пробую в chm (хотя этот вариант для работы мне очень проблематичен из-за политики безопасности от Microsoft для формата chm).
 
Непонятна рекурсия на проект в проекте, у Вас в должна быть ссылка на тему другого проекта, а не сам проект. Ссылаться из дочернего на главный не нужно.

Пусть есть проект А, а в него мы подключаем проекты Б, В и Г (в примере: techno, BPM и Массив входных данных) со слиянием при публикации:

В результате получаем следующее:

Следует помнить, что темы, которые находятся в дочерних проектах НЕ ВХОДЯТ в ТОС мастер-проекта, поэтому H&M будет сообщать, что ссылка на тему мертвая (так как выбран параметр "подключать при публикации" и ее работоспособность будет установлена при ТОЛЬКО при публикации проекта) - не стоит обращать внимания.

При модульной работе с проектами, темы дочерних проектов ЗАПРЕЩЕНЫ ДЛЯ РЕДАКТИРОВАНИЯ.
Чтобы разрешить данную проблему, в настройках мастер проекта отключаем режим "только для чтения" для подключенных дочерних проектов:


После всех проделанных операций, описанных выше, можем приступать к формированию нашего сложного проекта, т.е. строить из модулей требуемый вариант для публикации.
Для этого:
1) Сформируйте другие ТОС (в случае, когда содержание мастер-проекта или какого-либо дочернего проекта нас устраивает, этот шаг можно пропустить);
2) Создайте варианты сборок для публикаций.

Рассмотрим случай, когда один из дочерних проектов нас устраивает, останется лишь добавить темы из других проектов.
1. Возьмем за основу проект Б и перенесем туда темы из мастер-проекта и дочернего:


2. Создадим варианты сборок для наших модулей в мастер-проекте:

ВНИМАНИЕ! Чтобы избежать ошибки о том, что страница не найдена, необходимо создать такие же сборки для всех дочерних проектов, темы которых будут использоваться в опубликовываемой сборке!
(можно не создавать, а просто загрузить готовые сборки из мастер-проекта):


3. Установим варианты сборок для проектов. Для тем мастер-проекта первого уровня устанавливаем сборку Master, чтобы она не попадала в публикации со статусом сборки "Все". Остальные сборки устанавливаем лишь на корневых уровнях наших модулей (подключенных проектов), чтобы темы дочерних проектов получили статус родительского элемента (подключенного проекта):


Возможно, при переносе темы из родительского ТОС, она будет иметь статус родителя. В этом случае, его необходимо сменить на статус "Все".


Опубликовываем проект, выбрав нашу сборку Module_A:

В результате имеем web-справку, содержащую темы различных проектов, с поддержкой ссылок и переходов, а также ключевых и а-ключевых слов.



P.S.: Если имеется готовая web-справка, но отсутствует проект или он не добавлен в мастер проект, темы добавляются путем вставки TOC link. В качестве url указывается абсолютный или относительный путь к файлу или интернет-адрес. Также поддерживаются ссылки на якоря.


P.P.S.: "Финт ушами" от H&M User: Чтобы H&M не создавал при компиляции темы, не включенные в опубликовываемую сборку, необходимо в мастер-проекте ОТКЛЮЧИТЬ СБОРКИ ДЛЯ ПОДКЛЮЧЕННЫХ ПРОЕКТОВ. Это позволяет сократить время компиляции в десятки, а то и сотни раз (для больших проектов):


P.P.P.S.: Следует следить за возможными дубликатами тем. При совпадении ID тем из разных проектов, содержание будет взято из последней скомпилированной темы. Чтобы избежать этого, необходимо заранее использовать для разных проектов различные ID-префиксы тем. Если все-таки ID тем совпали, удалите ее из нужного ТОС, измените ее ID в родительском модуле и перенесите заново.

 
Изменено: H&M User - 01.09.2015 17:50:35
 
H&M User,
Спасибо большое за описание последовательных действий.
Извиняюсь, что не отвечала на тему сразу, но на буднях мне это сделать к сожалению проблематично. Жду выходных, чтобы попробовать то, что Вы описали, но у меня появились еще кое какие вопросы на основании прочтенного.

Эти сборки... мне не совсем понятно, что это такое, что они в себе несут так сказать?
На Вашем примере у меня складывается впечатление, что получается, что публикуя из главного проекта только одну выбранную сборку получаем отдельный готовый дочерний проект. Т.е. это что... равносильно тому, как если бы я открыла этот дочерний проект отдельно в H&M и опубликовала бы его? - получается это что... тоже самое, только здесь я это делаю из главного проекта.
Меня это как то запутывает и сбивает с толку что ли.  :oops:  

Потом, вот такие вопросы меня интересуют:
Цитата
H&M User написал:
2. Создадим варианты сборок для наших модулей в мастер-проекте:
Название сборок может быть любым латинскими буквами?
Или мой главный проект нужно так же называть поумолчанию "MASTER"?
Просто Вы постоянно ссылаетесь на мастера, а я никак не пойму что за мастер такой. :oops:
-------------------
Цитата
H&M User написал:
3. Установим варианты сборок для проектов. Для тем мастер-проекта первого уровня устанавливаем сборку Master, чтобы она не попадала в публикации со статусом сборки "Все".
Т.е. варианты html, chm и т.д. уже выбирать не надо или их тоже нужно галочками отмечать дополнительно к сборкам?
-------------------
Цитата
H&M User написал:
Опубликовываем проект, выбрав нашу сборку Module_A
Это, если брать один из проектов как на Вашем примере. Для глобального проекта получается мне нужно выбирать все мои сборки при опубликовании?
И еще, галочку с "WebHelp" нужно снять?
-------------------
Цитата
H&M User написал:
P.S.: Если имеется готовая web-справка, но отсутствует проект или он не добавлен в мастер проект, темы добавляются путем вставки TOC link. В качестве url указывается абсолютный или относительный путь к файлу или интернет-адрес. Также поддерживаются ссылки на якоря.
А как связать ссылками между собой два дочерних проекта, которые получается были добавлены в главный проект сборками?
Между собой то проекты получается не связаны, если я их отдельно открою в H&M?
Ссылками я должна их связать в контенте по тексту внутри каждого модуля/проекта (добавленные в главный проект как сборка).
 
Цитата
alex23 написал:
На Вашем примере у меня складывается впечатление, что получается, что публикуя из главного проекта только одну выбранную сборку получаем отдельный готовый дочерний проект. Т.е. это что... равносильно тому, как если бы я открыла этот дочерний проект отдельно в H&M и опубликовала бы его? - получается это что... тоже самое, только здесь я это делаю из главного проекта.
Да, можно сказать и так, отдельный готовый дочерний проект, в который могут входить темы из любых подключенных проектов (что нам и требуется).
Цитата
alex23 написал:
Название сборок может быть любым латинскими буквами?
Или мой главный проект нужно так же называть поумолчанию "MASTER"?
Для названий сборок используются любые латинские буквы и цифры. Имя для сборок указываете любое. Я просто выбрал для главной сборки (мастер-сборки) название MASTER.
Цитата
alex23 написал:
Т.е. варианты html, chm и т.д. уже выбирать не надо или их тоже нужно галочками отмечать дополнительно к сборкам?
Нет, выбирать их не нужно. При публикации отмечаем только те флажки, которые назначены темам, главам или проектам (в примере - MASTER, MODULE_A/B/C), которые необходимо опубликовать. Вместо них можете указать html, chm и т.д. и при публикации использовать их.
Цитата
alex23 написал:
Это, если брать один из проектов как на Вашем примере. Для глобального проекта получается мне нужно выбирать все мои сборки при опубликовании?
И еще, галочку с "WebHelp" нужно снять?
Если нужно выпустить все сборки, то выбирайте все. Весь смысл подключаемых проектов заключается в том, чтобы использовать отдельные главы и темы из разных проектов. В глобальный проект (мастер-проект) можете добавить все подключенные проекты, если это необходимо.
Так как я не использую в примере сборку Webhelp, то и флажок отмечать не надо.
Цитата
alex23 написал:
А как связать ссылками между собой два дочерних проекта, которые получается были добавлены в главный проект сборками?
Между собой то проекты получается не связаны, если я их отдельно открою в H&M?
Ссылками я должна их связать в контенте по тексту внутри каждого модуля/проекта (добавленные в главный проект как сборка).
А как вы ссылаетесь на темы в одном проекте? Не обращайте внимания на то, что проект подключен, для мастер-проекта ничего не меняется, будто Вы работаете с одним проектом.
К примеру, в мастер-проекте необходимо сослаться на темы другого проекта. Просто перетаскиваем темы из подключенных проектов в тему мастер-проекта (специально для вас, чтобы Вы не пут(г)ались, для публикации использую сборку  Webhelp :)):

 
Изменено: H&M User - 03.09.2015 14:42:19
 
H&M User,
Все получилось отлично, без проблем и с первого раза. :)
Спасибо большое еще раз за очень подробное описание.
 
Цитата
alex23 написал:
Все получилось отлично, без проблем и с первого раза.  
Спасибо большое еще раз за очень подробное описание.
УРА! Был рад помочь. Если что, я здесь :)
Страницы: 1
Читают тему