|
@@ -1290,22 +1290,40 @@ class Pico
|
|
|
|
|
|
/**
|
|
|
* Applies some static preparations to the raw contents of a page,
|
|
|
- * e.g. removing the meta header and replacing %base_url%
|
|
|
+ * e.g. removing the meta header and replacing %...% placehodlers
|
|
|
*
|
|
|
+ * This method calls the {@see Pico::substituteFileContent()} method.
|
|
|
+ *
|
|
|
+ * @see Pico::substituteFileContent()
|
|
|
* @see Pico::parseFileContent()
|
|
|
* @see Pico::getFileContent()
|
|
|
* @param string $rawContent raw contents of a page
|
|
|
* @param array $meta meta data to use for %meta.*% replacement
|
|
|
- * @return string contents prepared for parsing
|
|
|
+ * @return string prepared Markdown contents
|
|
|
*/
|
|
|
public function prepareFileContent($rawContent, array $meta)
|
|
|
{
|
|
|
- $variables = array();
|
|
|
-
|
|
|
// remove meta header
|
|
|
$metaHeaderPattern = "/^(\/(\*)|---)[[:blank:]]*(?:\r)?\n"
|
|
|
. "(?:(.*?)(?:\r)?\n)?(?(2)\*\/|---)[[:blank:]]*(?:(?:\r)?\n|$)/s";
|
|
|
- $content = preg_replace($metaHeaderPattern, '', $rawContent, 1);
|
|
|
+ $markdown = preg_replace($metaHeaderPattern, '', $rawContent, 1);
|
|
|
+
|
|
|
+ // replace placeholders
|
|
|
+ $markdown = $this->substituteFileContent($markdown, $meta);
|
|
|
+
|
|
|
+ return $markdown;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Replaces all %...% placeholders in a page's contents
|
|
|
+ *
|
|
|
+ * @param string $markdown Markdown contents of a page
|
|
|
+ * @param array $meta meta data to use for %meta.*% replacement
|
|
|
+ * @return string substituted Markdown contents
|
|
|
+ */
|
|
|
+ public function substituteFileContent($markdown, array $meta = array())
|
|
|
+ {
|
|
|
+ $variables = array();
|
|
|
|
|
|
// replace %version%
|
|
|
$variables['%version%'] = static::VERSION;
|
|
@@ -1336,27 +1354,28 @@ class Pico
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- $content = str_replace(array_keys($variables), $variables, $content);
|
|
|
- return $content;
|
|
|
+ return str_replace(array_keys($variables), $variables, $markdown);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Parses the contents of a page using ParsedownExtra
|
|
|
*
|
|
|
* @see Pico::prepareFileContent()
|
|
|
+ * @see Pico::substituteFileContent()
|
|
|
* @see Pico::getFileContent()
|
|
|
- * @param string $content raw contents of a page (Markdown)
|
|
|
- * @return string parsed contents (HTML)
|
|
|
+ * @param string $markdown Markdown contents of a page
|
|
|
+ * @return string parsed contents (HTML)
|
|
|
*/
|
|
|
- public function parseFileContent($content)
|
|
|
+ public function parseFileContent($markdown)
|
|
|
{
|
|
|
- return $this->getParsedown()->text($content);
|
|
|
+ return $this->getParsedown()->text($markdown);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Returns the cached contents of the requested page
|
|
|
*
|
|
|
* @see Pico::prepareFileContent()
|
|
|
+ * @see Pico::substituteFileContent()
|
|
|
* @see Pico::parseFileContent()
|
|
|
* @return string|null parsed contents
|
|
|
*/
|