Obsidian Dataview Snippet #2 Templates Review
Visualizar **todos os templates da sua vault** (ou de uma pasta específica) e seus conteúdos completos diretamente em uma única nota.
Função
Ideal para manter uma visão consolidada e navegável dos seus snippets reutilizáveis, como trechos de código, modelos de documentos, comandos, funções, automações e muito mais — sem precisar abrir um por um.
🧠 Pense como um “painel de controle de templates”: uma página só onde você encontra tudo que criou para reaproveitamento.
Como usar
Instale e ative o plugin Dataview: https://github.com/blacksmithgu/obsidian-dataview
Nas configurações, ative
Enable JavaScript queriesCrie um novo arquivo (por exemplo:
TEMPLATE INDEX) ou adicione este snippet onde preferirDefina:
O caminho da pasta onde estão seus templates (ex:
"SYSTEM/TEMPLATE")Palavras-chave opcionais para filtrar quais arquivos devem aparecer
Por fim, troque
jsno início do bloco paradataviewjs
→ Pronto! Uma tabela será criada com o nome do template e seu conteúdo já expandido.
SNIPPET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 📑 Lista todos os templates (com conteúdo) a partir de uma pasta específica
const folderPath = "SYSTEM/TEMPLATE"; // Caminho da pasta de templates
const keywords = [""]; // Filtra pelo título (ex: ["api", "email"]), ou deixe [""] para exibir tudo
let tableRows = [];
const pages = dv.pages()
.where(p =>
p.file.path.startsWith(folderPath) &&
keywords.some(k => p.file.name.toLowerCase().includes(k.toLowerCase()))
)
.sort(p => p.file.name, 'asc');
for (const page of pages) {
const content = await dv.io.load(page.file.path);
const safeContent = content.replace(/```/g, "\\`\\`\\`"); // evita conflitos na renderização
const codeBlock = `\`\`\`\n${safeContent.trim()}\n\`\`\``;
tableRows.push([page.file.link, codeBlock]);
}
dv.table(["📄 Template", "📋 Conteúdo"], tableRows);
Dicas
Use um sistema de nomeação consistente nos seus templates (
email-resposta,api-chamada,bash-backup) para facilitar o filtro comkeywordsSe quiser mostrar apenas blocos de código específicos (como Python), peça que eu te ajude com um Regex seletivo
Combine com Dataview
inpute filtros dinâmicos com Templater para criar interfaces avançadas