developer tip

SandCastle에서 만든 두 페이지를 하나의 메인 페이지로 병합 할 수 있습니까?

optionbox 2020. 11. 9. 08:01
반응형

SandCastle에서 만든 두 페이지를 하나의 메인 페이지로 병합 할 수 있습니까?


프로젝트의 각 클래스에 대해 SandCastle은 두 페이지를 생성합니다.

  • T_class_full_name설명, 구문, 상속 계층 구조 및 참조 항목이있는 로 불리는 기본 페이지
  • AllMembers_T_class_full_name생성자, 메소드, 필드 등이있는 로 불리는 멤버 페이지

이 두 가지를 함께 병합하는 방법이 있습니까- members page메인 페이지에 추가되는 것입니까?


나는 이것에 대해 작동하는 대답을 제공 할 수는 없지만 누군가가 그것을 가지고 기꺼이 해킹한다면 작동 할 수있는 몇 가지 아이디어를 제공 할 수 있습니다.

1. config 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 구문 분석기를 사용하여 두 문서를 병합합니다 (예 : 코드에서 두 문서를 병합하고 현재 페이지의 앵커로 업데이트 된 URL로 새 단일 페이지 HTML 문서 출력).

좋은 점은 생성 된 파일과 링크에 일관된 이름 지정 체계가 사용된다는 것이므로 템플릿을 너무 많이 사용하는 것보다이 프로세스를 작성하고 모든 링크를 앵커로 업데이트하는 것이 더 쉬울 것이라고 생각합니다. . 나는 실제로 이러한 유형의 문서 조작에 경험이있는 사람에게는이 작업이 매우 쉬울 것이라고 생각합니다.

주의 사항 : 저는 SandCastle 전문가와도 가까워서 최소한 1 년 전에 사용했습니다. 나는 또한 오늘까지 해킹 방법을 고려하지 않고 상자에서 꺼내서 만 사용했습니다. 나는 다른 응답이 없다는 것을 제외하고는 이것에 응답하지 않았을 것입니다. 이를 수행하기 위해 지원되는 구성 방법이있을 수 있지만 일반 사용자로서 나는 접근 방법을 생각조차 할 수 없습니다.

또한 SHFB에 대한 경험을 바탕으로 HTML 출력이 어떻게 보일지에 대해 여기에서 몇 가지 가정을하고 있습니다. 나는 거기에 과도하게 도달하고 있을지도 모른다. 더 이상 샌드캐슬 문서를 생성 할 수있는 프로젝트가 없지만 누군가가 SandCastle의 HTML 출력에 대한 링크를 게시 할 수 있고이 접근 방식에 관심이 있다면 기꺼이 도와 드리겠습니다.

참고 URL : https://stackoverflow.com/questions/2048687/is-it-possible-to-merge-two-pages-created-by-sandcastle-into-a-single-main-page

반응형