bridgetownrb / bridgetown

A next-generation progressive site generator & fullstack framework, powered by Ruby
https://www.bridgetownrb.com
MIT License
1.16k stars 112 forks source link

feat: Plugins that can add content to the site (components, layouts, etc.) #22

Closed jaredcwhite closed 4 years ago

jaredcwhite commented 4 years ago

This is a "mega" issue to track the ability for Bridgetown plugins to supply a manifest that can be consumed and allow files to be added to the site build from the plugin folders same as if they were in the main site folder. This would include components (aka {% render "cool_plugin/widget" %}), layouts, pages, static files, and data. A certain kind of plugin utilizing these features could be called a "theme", but there are plenty of other interesting use cases.

I already have a bunch of this working locally in a proof-of-concept branch, which is pretty neat, but I think some of the usability issues need to be thought through carefully.

jaredcwhite commented 4 years ago

Just making a note here that PR #41 resolves all of the questions I itemized above with the exception of "What if multiple plugins try writing to the same url/data/etc. location? Should the first one win?" (I'll have to go look up which one wins, actually!) and "need more debug logging". Things to address in followup enhancements I think.