2016-04-10 9 views
0

シグナルはソートの形で記載されていますhereしかし、何ですか?例えばペリカンのシグナルで何ができるのかを知るにはどうすればいいですか?私はプラグインを書こうとしています

信号の一方がdesribedされ、:

は、各記事を書く前に呼び出さ、記事がコンテンツ

として渡されるにはどうすればその内容を変更できますか?どのように私はそれにアクセスするのですか?どのような機能が利用できますか?

私はgithubのpelicanプラグインレポの例を見てきましたが、私はまだ混乱しています。 (これらの人々はどのようにプラグインの書き方を学んだのですか?)

どこから始めたらわかりません。

答えて

2

source codepelicanにする必要があります。私は良い方法がないと思う。

たとえば、興味のある信号を検索します。 article_generator_write_articlehttps://github.com/getpelican/pelican/search?utf8=%E2%9C%93&q=article_generator_write_article

次に、検索結果を調べます。 generators.pyをクリックし、信号が入っている回線番号をクリックします。もちろん、クローンを作成してローカルに行うこともできます。これはあなたの仕事の仕方によって異なります。

周辺のコードは:あなたが見ることができるように

def generate_articles(self, write): 
    """Generate the articles.""" 
    for article in chain(self.translations, self.articles): 
     signals.article_generator_write_article.send(self, content=article) 
     write(article.save_as, self.get_template(article.template), 
       self.context, article=article, category=article.category, 
       override_output=hasattr(article, 'override_save_as'), blog=True) 

、信号の呼び出しはarticleオブジェクトを提供します。今度は、1)ソースコードを見て、このオブジェクトのそれぞれのpythonクラスを見つけて内部の動作、メソッド、属性を調べるか、2)ハッキーパスに行き、単純にオブジェクトのメンバーprint(article.__dict__)を印刷します。

articleには、ソースファイルから生成されたHTMLコードを含むcontentという属性があります。これが目的の変更が入る場所です。

を処理する前にソースコードを変更したい場合、これは簡単ではありません。私はちょうどこれを行うことができる少しpluginを書いた。

実際のシグナルAPIもご覧になれます。あなたは単にconnectに、目的の信号に対するハンドラ機能を持たなければなりません。

私はこれが助けてくれることを願っています:)

関連する問題