Various small improvements
This commit is contained in:
parent
afd0a4d7a3
commit
b129a4fb12
4 changed files with 42 additions and 42 deletions
|
@ -122,7 +122,7 @@ With this command you can specify a file or folder to limit which files it will
|
||||||
|
|
||||||
Pico accepts the problems of having redundant documentation on different places (concretely Pico's inline user docs, the `README.md` and the website) for the sake of a better user experience. When updating the docs, please make sure to keep them in sync.
|
Pico accepts the problems of having redundant documentation on different places (concretely Pico's inline user docs, the `README.md` and the website) for the sake of a better user experience. When updating the docs, please make sure to keep them in sync.
|
||||||
|
|
||||||
If you update the [`README.md`](https://github.com/picocms/Pico/blob/master/README.md) or [`content-sample/index.md`](https://github.com/picocms/Pico/blob/master/content-sample/index.md), please make sure to update the corresponding files in the [`_docs`](https://github.com/picocms/picocms.github.io/tree/master/_docs/) folder of the `picocms.github.io` repo (i.e. [Pico's website](http://picocms.org/docs/)) and vice versa. Unfortunately this involves three (!) different markdown parsers. If you're experiencing problems, use Pico's [`erusev/parsedown-extra`](https://github.com/erusev/parsedown-extra) as a reference. You can try to make the contents compatible to [Kramdown](http://kramdown.gettalong.org/) (Pico's website) and [Redcarpet](https://github.com/vmg/redcarpet) (`README.md`) by yourself, otherwise please address the issues in your pull request message and we'll take care of it.
|
If you update the [`README.md`](https://github.com/picocms/Pico/blob/master/README.md) or [`content-sample/index.md`](https://github.com/picocms/Pico/blob/master/content-sample/index.md), please make sure to update the corresponding files in the [`_docs`](https://github.com/picocms/picocms.github.io/tree/master/_docs/) folder of the `picocms.github.io` repo (i.e. [Pico's website](http://picocms.org/docs/)) and vice versa. Unfortunately this involves three (!) different markdown parsers. If you're experiencing problems, use Pico's [`erusev/parsedown-extra`](https://github.com/erusev/parsedown-extra) as a reference. You can try to make the contents compatible to [Kramdown](http://kramdown.gettalong.org/) (Pico's website) and [CommonMarker](https://github.com/gjtorikian/commonmarker) (`README.md`) by yourself, otherwise please address the issues in your pull request message and we'll take care of it.
|
||||||
|
|
||||||
Versioning
|
Versioning
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"php": ">=5.3.6",
|
"php": ">=5.3.6",
|
||||||
"ext-dom": "*",
|
"ext-dom": "*",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"twig/twig": "^1.34",
|
"twig/twig": "^1.35",
|
||||||
"symfony/yaml" : "^2.8",
|
"symfony/yaml" : "^2.8",
|
||||||
"erusev/parsedown": "^1.6",
|
"erusev/parsedown": "^1.6",
|
||||||
"erusev/parsedown-extra": "^0.7"
|
"erusev/parsedown-extra": "^0.7"
|
||||||
|
|
|
@ -15,10 +15,10 @@ if (PHP_VERSION_ID < 50306) {
|
||||||
die('Pico requires PHP 5.3.6 or above to run');
|
die('Pico requires PHP 5.3.6 or above to run');
|
||||||
}
|
}
|
||||||
if (!extension_loaded('dom')) {
|
if (!extension_loaded('dom')) {
|
||||||
die('Pico requires the PHP extension "dom" to run');
|
die("Pico requires the PHP extension 'dom' to run");
|
||||||
}
|
}
|
||||||
if (!extension_loaded('mbstring')) {
|
if (!extension_loaded('mbstring')) {
|
||||||
die('Pico requires the PHP extension "mbstring" to run');
|
die("Pico requires the PHP extension 'mbstring' to run");
|
||||||
}
|
}
|
||||||
|
|
||||||
// load dependencies
|
// load dependencies
|
||||||
|
|
58
lib/Pico.php
58
lib/Pico.php
|
@ -730,7 +730,7 @@ class Pico
|
||||||
}
|
}
|
||||||
|
|
||||||
// trigger onPluginManuallyLoaded event
|
// trigger onPluginManuallyLoaded event
|
||||||
// the event is also called on the newly loaded plugin, allowing you to distinguish manual and auto loading
|
// the event is also triggered on the newly loaded plugin, allowing you to distinguish manual and auto loading
|
||||||
$this->triggerEvent('onPluginManuallyLoaded', array($plugin));
|
$this->triggerEvent('onPluginManuallyLoaded', array($plugin));
|
||||||
|
|
||||||
return $plugin;
|
return $plugin;
|
||||||
|
@ -921,9 +921,8 @@ class Pico
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->config['timezone']) {
|
if (!$this->config['timezone']) {
|
||||||
// explicitly set a default timezone to prevent a E_NOTICE
|
// explicitly set a default timezone to prevent a E_NOTICE when no timezone is set;
|
||||||
// when no timezone is set; the `date_default_timezone_get()`
|
// the `date_default_timezone_get()` function always returns a timezone, at least UTC
|
||||||
// function always returns a timezone, at least UTC
|
|
||||||
$this->config['timezone'] = @date_default_timezone_get();
|
$this->config['timezone'] = @date_default_timezone_get();
|
||||||
}
|
}
|
||||||
date_default_timezone_set($this->config['timezone']);
|
date_default_timezone_set($this->config['timezone']);
|
||||||
|
@ -1368,7 +1367,7 @@ class Pico
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// guarantee array key existance
|
// guarantee array key existance
|
||||||
$meta = array_fill_keys(array_values($headers), '');
|
$meta = array_fill_keys($headers, '');
|
||||||
$meta['time'] = $meta['date_formatted'] = '';
|
$meta['time'] = $meta['date_formatted'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1412,10 +1411,10 @@ class Pico
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Applies some static preparations to the raw contents of a page,
|
* Applies some static preparations to the raw contents of a page
|
||||||
* e.g. removing the meta header and replacing %...% placehodlers
|
|
||||||
*
|
*
|
||||||
* This method calls the {@see Pico::substituteFileContent()} method.
|
* This method removes the meta header and replaces `%...%` placeholders
|
||||||
|
* by calling the {@see Pico::substituteFileContent()} method.
|
||||||
*
|
*
|
||||||
* @see Pico::substituteFileContent()
|
* @see Pico::substituteFileContent()
|
||||||
* @see Pico::parseFileContent()
|
* @see Pico::parseFileContent()
|
||||||
|
@ -1475,7 +1474,7 @@ class Pico
|
||||||
if ($meta) {
|
if ($meta) {
|
||||||
foreach ($meta as $metaKey => $metaValue) {
|
foreach ($meta as $metaKey => $metaValue) {
|
||||||
if (is_scalar($metaValue) || ($metaValue === null)) {
|
if (is_scalar($metaValue) || ($metaValue === null)) {
|
||||||
$variables['%meta.' . $metaKey . '%'] = strval($metaValue);
|
$variables['%meta.' . $metaKey . '%'] = (string) $metaValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1519,26 +1518,26 @@ class Pico
|
||||||
* The page data will be an array containing the following values:
|
* The page data will be an array containing the following values:
|
||||||
*
|
*
|
||||||
* | Array key | Type | Description |
|
* | Array key | Type | Description |
|
||||||
* | -------------- | ------- | ------------------------------------------ |
|
* | -------------- | ------- | ---------------------------------------- |
|
||||||
* | id | string | relative path to the content file |
|
* | id | string | relative path to the content file |
|
||||||
* | url | string | URL to the page |
|
* | url | string | URL to the page |
|
||||||
* | title | string | title of the page (YAML header) |
|
* | title | string | title of the page (YAML header) |
|
||||||
* | description | string | description of the page (YAML header) |
|
* | description | string | description of the page (YAML header) |
|
||||||
* | author | string | author of the page (YAML header) |
|
* | author | string | author of the page (YAML header) |
|
||||||
* | time | string | timestamp derived from the Date header |
|
* | time | int | timestamp derived from the Date header |
|
||||||
* | date | string | date of the page (YAML header) |
|
* | date | string | date of the page (YAML header) |
|
||||||
* | date_formatted | string | formatted date of the page |
|
* | date_formatted | string | formatted date of the page |
|
||||||
* | hidden | bool | this page shouldn't be visible to the user |
|
* | hidden | bool | this page shouldn't be visible |
|
||||||
* | raw_content | string | raw, not yet parsed contents of the page |
|
* | raw_content | string | raw, not yet parsed contents of the page |
|
||||||
* | meta | string | parsed meta data of the page |
|
* | meta | string[] | parsed meta data of the page |
|
||||||
* | previous_page | &array | reference to the previous page |
|
* | previous_page | &array[] | reference to the previous page |
|
||||||
* | next_page | &array | reference to the next page |
|
* | next_page | &array[] | reference to the next page |
|
||||||
* | tree_node | &array | reference to the page's tree node |
|
* | tree_node | &array[] | reference to the page's tree node |
|
||||||
*
|
*
|
||||||
* Please note that the `previous_page` and `next_page` keys aren't
|
* Please note that the `previous_page` and `next_page` keys don't
|
||||||
* available until the `onCurrentPageDiscovered` event is triggered
|
* exist until the `onCurrentPageDiscovered` event is triggered
|
||||||
* ({@see Pico::discoverPageSiblings()}). The `tree_node` key isn't
|
* ({@see Pico::discoverPageSiblings()}). The `tree_node` key doesn't
|
||||||
* available until the `onPageTreeBuilt` event is triggered
|
* exit until the `onPageTreeBuilt` event is triggered
|
||||||
* ({@see Pico::buildPageTree()}).
|
* ({@see Pico::buildPageTree()}).
|
||||||
*
|
*
|
||||||
* @see Pico::sortPages()
|
* @see Pico::sortPages()
|
||||||
|
@ -1841,9 +1840,10 @@ class Pico
|
||||||
* The order of a node's children matches the order in Pico's pages array.
|
* The order of a node's children matches the order in Pico's pages array.
|
||||||
*
|
*
|
||||||
* If you want to walk the whole page tree, start with the tree's root node
|
* If you want to walk the whole page tree, start with the tree's root node
|
||||||
* at `$pageTree[""]["/"]`. The root node's `children` key is a reference
|
* at `$pageTree[""]["/"]`, or rather, use `$pages["index"]["tree_node"]`.
|
||||||
* to the `/` branch at `$pageTree["/"]`, that is a list of the root node's
|
* The root node's `children` key is a reference to the `/` branch at
|
||||||
* direct child nodes and their siblings.
|
* `$pageTree["/"]`, that is a list of the root node's direct child nodes
|
||||||
|
* and their siblings.
|
||||||
*
|
*
|
||||||
* You MUST NOT iterate the page tree itself (i.e. the list of the tree's
|
* You MUST NOT iterate the page tree itself (i.e. the list of the tree's
|
||||||
* branches), its order is undefined and the array will be replaced by a
|
* branches), its order is undefined and the array will be replaced by a
|
||||||
|
@ -1921,8 +1921,8 @@ class Pico
|
||||||
*
|
*
|
||||||
* This method triggers the `onTwigRegistered` event when the Twig template
|
* This method triggers the `onTwigRegistered` event when the Twig template
|
||||||
* engine wasn't initiated yet. When initiating Twig, this method also
|
* engine wasn't initiated yet. When initiating Twig, this method also
|
||||||
* registers Pico's core Twig filters `link` and `content` as well as
|
* registers Pico's core Twig filter `content` as well as Pico's
|
||||||
* Pico's {@see PicoTwigExtension} Twig extension.
|
* {@see PicoTwigExtension} Twig extension.
|
||||||
*
|
*
|
||||||
* @see Pico::getTwig()
|
* @see Pico::getTwig()
|
||||||
* @see http://twig.sensiolabs.org/ Twig website
|
* @see http://twig.sensiolabs.org/ Twig website
|
||||||
|
@ -2070,13 +2070,13 @@ class Pico
|
||||||
* Returns the URL to a given page
|
* Returns the URL to a given page
|
||||||
*
|
*
|
||||||
* This method can be used in Twig templates by applying the `link` filter
|
* This method can be used in Twig templates by applying the `link` filter
|
||||||
* to a string representing a page identifier.
|
* to a string representing a page ID.
|
||||||
*
|
*
|
||||||
* @param string $page identifier of the page to link to
|
* @param string $page ID of the page to link to
|
||||||
* @param array|string $queryData either an array containing properties to
|
* @param array|string $queryData either an array containing properties to
|
||||||
* create a URL-encoded query string from, or a already encoded string
|
* create a URL-encoded query string from, or a already encoded string
|
||||||
* @param bool $dropIndex when the last path component is "index",
|
* @param bool $dropIndex if the last path component is "index",
|
||||||
* then passing TRUE (default) leads to removing this path component
|
* passing TRUE (default) leads to removing this path component
|
||||||
*
|
*
|
||||||
* @return string URL
|
* @return string URL
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue