From bcde2abcb20ad02a0c3f1430b9d620ee60e6cb63 Mon Sep 17 00:00:00 2001 From: dralagen Date: Wed, 19 Mar 2025 05:47:35 +0100 Subject: [PATCH] fix(transformer): find last modified date form commit on submodule (#1831) * fix(transformer): find last modified date form commit on submodule when the content folder has a submodule git, the relative path start in content folder and not root folder of quartz * fix(transformer): use path.relative for improved path handling in last modified date calculation * fix(transformer): keep find file from relative path of repo workdir * fix(transformer): use variable for repository workdir use default value if repo.workdir is undefined to user fullFp value --- quartz/plugins/transformers/lastmod.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/quartz/plugins/transformers/lastmod.ts b/quartz/plugins/transformers/lastmod.ts index 09c1294..01054bb 100644 --- a/quartz/plugins/transformers/lastmod.ts +++ b/quartz/plugins/transformers/lastmod.ts @@ -2,6 +2,7 @@ import fs from "fs" import { Repository } from "@napi-rs/simple-git" import { QuartzTransformerPlugin } from "../types" import chalk from "chalk" +import path from "path" export interface Options { priority: ("frontmatter" | "git" | "filesystem")[] @@ -34,9 +35,11 @@ export const CreatedModifiedDate: QuartzTransformerPlugin> = (u return [ () => { let repo: Repository | undefined = undefined + let repositoryWorkdir: string if (opts.priority.includes("git")) { try { repo = Repository.discover(ctx.argv.directory) + repositoryWorkdir = repo.workdir() ?? "" } catch (e) { console.log( chalk.yellow(`\nWarning: couldn't find git repository for ${ctx.argv.directory}`), @@ -62,7 +65,8 @@ export const CreatedModifiedDate: QuartzTransformerPlugin> = (u published ||= file.data.frontmatter.published as MaybeDate } else if (source === "git" && repo) { try { - modified ||= await repo.getFileLatestModifiedDateAsync(fullFp) + const relativePath = path.relative(repositoryWorkdir, fullFp) + modified ||= await repo.getFileLatestModifiedDateAsync(relativePath) } catch { console.log( chalk.yellow(