|
|
|
# obsidian-pipeline
|
|
|
|
|
|
|
|
# Overview
|
|
|
|
`obsidian-pipeline` or `obp` enables headless management of your Obsidian vault.
|
|
|
|
|
|
|
|
`obp` is primarily targeted at users who are programmatically interacting
|
|
|
|
with their vaults, publishing them via static site generators or doing
|
|
|
|
quality control with scheduled tasks.
|
|
|
|
|
|
|
|
# Features
|
|
|
|
`obp` is in pre-release status for now, so the featureset is limited.
|
|
|
|
|
|
|
|
```
|
|
|
|
obp-linux help
|
|
|
|
a suite of tools for managing your obsidian vault
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
obp [command]
|
|
|
|
|
|
|
|
Available Commands:
|
|
|
|
completion Generate the autocompletion script for the specified shell
|
|
|
|
help Help about any command
|
|
|
|
validate loads a note and ensures its frontmatter follows the provided protobuf schema
|
|
|
|
|
|
|
|
Flags:
|
|
|
|
--config string config file (default "~/.obp.toml")
|
|
|
|
-h, --help help for obp
|
|
|
|
|
|
|
|
Additional help topics:
|
|
|
|
obp hugo convert a set of Obsidian notes into a Hugo compatible directory structure
|
|
|
|
|
|
|
|
Use "obp [command] --help" for more information about a command.
|
|
|
|
|
|
|
|
```
|
|
|
|
## Validation
|
|
|
|
|
|
|
|
Using the validation feature requires that the JSONSchema files are hosted on
|
|
|
|
some HTTP server somewhere. I did this to simplify the code and avoid resolving
|
|
|
|
relative pathing along the dependency tree.
|
|
|
|
|
|
|
|
You can find some pre-made schemas [here](https://schemas.ndumas.com), a site
|
|
|
|
powered by my [json-schemas](https://github.com/therealfakemoot/json-schemas) repository. If you
|
|
|
|
would like to submit a schema that you've designed.
|
|
|
|
|
|
|
|
### Usage
|
|
|
|
```
|
|
|
|
Usage:
|
|
|
|
obp validate [flags]
|
|
|
|
|
|
|
|
Flags:
|
|
|
|
--format string output format [markdown, json, csv] (default "markdown")
|
|
|
|
-h, --help help for validate
|
|
|
|
-s, --schema string path to protobuf file (default "base.schema")
|
|
|
|
-t, --target string directory containing validation targets
|
|
|
|
|
|
|
|
Global Flags:
|
|
|
|
--config string config file (default "~/.obp.toml")
|
|
|
|
```
|
|
|
|
|
|
|
|
Markdown output can be piped into [glow](https://github.com/charmbracelet/glow) for a little
|
|
|
|
extra pizazz, but JSON is available for programmatic handling.
|
|
|
|
```
|
|
|
|
./bin/obp-linux validate --format markdown -s https://schemas.ndumas.com/obsidian/note.schema.json -t Resou
|
|
|
|
rces/blog/published/|glow
|
|
|
|
|
|
|
|
Validation Errors for "/home/ndumas/work/obsidian-pipeline/Resources/blog/published/schema-bad-tags.md"
|
|
|
|
|
|
|
|
VALIDATION RULE │ FAILING PROPERTY │ ERROR
|
|
|
|
──────────────────────────────┼──────────────────┼─────────────────────────────────
|
|
|
|
/properties/tags/items/type │ /tags/2 │ expected string, but got
|
|
|
|
│ │ number
|
|
|
|
|
|
|
|
Validation Errors for "/home/ndumas/work/obsidian-pipeline/Resources/blog/published/schema-bad.md"
|
|
|
|
|
|
|
|
VALIDATION RULE │ FAILING PROPERTY │ ERROR
|
|
|
|
───────────────────────────────┼──────────────────┼─────────────────────────────────
|
|
|
|
/properties/description/type │ /description │ expected string, but got
|
|
|
|
│ │ number
|
|
|
|
/properties/tags/type │ /tags │ expected array, but got string
|
|
|
|
```
|