Meta
up:: ๐งช Code Diary
type:: #log/code
language:: TypeScript
program:: Obsidian
topics:: Coding
Average Size of All Markdown File in Vault
Summary
Reads the content of all Markdown files in the Vault and returns the average document size:
Code
import { Notice, Plugin } from "obsidian";
export default class ExamplePlugin extends Plugin {
async onload() {
this.addRibbonIcon("info", "Calculate average file length", async () => {
const fileLength = await this.averageFileLength();
new Notice(`The average file length is ${fileLength} characters.`);
});
}
async averageFileLength(): Promise<number> {
const { vault } = this.app;
const fileContents: string[] = await Promise.all(
vault.getMarkdownFiles().map((file) => vault.cachedRead(file))
);
let totalLength = 0;
fileContents.forEach((content) => {
totalLength += content.length;
});
return totalLength / fileContents.length;
}
}
up:: ๐งช Code Diary