这些信号是here所描述的,但那又是什么?
例如,其中一个信号被描述:
在撰写每篇文章之前调用,文章作为内容传递
如何更改该内容?我该如何访问它?有哪些功能?
我一直在看github上的pelican插件回购中的例子,但我仍然感到困惑。 (那些人甚至如何学习如何编写这些插件?)
我几乎不知道从哪里开始。
答案 0 :(得分:2)
您必须查看pelican
的{{3}}。我认为没有更好的方法。
例如,搜索您感兴趣的信号,例如article_generator_write_article
:source code
然后,查看搜索结果,例如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)去hacky路径并简单地打印对象的成员{{1 }}
我想,在没有查看代码的情况下,print(article.__dict__)
有一个属性article
,其中包含从源文件生成的HTML代码。这就是您所期望的变化所在。
请注意,如果您想在处理之前更改源代码 ,这并不容易。我刚写了一篇能够做到这一点的https://github.com/getpelican/pelican/search?utf8=%E2%9C%93&q=article_generator_write_article。
在那里,您还可以看到信号API的运行情况。您只需要content
处理函数来处理所需的信号。
我希望这会有所帮助:)