| #!/usr/bin/python -B |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| # |
| # asfsignals.py - optional Pelican plugin to show when signals are triggered and what args are passed |
| # |
| |
| import pelican.plugins.signals |
| |
| def initialized(pelican_object): |
| print(f"******initialized: (pelican_object: {pelican_object.__class__})") |
| |
| def finalized(pelican_object): |
| print(f"******finalized: (pelican_object: {pelican_object.__class__})") |
| |
| def generator_init(generator): |
| print(f"******generator_init: (generator: {generator.__class__})") |
| |
| def all_generators_finalized(generators): |
| print(f"******all_generators_finalized: (generators: {generators.__class__})") |
| |
| def readers_init(readers): |
| print(f"******readers_init: (readers: {readers.__class__})") |
| |
| def article_generator_context(article_generator, metadata): |
| print(f"******article_generator_context: (article_generator: {article_generator.__class__}, {metadata.__class__})") |
| |
| def article_generator_preread(article_generator): |
| print(f"******article_generator_preread: (article_generator: {article_generator.__class__})") |
| |
| def article_generator_init(article_generator): |
| print(f"******article_generator_init: (article_generator: {article_generator.__class__})") |
| |
| def article_generator_pretaxonomy(article_generator): |
| print(f"******article_generator_pretaxonomy: (article_generator: {article_generator.__class__})") |
| |
| def article_generator_finalized(article_generator): |
| print(f"******article_generator_finalized: (article_generator: {article_generator.__class__})") |
| |
| def article_generator_write_article(article_generator, content): |
| print(f"******article_generator_write_article: (article_generator: {article_generator.__class__}, content: {content.__class__})") |
| |
| def article_writer_finalized(article_generator, writer): |
| print(f"******article_writer_finalized: (article_generator: {article_generator.__class__}, writer: {writer.__class__})") |
| |
| def get_generators(pelican_object): |
| print(f"******get_generators: (pelican_object: {pelican_object.__class__})") |
| return [] # must return an empty list |
| |
| def get_writer(pelican_object): |
| print(f"******get_writer: (pelican_object: {pelican_object.__class__})") |
| return None |
| |
| def page_generator_context(page_generator, metadata): |
| print(f"******page_generator_context: (page_generator: {page_generator.__class__}, metadata: {metadata.__class__})") |
| |
| def page_generator_preread(page_generator): |
| print(f"******page_generator_preread: (page_generator: {page_generator.__class__})") |
| |
| def page_generator_init(page_generator): |
| print(f"******page_generator_init: (page_generator: {page_generator.__class__})") |
| |
| def page_generator_finalized(page_generator): |
| print(f"******page_generator_finalized: (page_generator: {page_generator.__class__})") |
| |
| def page_generator_write_page(page_generator, content): |
| print(f"******page_generator_write_page: (page_generator: {page_generator.__class__}, content: {content.__class__})") |
| |
| def static_generator_context(static_generator, metadata): |
| print(f"******static_generator_context: (static_generator: {static_generator.__class__}, metadata: {metadata.__class__})") |
| |
| def static_generator_preread(static_generator): |
| print(f"******static_generator_preread: (static_generator: {static_generator.__class__})") |
| |
| def static_generator_init(static_generator): |
| print(f"******static_generator_init: (static_generator: {static_generator.__class__})") |
| |
| def static_generator_finalized(static_generator): |
| print(f"******static_generator_finalized: (static_generator: {static_generator.__class__})") |
| |
| def content_object_init(content_object): |
| print(f"******content_object_init: (content: {content_object.__class__})") |
| |
| def content_written(path, context): |
| print(f"******content_written: (path: {path.__class__}, context: {context.__class__})") |
| |
| def feed_generated(context, feed): |
| print(f"******feed_generated: (context: {context.__class__}, feed: {feed.__class__})") |
| |
| def feed_written(path, context, feed): |
| print(f"******feed_written: (path: {path.__class__}, context: {context.__class__}, feed: {feed.__class__})") |
| |
| def register(): |
| pelican.plugins.signals.initialized.connect(initialized) |
| pelican.plugins.signals.finalized.connect(finalized) |
| pelican.plugins.signals.generator_init.connect(generator_init) |
| pelican.plugins.signals.all_generators_finalized.connect(all_generators_finalized) |
| pelican.plugins.signals.readers_init.connect(readers_init) |
| pelican.plugins.signals.article_generator_context.connect(article_generator_context) |
| pelican.plugins.signals.article_generator_preread.connect(article_generator_preread) |
| pelican.plugins.signals.article_generator_init.connect(article_generator_init) |
| pelican.plugins.signals.article_generator_pretaxonomy.connect(article_generator_pretaxonomy) |
| pelican.plugins.signals.article_generator_finalized.connect(article_generator_finalized) |
| pelican.plugins.signals.article_generator_write_article.connect(article_generator_write_article) |
| pelican.plugins.signals.article_writer_finalized.connect(article_writer_finalized) |
| pelican.plugins.signals.get_generators.connect(get_generators) |
| pelican.plugins.signals.get_writer.connect(get_writer) |
| pelican.plugins.signals.page_generator_context.connect(page_generator_context) |
| pelican.plugins.signals.page_generator_preread.connect(page_generator_preread) |
| pelican.plugins.signals.page_generator_init.connect(page_generator_init) |
| pelican.plugins.signals.page_generator_finalized.connect(page_generator_finalized) |
| pelican.plugins.signals.page_generator_write_page.connect(page_generator_write_page) |
| pelican.plugins.signals.static_generator_context.connect(static_generator_context) |
| pelican.plugins.signals.static_generator_preread.connect(static_generator_preread) |
| pelican.plugins.signals.static_generator_init.connect(static_generator_init) |
| pelican.plugins.signals.static_generator_finalized.connect(static_generator_finalized) |
| pelican.plugins.signals.content_object_init.connect(content_object_init) |
| pelican.plugins.signals.content_written.connect(content_written) |
| pelican.plugins.signals.feed_generated.connect(feed_generated) |
| pelican.plugins.signals.feed_written.connect(feed_written) |
| |
| # From https://docs.getpelican.com/en/latest/plugins.html#list-of-signals |
| # |
| # ================================= ============================ =========================================================================== |
| # Signal Arguments Description |
| # ================================= ============================ =========================================================================== |
| # initialized pelican object |
| # finalized pelican object invoked after all the generators are executed and just before pelican exits |
| # useful for custom post processing actions, such as: |
| # - minifying js/css assets. |
| # - notify/ping search engines with an updated sitemap. |
| # generator_init generator invoked in the Generator.__init__ |
| # all_generators_finalized generators invoked after all the generators are executed and before writing output |
| # readers_init readers invoked in the Readers.__init__ |
| # article_generator_context article_generator, metadata |
| # article_generator_preread article_generator invoked before a article is read in ArticlesGenerator.generate_context; |
| # use if code needs to do something before every article is parsed |
| # article_generator_init article_generator invoked in the ArticlesGenerator.__init__ |
| # article_generator_pretaxonomy article_generator invoked before categories and tags lists are created |
| # useful when e.g. modifying the list of articles to be generated |
| # so that removed articles are not leaked in categories or tags |
| # article_generator_finalized article_generator invoked at the end of ArticlesGenerator.generate_context |
| # article_generator_write_article article_generator, content invoked before writing each article, the article is passed as content |
| # article_writer_finalized article_generator, writer invoked after all articles and related pages have been written, but before |
| # the article generator is closed. |
| # get_generators pelican object invoked in Pelican.get_generator_classes, |
| # can return a Generator, or several |
| # generators in a tuple or in a list. |
| # get_writer pelican object invoked in Pelican.get_writer, |
| # can return a custom Writer. |
| # page_generator_context page_generator, metadata |
| # page_generator_preread page_generator invoked before a page is read in PageGenerator.generate_context; |
| # use if code needs to do something before every page is parsed. |
| # page_generator_init page_generator invoked in the PagesGenerator.__init__ |
| # page_generator_finalized page_generator invoked at the end of PagesGenerator.generate_context |
| # page_generator_write_page page_generator, content invoked before writing each page, the page is passed as content |
| # page_writer_finalized page_generator, writer invoked after all pages have been written, but before the page generator |
| # is closed. |
| # static_generator_context static_generator, metadata |
| # static_generator_preread static_generator invoked before a static file is read in StaticGenerator.generate_context; |
| # use if code needs to do something before every static file is added to the |
| # staticfiles list. |
| # static_generator_init static_generator invoked in the StaticGenerator.__init__ |
| # static_generator_finalized static_generator invoked at the end of StaticGenerator.generate_context |
| # content_object_init content_object invoked at the end of Content.__init__ |
| # content_written path, context invoked each time a content file is written. |
| # feed_generated context, feed invoked each time a feed gets generated. Can be used to modify a feed |
| # object before it gets written. |
| # feed_written path, context, feed invoked each time a feed file is written. |
| # ================================= ============================ =========================================================================== |
| |