Add JavaScript support to page templates
Add support for page-specific JavaScript files with cache busting via MD5 hash. The script is loaded at the end of the body with defer attribute. The JavaScript file must be named script.js and located in the same directory as the page content.
This commit is contained in:
parent
069ce389ea
commit
f8a352afce
4 changed files with 37 additions and 1 deletions
|
|
@ -132,6 +132,22 @@ function findPageCss(string $dirPath, string $contentDir): ?array {
|
|||
];
|
||||
}
|
||||
|
||||
function findPageJs(string $dirPath, string $contentDir): ?array {
|
||||
$jsFile = "$dirPath/script.js";
|
||||
if (!file_exists($jsFile) || !is_file($jsFile)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$relativePath = str_replace($contentDir, '', $dirPath);
|
||||
$relativePath = trim($relativePath, '/');
|
||||
$jsUrl = '/' . ($relativePath ? $relativePath . '/' : '') . 'script.js';
|
||||
|
||||
return [
|
||||
'url' => $jsUrl,
|
||||
'hash' => hash_file('md5', $jsFile)
|
||||
];
|
||||
}
|
||||
|
||||
function extractMetaDescription(string $dirPath, ?array $metadata): ?string {
|
||||
// 1. Check for search_description in metadata
|
||||
if ($metadata && isset($metadata['search_description'])) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue