Support plugins that extend other plugins #1

Open
opened 2025-05-22 18:03:25 +00:00 by zac · 0 comments
Owner

The currently planned model for plugins doesn't have a way for plugins to extend other plugins. This would be useful for template engine plugins to offer the option to extend the language with plugins. The Rust liquid crate, for example, supports adding custom filters, tags, and blocks. Being to expose that extension interface to other plugins would be very useful. Ideally, this would be supported in zssg in the most general way possible.

Problems to solve:

  • Calling functions in one plugin that are exported from another plugin
    • If this is too much overhead it may practically eliminate the template language extension usecase described above as even in rendering a single page the temple could invoke filters or tags from a plugin thousands of times
  • Describing dependencies between plugins so zssg can fail fast in the case of bad configuration
  • Explore if some kind of access control system between plugins may be of use
The currently planned model for plugins doesn't have a way for plugins to extend other plugins. This would be useful for template engine plugins to offer the option to extend the language with plugins. The Rust `liquid` crate, for example, supports adding custom filters, tags, and blocks. Being to expose that extension interface to other plugins would be very useful. Ideally, this would be supported in zssg in the most general way possible. Problems to solve: - Calling functions in one plugin that are exported from another plugin - If this is too much overhead it may practically eliminate the template language extension usecase described above as even in rendering a single page the temple could invoke filters or tags from a plugin thousands of times - Describing dependencies between plugins so zssg can fail fast in the case of bad configuration - Explore if some kind of access control system between plugins may be of use
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: zac/zssg#1
No description provided.