<%* // Busca todos os arquivos na pasta blog const blogFolder = "Blog"; const files = app.vault.getMarkdownFiles() .filter(file => file.path.startsWith(blogFolder));
// Função para obter a data personalizada de um arquivo async function getCustomDate(file) { const content = await app.vault.read(file); // Busca a propriedade 'date:' no frontmatter const dateMatch = content.match(/date:\s*(\d{4}-\d{2}-\d{2})/); if (dateMatch && dateMatch[1]) { return dateMatch[1]; } // Retorna a data de criação do arquivo se não encontrar a data personalizada return new Date(file.stat.ctime).toISOString().slice(0, 10); }
// Formata a data para formato brasileiro
function formatDate(dateStr) {
const parts = dateStr.split('-');
return ${parts[2]}/${parts[1]}/${parts[0]}
;
}
// Organiza os arquivos por data let postsWithDates = []; for (const file of files) { const date = await getCustomDate(file); postsWithDates.push({ file: file, date: date }); }
// Ordena do mais recente para o mais antigo postsWithDates.sort((a, b) => b.date.localeCompare(a.date));
// Gera a tabela
let table = "| Data | Título |\n| —- | —— |\n";
for (const post of postsWithDates) {
const formattedDate = formatDate(post.date);
const fileName = post.file.basename;
table += | ${formattedDate} | [[${fileName}]] |\n
;
}
tR += table; %>