sub _build_plugin_config {
my ($self) = @_;
- $self->plugins
+
+ my $pluginref = $self->plugins
? pond_read_datum('[ '.$self->plugins.' ]')
- : []
+ : [];
+
+ my @dirs = io->dir($self->path)->splitdir;
+ my $path = '';
+
+ foreach my $dir (@dirs) {
+ $path .= "/$dir";
+ #/home/.../share/pages/blog/config.pond etc
+
+ my $file = $self->_top_dir . "$path/config.pond";
+
+ next if !-f $file;
+
+ next if io($file)->empty;
+
+ my $content = io($file)->slurp;
+
+ my $config = pond_read_datum($content);
+ push @$pluginref, @{$config->{plugins}};
+ }
+
+
+ return $pluginref;
}
sub has_plugin_config { exists $_[0]->plugin_config->{$_[1]} }
$_[0]->replace(HTML::Zoom->from_html($replace));
}}
- ->select('div[data-custom-blog-elements]')->${\sub {
- #blog/author(/post)
-
- return $_[0]->replace('') if $page->path !~ qr#^/blog/([^/]+)/+#;
-
- my $author = $1;
- my $author_templ = $static_dir . "/author-html/$author.html";
-
- if (-f $author_templ) {
- $_[0]->replace(sub {
- HTML::Zoom->from_file($author_templ)->collect('body', {
- into => \my @replace_with,
- })->run;
- HTML::Zoom::ArrayStream->new({ array => \@replace_with })
- });
- } else {
- $_[0]->replace('');
- }
- }}
}
1;