2011-04-12 5 views
6

저는 C++과 Python 프로젝트에서 Sphinx으로 작업하는 데 익숙합니다. 방금 Clojure 프로젝트를 시작했고 내 Clojure 코드를 문서화하기 위해 Sphinx/reStructuredText 스킬을 다시 사용하고 싶습니다. Clojure에는 domain이 내장되어 있지 않으므로 필자는 쓰기 시작했다.Clojure의 스핑크스 도메인

아이러니하게도 스핑크스의 문서는 확장 기능 작성에 도움이되지 않습니다. 그래서, 파이썬과 자바 스크립트를위한 내장 모드를 시작으로 몇 가지 기본적인 요소가 작동했습니다. 나는 다음과 같은 지침을 사용하여 기능에 대한 문서를 작성할 수 있습니다

.. clj:ns:: clojure.core 

.. clj:fn:: (filter f coll) 

    :param f: predicate 
    :param coll: collection 

    Built-in! 

그러나, HTML 출력은 C/파이썬 스타일의 서명을 생성합니다.

filter(f, coll) 

    Parameters: * f - predicate 
       * coll - collection 

    Built-in! 

내가 차라리와 혀짤배기 틱 형태로 서명을받을 거라고 : 모든 방법을

(filter f coll) 

    Parameters: * f - predicate 
       * coll - collection 

    Built-in! 

서명을 생성하는 것 같다 코드를 이동하는 앞의 예는 다음과 같이 생성 모듈은 docutils.addnodes입니다. 스핑크스가 스핑크스 구문을 사용하여 HTML을 생성하도록하려면 어떻게해야합니까? 템플릿을 사용하여 작업을 수행 할 수 있습니까? 아니면이 작업을 수행하기 위해 전체 빌더 시스템을 해킹해야할까요?

+0

sphinx-contrib에서 얼랭 도메인을 확인 했습니까? – omasanori

+0

예, 했어요. 결과 서명을 형식화하는 방법에 대한 언급이 없습니다. 렌더링은 스핑크스 (Sphinx.builders.html.py','class HTMLTranslator')에서 깊게 이루어집니다. 출력을 렌더링하기 위해 자신의 HTML 빌더를 작성해야합니다. 이제 같은 프로젝트에서 여러 언어를 어떻게 문서화 할 것인가? –

+0

혹시 작동 시키셨습니까? 나는 스핑크스를 사용하여 clojure 프로젝트를 기존 프로젝트와 통합하려고하지만 클로저에 대한 스핑크스 도메인을 찾지 못했습니다. – user1009908

답변

3

현재 버전 (1.0.7)에서 서명 서식을 변경하면 sphinx/writers/html.pyHTMLTranslator 클래스를 확장해야합니다. 그러나이 수준에서는 도메인 별 처리가 없으므로 Clojure 서명을 변경하면 다른 도메인의 서명에도 영향을 미칩니다.