6

私は、C++ および Python プロジェクトでSphinxを使用することに慣れています。Clojureでプロジェクトを開始したばかりで、Sphinx/reStructuredText のスキルを再利用して Clojure コードを文書化したいと考えています。Clojure には組み込みドメインがないため、作成を開始しました。

皮肉なことに、Sphinx のドキュメントは拡張機能の作成にはまったく役に立ちません。というわけで、Python と Javascript の組み込みモードから始めて、いくつかの基本的な要素が機能するようになりました。次のディレクティブを使用して、関数のドキュメントを作成できます。

.. clj:ns:: clojure.core

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

   :param f: predicate
   :param coll: collection

   Built-in!

ただし、HTML 出力は C/Python スタイルの署名を生成します。前の例では、次のようなものが生成されます。

filter(f, coll)

    Parameters: * f - predicate
                * coll - collection

    Built-in!

次のように Lisp 風の形式で署名を取得したいと思います。

(filter f coll)

    Parameters: * f - predicate
                * coll - collection

    Built-in!

docutils.addnodes署名を生成するコードは、モジュールまでずっと続いているようです。Sphinx 構文を使用して Sphinx に HTML を生成させるにはどうすればよいですか? テンプレートを使ってそれを行うことはできますか?それとも、これを行うにはビルダー システム全体をハックする必要がありますか?

4

1 に答える 1

3

現在のバージョン(1.0.7)では、署名のフォーマット方法を変更するにはHTMLTranslator、Sphinx(sphinx/writers/html.py)でクラスを拡張する必要があります。ただし、このレベルではドメイン固有の処理はありません。Clojure署名の変更は、他のドメインの署名にも影響します。

于 2011-04-20T21:32:43.700 に答える