feat(blogo,plugins,listplugin): list plugin support

This commit is contained in:
Guz
2025-01-14 16:05:40 -03:00
parent 22ac932e37
commit 34249f6ab3
2 changed files with 12 additions and 0 deletions

View File

@@ -76,6 +76,13 @@ func New(opts ...Options) Blogo {
func (b *blogo) Use(p Plugin) {
log := b.log.With(slog.String("plugin", p.Name()))
if p, ok := p.(ListPlugin); ok {
log.Debug("Added plugin", slog.String("type", "PluginList"))
for _, p := range p.Plugins() {
b.Use(p)
}
}
if p, ok := p.(SourcerPlugin); ok {
log.Debug("Added plugin", slog.String("type", "SourcerPlugin"))
b.sources = append(b.sources, p)

View File

@@ -24,6 +24,11 @@ type Plugin interface {
Name() string
}
type ListPlugin interface {
Plugin
Plugins() []Plugin
}
type RendererPlugin interface {
Plugin
Render(src fs.File, out io.Writer) error