РЕЖИССЁР МОНТАЖА кино и сериалов

АВТОМАТИЧЕСКИ ДОБАВЛЯЕМОЕ ВРЕМЯ

I. Создан файл рядом с постами

blog_src/blog/posts/posts.11tydata.js

Как это работает теперь:

  1. Создал файл поста → закоммитил.
  2. Eleventy:
    • берёт дату первого коммита файла,
    • кладёт её в publishedAt.
  3. Шаблон:
    • показывает publishedAt,
    • если вдруг его нет — использует date.

Код файла posts.11tydata.js:

const { execSync } = require("child_process");

const cache = new Map();

Здесь git log … — это shell-команда, передаваемая в execSync.

function getFirstCommitISO(filePath) { if (cache.has(filePath)) return cache.get(filePath);

let value = null; try { const out = execSync( git log --follow --reverse --format=%aI -- "${filePath}", { stdio: ["ignore", "pipe", "ignore"] } ).toString().trim();

if (out) value = out.split("\n")[0].trim(); } catch { value = null; }

cache.set(filePath, value); return value; }

module.exports = { eleventyComputed: { publishedAt: (data) => getFirstCommitISO(data.page.inputPath) || data.publishedAt || null, }, };

II. В layout-post.njk заменён вывод времени

Используется следующая разметка:

{% set pub = publishedAt or date %}

После правки — порядок действий

  1. Сохранить файл.
  2. Закоммитить и запушить (иначе publishedAt не появится).

Команды:

git add blog_src/blog/posts/2026-02-07-time.md git commit -m "Add post about automatic publish time" git push