CLI used for my custom productivity workflow, including tending my digital gardens in the form of private notes as well as a "blog" style website.
This is evolving, and is very opinionated currently to fit my use cases!
Named in honor of how we pronounce Gardener in the midwest 🧑🌾
In this directory run
./internal/version/get_version.sh
go build -o .bin/gardnr ./cmd/gardnrthis will create a binary gardnr
to install the binary in your local go bin
go install ./cmd/gardnrthis will build the binary and then provide it in your go bin
go test ./...to run an individual test
go test ./... -run "TestTranslateText"Be warned!! the translate test calls the translate api and there is a free tier limit of 100k chars/month
Based off https://github.com/golang-standards/project-layout
and
https://github.com/spf13/cobra/blob/master/user_guide.md
- [] Makefile
- [] If you don't specify a post-name for create garden-post and the template file does not follow the format x.ext.tmpl then it will not work.
- [] Translate tests are failing
- [] Headings are being removed from md files from obsidian at least
- [] setup command to help get local environment setup for managing notes and digital garden
- [] parse md files into a tree like data structure for easier querying
- [] use llm to generate description for posts
- [] allow user to define tags for posts
- [] use llm with RAG to generate tags for posts
- [] create a convention for saving files to cloud and templating Image components in the posts
- using obsidian image syntax
- [] using normal markdown image syntax
- [] create an rpc server to allow for remote control of gardnr
- [] create VS Code plugin to work with gardnr-control
- [] use charm for more interactive cli
- [] Image compression
Create a post in the configured garden repo content folder GARDNR_GARDEN_REPO_PATH/GARDNR_GARDEN_REPO_CONTENT_PATH
examples:
gardnr create garden-post --description="Garden update 05-30-2024" --post-path garden --note life/garden/update-05-30-2024.md
gardnr create garden-post --description="Kesh Character Description" --post-path vennelos/characters/NPCs --note life/games/dnd/vennelos/NPCs/Edge of Night/Kesh.mdCreate a daily note from a template
gardnr create daily-noteUses the gcloud translate API
To set up in gcloud console https://console.cloud.google.com/
Run all commands in cloud shell
Create service account for authentication
gcloud iam service-accounts create \
gardnr-translate --project \
gardnrGrant the service account the translate user role
gcloud projects \
add-iam-policy-binding gardnr \
--member \
serviceAccount:gardnr-translate@gardnr.iam.gserviceaccount.com \
--role roles/cloudtranslate.userGenerate a key
gcloud iam service-accounts keys \
create translate-key.json \
--iam-account \
gardnr-translate@gardnr.iam.gserviceaccount.comsave the key json file locally - it is ignored in this repo
set the key file as your google app creds env var
export GOOGLE_APPLICATION_CREDENTIALS="$NOTES/development/gardnr/translate-key.json"Now Locally
go get -u \
cloud.google.com/go/translate/apiv3Generate word count for a file
gardnr count words -f /some/file