Skip to main content

A script to magically update your obsidian snippets hosted on github.

Project description

Obsidian Snippet Manager is a python script that git pull and move CSS file in your .obsidian/snippet folder.

The goal is to provide a practical way to get semi-auto-update from CSS snippet hosted on GitHub, in waiting of an eventual BRAT update that support that.

Get started

Requirements

  1. Git
  2. Python
  3. pip install Obsidian-Snippet-Manager --upgrade

GUI

You can use the application with an interface, using (in terminal): snipetter.

Configuration

The first step is to configure the app.

  1. Browse for your Obsidian's vault path.
  2. Create a folder where you can store everything related to downloaded's snippet. This folder can be everywhere on your computer, including in your .obsidian/snippets.
  3. Browse the "Folder Manager" and look for the new created folder.
  4. Click on save !

image

Limitation of executable release

Information about executable release:

  • It will don't install the CLI command, so you won't have the Obsidian-Shell auto-update.
  • The executable don't use the same environment file as the package : You need to configure two times if you use the two (CLI + executable released)
  • Delete the release delete the environment file. Beware when you update your executable.

You can select the files you want to update or clone. Also, you can only use some specific file from update, instead of entire folder. You can exclude them from futur update using the exclude button.

Note about windows alert

For some reason, windows will warn you about untrustable executable. Also, it's possible that your antivir' doesn't like it either. The executable is built using GitHub Action : I don't touch it. You can, also, check every file in the download if you don't trust me. The only data send to internet is for git clone and push.

The (short) story about certification and untrustable executable : Microsoft want me to pay a lot to sign a little executable. More information about signing on Microsoft Docs

A free signing will always force end-user to manually install the certificate on their machine

If you don't trust me : You can build yourself the executable using : pyinstaller Obsidian_Snippeter/GUI.py --name "Obsidian-Snippet-Manager" --windowed --i Obsidian_Snippeter/src/gui_bin/hand.ico --noconfirm --add-data 'Obsidian_Snippeter/src/gui_bin/*;Obsidian_Snippeter/src/gui_bin/' --distpath artifact after cloning. You will see the same error. I have too this error.

(Note that you won't see it using the terminal commands 😊)


CLI

Environment

The plugin needs :

  • The absolute path of your vault, as : G:\Drive\Vault
  • A folder that contains all the snippet you want to get the update. This folder can be everywhere on your computer (yes, it can be in .obsidian too.). It will contain all folder of the snippet hosted on GitHub you want to use.
    In case of the folder doesn't exist, the script will create it!

How to use

  1. Adding a new repo : obsnipe clone repository_url
    Additionally, you can exclude a folder from update with adding the --exclude command : obsnipe clone [repository_url] --excluded
    This command work also for file : obsnipe clone [repository_url] --excluded file.css. This file will be added to exclude.yml.
  2. Updating everything : obsnipe
  3. Updating only a repository : obsnipe update folder_name The folder name is the folder that you wish to update the snippet!
    Also, you can update only a specific file with obsnipe update [foldername] --only [filename]

The script will :

  • Git pull
  • Git move every .css (unless the excluded) file in your .obsidian/snippet folder.

Other function

  • obsnipe list : List all GitHub Repository you download.
  • obsnipe exclude [folder_name] : Exclude a folder or a css snippet from update. You can exclude multiple value using : obsnipe exclude [folder1] [filename2]
    Using -add [filename][folder] will add these file in exclude.yml

Note : You can exclude a folder from auto-update using the exclude.yml file, placed in your Snippet Manager folder. You need to add the folder name as a yaml list :

- foldername1
- foldername2

Example

Using Obsidian Snippets Collection

  1. Configuration :
    • Vault is in : G:/Drive/vault
    • My Obsidian Manager Folder is in : D:/Documents/Github/Snippets Manager
  2. obsnipe clone https://github.com/Mara-Li/Obsidian-Snippet-collection
  3. Activate the snippets 🎉

To update this specific snippet : obsnipe update Obsidian-Snippet-collection

In obsidian

You can create a command in Obsidian using Obsidian Shell.

Bonus, you can update your snippet every time obsidian start, like BRAT!

⚠️ WARNING : Every edit on a snippet downloaded by this way will break the script. Please, DON'T EDIT these file, and use another snippet. (Or, use a fork and commit before.)

Credit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Obsidian_Snippet_Manager-2.3.2.tar.gz (30.3 kB view hashes)

Uploaded Source

Built Distribution

Obsidian_Snippet_Manager-2.3.2-py3-none-any.whl (29.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page