5c48fe6b22 | 2 years ago | |
---|---|---|
.github/workflows | 2 years ago | |
Resources | 2 years ago | |
cmd | 2 years ago | |
fsm | 2 years ago | |
gloss | 2 years ago | |
tmp/blog/content/posts/mapping-aardwolf | 2 years ago | |
.drone.yml | 2 years ago | |
.gitignore | 2 years ago | |
.goreleaser.yaml | 2 years ago | |
Dockerfile | 2 years ago | |
LICENSE | 2 years ago | |
Makefile | 2 years ago | |
README.md | 2 years ago | |
go.mod | 2 years ago | |
go.sum | 2 years ago | |
notes.go | 2 years ago | |
pipeline.go | 2 years ago | |
validate.go | 2 years ago | |
validate_test.go | 2 years ago | |
version.go | 2 years ago |
README.md
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, a site powered by my 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 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