try to extract title, pubDate, updatedDate automagically
This commit is contained in:
+22
-3
@@ -52,12 +52,23 @@ export default function gemtext(config: GemtextConfig = {}): AstroIntegration {
|
|||||||
|
|
||||||
const body = lines.slice(bodyStartLineIndex).join("\n")
|
const body = lines.slice(bodyStartLineIndex).join("\n")
|
||||||
|
|
||||||
|
const filepath = fileURLToPath(fileUrl);
|
||||||
|
const filename = filepath.slice(filepath.lastIndexOf("/") + 1);
|
||||||
const slug =
|
const slug =
|
||||||
typeof data["slug"] === "string" ?
|
typeof data["slug"] === "string" ?
|
||||||
data["slug"]
|
data["slug"]
|
||||||
: fileURLToPath(fileUrl).slice(
|
: filename;
|
||||||
fileURLToPath(fileUrl).lastIndexOf("/") + 1,
|
|
||||||
)
|
data['title'] = data['title']
|
||||||
|
?? lines.slice(bodyStartLineIndex).find(line => line.startsWith('# '))?.slice(2);
|
||||||
|
data['pubDate'] = data['pubDate']
|
||||||
|
?? validDateOrUndefined(lines.slice(bodyStartLineIndex).find(line => line.startsWith('Published on: '))?.slice(14))
|
||||||
|
?? validDateOrUndefined(filename.replace(/\.[^.]\+$/, ''))
|
||||||
|
?? validDateOrUndefined(slug.replace(/\.[^.]\+$/, ''));
|
||||||
|
data['updatedDate'] = data['updatedDate']
|
||||||
|
?? validDateOrUndefined(lines.slice(bodyStartLineIndex).find(line => line.startsWith('Updated on: '))?.slice(14))
|
||||||
|
?? validDateOrUndefined(filename.replace(/\.[^.]\+$/, ''))
|
||||||
|
?? validDateOrUndefined(slug.replace(/\.[^.]\+$/, ''));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data,
|
data,
|
||||||
@@ -71,3 +82,11 @@ export default function gemtext(config: GemtextConfig = {}): AstroIntegration {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const validDateOrUndefined = (x: unknown) => {
|
||||||
|
const d = new Date(x as string);
|
||||||
|
if (isNaN(d.valueOf())) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
return d;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user