ovault


Nameovault JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryLibrary for Managing your Obsidian Vault
upload_time2025-08-14 11:12:51
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords obsidian vault notes
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OVault
A python library for accessing and editing your [Obsidian](https://obsidian.md) vault.

Check out the [examples](https://github.com/BalderHolst/ovault/tree/main/examples)!

## Install
```bash
pip install ovault
```

## Example
```python
import ovault

v = ovault.Vault("path/to/vault")

print()
print("path        :", v.path)
print("notes       :", len(v.notes()))
print("attachments :", len(v.attachments()))
print("tags        :", v.tags())
```

## Features

#### Vault Management

##### Indexing
* **Indexing:** Automatically indexes all notes and attachments within the vault upon initialization.
* **Ignored Files:** Respects and parses `.vault-ignore` files to exclude specified paths during indexing.
* **Dangling Links:** Identify and list links within your notes that point to non-existent files.

#### Note Handling

##### Access & Properties
* **Access Notes & Attachments:** Retrieve all notes or attachments in the vault as Python objects.
* **Note Properties:** Access key information for each note, including its full path, relative path, name, character length, associated tags, internal links, and backlinks.
* **Content Access:** Read the raw content of any note.
* **Frontmatter Extraction:** Easily retrieve YAML frontmatter from notes.
##### Modification
* **Dynamic Note Modification:** Programmatically insert text into notes at specific character positions, or intelligently before/after recognized markdown tokens.

#### Tag Management
##### Querying Tags
* **List All Tags:** Get a complete list of all unique tags present across your entire vault.
* **Filter by Tag:** Efficiently retrieve all notes associated with a specific tag.

#### Markdown Parsing & Tokenization
##### Token Representation
* **Rich Token Representation:** Notes are parsed into a detailed stream of `Token` objects, representing various markdown elements.
* **Available Tokens**:
    * **Headers:** (`# Heading`)
    * **Tags:** (`#tag`)
    * **Code Blocks:** (fenced code, `inline code`)
    * **Quotes:** (`> Quote`)
    * **Math:** (`$inline$` and `$$display$$` LaTeX)
    * **Dividers:** (`---`)
    * **Callouts:** (`> [!type] Title`)
    * **Plain Text:**
    * **Frontmatter:** (YAML metadata)
    * **Internal Links:** (`[[Note Name]]`, `![[Image.png]]`)
    * **External Links:** (`[link text](url)`, `![image alt](url)`)


## Development

### Build for Testing
```bash
maturin develop --release --features python
```

### Release
1. Bump version in `Cargo.toml`
2. Commit change and push
3. Create a git tag with the same version: `git tag <version>`
4. Push new tag: `git push --tags`


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ovault",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "Obsidian, Vault, Notes",
    "author": null,
    "author_email": null,
    "download_url": null,
    "platform": null,
    "description": "# OVault\nA python library for accessing and editing your [Obsidian](https://obsidian.md) vault.\n\nCheck out the [examples](https://github.com/BalderHolst/ovault/tree/main/examples)!\n\n## Install\n```bash\npip install ovault\n```\n\n## Example\n```python\nimport ovault\n\nv = ovault.Vault(\"path/to/vault\")\n\nprint()\nprint(\"path        :\", v.path)\nprint(\"notes       :\", len(v.notes()))\nprint(\"attachments :\", len(v.attachments()))\nprint(\"tags        :\", v.tags())\n```\n\n## Features\n\n#### Vault Management\n\n##### Indexing\n* **Indexing:** Automatically indexes all notes and attachments within the vault upon initialization.\n* **Ignored Files:** Respects and parses `.vault-ignore` files to exclude specified paths during indexing.\n* **Dangling Links:** Identify and list links within your notes that point to non-existent files.\n\n#### Note Handling\n\n##### Access & Properties\n* **Access Notes & Attachments:** Retrieve all notes or attachments in the vault as Python objects.\n* **Note Properties:** Access key information for each note, including its full path, relative path, name, character length, associated tags, internal links, and backlinks.\n* **Content Access:** Read the raw content of any note.\n* **Frontmatter Extraction:** Easily retrieve YAML frontmatter from notes.\n##### Modification\n* **Dynamic Note Modification:** Programmatically insert text into notes at specific character positions, or intelligently before/after recognized markdown tokens.\n\n#### Tag Management\n##### Querying Tags\n* **List All Tags:** Get a complete list of all unique tags present across your entire vault.\n* **Filter by Tag:** Efficiently retrieve all notes associated with a specific tag.\n\n#### Markdown Parsing & Tokenization\n##### Token Representation\n* **Rich Token Representation:** Notes are parsed into a detailed stream of `Token` objects, representing various markdown elements.\n* **Available Tokens**:\n    * **Headers:** (`# Heading`)\n    * **Tags:** (`#tag`)\n    * **Code Blocks:** (fenced code, `inline code`)\n    * **Quotes:** (`> Quote`)\n    * **Math:** (`$inline$` and `$$display$$` LaTeX)\n    * **Dividers:** (`---`)\n    * **Callouts:** (`> [!type] Title`)\n    * **Plain Text:**\n    * **Frontmatter:** (YAML metadata)\n    * **Internal Links:** (`[[Note Name]]`, `![[Image.png]]`)\n    * **External Links:** (`[link text](url)`, `![image alt](url)`)\n\n\n## Development\n\n### Build for Testing\n```bash\nmaturin develop --release --features python\n```\n\n### Release\n1. Bump version in `Cargo.toml`\n2. Commit change and push\n3. Create a git tag with the same version: `git tag <version>`\n4. Push new tag: `git push --tags`\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Library for Managing your Obsidian Vault ",
    "version": "0.0.2",
    "project_urls": null,
    "split_keywords": [
        "obsidian",
        " vault",
        " notes"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d2c401dc2d7a0614d620bc37d50bcd96234e66a0920899416d6ac19548e7ce5e",
                "md5": "4dd896390444c581962e27db3769a5b7",
                "sha256": "a7e95dd04411e8a975c6823e901a26af11be99fbe61f21f13abf39eb4d6550ea"
            },
            "downloads": -1,
            "filename": "ovault-0.0.2-cp37-abi3-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4dd896390444c581962e27db3769a5b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 433203,
            "upload_time": "2025-08-14T11:12:51",
            "upload_time_iso_8601": "2025-08-14T11:12:51.110203Z",
            "url": "https://files.pythonhosted.org/packages/d2/c4/01dc2d7a0614d620bc37d50bcd96234e66a0920899416d6ac19548e7ce5e/ovault-0.0.2-cp37-abi3-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-14 11:12:51",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ovault"
}
        
Elapsed time: 1.33380s