define('DYNAMIC', PHP_SAPI !== 'cli'); require 'theme/functions.php'; use Bloge\Apps\AdvancedApp; use Bloge\Content\Advanced; use Bloge\Content\PHP as Content; use Bloge\Renderers\Jade as Renderer; use Volter\Data; use Volter\URL; /** * Bloge app * * @package volter9.github.io */ $parsedown = Bloge\process('content', [new Parsedown(), 'text']); $renderer = new Renderer(basepath('theme')); $content = new Advanced(new Content(basepath('content'))); /** * Dispatcher: ignore private folders and map 404 and feed to files */ $content->dispatcher()->map(require 'content/_data/mappings.php')->ignore(Bloge\rFilter('/^_|\\/_/')); /** * Processor: process markdown inside of the articles */ $content->processor()->add(function ($route, array $data) use($parsedown) { return @$data['processor'] === 'markdown' ? $parsedown($route, $data) : $data; }); /** * DataMapper: map default variables, route and content map */ $content->dataMapper()->mapAll(['container' => $content, 'theme' => $renderer, 'view' => 'templates/post.jade', 'data' => new Data(basepath('content/_data')), 'url' => new URL(FULL_URL, URL::baseUrl(__DIR__))])->mapAll(function ($route) { return compact('route');
<?php /** * Dead simple example of Bloge application * * @package bloge/advanced-pack */ use Bloge\Apps\AdvancedApp; use Bloge\Content\Advanced; use Bloge\Content\FrontMatter as Content; use Bloge\Renderers\Twig as Renderer; $content = __DIR__ . '/content'; $theme = __DIR__ . '/theme'; $content = new Advanced(new Content($content)); $content->processor()->add(Bloge\processMerge('header', 'spyc_load'))->add(Bloge\process('content', [new Parsedown(), 'text'])); return new AdvancedApp($content, new Renderer($theme));
<?php /** * Bloge application * * @package bloge/meta-out-pack */ use Bloge\Apps\AdvancedApp; use Bloge\Content\Advanced; use Bloge\Content\Raw as Content; use Bloge\Renderers\Twig as Renderer; function twig_render($string, array $data) { $twig = new Twig_Environment(new Twig_Loader_String()); return $twig->render($string, $data); } $content = __DIR__ . '/content'; $theme = __DIR__ . '/theme'; $renderer = new Renderer($theme); $content = new Advanced(new Content($content)); $content->processor()->add(Bloge\process('content', [new Parsedown(), 'text']))->add(function ($route, $data) { if ($route === 'blog') { $data['content'] = twig_render($data['content'], $data); } return $data; }); $content->dataMapper()->mapAll(['view' => 'page.twig'])->map(spyc_load_file(__DIR__ . '/meta.yml'))->map('blog', ['title' => 'Bloggin is awesome!', 'posts' => $content->browse('blog')]); return new AdvancedApp($content, $renderer);