Vault parser for the Obsidian note taking app.
Read an Obsidian vault from a path
import { readVault } from "obsidian-vault-parser"
const vault = readVault("./path/to/vault")
console.log(vault)
obsidian-vault-parser
also has the ability to only include files that are
published. You can pass an isPublished
predicate in as an option. Files that
do not pass this predicate will not be included in the vault.
import { readVault } from "obsidian-vault-parser"
const vault = readVault("./path/to/vault", {
isPublished: file => file.frontMatter.published != null
})
Represents an entire Obsidian vault.
export interface Vault {
path: string;
files: Record<string, VaultPage>;
config: VaultConfig;
}
Parsed contents of .obsidian/config
.
export interface VaultConfig {
theme?: string;
vimMode?: boolean;
attachmentFolderPath?: string;
pluginEnabledStatus?: any;
}
Represents an individual file inside of a vault.
export interface VaultPage {
path: string;
name: string;
tags: string[];
links: string[];
backLinks: string[];
frontMatter: Record<string, any>;
content: string;
createdAt: number;
updatedAt: number;
}
path
Absolute path to the file.
name
Name of the file that can be referenced by other files in the vault. This must be unique across the vault.
e.g. file with path ./foo/bar.md
is bar
.
tags
A list of #tags
found in the file
links
Names of other files that this file [[links]] to with.
backLinks
Names of other files that link to this file.
frontMatter
Front matter parsed from the top of the file.
content
String content of the document with front matter removed.
createdAt
Birthtime of file in milliseconds.
updatedAt
Last modified date of file in milliseconds.
Read an Obsidian Vault from a file path.
TypeScript types are included with this library.
Run all tests
yarn test
This project was bootstrapped with tsdx.