Use case or problem
Star/Favorite Community Plugins/ Import Export List of them.
Would work like github stars.
Easier to setup new install.
Proposed solution
Star/Favorite Community Plugins/ Import Export List of them
Additionally it would be very helpful to ask the authors to add a built-for version number indicating the “age” of a plugin. Maybe we can even add “last updated” this way.
And if we could even hide plugins from view that we are sure to never use would be the icing on the cake 
Would help keep the plugin list a tick cleaner as well.
Thanks
4 Likes
These are interesting ideas.
In the meantime, if you want to set up a new vault the same way you’ve set up an old vault, do this:
- Open the old vault’s folder in your operating systems’ file manager (Finder, File Explorer, etc.)
- Reveal hidden files
- Open the
.obsidian
folder in the vault
- Copy and paste the plugins folder into the
.obsidian
folder of your new vault
- In the new vault’s settings, disable safe mode, and enable all the plugins you want to use.
There may be some weirdness with doing this—check the settings of the newly-enabled plugins to make sure they’re right and so on. But it should ultimately speed up the duplication-of-your-setup process that you’re talking about, OP.
Thanks for the swift reply.
Yes that already helps a bit. But having this as a standard feature would be really great. Thanks.
I wrote a python script to get different information from my plugins folder
import os
import json
# specify the directory where the manifest.json files are located
dir_path = r'C:\...\.obsidian\plugins'
# create an empty list to store the extracted data
data = []
# loop through all the subdirectories in dir_path
for subdir in os.listdir(dir_path):
# check if the subdirectory is itself a directory (and not a file)
if os.path.isdir(os.path.join(dir_path, subdir)):
# create the path to the manifest.json file
manifest_path = os.path.join(dir_path, subdir, 'manifest.json')
# check if the manifest file exists
if os.path.isfile(manifest_path):
# read the contents of the manifest.json file
with open(manifest_path, 'r') as f:
manifest_data = json.load(f)
# extract the relevant information and add it to the data list
name = manifest_data['name']
id = manifest_data['id']
description = manifest_data['description']
try:
# This repository url is not very accurate
repository = "https://github.com/"+manifest_data['author']+"/"+id
except:
pass
data.append({'name': name, 'id': id, 'description': description, 'repository': repository})
# create a new directory to store the Markdown files
output_dir = r'C:\...\ObsidianPluginNotes\Plugins'
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# loop through the data list and create a Markdown file for each entry
for entry in data:
# replace any problematic symbols in the file name with underscores
safe_name = entry['name'].replace('/', ' ').replace('\\', ' ').replace(':', ' ').replace('*', ' ').replace('?', ' ').replace('"', ' ').replace('<', ' ').replace('>', ' ').replace('|', ' ')
# create the file path
file_path = os.path.join(output_dir, f"{safe_name}.md")
# create the file path
#file_path = os.path.join(output_dir, f"{entry['name']}.md")
# create the frontmatter string
frontmatter = f"---\nname: {entry['name']}\nid: {entry['id']}\ndescription: {entry['description']}\nrepository: {entry['repository']}\nadded: 2023-02-01\nstatus: i\nmobile: \nrating: \nissues: \nusage: \nalternative: \nsettings: \n---\n"
# write the frontmatter to the file
with open(file_path, 'w') as f:
f.write(frontmatter)