ネットワークサポート類

class sphinxcontrib.websupport.WebSupport[ソース]

Webサポートパケットの主APIクラス.Webサポートパッケージとのすべてのインタラクションはこのように行うべきである.

このクラスは以下のキーワードパラメータを受け取る:

ソースディレクトリ.

ReStruredTextソースファイルを含むディレクトリ。

ディレクトリを構築する

データと静的ファイルを構築するディレクトリはその中に置くべきである.作成しています WebSupport オブジェクト,このオブジェクトはデータを生成するために用いられる.

データリスト.

Webはデータが存在するディレクトリをサポートする.作成しています WebSupport オブジェクト,そのオブジェクトはデータを検索するために用いられる.

捜索

これは、使用する内蔵検索アダプタを参照する文字列(例えば、“xapian”)を含むことができ、含まれてもよいサブクラスの例を含むことができる BaseSearch それがそうです。

埋蔵物.

データベースuriを表す文字列を含んでもよいし,含まれていてもよい StorageBackend それがそうです。この機能が提供されていない場合、新しいSQLiteデータベースが作成される。

moderation_callback

表示されていない新しいアノテーションを追加する際に呼び出すCallable.それはパラメータを受け入れなければならない:追加された注釈を表す辞書。

静態ディレクトリ

異なる位置で静的ファイルを作成する必要がある場合 そうではありません '/static' これは、その位置名を含む文字列であるべきである(例えば、 builddir + '/static_files' )。

注釈

もし指定すれば staticdir 通常、調整を希望します。 staticroot そのため。

統計根.

もし静態ファイルが '/static' これは、その位置名を含む文字列であるべきである(例えば、 '/static_files' )。

文書根目録

文書がURLの基本経路から提供されていない場合、これは、経路を指定する文字列であるべきである(例えば、 'docs' )。

バージョン 1.6 で変更: WebSupportクラスはsphinx.websupportからsphinxcontri.websupportに移動する.つけてください sphinxcontrib-websupport 依存項をカプセル化して移動するクラスに変更する.

方法

WebSupport.build()[ソース]

文書を構築する。データを入れる outdir カタログです。以下のように使用する:

support = WebSupport(srcdir, builddir, search='xapian')
support.build()

これは,再構築されたテキストファイルを以下の位置から読み込む. srcdir それがそうです。そしてキムチと検索インデックスを構築して入れます builddir それがそうです。また,ノードデータをデータベースに保存する.

WebSupport.get_document(docname, username='', moderator=False)[ソース]

キムチからファイルをロードして返します。文書は、テンプレートをレンダリングするために使用することができるDICTオブジェクトである:

support = WebSupport(datadir=datadir)
support.get_document('index', username, moderator)

ほとんどの場合 docname 要求経路から取得してこの関数に直接渡す.フラスコの中ではこうでしょう

@app.route('/<path:docname>')
def index(docname):
    username = g.user.name if g.user else ''
    moderator = g.user.moderator if g.user else False
    try:
        document = support.get_document(docname, username,
                                        moderator)
    except DocumentNotFoundError:
        abort(404)
    render_template('doc.html', document=document)

返された文書辞書には,テンプレートレンダリング中に使用する以下の項目が含まれる.

  • body :文書の本文はHTMLである.

  • 側欄. :文書のサイドバーはHTML

  • 鉄筋 :関連文書リンクを含むdiv

  • タイトル :文書のタイトル

  • css :Sphinxが使用するCSSファイルへのリンク

  • スクリプト :注釈オプションを含むJavaScript

これで向上します DocumentNotFoundError もし文書が一致すれば docname 見つかりませんでした。

パラメータ

docname -- ロードする文書の名前。

WebSupport.get_data(node_id, username=None, moderator=False)[ソース]

関連する注釈とソースを取得する node_id それがそうです。もし username 投票情報は戻った論評に含まれるだろう。デフォルトのCommentBackendは2つのキーを持つDICTを返す. 源. そして、 評論 それがそうです。 源. ノードのオリジナルソースであり,ユーザが追加可能なアドバイスの始点として用いる. 評論 アノテーションを表す辞書リストであり,各辞書は以下の項目を含む.

キー、キー

カタログ.

テキスト

テキストを注釈する。

ユーザー名

注釈とともに格納されているユーザ名。

ID番号

注釈の一意の識別子。

格付けする.

その論評は現在の評価を評価する。

年齢

コメント追加後の時間(秒単位).

時間です。

時間情報を含む辞書。これは、以下のキーを含む:年、月、日、時間、分、秒、iso、および増分。 iso ISO 8601形式の時間です。 delta レビュー時間の印刷可能な形態(例えば、“3時間前”)である。

投票する.

もし user_id したがって、これは投票を表す整数となる。1は賛成票、-1は反対票、または0(投票されていない場合)を表す。

ノード.ノード

アノテーションが付加されたノードのID.注釈の親レベルがノードではなく別の注釈である場合、空である。

親本.

このアノテーションが付加されたアノテーションのID(ノードに付加されていない場合).

子供

すべてのサブ項目のリストは,フォーマットは以下のとおりである.

proposal_diff

現在のソースとユーザが提案するソースとの間の差異のHTML表現形式。

パラメータ
  • node_id -- そのアノテーションのノードのIDを取得する.

  • username -- コメントを表示するユーザーのユーザー名。

  • moderator -- ユーザが著作者であるかどうか.

WebSupport.add_comment(text, node_id='', parent_id='', displayed=True, username=None, time=None, proposal=None, moderator=False)[ソース]

ノードや他のアノテーションにアノテーションを付加する.同じ形式で注釈を返す get_comments() それがそうです。ノードに注釈を付加する場合は、ノードキーワードパラメータ入力ノードのid(文字列として):を使用してください。

comment = support.add_comment(text, node_id=node_id)

コメントが別のコメントのサブレベルである場合、Parentキーワードパラメータは、(文字列形式で)親レベルのidに提供される:

comment = support.add_comment(text, parent_id=parent_id)

ユーザー名と注釈を一緒に保存する場合は、オプションのものを渡してください username キーワードパラメータ::

comment = support.add_comment(text, node=node_id,
                              username=username)
パラメータ
  • parent_id -- 注釈の親レベルのプレフィックスID.

  • text -- 注釈されたテキスト。

  • displayed -- 節制の目的で

  • username -- コメントを発表したユーザのユーザ名。

  • time -- コメントを作成する時間は今だと思っています。

WebSupport.process_vote(comment_id, username, value)[ソース]

ユーザの投票を処理する.Webサポートパケットは、APIユーザに依存して認証を実行する。APIユーザは、通常、フォームからCOMMENT_IDおよび値を受信し、その後、ユーザが認証を通過することを保証する。ユーザの過去の投票データを検索するために使用される唯一のユーザ名が入力されなければならない。例えばフラスコの中でも:

@app.route('/docs/process_vote', methods=['POST'])
def process_vote():
    if g.user is None:
        abort(401)
    comment_id = request.form.get('comment_id')
    value = request.form.get('value')
    if value is None or comment_id is None:
        abort(400)
    support.process_vote(comment_id, g.user.name, value)
    return "success"
パラメータ
  • comment_id -- 採決中のコメント

  • username -- 投票するユーザーの唯一のユーザー名

  • value -- 1は賛成票、-1は反対票、0はキャンセル投票を表す。

WebSupport.get_search_results(q)[ソース]

検索検索を実行する q 検索結果のセットを作成します。検索結果をhtmlにして文脈辞書を返します get_document() **

document = support.get_search_results(q)
パラメータ

q -- 検索クエリ