Skip to content

Latest commit

 

History

History
149 lines (83 loc) · 8.57 KB

File metadata and controls

149 lines (83 loc) · 8.57 KB
graph LR
    readtime_readtime["readtime.readtime"]
    filetime_from_git_content_adapter["filetime_from_git.content_adapter"]
    photos_photos["photos.photos"]
    thumbnailer_thumbnailer["thumbnailer.thumbnailer"]
    liquid_tags_mdx_liquid_tags["liquid_tags.mdx_liquid_tags"]
    github_activity_github_activity["github_activity.github_activity"]
    disqus_static_disqus_static["disqus_static.disqus_static"]
    linker_linker["linker.linker"]
    Pelican_Core_API_Interaction["Pelican Core API Interaction"]
    Pelican_Configuration_Access["Pelican Configuration Access"]
    Git_Integration_Module["Git Integration Module"]
    External_API_Connectors["External API Connectors"]
    readtime_readtime -- "interacts with" --> Pelican_Core_API_Interaction
    readtime_readtime -- "configured by" --> Pelican_Configuration_Access
    filetime_from_git_content_adapter -- "interacts with" --> Pelican_Core_API_Interaction
    filetime_from_git_content_adapter -- "uses" --> Git_Integration_Module
    photos_photos -- "interacts with" --> Pelican_Core_API_Interaction
    photos_photos -- "identifies images for" --> thumbnailer_thumbnailer
    thumbnailer_thumbnailer -- "processes images from" --> photos_photos
    thumbnailer_thumbnailer -- "interacts with" --> Pelican_Core_API_Interaction
    liquid_tags_mdx_liquid_tags -- "interacts with" --> Pelican_Core_API_Interaction
    liquid_tags_mdx_liquid_tags -- "configured by" --> Pelican_Configuration_Access
    github_activity_github_activity -- "interacts with" --> Pelican_Core_API_Interaction
    github_activity_github_activity -- "fetches data via" --> External_API_Connectors
    disqus_static_disqus_static -- "interacts with" --> Pelican_Core_API_Interaction
    disqus_static_disqus_static -- "fetches data via" --> External_API_Connectors
    linker_linker -- "interacts with" --> Pelican_Core_API_Interaction
    linker_linker -- "configured by" --> Pelican_Configuration_Access
Loading

CodeBoardingDemoContact

Details

The pelican-plugins subsystem significantly extends the capabilities of the Pelican static site generator through a collection of independent, modular plugins. Each plugin, such as readtime.readtime for content metadata enrichment or filetime_from_git.content_adapter for integrating version control data, operates as a distinct functional unit. These plugins primarily interact with the Pelican Core API Interaction layer, which represents their collective engagement with Pelican's internal processing pipeline and event system. Configuration for these plugins is dynamically managed through the Pelican Configuration Access component, abstracting the settings.py file. Specialized plugins like github_activity.github_activity and disqus_static.disqus_static leverage External API Connectors to seamlessly integrate dynamic content from external web services. Concurrently, filetime_from_git.content_adapter utilizes a dedicated Git Integration Module for retrieving historical file information. The subsystem also features an internal media processing workflow where photos.photos identifies images for subsequent optimization by thumbnailer.thumbnailer. This architectural design promotes extensibility, clear separation of concerns, and efficient integration of diverse functionalities into the static site generation process.

readtime.readtime

Calculates and injects an estimated reading time into the metadata of content objects (articles, pages). This enhances the user experience by providing a quick overview of content length.

Related Classes/Methods:

filetime_from_git.content_adapter

Integrates version control metadata, specifically commit dates from Git, into content objects. This allows for displaying creation or last modification times based on source control history.

Related Classes/Methods:

photos.photos

Scans content for image references and gallery definitions, preparing them for further media processing. It acts as an initial stage for media-related enhancements.

Related Classes/Methods:

thumbnailer.thumbnailer

Processes detected images by resizing them and generating thumbnails. This optimizes image delivery and presentation on the static site.

Related Classes/Methods:

liquid_tags.mdx_liquid_tags

Extends the content parsing capabilities to recognize and process custom "liquid tags" within Markdown or reStructuredText. This enables dynamic content embedding, conditional logic, or complex transformations directly within the content source.

Related Classes/Methods:

github_activity.github_activity

Fetches and embeds external activity feeds from GitHub (e.g., recent commits, repository stars) into generated pages, providing dynamic external content integration.

Related Classes/Methods:

disqus_static.disqus_static

Generates static versions of Disqus comments, embedding them directly into content pages. This enhances site performance and reduces reliance on external JavaScript for comments.

Related Classes/Methods:

linker.linker

Facilitates robust internal content linking and transforms special link types (e.g., mailto, internal references) into correct, relative or absolute URLs within the generated site.

Related Classes/Methods:

Pelican Core API Interaction

Represents the internal mechanisms within the plugins that interact with the external Pelican core framework's APIs. This component encapsulates how plugins register themselves and manipulate content within the Pelican ecosystem.

Related Classes/Methods:

Pelican Configuration Access

Represents the internal mechanisms within plugins for reading and interpreting configuration settings from the external settings.py file.

Related Classes/Methods:

Git Integration Module

Represents the specific module responsible for interacting with the external Git version control system to retrieve file metadata.

Related Classes/Methods:

External API Connectors

Represents the modules responsible for making requests to and processing responses from external web services like GitHub and Disqus.

Related Classes/Methods: