Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coffee-cup/obsidian-vault-parser
Vault parser for the Obsidian note taking app
https://github.com/coffee-cup/obsidian-vault-parser
obsidian-md parser vault
Last synced: 3 months ago
JSON representation
Vault parser for the Obsidian note taking app
- Host: GitHub
- URL: https://github.com/coffee-cup/obsidian-vault-parser
- Owner: coffee-cup
- License: mit
- Created: 2020-12-27T08:21:06.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-03-06T12:59:13.000Z (almost 2 years ago)
- Last Synced: 2024-10-10T09:59:28.556Z (4 months ago)
- Topics: obsidian-md, parser, vault
- Language: TypeScript
- Homepage:
- Size: 396 KB
- Stars: 31
- Watchers: 2
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-obsidian - obsidian-vault-parser
- project-awesome - coffee-cup/obsidian-vault-parser - Vault parser for the Obsidian note taking app (TypeScript)
README
# obsidian-vault-parser
![CI](https://github.com/coffee-cup/obsidian-vault-parser/workflows/CI/badge.svg)
[![](https://img.shields.io/npm/v/obsidian-vault-parser?style=flat-square)](https://www.npmjs.com/package/obsidian-vault-parser)
[![](https://img.shields.io/github/license/coffee-cup/obsidian-vault-parser?style=flat-square&color=brightgreen)](https://github.com/coffee-cup/obsidian-vault-parser/blob/main/LICENSE)Vault parser for the [Obsidian](https://obsidian.md/) note taking app.
## Usage
Read an Obsidian vault from a path
```ts
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.```ts
import { readVault } from "obsidian-vault-parser"const vault = readVault("./path/to/vault", {
isPublished: file => file.frontMatter.published != null
})
```## Documentation
### `Vault`
Represents an entire Obsidian vault.
```ts
export interface Vault {
path: string;
files: Record;
config: VaultConfig;
}
```### `VaultConfig`
Parsed contents of `.obsidian/config`.
```ts
export interface VaultConfig {
theme?: string;
vimMode?: boolean;
attachmentFolderPath?: string;
pluginEnabledStatus?: any;
}
```### `VaultFile`
Represents an individual file inside of a vault.
```ts
export interface VaultPage {
path: string;
name: string;
tags: string[];
links: string[];
backLinks: string[];
frontMatter: Record;
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](https://jekyllrb.com/docs/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.
### `readVault(path: string) => Vault`
Read an Obsidian Vault from a file path.
## TypeScript
TypeScript types are included with this library.
## Test
Run all tests
```
yarn test
```---
This project was bootstrapped with [tsdx](https://github.com/formium/tsdx).