The plugins used operate at various points in a pelican build. Pelican uses signals at various points. These are documented here. At a high level consider the following sequence of events:
Pelican Settings. Settings for a Pelican Build are in your Pelican Configuration
PLUGIN_PATHS = ['./theme/plugins'] PLUGINS = ['asfgenid', 'asfdata', 'pelican-gfm', 'asfreader', 'sitemap']
Init (initialized). At this point any ASF_DATA is read into a metadata dictionary made available in every page.
ASF_DATA_YAML = ".asfdata.yaml" ASF_DATA = { 'data': ASF_DATA_YAML, 'metadata': { }, 'debug': True }
ASF_GENID = { 'metadata': True, 'elements': True, 'headings': True, 'permalinks': True, 'toc': True, 'toc_headers': r"h[1-6]", 'debug': False }
Readers (readers_init). Two important readers are set at this point. Readers are responsible for transforming page files to html and providing a metadata dictionary
Content Init (content_object_init). This is signaled after a Reader has processed content. At this point plugins can review, record, and transform the html content.