Вы должны посмотреть на source codepelican
. Я думаю, что нет лучшего способа.
Например, поиск сигнала, который вас интересует, например, article_generator_write_article
: https://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
имеет атрибут content
который содержит код HTML, созданный в вашем исходном файле. Здесь требуется ваше желаемое изменение.
Обратите внимание, что если вы хотите изменить исходный код перед обработкой, это не так просто. Я просто написал немного plugin, который способен это сделать.
Там вы также можете увидеть API сигнала в действии. Вам просто нужно указать connect
функцию обработчика на желаемый сигнал.
Надеюсь, это поможет :)