2016-10-26 2 views
2

jsdoc 3.4.2에서 사용자 정의 태그를 작성하려고합니다. config.json 파일 내가이 라인 jsdoc로 사용자 정의 태그 작성

exports.defineTags = function (dictionary) { 
    dictionary.defineTag("service", { 
     mustHaveValue: true, 
     canHaveType: false, 
     canHaveName: true, 
     onTagged: function (doclet, tag) { 
      doclet.service = tag.value; 
     } 
    }); 
}; 

하지만 내가 코드의 @Service를 사용하는 경우, 그것은 표시되지 않습니다를 추가 한 custom-tags.js에서

{ 
    "tags": { 
     "allowUnknownTags": true, 
     "dictionaries": ["jsdoc","closure"] 
    }, 

    "source": { 
     "include": [ 
      "app/" 
      ], 
     "exclude": [], 
     "includePattern": ".+\\.js(doc|x)?$", 
     "excludePattern": "(^|\\/|\\\\)_" 
    }, 
    "plugins": [ 
     "plugins/custom-tags.js" 
     ], 
    "templates": { 
     "cleverLinks": false, 
     "monospaceLinks": false 
    }, 
    "opts": { 
     "destination": "./docs", 
     "recurse": true, 
     "encoding": "utf8" 
    } 
} 

입니다. 나는 이것과 관련된 몇 가지 링크를 보았고 우리가 템플릿을 생성 할 필요가있는 커스텀 태그를 찾았지만 그것을 생성하는 방법을 발견하지 못했습니다. 내 Windows 컴퓨터에 jsdoc을 전 세계에 설치했습니다.

답변

3

두 단계 프로세스가 있습니다.

  • 먼저 당신이 jsdoc 코드에서 찾아 (당신이했던 것처럼)
  • 둘째 템플릿을 필요로 그 doclet 개체를 업데이트 할 수있는 태그, HTML로 doclet 객체를 회전 일을 정의, 알고 새 재산에 대해 뭔가를하고

템플릿 작성에 대한 지침을 찾는 데 어려움을 겪었습니다. 내가 제안 할 수있는 최선은 jsdoc 소스 코드를 확인하는 것이다. publish 기능을 제공하는 자바 스크립트 파일을 만들어야합니다. 그런 다음 publish 함수는 doclet 객체를 반복하여 HTML을 생성합니다.

나는 당신과 같은 필요를 가지고 있었지만, 내가 원했던 것은 기존의 jsdoc 템플릿에 새로운 섹션 (헤더와 텍스트일지도 모른다)을 추가하는 것이었다. 그저 완전히 새로운 템플릿을 만들려고하지 않았기 때문에 결국 태그를 정의하거나 결국 doclet.description 속성에 HTML을 추가하거나 끝내게 될 것입니다. 나를 위해 일했다. 내가 그것을 어떻게

exports.defineTags = function(dictionary) { 
    dictionary.defineTag('routeparam', { 
     mustHaveValue: true, 
     mustNotHaveDescription: false, 
     canHaveType: true, 
     canHaveName: true, 
     onTagged: function(doclet, tag) { 
      if (!doclet.routeparams) { 
       doclet.routeparams = []; 
      } 

      doclet.routeparams.push({ 
       'name': tag.value.name, 
       'type': tag.value.type ? (tag.value.type.names.length === 1 ? tag.value.type.names[0] : tag.value.type.names) : '', 
       'description': tag.value.description || '', 
      }); 
     } 
    }); 
}; 

exports.handlers = { 
    newDoclet: function(e) { 
    const parameters = e.doclet.routeparams; 
    if (parameters) { 
     const table = tableBuilder.build('Route Parameters', parameters); 

     e.doclet.description = `${e.doclet.description} 
           ${table}`; 
    } 
    } 
} 

내 REPO를 확인해 주시기 바랍니다

보고 https://github.com/bvanderlaan/jsdoc-route-plugin

+0

나는이에보고 있었다 - 여기 템플릿을 생성하기위한 약간의 문서가 : https://github.com/jsdoc3/ jsdoc/tree/master/templates – Vineet