ソースを参照

Fix Markdown %meta.*% replacement

Don't even try to use arrays here...
Daniel Rudolf 9 年 前
コミット
de6b3a7c28
1 ファイル変更7 行追加4 行削除
  1. 7 4
      lib/Pico.php

+ 7 - 4
lib/Pico.php

@@ -754,10 +754,13 @@ class Pico
         $content = str_replace('%theme_url%', $themeUrl, $content);
         $content = str_replace('%theme_url%', $themeUrl, $content);
 
 
         // replace %meta.*%
         // replace %meta.*%
-        $metaKeys = array_map(function ($metaKey) {
-            return '%meta.' . $metaKey . '%';
-        }, array_keys($this->meta));
-        $metaValues = array_values($this->meta);
+        $metaKeys = $metaValues = array();
+        foreach ($this->meta as $metaKey => $metaValue) {
+            if (is_scalar($metaValue) || ($metaValue === null)) {
+                $metaKeys[] = '%meta.' . $metaKey . '%';
+                $metaValues[] = strval($metaValue);
+            }
+        }
         $content = str_replace($metaKeys, $metaValues, $content);
         $content = str_replace($metaKeys, $metaValues, $content);
 
 
         return $content;
         return $content;