Можно ли объединить две страницы, созданные SandCastle, в одну главную страницу?


для каждого класса в проекте SandCastle создает (среди прочих) две страницы:

  • главная страница, называется как T_class_full_name, с описанием, синтаксисом, иерархией наследования и см. также
  • страница участников, называется AllMembers_T_class_full_name, С конструкторам, методам, полям и т. д.

есть ли способ объединить эти два вместе - с members page добавляется на главную страницу?

1 68

1 ответ:

Я не могу дать рабочий ответ на это, но я могу предложить некоторые идеи, которые могут работать, если кто-то готов взломать его:

1. Конфигурация htmlBody.xsl определяет некоторые структуры, включая раздел с тестом для членов:<xsl:if test="$subgroup='members'"> Если это было включено на уровне класса (или просто установлено в true, это может дать вам представление о том, как производится этот вывод. (Я не думаю, что здесь будет волшебная пуля).

2. вот (я думаю) где ссылки к членам подгрупп добавляются, я бы также поиграл с этим:

<!-- add a link to the member list section for this subgroup -->
<a href="#{$elementVisibility}Toggle" onclick="OpenSection({$elementVisibility}Toggle)">

3. У меня есть другие идеи, пытаясь поиграть со структурой, но мне нужно будет взломать ее, чтобы дать какой-либо четкий ответ. Я даже близко не уверен, что htmlBody.xsl-это место для этого. Если бы у меня действительно была потребность здесь, я думаю, что я мог бы достичь своей цели проще всего, выполнив следующее:

  • генерировать документацию стандартным способом
  • парсить сгенерированная документация и объединить их с помощью парсера DOM / XML (т. е. объединить их в коде и вывести новый одностраничный HTML-документ с URL-адресами, обновленными до якорей на текущей странице)

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

предостережение: я даже не близок к эксперту по песочному замку, только использовав его минимально и более года назад. Я также не провел в любое время до сегодняшнего дня, рассматривая, как я бы взломать его, ТОЛЬКО используя его из коробки. Я бы даже не ответил на это, если бы не отсутствие других ответов. Для этого может быть поддержан способ конфигурации, но я как случайный пользователь даже не могу подумайте, как к этому подойти.

Я также делаю некоторые предположения здесь о том, как выход HTML будет выглядеть на основе моего опыта работы с SHFB. Возможно, я и там перегибаю палку. У меня больше нет проекта, из которого я могу генерировать документацию sandcastle, но если кто-то может опубликовать ссылку на какой-то HTML-вывод из SandCastle и заинтересован в этом подходе, я был бы рад помочь дальше.