示例#1
0
 /**
  * Generate the API documentation using the markdown and include files
  *
  * @param $folder
  * @return false|null
  */
 public function generate($folder)
 {
     $source_dir = $folder . '/source';
     if (!is_dir($source_dir)) {
         return false;
     }
     $parser = new Parser();
     $document = $parser->parse(file_get_contents($source_dir . '/index.md'));
     $frontmatter = $document->getYAML();
     $html = $document->getContent();
     $renderer = new BladeRenderer([__DIR__ . '/../resources/views'], ['cache_path' => $source_dir . '/_tmp']);
     // Parse and include optional include markdown files
     if (isset($frontmatter['includes'])) {
         foreach ($frontmatter['includes'] as $include) {
             if (file_exists($include_file = $source_dir . '/includes/_' . $include . '.md')) {
                 $document = $parser->parse(file_get_contents($include_file));
                 $html .= $document->getContent();
             }
         }
     }
     $output = $renderer->render('index', ['page' => $frontmatter, 'content' => $html]);
     file_put_contents($folder . '/index.html', $output);
     // Copy assets
     rcopy($source_dir . '/assets/images/', $folder . '/images');
     rcopy($source_dir . '/assets/stylus/fonts/', $folder . '/css/fonts');
 }
示例#2
0
 protected function View($template, $data = array())
 {
     $paths = array();
     foreach ($this->application->GetActivePluginReflections() as $reflection) {
         $dir = dirname($reflection->getFileName()) . '/views';
         if (is_dir($dir)) {
             $paths[] = dirname($reflection->getFileName()) . '/views';
         }
     }
     $renderer = new BladeRenderer($paths, array('cache_path' => APP_ROOT . 'cache/blade'));
     return $renderer->render($template, $data);
 }
示例#3
0
    /**
     * testAddCompilers
     *
     * @return  void
     */
    public function testAddCompilers()
    {
        $this->instance->addCustomCompiler('upper', function ($expression) {
            return "<?php echo strtoupper{$expression} ?>";
        });
        $expect = <<<HTML
<html>
<body>
\tThis is the master sidebar.

\t<p>This is appended to the master sidebar.</p>
\t<div class="container">
\t\t<p>THIS IS MY BODY CONTENT.</p>
\t</div>
</body>
</html>
HTML;
        $html = $this->instance->render('compiler');
        $this->assertHtmlFormatEquals($expect, $html);
    }