Sie müssen sich die source code von pelican
ansehen. Ich denke, es gibt keinen besseren Weg.
Suchen Sie beispielsweise nach dem Signal, an dem Sie interessiert sind, z. article_generator_write_article
: https://github.com/getpelican/pelican/search?utf8=%E2%9C%93&q=article_generator_write_article
Dann schauen Sie in das Suchergebnis, z.B. generators.py
und klicken Sie auf die Zeilennummer, die Ihr Signal enthält. Natürlich könnten Sie auch einen Klon erstellen und all dies lokal erledigen. Dies hängt von Ihrer Arbeitsweise ab.
Umgebung Code:
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)
Wie Sie sehen können, ist das Signal Anruf erhalten Sie einen article
Objekt. Sie können jetzt 1) in den Quellcode schauen, um die jeweilige Python-Klasse dieses Objekts zu finden, um seine inneren Abläufe, Methoden und Attribute zu erfahren oder 2) gehen Sie den Hacky-Pfad und drucken Sie einfach die Mitglieder des Objekts print(article.__dict__)
.
Ich nehme an, dass article
ein Attribut content
enthält, das den HTML-Code enthält, der aus Ihrer Quelldatei generiert wird, ohne in dem Code geschaut zu haben. Dies ist, wo Ihre gewünschte Änderung kommt.
Beachten Sie, dass wenn Sie den Quellcode vor der Verarbeitung ändern möchten, ist dies nicht so einfach. Ich habe gerade ein kleines plugin geschrieben, das dazu in der Lage ist.
Dort können Sie auch die Signal-API in Aktion sehen. Sie müssen einfach eine Handler-Funktion auf das gewünschte Signal connect
. Ich hoffe, dies hilft :)