RDOC 스타일의 접을 수있는 코드 섹션을 생성하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1602932

  •  05-07-2019
  •  | 
  •  

문제

Doxygen을 사용하여 C ++ 프로젝트에 대한 내부 문서를 작성하고 있습니다. 나는 doxygen에 메소드의 소스가 포함되어 있지만 페이지를 스캔하기가 어렵습니다. RDOC처럼 행동하고 기본적으로 붕괴 된 블록에 소스를 숨기고 싶습니다.

나는 그렇게 생각했다 HTML_DYNAMIC_SECTIONS 이 작업을 수행하게 할 수도 있지만 아아, Changelog는 옵션이 다이어그램과 그래프에만 영향을 미친다고 말합니다.

어쩌면 편집하여 할 수 있습니다 LAYOUT_FILE?

어쨌든, 똑똑한 사람들, 어떻게 Doxygen을 강요하여 접을 수있는 코드 섹션을 생성 할 수 있습니까?

도움이 되었습니까?

해결책

만약에 ing] 등의 소스 등을 포함하여 [...]는 페이지를 스캔하기 어렵게 만듭니다., 당신은 왜 그냥하지 않습니다 링크 그것에 (SOURCE_BROWSER = YES) 대신에 포함 그것 (INLINE_SOURCES = YES)? 이렇게하면 페이지를 쉽게 스캔하고로드하기가 더 빨라질 수 있으며 소스에 액세스 할 수 있습니다 (소스 페이지로드가 하나 더 있습니다). 실제로 소스에 실제로 액세스 해야하는 빈도에 따라 다릅니다.

그 말이 있습니다 ~이다 접을 수있는 코드 섹션을 생성하는 방법 (소스를 수정하고 독소를 재 컴파일해야합니다) :

    <div class="dynheader"><div class="dynsection">
    [collapsible section]
    </div></div>
  • 포함 된 코드 섹션은 다음과 같이 표시됩니다. <div class="fragment"><pre class="fragment">...</pre></div>
  • 따라서 포함 된 코드 섹션을 접을 수 있으려면

    • 수정하다 생성하는 코드 그만큼 <div class="fragment"><pre class="fragment">...</pre></div> 생성 <div class="dynheader"><div class="dynsection">...</div></div> (아마도 일부 CSS를 조정) 또는
    • 변경 자바 스크립트 initDynSections() 기능 이는 인식 할 수 있도록 접을 수있는 섹션을 스캔하고 무너 뜨립니다 <div class="fragment"><pre class="fragment"> 그들 중 하나로서.

구현 (또는 진행 SOURCE_BROWSER Route :))는 독자를위한 운동으로 남겨 둡니다. 행운을 빕니다!

아, 그리고 패치로 성공해야한다면, 당신이 할 수 있다면 좋을 것입니다. 제출하십시오 Dimitri에게 미래 버전에 포함시킬 수 있습니다. 감사해요!

다른 팁

여기에 내 선택한 검색 엔진을 사용하여 여기에 와서 나는 여기에 독사 소스를 수정할 필요가 없다는 메모를 남기고 싶습니다.

이 질문이 물었을 때 아마도 가능성이 없을 것입니다. 순수한 HTML을 포함시킵니다 사용 htmlonly 태그이지만 이것을 염두에두고 이름이 지정된 컨테이너 섹션을 만들 수 있습니다. toggleVisibility

 function toggleVisibility(linkObj)
 {
   var base = $(linkObj).attr('id');
   var summary = $('#'+base+'-summary');
   var content = $('#'+base+'-content');
   var trigger = $('#'+base+'-trigger');
   var src=$(trigger).attr('src');
   if (content.is(':visible')===true) {
     content.hide();
     summary.show();
     $(linkObj).addClass('closed').removeClass('opened');
     $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
   } else {
     content.show();
     summary.hide();
     $(linkObj).removeClass('closed').addClass('opened');
     $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
   } 
   return false;
 }

이는 문서가 Dynsections.js라는 파일로 생성 될 때마다 현재 사용할 수 있습니다.

이 코드와 관련하여 하나는이 기능의 내부 실행 결함을 피하고 추가 JavaScript 코드가 해석되지 않도록 JavaScript를 사용하여 자신의 문서에서 접이식 코드를 생성 할 수있는 조건을 알게됩니다.

  1. 고유 식별자가있는 DOM 요소 id
  2. 고유 식별자가있는 다른 캡슐화 된 DOM 요소 id-요약
  3. 고유 식별자가있는 다른 캡슐화 된 DOM 요소 id-콘텐츠
  4. 고유 식별자가있는 다른 캡슐화 된 DOM 요소 id-방아쇠
  5. 그만큼 id-트리거 요소는 a를 포함해야합니다 src 하나 이상의 문자로 속성
  6. 그만큼 class 주요 컨테이너의 속성은 중요하지 않습니다

조건을 염두에두고 다음 코드를 만들 수 있습니다.

## <a href="javascript:toggleVisibility($('#example-div'))">Fold me</a>
## <div id="example-div">
##   <div id="example-div-summary"></div>
##   <div id="example-div-content">
##     <pre>
##       foo
##       bar
##     </pre>
##   </div>
##   <div id="example-div-trigger" src="-"></div>
## </div>
## @htmlonly <script type="text/javascript">$("#example-div").ready(function() { toggleVisibility($("#example-div")); });</script> @endhtmlonly

위의 Doxygen 코드는 BASH 코드를 사용하여 사용합니다. Bash-doxygen 따라서 순수한 Doxygen 코드와 약간 다를 수 있습니다. div 컨테이너와 관련된 첫 번째 부분은 이미 기능의 소스에 맞는 조건을 언급하는 것으로 이미 설명되어 있습니다. toggleVisibility 그리고 우리의 요구에 대한 독소성 주석을 조정하지 않고 실행 가능하게하십시오.

여기에 사용 된 독특한 ID 접두사는입니다 example-div. 하나 라인에는 일부와 함께 JavaScript를 사용하여 섹션을 전개하는 HyperRef 링크 설정이 있습니다. jQuery 암호.

남은 것은 마지막에 하나의 라이너입니다. 그것은 포함한다 jQuery 처음에는 특정 세그먼트를 접 데려면 스크립트를 실행해야합니다. Bash-Doxygen (및 아마도 다른 언어)의 경우 스크립트의 블록 범위 때문에 블록이 하나의 라이너 여야합니다.

일반적으로 htmlonly와 endhtmlonly 사이의 내용은 as-is 삽입됩니다. 테이블이나 목록과 같은 블록 범위가있는 HTML 조각을 삽입하려면 외부에 나타나야합니다.u003Cp> ..u003C/p> , 이것은 유효하지 않은 HTML로 이어질 수 있습니다. htmlonly [블록]을 사용하여 Doxygen이 현재 단락을 끝내고 endhtmlonly 후에 다시 시작할 수 있습니다.

에서 알 수 있듯이 독사 시겐 문서 그리고 아래의 올바른 표시 솔루션 아래의 의견 Doxygen 문서에 스크립트 태그 포함에 대한 stackoverflow 답변.

읽어 주셔서 감사합니다. 이것이 여기에 오는 사람들에게 도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top