From 9b82da4330c961f19a51ca5c021ab4e6defb3b85 Mon Sep 17 00:00:00 2001 From: cafca Date: Thu, 22 May 2025 23:38:54 +0200 Subject: [PATCH 1/2] Add helper --- patterns/library.11tydata.js | 38 +++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/patterns/library.11tydata.js b/patterns/library.11tydata.js index 8038614..046eacb 100644 --- a/patterns/library.11tydata.js +++ b/patterns/library.11tydata.js @@ -5,7 +5,43 @@ module.exports = { layout: "pattern", tags: "pattern", eleventyComputed: { - published: (data) => data.page.date.toLocaleDateString("en-us"), + published: (data) => { + // Use git last modified date for the pattern source file in the library submodule + const { execSync } = require("child_process"); + const path = require("path"); + + try { + // Get the pattern name from the input path + let filePath = data.page.inputPath; + + // Extract pattern name from path like site/library/visual-hash/index.md + const pathParts = filePath.split("/"); + const patternName = pathParts[pathParts.length - 2]; // Get the directory name before index.md + + // Check git history in the library submodule for the original pattern file + const libraryPatternPath = `patterns/${patternName}/index.md`; + const workingDir = path.join(process.cwd(), "library"); + const gitCommand = `git log -1 --format="%ci" -- "${libraryPatternPath}"`; + + const result = execSync(gitCommand, { + cwd: workingDir, + encoding: "utf-8", + }).trim(); + + if (result) { + const date = new Date(result); + return date.toLocaleDateString("en-us"); + } + } catch (error) { + console.warn( + `Could not get git date for pattern ${data.page.inputPath}:`, + error.message + ); + } + + // Fallback to file date + return data.page.date.toLocaleDateString("en-us"); + }, relatedPatterns: (data) => data.helpers.relatedPatterns(data), categoryName: (data) => data.helpers.categoryName(data), }, From 9fba19f5cdbfb78af39a2e0295acda176a17550a Mon Sep 17 00:00:00 2001 From: cafca Date: Thu, 22 May 2025 23:42:37 +0200 Subject: [PATCH 2/2] Use helper --- patterns/library.11tydata.js | 38 +----------------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/patterns/library.11tydata.js b/patterns/library.11tydata.js index 046eacb..14fe15e 100644 --- a/patterns/library.11tydata.js +++ b/patterns/library.11tydata.js @@ -5,43 +5,7 @@ module.exports = { layout: "pattern", tags: "pattern", eleventyComputed: { - published: (data) => { - // Use git last modified date for the pattern source file in the library submodule - const { execSync } = require("child_process"); - const path = require("path"); - - try { - // Get the pattern name from the input path - let filePath = data.page.inputPath; - - // Extract pattern name from path like site/library/visual-hash/index.md - const pathParts = filePath.split("/"); - const patternName = pathParts[pathParts.length - 2]; // Get the directory name before index.md - - // Check git history in the library submodule for the original pattern file - const libraryPatternPath = `patterns/${patternName}/index.md`; - const workingDir = path.join(process.cwd(), "library"); - const gitCommand = `git log -1 --format="%ci" -- "${libraryPatternPath}"`; - - const result = execSync(gitCommand, { - cwd: workingDir, - encoding: "utf-8", - }).trim(); - - if (result) { - const date = new Date(result); - return date.toLocaleDateString("en-us"); - } - } catch (error) { - console.warn( - `Could not get git date for pattern ${data.page.inputPath}:`, - error.message - ); - } - - // Fallback to file date - return data.page.date.toLocaleDateString("en-us"); - }, + published: (data) => data.helpers.publishedDate(data), relatedPatterns: (data) => data.helpers.relatedPatterns(data), categoryName: (data) => data.helpers.categoryName(data), },