Code Style and refactorings

This commit is contained in:
Stéphane Goetz 2015-07-20 15:59:52 +02:00 committed by Stéphane Goetz
parent f903b0060c
commit 061ea5ea55
21 changed files with 193 additions and 145 deletions

BIN
daux.phar Normal file → Executable file

Binary file not shown.

View File

@ -66,7 +66,5 @@ software, even if advised of the possibility of such damage.
require_once("vendor/autoload.php"); require_once("vendor/autoload.php");
\Todaymade\Daux\Daux::initConstants();
$application = new \Todaymade\Daux\Generator\Application(); $application = new \Todaymade\Daux\Generator\Application();
$application->run(); $application->run();

View File

@ -84,6 +84,4 @@ if (file_exists('vendor/autoload.php')) {
throw new Exception("Impossible to load Daux, missing vendor and phar"); throw new Exception("Impossible to load Daux, missing vendor and phar");
} }
\Todaymade\Daux\Daux::initConstants();
\Todaymade\Daux\Server\Server::serve($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], $_REQUEST); \Todaymade\Daux\Server\Server::serve($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], $_REQUEST);

View File

@ -53,22 +53,32 @@ class Daux
} }
} }
public static function initConstants()
{
define("DS", DIRECTORY_SEPARATOR);
}
/** /**
* @param string $override_file * @param string $override_file
* @throws Exception * @throws Exception
*/ */
public function initialize($override_file = 'config.json') public function initialize($override_file = 'config.json')
{ {
//global.json (docs dir, markdown files) // global.json
$this->loadConfig(); $this->loadBaseConfiguration();
//config.json // Check the documentation path
$this->loadConfigOverrides($override_file); $this->docs_path = $this->options['docs_directory'];
if (!is_dir($this->docs_path) &&
!is_dir($this->docs_path = $this->local_base . DIRECTORY_SEPARATOR . $this->docs_path)
) {
throw new Exception('The Docs directory does not exist. Check the path again : ' . $this->docs_path);
}
// <docs>/config.json, <overrides.json>
$this->loadConfigurationOverrides($override_file);
// Set a valid default timezone
if (isset($this->options['timezone'])) {
date_default_timezone_set($this->options['timezone']);
} elseif (!ini_get('date.timezone')) {
date_default_timezone_set('GMT');
}
} }
/** /**
@ -76,31 +86,18 @@ class Daux
* *
* @throws Exception * @throws Exception
*/ */
private function loadConfig() protected function loadBaseConfiguration()
{ {
$default_config = [ $this->options = new Config();
// Set the default configuration
$this->options->merge([
'docs_directory' => 'docs', 'docs_directory' => 'docs',
'valid_content_extensions' => ['md', 'markdown'] 'valid_content_extensions' => ['md', 'markdown']
]; ]);
$global_config_file = $this->local_base . DS . 'global.json'; // Load the global configuration
$this->loadConfiguration($this->local_base . DIRECTORY_SEPARATOR . 'global.json', false);
if (!file_exists($global_config_file)) {
throw new Exception('The Global Config file is missing. Requested File : ' . $global_config_file);
}
$default_config = array_merge($default_config, json_decode(file_get_contents($global_config_file), true));
if (!isset($default_config)) {
throw new Exception('The Global Config file is corrupt. Check that the JSON encoding is correct');
}
$this->docs_path = $default_config['docs_directory'];
if (!is_dir($this->docs_path) && !is_dir($this->docs_path = $this->local_base . DS . $this->docs_path)) {
throw new Exception('The Docs directory does not exist. Check the path again : ' . $this->docs_path);
}
$this->options = new Config();
$this->options->merge($default_config);
} }
/** /**
@ -111,33 +108,37 @@ class Daux
* @param string $override_file * @param string $override_file
* @throws Exception * @throws Exception
*/ */
private function loadConfigOverrides($override_file) protected function loadConfigurationOverrides($override_file)
{ {
// Read documentation overrides // Read documentation overrides
$config_file = $this->docs_path . DS . 'config.json'; $this->loadConfiguration($this->docs_path . DIRECTORY_SEPARATOR . 'config.json');
if (file_exists($config_file)) {
$config = json_decode(file_get_contents($config_file), true);
if (!isset($config)) {
throw new Exception('The local config file is missing. Check path : ' . $config_file);
}
$this->options->merge($config);
}
// Read command line overrides // Read command line overrides
$config_file = $this->local_base . DS . $override_file; if (!is_null($override_file)) {
if (!is_null($override_file) && file_exists($config_file)) { $this->loadConfiguration($this->local_base . DIRECTORY_SEPARATOR . $override_file);
$config = json_decode(file_get_contents($config_file), true); }
if (!isset($config)) { }
throw new Exception('The local config file is missing. Check path : ' . $config_file);
/**
* @param string $config_file
* @param bool $optional
* @throws Exception
*/
protected function loadConfiguration($config_file, $optional = true)
{
if (!file_exists($config_file)) {
if ($optional) {
return;
} }
$this->options->merge($config);
throw new Exception('The configuration file is missing. Check path : ' . $config_file);
} }
if (isset($this->options['timezone'])) { $config = json_decode(file_get_contents($config_file), true);
date_default_timezone_set($this->options['timezone']); if (!isset($config)) {
} elseif (!ini_get('date.timezone')) { throw new Exception('The configuration file "' . $config_file . '" is corrupt. Is your JSON well-formed ?');
date_default_timezone_set('GMT');
} }
$this->options->merge($config);
} }
/** /**
@ -169,7 +170,7 @@ class Daux
'mode' => $this->mode, 'mode' => $this->mode,
'local_base' => $this->local_base, 'local_base' => $this->local_base,
'docs_path' => $this->docs_path, 'docs_path' => $this->docs_path,
'templates' => $this->internal_base . DS . 'templates', 'templates' => $this->internal_base . DIRECTORY_SEPARATOR . 'templates',
]; ];
$this->options->conservativeMerge($default); $this->options->conservativeMerge($default);

View File

@ -4,6 +4,12 @@ use Todaymade\Daux\Tree\Directory;
class DauxHelper class DauxHelper
{ {
/**
* Set a new base_url for the configuration
*
* @param Config $config
* @param string $base_url
*/
public static function rebaseConfiguration(Config $config, $base_url) public static function rebaseConfiguration(Config $config, $base_url)
{ {
// Avoid changing the url if it is already correct // Avoid changing the url if it is already correct
@ -24,12 +30,13 @@ class DauxHelper
*/ */
public static function getTheme($params, $current_url) public static function getTheme($params, $current_url)
{ {
$theme_folder = $params['local_base'] . DS . 'resources' . DS . 'themes' . DS . $params['html']['theme']; $theme_folder = $params['local_base'] . DIRECTORY_SEPARATOR . 'resources' .
DIRECTORY_SEPARATOR . 'themes' . DIRECTORY_SEPARATOR . $params['html']['theme'];
$theme_url = $params['base_url'] . "resources/themes/" . $params['html']['theme'] . '/'; $theme_url = $params['base_url'] . "resources/themes/" . $params['html']['theme'] . '/';
$theme = array(); $theme = array();
if (is_file($theme_folder . DS . "config.json")) { if (is_file($theme_folder . DIRECTORY_SEPARATOR . "config.json")) {
$theme = json_decode(file_get_contents($theme_folder . DS . "config.json"), true); $theme = json_decode(file_get_contents($theme_folder . DIRECTORY_SEPARATOR . "config.json"), true);
if (!$theme) { if (!$theme) {
$theme = array(); $theme = array();
} }
@ -44,7 +51,7 @@ class DauxHelper
'require-jquery' => false, 'require-jquery' => false,
'bootstrap-js' => false, 'bootstrap-js' => false,
'favicon' => '<base_url>resources/img/favicon.png', 'favicon' => '<base_url>resources/img/favicon.png',
'templates' => $theme_folder . DS . 'templates', 'templates' => $theme_folder . DIRECTORY_SEPARATOR . 'templates',
]; ];
$substitutions = [ $substitutions = [

View File

@ -49,6 +49,17 @@ class LinkRenderer extends \League\CommonMark\Inline\Renderer\LinkRenderer
*/ */
public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer) public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer)
{ {
// This can't be in the method type as
// the method is an abstract and should
// have the same interface
if (!$inline instanceof Link) {
throw new \RuntimeException(
"Wrong type passed to " . __CLASS__ . "::" . __METHOD__ .
" the expected type was 'League\\CommonMark\\Inline\\Element\\Link' but '" .
get_class($inline) . "' was provided"
);
}
$element = parent::render($inline, $htmlRenderer); $element = parent::render($inline, $htmlRenderer);
$url = $inline->getUrl(); $url = $inline->getUrl();

View File

@ -15,6 +15,17 @@ class LinkRenderer extends \Todaymade\Daux\Format\Base\CommonMark\LinkRenderer
*/ */
public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer) public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer)
{ {
// This can't be in the method type as
// the method is an abstract and should
// have the same interface
if (!$inline instanceof Link) {
throw new \RuntimeException(
"Wrong type passed to " . __CLASS__ . "::" . __METHOD__ .
" the expected type was 'League\\CommonMark\\Inline\\Element\\Link' but '" .
get_class($inline) . "' was provided"
);
}
// Default handling // Default handling
$element = parent::render($inline, $htmlRenderer); $element = parent::render($inline, $htmlRenderer);
$url = $inline->getUrl(); $url = $inline->getUrl();

View File

@ -31,6 +31,9 @@ class Generator implements \Todaymade\Daux\Format\Base\Generator
$this->converter = new CommonMarkConverter(['daux' => $this->daux->getParams()]); $this->converter = new CommonMarkConverter(['daux' => $this->daux->getParams()]);
} }
/**
* {@inheritdoc}
*/
public function generateAll(InputInterface $input, OutputInterface $output, $width) public function generateAll(InputInterface $input, OutputInterface $output, $width)
{ {
$params = $this->daux->getParams(); $params = $this->daux->getParams();

View File

@ -25,7 +25,7 @@ class Publisher
protected $previous_title; protected $previous_title;
/** /**
* @var string terminal width * @var integer terminal width
*/ */
public $width; public $width;

View File

@ -39,14 +39,14 @@ class Generator implements \Todaymade\Daux\Format\Base\Generator, LiveGenerator
$params = $this->daux->getParams(); $params = $this->daux->getParams();
if (is_null($destination)) { if (is_null($destination)) {
$destination = $this->daux->local_base . DS . 'static'; $destination = $this->daux->local_base . DIRECTORY_SEPARATOR . 'static';
} }
$this->runAction( $this->runAction(
"Copying Static assets ...", "Copying Static assets ...",
$output, $output,
$width, $width,
function () use ($destination) { function() use ($destination) {
Helper::copyAssets($destination, $this->daux->local_base); Helper::copyAssets($destination, $this->daux->local_base);
} }
); );
@ -76,7 +76,7 @@ class Generator implements \Todaymade\Daux\Format\Base\Generator, LiveGenerator
foreach ($tree->getEntries() as $key => $node) { foreach ($tree->getEntries() as $key => $node) {
if ($node instanceof Directory) { if ($node instanceof Directory) {
$new_output_dir = $output_dir . DS . $key; $new_output_dir = $output_dir . DIRECTORY_SEPARATOR . $key;
mkdir($new_output_dir); mkdir($new_output_dir);
$this->generateRecursive($node, $new_output_dir, $params, $output, $width, '../' . $base_url); $this->generateRecursive($node, $new_output_dir, $params, $output, $width, '../' . $base_url);
@ -87,14 +87,14 @@ class Generator implements \Todaymade\Daux\Format\Base\Generator, LiveGenerator
"- " . $node->getUrl(), "- " . $node->getUrl(),
$output, $output,
$width, $width,
function () use ($node, $output_dir, $key, $params) { function() use ($node, $output_dir, $key, $params) {
if (!$node instanceof Content) { if (!$node instanceof Content) {
copy($node->getPath(), $output_dir . DS . $key); copy($node->getPath(), $output_dir . DIRECTORY_SEPARATOR . $key);
return; return;
} }
$generated = $this->generateOne($node, $params); $generated = $this->generateOne($node, $params);
file_put_contents($output_dir . DS . $key, $generated->getContent()); file_put_contents($output_dir . DIRECTORY_SEPARATOR . $key, $generated->getContent());
} }
); );
} }

View File

@ -5,8 +5,6 @@ use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\OutputInterface;
use Todaymade\Daux\Daux; use Todaymade\Daux\Daux;
use Todaymade\Daux\Format\HTML\Generator as HTMLGenerator;
use Todaymade\Daux\Format\Confluence\Generator as ConfluenceGenerator;
class Command extends SymfonyCommand class Command extends SymfonyCommand
{ {
@ -53,7 +51,7 @@ class Command extends SymfonyCommand
} }
$class = $daux->getProcessorClass(); $class = $daux->getProcessorClass();
if ($class) { if (!empty($class)) {
$daux->setProcessor(new $class($daux, $output, $width)); $daux->setProcessor(new $class($daux, $output, $width));
} }
} }

View File

@ -16,8 +16,11 @@ class Helper
mkdir($path); mkdir($path);
} }
mkdir($path . DS . 'resources'); mkdir($path . DIRECTORY_SEPARATOR . 'resources');
static::copyRecursive($local_base . DS . 'resources', $path . DS . 'resources'); static::copyRecursive(
$local_base . DIRECTORY_SEPARATOR . 'resources',
$path . DIRECTORY_SEPARATOR . 'resources'
);
} }
/** /**

View File

@ -25,7 +25,7 @@ class Server
$daux->initialize(); $daux->initialize();
$class = $daux->getProcessorClass(); $class = $daux->getProcessorClass();
if ($class) { if (!empty($class)) {
$daux->setProcessor(new $class($daux, new NullOutput(), 0)); $daux->setProcessor(new $class($daux, new NullOutput(), 0));
} }
@ -101,7 +101,7 @@ class Server
* Handle an incoming request * Handle an incoming request
* *
* @param array $query * @param array $query
* @return \Todaymade\Daux\Tree\Entry * @return \Todaymade\Daux\Format\Base\Page
* @throws Exception * @throws Exception
* @throws NotFoundException * @throws NotFoundException
*/ */
@ -120,7 +120,7 @@ class Server
/** /**
* @param string $request * @param string $request
* @return \Todaymade\Daux\Tree\Entry * @return \Todaymade\Daux\Format\Base\Page
* @throws NotFoundException * @throws NotFoundException
*/ */
private function getPage($request) private function getPage($request)

