$doc = preg_replace('{\s*<([a-z]+) class="'.$hideclass.'">.*?</\1>}s', '', $doc);
return preg_replace_callback(
- '{ (?<! <!--BLOCK: ) \[\[ ([^] ]+) ([^]]*) \]\] }x',
+ '{ \[\[ ([^] ]+) ([^]]*) \]\] }x',
function ($sub) use ($blocks) {
list ($placeholder, $name, $params) = $sub;
- if (isset($blocks[$name])) {
- $html = $blocks[$name];
+ $html = $blocks[$name] ??
+ placeholder_include($name, explode(' ', $params));
+ if (empty($html) or $html[0] != '<') {
+ $html = "<span>$html</span>";
}
- else {
- $html = placeholder_include($name, explode(' ', $params));
- }
- return sprintf('<!--BLOCK:%s-->%s<!--/-->',
- is_numeric($name) ? '' : $placeholder, # edit replacement
- preg_replace('{<!--[^-]*-->}', '', $html) # contents
- );
+ $attr = sprintf(' data-dyn="%s"', is_numeric($name) ? '' : $name.$params);
+ # contents with identifier in first tag
+ return preg_replace( '/(?=>)/', $attr, $html, 1);
},
$doc
);
'url' => htmlspecialchars($_SERVER['REQUEST_URI']),
];
+if (!isset($Article->raw) and $User->admin("edit {$Article->link}")) {
+ # open template as initial contents
+ $Article->raw(file_exists("$Page/template.inc.html") ? "$Page/template.inc.html" : 'template.inc.html');
+ $Article->meta['article:published_time'] = date('Y-m-d h:i:s O');
+ $Article->meta['article:author'] = '/' . $User->dir;
+}
+
if (isset($Article->raw)) {
if ($User->admin("edit $Page$Args")) {
# restore meta tags in static contents for editing
foreach (array_reverse($Article->meta) as $metaprop => $val) {
$Article->raw = sprintf(
- '<meta property="%s" content="%s" />'."\n",
+ '<meta property="%s" content="%s">'."\n",
$metaprop, $val
) . $Article->raw;
}
}
-}
-elseif ($User->admin("edit {$Article->link}")) {
- $Article->raw(file_exists("$Page/template.inc.html") ? "$Page/template.inc.html" : 'template.inc.html');
-}
-if (isset($Article->raw)) {
$Article->raw = '<div class="static">'."\n\n".$Article->raw."</div>\n\n";
}