2017-03-27 22 views
0

콧수염을 지원하는 DocFx 템플릿을 만들려고합니다.개념적 HTML 파일을 생성 할 때 toc.yml을 참조하십시오.

프로젝트 루트의 toc.yml 파일을 기반으로 생성 된 모든 HTML 페이지의 navbar에 사이트 메뉴를 생성하고 싶습니다.

기본 템플릿이이 작업을 수행한다는 것을 알고 있습니다. 그러나 그것은 명백하게 Toc.yml을 독립 HTML 파일로 변환하여 개념 HTML 파일의 javascript로 파싱하여 메뉴를로드합니다.

개념적인 HTML 파일을 만드는 콧수염 파일에서 직접 그 작업을 수행하고 싶습니다.

나는이 부분 (toc.tmpl.partial)를 생성하고, 개념 콧수염 파일의 해당 부분에라고!의

{{저작권 (c) Microsoft의. 판권 소유. MIT 라이센스에 따라 라이센스가 부여됩니다. 불행하게도, {{항목}} 태그 내에서 아무 것도 발생하지 도착,}. 정식 라이센스 정보 프로젝트 루트에서 라이센스 파일을 참조}

<div class="sidenav"> 
    this is sidenav! 
    {{#items}} 
     hello! 
    {{/items}} 
</div> 

하지만.

그러나 toc.tmpl에서 동일한 코드를 사용하면 적절한 수의 hello!가있는 html 파일! 라인이 생성됩니다.

그래서 DocFx 조각이 어떻게 작동하는지에 대해 기본적인 것을 놓치고 있습니다. 한마디로

{{!include(/^styles/.*/)}} 
{{!include(/^fonts/.*/)}} 
{{!include(favicon.ico)}} 
{{!include(logo.svg)}} 
{{!include(search-stopwords.json)}} 
<!DOCTYPE html> 
<!--[if IE]><![endif]--> 
<html> 
    {{>partials/head}} 
    <body data-spy="scroll" data-target="#affix"> 
     {{>partials/navbar}} 
     <div style="position: relative; margin-top: 5px;"> 
      <div class="toc-column" style="position: fixed;"> 
        {{>partials/toc}} 
      </div> 
      <div style="position: fixed; left: 160px;" data-uid="{{uid}}"> 
       {{{rawTitle}}} 
       {{{conceptual}}} 
      </div> 
     </div> 
     {{^_disableFooter}} 
     {{>partials/footer}} 
     {{/_disableFooter}} 
     {{>partials/scripts}} 
    </body> 
</html> 

답변

0

: items가의 개념 모델에서, TOC의 모델에없는

여기 내 간단한 개념 파일 생성 프로그램입니다. 개념적으로는 아무 것도 얻지 못할 것입니다. items. 모델이 어떤지 보려면 docfx --exportRawModel을 실행 해보십시오.

실제로 TOC 모델을 다른 모든 파일과 공유해야합니다. isSharedhere입니다. 당신의 toc.tmpl.js에 아래 코드를 추가합니다 :

exports.getOptions = function (model) { 
    return { 
     isShared: true; 
    }; 
} 

자세한 내용은 여기에서 찾을 수 있습니다 : http://dotnet.github.io/docfx/tutorial/intro_template.html