View File

@ -27,7 +27,7 @@ class Builder
continue; continue;
} }
$path = $node->getPath() . DS . $file; $path = $node->getPath() . DIRECTORY_SEPARATOR . $file;
if (is_dir($path) && in_array($file, $ignore['folders'])) { if (is_dir($path) && in_array($file, $ignore['folders'])) {
continue; continue;
@ -37,9 +37,9 @@ class Builder
} }
if (is_dir($path)) { if (is_dir($path)) {
$new = new Directory($node, static::getUriFromFilename(static::getFilename($path)), $path); $new = new Directory($node, static::removeSortingInformations(static::getFilename($path)), $path);
$new->setName(DauxHelper::pathinfo($path)['filename']); $new->setName(DauxHelper::pathinfo($path)['filename']);
$new->setTitle(static::getTitleFromFilename($new->getName())); $new->setTitle(static::removeSortingInformations($new->getName(), ' '));
static::build($new, $ignore); static::build($new, $ignore);
} else { } else {
static::createContent($node, $path); static::createContent($node, $path);
@ -61,14 +61,14 @@ class Builder
$config = $parent->getConfig(); $config = $parent->getConfig();
if (!in_array(pathinfo($path, PATHINFO_EXTENSION), $config['valid_content_extensions'])) { if (!in_array(pathinfo($path, PATHINFO_EXTENSION), $config['valid_content_extensions'])) {
$entry = new Raw($parent, static::getUriFromFilename(static::getFilename($path)), $path, filemtime($path)); $entry = new Raw($parent, static::removeSortingInformations(static::getFilename($path)), $path, filemtime($path));
$entry->setTitle(static::getTitleFromFilename($name)); $entry->setTitle(static::removeSortingInformations($name, ' '));
$entry->setName($name); $entry->setName($name);
return $entry; return $entry;
} }
$uri = static::getUriFromFilename($name); $uri = static::removeSortingInformations($name);
if ($config['mode'] === Daux::STATIC_MODE) { if ($config['mode'] === Daux::STATIC_MODE) {
$uri .= '.html'; $uri .= '.html';
} }
@ -82,7 +82,7 @@ class Builder
$entry->setTitle($parent->getTitle()); $entry->setTitle($parent->getTitle());
} }
} else { } else {
$entry->setTitle(static::getTitleFromFilename($name)); $entry->setTitle(static::removeSortingInformations($name, ' '));
} }
$entry->setName($name); $entry->setName($name);
@ -104,7 +104,7 @@ class Builder
* @param string $filename * @param string $filename
* @return string * @return string
*/ */
protected static function getTitleFromFilename($filename) protected static function removeSortingInformations($filename, $separator = '_')
{ {
$filename = explode('_', $filename); $filename = explode('_', $filename);
if ($filename[0] == '' || is_numeric($filename[0])) { if ($filename[0] == '' || is_numeric($filename[0])) {
@ -115,26 +115,7 @@ class Builder
$filename[0] = substr($t, 1); $filename[0] = substr($t, 1);
} }
} }
$filename = implode(' ', $filename); $filename = implode($separator, $filename);
return $filename;
}
/**
* @param string $filename
* @return string
*/
protected static function getUriFromFilename($filename)
{
$filename = explode('_', $filename);
if ($filename[0] == '' || is_numeric($filename[0])) {
unset($filename[0]);
} else {
$t = $filename[0];
if ($t[0] == '-') {
$filename[0] = substr($t, 1);
}
}
$filename = implode('_', $filename);
return $filename; return $filename;
} }

