Revert "Fix variable frontmatter error - handle both string and object formats for preview image fields"

This commit is contained in:
Elio Struyf
2026-03-14 11:16:37 +01:00
committed by GitHub
parent bd8cd1f1d6
commit bdb2179e3e
2 changed files with 12 additions and 27 deletions

View File

@@ -408,7 +408,7 @@ export class ContentType {
* @param parents
* @returns
*/
public static getFieldValue(data: any, parents: string[]): any {
public static getFieldValue(data: any, parents: string[]): string | string[] {
let fieldValue = [];
let crntPageData = data;
@@ -575,8 +575,7 @@ export class ContentType {
fieldValue === null ||
fieldValue === undefined ||
fieldValue === '' ||
(Array.isArray(fieldValue) && fieldValue.length === 0) ||
(typeof fieldValue === 'string' && fieldValue.length === 0) ||
fieldValue.length === 0 ||
fieldValue === DefaultFieldValues.faultyCustomPlaceholder
) {
emptyFields.push(fields);

View File

@@ -333,32 +333,19 @@ export class PagesParser {
// Revalidate as the array could have been empty
if (fieldValue) {
// Handle both string and object formats for the field value
let imageValue: string;
if (typeof fieldValue === 'string') {
imageValue = fieldValue;
} else if (typeof fieldValue === 'object' && fieldValue.src) {
// Handle object format like { src: "filename.jpg", title: "title" }
imageValue = fieldValue.src;
} else {
// Skip processing if the value is neither a string nor an object with src
imageValue = null;
}
if (imageValue) {
// Check if the value already starts with https - if that is the case, it is an external image
if (imageValue.startsWith('http')) {
page.fmPreviewImage = imageValue;
if (fieldValue.startsWith('http')) {
page.fmPreviewImage = fieldValue;
} else {
let staticPath = join(wsFolder.fsPath, staticFolder || '', imageValue);
let staticPath = join(wsFolder.fsPath, staticFolder || '', fieldValue);
if (staticFolder === STATIC_FOLDER_PLACEHOLDER.hexo.placeholder) {
const crntFilePath = parseWinPath(filePath);
const pathWithoutExtension = crntFilePath.replace(extname(crntFilePath), '');
staticPath = join(pathWithoutExtension, imageValue);
staticPath = join(pathWithoutExtension, fieldValue);
}
const contentFolderPath = join(dirname(filePath), imageValue);
const contentFolderPath = join(dirname(filePath), fieldValue);
let previewUri = null;
if (await existsAsync(staticPath)) {
@@ -383,7 +370,6 @@ export class PagesParser {
}
}
}
}
return page;
}