From 6377f951d8eebdbbde847fc8d8f8dfb2ab499711 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 09:15:48 +0000 Subject: [PATCH] Add auto save to aliases -Updated the readme with information about autogenerating aliases that allow autosaving to obsidian like tools -Updated the table of contents --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 1fd894d32..9fe675ece 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ - [Environment Variables](#environment-variables) - [Setup](#setup) - [Add aliases for all patterns](#add-aliases-for-all-patterns) + - [Save your files in markdown using aliases](#save-your-files-in-markdown-using-aliases) - [Migration](#migration) - [Upgrading](#upgrading) - [Usage](#usage) @@ -208,6 +209,46 @@ yt() { ``` This also creates a `yt` alias that allows you to use `yt https://www.youtube.com/watch?v=4b0iet22VIk` to get your transcripts. +#### Save your files in markdown using aliases +If in addition to the above aliases you would like to have the option to save the output to your favourite markdown note vault like Obsidian then instead of the above add the following to your `.zshrc` or `.bashrc` file: + +```bash +# Define the base directory for Obsidian notes +obsidian_base="/path/to/obsidian" + +# Loop through all files in the ~/.config/fabric/patterns directory +for pattern_file in ~/.config/fabric/patterns/*; do + # Get the base name of the file (i.e., remove the directory path) + pattern_name=$(basename "$pattern_file") + + # Define a function dynamically for each pattern + eval " + $pattern_name() { + local title=\$1 + local date_stamp=\$(date +'%Y-%m-%d') + local output_path=\"\$obsidian_base/\${date_stamp}-\${title}.md\" + + # Check if a title was provided + if [ -n \"\$title\" ]; then + # If a title is provided, use the output path + fabric --pattern \"$pattern_name\" -o \"\$output_path\" + else + # If no title is provided, use --stream + fabric --pattern \"$pattern_name\" --stream + fi + } + " +done + +yt() { + local video_link="$1" + fabric -y "$video_link" --transcript +} +``` + +This will allow you to use the patterns as aliases like in the above for example `summarize` instead of `fabric --pattern summarize --stream`, however if you pass in an extra argument like this `summarize "my_article_title"` your output will be saved in the destination that you set in `obsidian_base="/path/to/obsidian"` in the following format `YYYY-MM-DD-my_article_title.md` where the date gets autogenerated for you. +You can tweak the date format by tweaking the `date_stamp` format. + ### Migration If you have the Legacy (Python) version installed and want to migrate to the Go version, here's how you do it. It's basically two steps: 1) uninstall the Python version, and 2) install the Go version.