View File

@ -58,7 +58,7 @@ class Directory extends Entry
} }
/** /**
* @return Content|false * @return Content|null
*/ */
public function getFirstPage() public function getFirstPage()
{ {
@ -87,7 +87,7 @@ class Directory extends Entry
} }
} }
return false; return null;
} }
/** /**

View File

@ -3,27 +3,33 @@
<?php if ($params['html']['date_modified']) { ?> <?php if ($params['html']['date_modified']) { ?>
<div class="page-header sub-header clearfix"> <div class="page-header sub-header clearfix">
<h1><?php <h1><?php
if ($page['breadcrumbs']) echo $this->get_breadcrumb_title($page, $base_page); if ($page['breadcrumbs']) {
else echo $page['title']; echo $this->get_breadcrumb_title($page, $base_page);
} else {
echo $page['title'];
}
?> ?>
</h1> </h1>
<span style="float: left; font-size: 10px; color: gray;"> <span style="float: left; font-size: 10px; color: gray;">
<?php echo date("l, F j, Y", $page['modified_time']); ?> <?= date("l, F j, Y", $page['modified_time']); ?>
</span> </span>
<span style="float: right; font-size: 10px; color: gray;"> <span style="float: right; font-size: 10px; color: gray;">
<?php echo date("g:i A", $page['modified_time']); ?> <?= date("g:i A", $page['modified_time']); ?>
</span> </span>
</div> </div>
<?php } else { ?> <?php } else { ?>
<div class="page-header"> <div class="page-header">
<h1><?php <h1><?php
if ($page['breadcrumbs']) echo $this->get_breadcrumb_title($page, $base_page); if ($page['breadcrumbs']) {
else echo $page['title']; echo $this->get_breadcrumb_title($page, $base_page);
} else {
echo $page['title'];
}
?> ?>
</h1> </h1>
</div> </div>
<?php } ?> <?php } ?>
<?php echo $page['content']; ?> <?= $page['content']; ?>
</article> </article>

View File

@ -2,8 +2,8 @@
<article> <article>
<div class="page-header"> <div class="page-header">
<h1><?php echo $page['title']; ?></h1> <h1><?= $page['title']; ?></h1>
</div> </div>
<?php echo $page['content']; ?> <?= $page['content']; ?>
</article> </article>

View File

@ -5,19 +5,23 @@
</div> </div>
</div> </div>
<?php if ($params['html']['repo']) { ?> <?php if ($params['html']['repo']) { ?>
<a href="https://github.com/<?php echo $params['html']['repo']; ?>" target="_blank" id="github-ribbon" class="hidden-print"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a> <a href="https://github.com/<?= $params['html']['repo']; ?>" target="_blank" id="github-ribbon" class="hidden-print"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
<?php } ?> <?php } ?>
<div class="homepage-hero well container-fluid"> <div class="homepage-hero well container-fluid">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="text-center col-sm-12"> <div class="text-center col-sm-12">
<?php if ($params['tagline']) echo '<h2>' . $params['tagline'] . '</h2>'; ?> <?php if ($params['tagline']) {
echo '<h2>' . $params['tagline'] . '</h2>';
} ?>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-10 col-sm-offset-1"> <div class="col-sm-10 col-sm-offset-1">
<?php if ($params['image']) echo '<img class="homepage-image img-responsive" src="' . $params['image'] . '" alt="' . $params['title'] . '">'; ?> <?php if ($params['image']) {
echo '<img class="homepage-image img-responsive" src="' . $params['image'] . '" alt="' . $params['title'] . '">';
} ?>
</div> </div>
</div> </div>
</div> </div>
@ -28,8 +32,12 @@
<div class="row"> <div class="row">
<div class="text-center col-sm-12"> <div class="text-center col-sm-12">
<?php <?php
if ($params['html']['repo']) echo '<a href="https://github.com/' . $params['html']['repo'] . '" class="btn btn-secondary btn-hero">View On GitHub</a>'; if ($params['html']['repo']) {
foreach ($page['entry_page'] as $key => $node) echo '<a href="' . $node . '" class="btn btn-primary btn-hero">' . $key . '</a>'; echo '<a href="https://github.com/' . $params['html']['repo'] . '" class="btn btn-secondary btn-hero">View On GitHub</a>';
}
foreach ($page['entry_page'] as $key => $node) {
echo '<a href="' . $node . '" class="btn btn-primary btn-hero">' . $key . '</a>';
}
?> ?>
</div> </div>
</div> </div>
@ -40,7 +48,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-sm-10 col-sm-offset-1"> <div class="col-sm-10 col-sm-offset-1">
<?php echo $page['content'];?> <?= $page['content']; ?>
</div> </div>
</div> </div>
</div> </div>
@ -52,7 +60,9 @@
<div class="col-sm-5 col-sm-offset-1"> <div class="col-sm-5 col-sm-offset-1">
<?php if (!empty($params['html']['links'])) { ?> <?php if (!empty($params['html']['links'])) { ?>
<ul class="footer-nav"> <ul class="footer-nav">
<?php foreach ($params['html']['links'] as $name => $url) echo '<li><a href="' . $url . '" target="_blank">' . $name . '</a></li>'; ?> <?php foreach ($params['html']['links'] as $name => $url) {
echo '<li><a href="' . $url . '" target="_blank">' . $name . '</a></li>';
} ?>
</ul> </ul>
<?php } ?> <?php } ?>
</div> </div>
@ -60,10 +70,10 @@
<div class="pull-right"> <div class="pull-right">
<?php <?php
if (!empty($params['html']['twitter'])) { if (!empty($params['html']['twitter'])) {
foreach($params['html']['twitter'] as $handle) { foreach ($params['html']['twitter'] as $handle) {
?> ?>
<div class="twitter"> <div class="twitter">
<iframe allowtransparency="true" frameborder="0" scrolling="no" style="width:162px; height:20px;" src="https://platform.twitter.com/widgets/follow_button.html?screen_name=<?php echo $handle;?>&amp;show_count=false"></iframe> <iframe allowtransparency="true" frameborder="0" scrolling="no" style="width:162px; height:20px;" src="https://platform.twitter.com/widgets/follow_button.html?screen_name=<?= $handle; ?>&amp;show_count=false"></iframe>
</div> </div>
<?php <?php
} }

View File

@ -4,20 +4,24 @@
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]--> <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head> <head>
<title><?php echo $page['title']; ?></title> <title><?= $page['title']; ?></title>
<meta name="description" content="<?php echo $params['tagline'];?>" /> <meta name="description" content="<?= $params['tagline']; ?>" />
<meta name="author" content="<?php echo $params['author']; ?>"> <meta name="author" content="<?= $params['author']; ?>">
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="icon" href="<?php echo $params['theme']['favicon']; ?>" type="image/x-icon"> <link rel="icon" href="<?= $params['theme']['favicon']; ?>" type="image/x-icon">
<!-- Mobile --> <!-- Mobile -->
<meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Font --> <!-- Font -->
<?php foreach ($params['theme']['fonts'] as $font) echo "<link href='$font' rel='stylesheet' type='text/css'>"; ?> <?php foreach ($params['theme']['fonts'] as $font) {
echo "<link href='$font' rel='stylesheet' type='text/css'>";
} ?>
<!-- CSS --> <!-- CSS -->
<?php foreach ($params['theme']['css'] as $css) echo "<link href='$css' rel='stylesheet' type='text/css'>"; ?> <?php foreach ($params['theme']['css'] as $css) {
echo "<link href='$css' rel='stylesheet' type='text/css'>";
} ?>
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
@ -26,27 +30,35 @@
<body> <body>
<?= $this->section('content'); ?> <?= $this->section('content'); ?>
<?php if ($params['html']['google_analytics']) { <?php
$this->insert('theme::partials/google_analytics', ['analytics' => $params['html']['google_analytics'], 'host' => array_key_exists('host', $params)? $params['host'] : '']); if ($params['html']['google_analytics']) {
} ?> $this->insert('theme::partials/google_analytics', ['analytics' => $params['html']['google_analytics'], 'host' => array_key_exists('host', $params) ? $params['host'] : '']);
<?php if ($params['html']['piwik_analytics']) { }
if ($params['html']['piwik_analytics']) {
$this->insert('theme::partials/piwik_analytics', ['url' => $params['html']['piwik_analytics'], 'id' => $params['html']['piwik_analytics_id']]); $this->insert('theme::partials/piwik_analytics', ['url' => $params['html']['piwik_analytics'], 'id' => $params['html']['piwik_analytics_id']]);
} ?> }
?>
<!-- jQuery --> <!-- jQuery -->
<?php <?php
if ($params['theme']['require-jquery']) echo '<script src="' . $base_url . 'resources/js/jquery-1.11.0.min.js' . '"></script>'; if ($params['theme']['require-jquery']) {
if ($params['theme']['bootstrap-js']) echo '<script src="' . $base_url . 'resources/js/bootstrap.min.js' . '"></script>'; echo '<script src="' . $base_url . 'resources/js/jquery-1.11.0.min.js' . '"></script>';
}
if ($params['theme']['bootstrap-js']) {
echo '<script src="' . $base_url . 'resources/js/bootstrap.min.js' . '"></script>';
}
?> ?>
<!-- hightlight.js --> <!-- hightlight.js -->
<script src="<?php echo $base_url; ?>resources/js/highlight.min.js"></script> <script src="<?= $base_url; ?>resources/js/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script> <script>hljs.initHighlightingOnLoad();</script>
<!-- JS --> <!-- JS -->
<?php foreach ($params['theme']['js'] as $js) echo '<script src="' . $js . '"></script>'; ?> <?php foreach ($params['theme']['js'] as $js) {
echo '<script src="' . $js . '"></script>';
} ?>
<script src="<?php echo $base_url; ?>resources/js/custom.js"></script> <script src="<?= $base_url; ?>resources/js/custom.js"></script>
</body> </body>
</html> </html>

View File

@ -1,7 +1,7 @@
<?php $this->layout('theme::layout/00_layout') ?> <?php $this->layout('theme::layout/00_layout') ?>
<?php if ($params['html']['repo']) { ?> <?php if ($params['html']['repo']) { ?>
<a href="https://github.com/<?php echo $params['html']['repo']; ?>" target="_blank" id="github-ribbon" class="hidden-print"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a> <a href="https://github.com/<?= $params['html']['repo']; ?>" target="_blank" id="github-ribbon" class="hidden-print"><img src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"></a>
<?php } ?> <?php } ?>
<div class="container-fluid fluid-height wrapper"> <div class="container-fluid fluid-height wrapper">
<div class="navbar navbar-fixed-top hidden-print"> <div class="navbar navbar-fixed-top hidden-print">
@ -22,29 +22,38 @@
<div id="sub-nav-collapse" class="sub-nav-collapse"> <div id="sub-nav-collapse" class="sub-nav-collapse">
<!-- Navigation --> <!-- Navigation -->
<?php <?php
if ($page['language'] !== '') echo $this->get_navigation($tree->value[$page['language']], $page['language'], isset($params['request'])? $params['request'] : '', $base_page, $params['mode']); if ($page['language'] !== '') {
else echo $this->get_navigation($tree, '', isset($params['request'])? $params['request'] : '', $base_page, $params['mode']); echo $this->get_navigation($tree->value[$page['language']], $page['language'], isset($params['request']) ? $params['request'] : '', $base_page, $params['mode']);
} else {
echo $this->get_navigation($tree, '', isset($params['request']) ? $params['request'] : '', $base_page, $params['mode']);
}
?> ?>
<?php if (!empty($params['html']['links']) || !empty($params['html']['twitter']) || $params['html']['toggle_code']) { ?> <?php if (!empty($params['html']['links']) || !empty($params['html']['twitter']) || $params['html']['toggle_code']) { ?>
<div class="well well-sidebar"> <div class="well well-sidebar">
<!-- Links --> <!-- Links -->
<?php foreach ($params['html']['links'] as $name => $url) echo '<a href="' . $url . '" target="_blank">' . $name . '</a><br>'; ?> <?php
<?php if ($params['html']['toggle_code']) echo '<a href="#" id="toggleCodeBlockBtn" onclick="toggleCodeBlocks();">Show Code Blocks Inline</a><br>'; ?> foreach ($params['html']['links'] as $name => $url) {
echo '<a href="' . $url . '" target="_blank">' . $name . '</a><br>';
}
if ($params['html']['toggle_code']) {
echo '<a href="#" id="toggleCodeBlockBtn" onclick="toggleCodeBlocks();">Show Code Blocks Inline</a><br>';
}
?>
<!-- Twitter --> <!-- Twitter -->
<?php foreach ($params['html']['twitter'] as $handle) { ?> <?php foreach ($params['html']['twitter'] as $handle) { ?>
<div class="twitter"> <div class="twitter">
<hr/> <hr/>
<iframe allowtransparency="true" frameborder="0" scrolling="no" style="width:162px; height:20px;" src="https://platform.twitter.com/widgets/follow_button.html?screen_name=<?php echo $handle;?>&amp;show_count=false"></iframe> <iframe allowtransparency="true" frameborder="0" scrolling="no" style="width:162px; height:20px;" src="https://platform.twitter.com/widgets/follow_button.html?screen_name=<?= $handle; ?>&amp;show_count=false"></iframe>
</div> </div>
<?php } ?> <?php } ?>
</div> </div>
<?php } ?> <?php } ?>
</div> </div>
</div> </div>
<div class="right-column <?php echo ($params['html']['float']?'float-view':''); ?> content-area col-sm-9"> <div class="right-column <?= $params['html']['float'] ? 'float-view' : ''; ?> content-area col-sm-9">
<div class="content-page"> <div class="content-page">
<?= $this->section('content'); ?> <?= $this->section('content'); ?>
</div> </div>

View File

@ -1,2 +1,2 @@
<a class="brand navbar-brand pull-left" href="<?= $params['base_page'] . $params['index']->getUri(); ?>"><?php echo $params['title']; ?></a> <a class="brand navbar-brand pull-left" href="<?= $params['base_page'] . $params['index']->getUri(); ?>"><?= $params['title']; ?></a>
<p class="navbar-text pull-right">Generated by <a href="http://daux.io">Daux.io</a></p> <p class="navbar-text pull-right">Generated by <a href="http://daux.io">Daux.io</a></p>