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:
Settings for a Pelican Build are in your Pelican Configuration
PLUGIN_PATHS = ['./theme/plugins'] PLUGINS = ['asfgenid', 'asfdata', 'pelican-gfm', 'asfreader']
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 }
Two important readers are set at this point. Readers are responsible for transforming page files to html and providing a metadata dictionary.
GFMReader by the pelican-gfm plugin. This code is in a private repository - ask Infra. Transforms GitHub Flavored Markdown(GFM) to HTML.
ASFReader by the asfreader plugin. Transforms an ezt template into GFM and then to HTML.
This is signaled after a Reader has processed content. At this point plugins can review, record, and transform the html content.
The Apache CMS was in perl. We have a new approach that fits Pelican. If you want to look into the CMS process the svn history remains available.