Attachment Management

by trganda
5
4
3
2
1
Score: 57/100

Description

The Attachment Management plugin provides advanced tools for organizing and renaming attachment files in Obsidian. It enables users to define flexible paths and naming conventions for attachments using variables like note name, note path, date, and MD5 hashes. The plugin supports automatic renaming of attachments when they are added, pasted, or dropped into markdown or canvas files, as well as when associated notes are renamed. Features include handling duplicate files, overriding settings for specific folders, files, or extensions, and excluding specified paths from processing. Experimental tools allow rearranging linked attachments to match configured settings.

Reviews

No reviews yet.

Stats

288
stars
60,244
downloads
26
forks
1,050
days
22
days
256
days
70
total PRs
9
open PRs
6
closed PRs
55
merged PRs
124
total issues
77
open issues
47
closed issues
73
commits

Latest Version

8 months ago

Changelog

Feature:

README file from

Github

Obsidian Attachment Management

This plugin supports more flexibly setting your attachment location with variables like ${notepath}, ${notename}, ${date} and ${md5}. An override setting feature can be used to change the global setting of a folder, file or extension.

Read the Original Name section before using the ${originalname} variable.

Installation

  • Install from Obsidian community plugins.
  • Clone this repo
    • pnpm i to install dependencies
    • pnpm run build to start compilation in watch mode.
    • Copy the main.js, manifest.json and style.css files to your vault VaultFolder.obsidian/plugins/obsidian-attachment-management
  • Download the release file and unarchive the file to your vault VaultFolder.obsidian/plugins/obsidian-attachment-management

Usage

Install and enable the plugin, after configuration you can paste or drop attachment file as usually and it will be auto renamed.

This plugin supports a command Rearrange linked attachments/Rearrange all linked attachments. If you run this command, it will rename all attachments (image file default, to rename another type, you need to enable Handle All Attachements) that have been linked in the markdown or canvas file as you configured.

SCR-20230511-rrtk

Notice: The Rearrange linked attachments/Rearrange all linked attachments is currently an experimental feature; if you want to try it out, it's best to back up your files first.

Overriding Setting

You can set the attachment path setting for a file or folder. The priority of these settings are:

file setting > most close parent folder setting > global setting

If you want to reset the settings of files or folders to the global setting, use the command Reset Override Setting or the Reset button on the override setting panel. The reset will only work on each file or folder that you trigger the command on. A more appropriate method to handle resetting will be added in the future.

Original Name

The ${originalname} represents the original filename (without extension) of the attachment you added to the vault. Some people want to keep the original filename and/or combine it with other variables like ${date}. If you want to keep the original filename of an attachment, set the Attachment Format with ${originalname}.

If you want to use ${originalname} with other variables, like ${originalname}-${date}. This plugin will persist the original name for future use. Suppose you change the Attachment Format from ${originalname}-${date} to IMG-${originalname}, it's work fine.

The original name is stored in data.json, the configuration file of the plugin. You can find it at .obsidian/plugins/attachment-management/data.json.

  "originalNameStorage": [
    {
      "n": "Pasted image 20240113222517",
      "md5": "9B1546EBA299E1A2A2FC86C664A15073"
    }
  ],

As you can see, the original name was saved with a hash, so if you add the same file multiple times, only the last one will be saved. The originalNameStorage will not clear automatically, use command Clear unused original name storage. This command will keep the entry if the hash of an attachment is matched.

Roadmap of Features

This plugin currently supports:

  • Setting the attachment location with ${notepath}, ${notename}, ${date} and ${parent}
  • Auto-rename the attachment when pasting to markdown or canvas
  • Auto-rename the attachment file or folder while you rename the article (markdown or canvas) file
  • Auto-rename the attachment when dropping to markdown or canvas
  • Re-Arrange the attachment file that is linked by markdown or canvas to the corresponding path as you configured (experimental)
  • Processing duplicate attachment
    • Processing duplicate attachment on create (the first time, you paste or drop an attachment in notes)
    • Processing duplicate attachment on rename
  • Override attachment configuration for specified notes or folder
  • Exclude folders that you want this plugin to skip
    • Add Exclude folder by menu

Settings

The path of attachment is composed of three parts :

{root path}/{attachment path}/{attachment name}.extension

And you can use the variables below to config:

  • ${notepath}: The directory of the markdown or canvas file under the vault root.
  • ${notename}: The filename of the markdown or canvas file (without file extension).
  • ${parent}: The parent folder name of the markdown or canvas file.
  • ${originalname}: The filename of the attachment file when it was first created in Obsidian.
  • ${date}: Date time format by Moment format options

Notice before using ${originalname}, there is something you should know. This plugin will not persist the original name, it only use the filename to generate the attachment name on create event (first time added to obsidian). This means if you have used ${originalname}, when you rearrange the attachment, there is no new name generated for the attachment, it just used the current name (i.e. change Attachment format from asset-${originalname} to asset-1-${originalname}, and use rearrange command, it's useless).

Root Path to Save New Attachments

You must select a root folder to save the attachment associated with a markdown or canvas file.

SCR-20230511-rgge

It can be set using the config of Obsidian in Files & Links and reset using this option.

  • Copy Obsidian settings: use the Obsidian setting in the Files & Links section.
  • In the folder specified below: set a fixed folder.
  • Next to note in folder specified below: in the subfolder of the current markdown or canvas file.

Attachment Path

A sub-folder to place attachment under the {root path}, available variables:

  • ${notepath}: The directory of the markdown or canvas file under the vault root.
  • ${notename}: The filename of the markdown or canvas file (without file extension).
  • ${parent}: The parent folder name of the markdown or canvas file.

Default value ${notepath}/${notename}.

Attachment Format

Set how to rename the attachment and available variables:

  • ${notename}: The filename of the markdown or canvas file (without file extension).
  • ${originalname}: The filename of the attachment file when first time it created.
  • ${date}: Date time format by Moment format options
  • ${md5}: MD5 hash of the attachment file (calculated when the attachment file was first created in the vault).

default value IMG-{date}.

Date Format

Use Moment format options to set the ${date}, default value YYYYMMDDHHmmssSSS. You should always use the ${date} variable to prevent the same file name.

Exclude Extension Pattern

This option is useful if you want to ignore some file types. Write a Regex pattern to exclude certain extensions from being handled.

SCR-20230918-pkys

Automatically Rename Attachment

Automatically rename the attachment folder/filename when you rename the folder/filename where the corresponding md/canvas file is placed.

Extension Override Setting

This feature allows you to specify the setting for a serials extension. You can use a regex pattern here to override the global setting.

SCR-20230918-pihr

Exclude Paths

If you want some paths to be skipped by this plugin, add them to the text area. If you have multiple paths, split them with a semicolon ';'.

By default, the "Exclude paths" will only work on the folder you added, and that folder contains at least one markdown file; you can toggle "Exclude subpaths" to exclude subpaths also.

The path is case-sensitive and should not have a leading slash '/' at the beginning.

Known Issues

  • No support for processing duplicated file names right now (in development). In backup, you could use the data variable x to use Unix timestamp with millisecond as filename (it will prevent duplicated filename).
  • When pasting or dropping a file in canvas and markdown, it will delay showing the updated link/filename. The reason is that Obsidian's API has no paste or drop event support for canvas, so I have implemented it in another way, and this caused the delay in renaming the attachment.

Screen Recording

  • Suppose you have a structure below with default configuration:
    • Attachment directory, "assets/notes/hello/1.png"
    • Note directory, "notes/Hello.md"
    • Running the Rearrange command may lead to an error since the folder already exists but has a lowercase name.

FAQ

Q: What if I add '/' to Exclude Paths?

A: It will exclude the whole vault folder.

Q: Is this plugin support auto rename pdf file?

A: By default, this plugin will only rename the image file. For other file types, you can use the extension override setting.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
File Cleaner
4 years ago by Johnson0907
A file cleaner plugin for Obsidian.
Paste image rename
4 years ago by Reorx
Renames pasted images and all the other attachments added to the vault
Folder Index
4 years ago by turulix
Nuke Orphans
4 years ago by Sandorex
Obsidian notes plugin that trashes orphaned files and attachments
Bulk Rename
4 years ago by Oleg Lustenko
Janitor
4 years ago by Gabriele Cannata
Performs various maintenance tasks on the Obsidian vault
Custom File Explorer sorting
4 years ago by SebastianMC
Take full control over the order and sorting of folders and notes in File Explorer in Obsidian
Obsidian markdown export
3 years ago by bingryan
This plugin allows to export directory/single markdown to a folder. support output format(html/markdown/text)
S3 attachments storage
3 years ago by TechTheAwesome
An Obsidian plugin for storage and retrieval of media attachments on S3 compatible services.
Google Keep Import
3 years ago by Dale de Silva
Imports Google Keep backup files
Attachment Manager
3 years ago by chenfeicqq
Attachment folder name binding note name, automatically rename, automatically delete, show/hide.
File Cleaner Redux
2 years ago by husjon
A plugin for Obsidian to help clean up files in your vault
Attachment Uploader
2 years ago by zhuxining
An attachment uploader plugin for Obsidian
Alias Management
2 years ago by WithMarcel
Identify duplicate notes based on similar aliases and filenames in Obsidian.
Note Companion Folder
2 years ago by Chris Verbree
A Obsidian Plugin providing a way to associate a folder to a note
Project Browser
2 years ago by Dale de Silva
Folder by tags distributor
2 years ago by RevoTale
Automatically group Obsidian notes into folder by tags specified in note.
Infostacker Note Publish
2 years ago by Taskscape LTD, Patryk Nowak, Kacper Pabianiak
Infostacker plugin for Obisidian
Import Attachments+
2 years ago by Andrea Alberti
Import attachments by moving them into the vault.
Note Folder Autorename
5 years ago by PJ Eby
Obsidian plugin to support folder-overview notes by keeping their folder in sync
Consistent attachments and links
5 years ago by Dmitry Savosh
Obsidian plugin. Move note with attachments.
Unique attachments
5 years ago by Dmitry Savosh
Obsidian plugin. Renames attachments, making their names unique.
Daily Named Folder
5 years ago by Nemo Andrea
Like daily note, but nested in a daily folder and some more improvements
Custom Attachment Location
5 years ago by RainCat1998
Customize attachment location with variables($filename, $data, etc) like typora.
Cloud Storage
2 years ago by Jiajun Ma
Obsidian Cloud Storage is a powerful and user-friendly plugin designed to seamlessly integrate cloud storage capabilities into your Obsidian workflow. This plugin allows you to effortlessly upload your attachments to the cloud, freeing up local storage space and enabling easy sharing and access across all your devices.
ExMemo Tools
a year ago by Yan.Xie
Use large models for smart document management and optimization, including relocating files, enhancing text, and generating metadata.
Insert Multiple Attachments
a year ago by mnaoumov
Obsidian Plugin that allows to insert multiple attachments at a time
Local Any Files
a year ago by ShermanTsang
A obsidian plugin used to extract and download files in your obsidian note.
Clone Vault
a year ago by Sebastian Baroni
Clones the current Obsidian vault by copying settings and folder structure without note contents.
FolderFile Splitter
a year ago by Xu Quan
Image Size
a year ago by Jie Zhang
Set the default size for pasted images.
Paste Image Into Property
a year ago by Nito
Attachments Cache
a year ago by luisbs
Obsidian plugin to cache attachments locally
Auto Folder Note Paste
a year ago by d7sd6u
Convert your note into folder note upon pasting or drag'n'dropping an attachment
Daily Notes Automater
a year ago by David Pedrero
Linked Note Exporter
9 months ago by the-c0d3r
Obsidian plugin to export a note along with all its attachments and linked notes—cleanly, conveniently, and ready to share.
Sync-safe file names
6 months ago by j-maas
Ensure your Obsidian files can always be synced across all your devices.
Lskypro Upload V2
a month ago by 3kk0
Auto upload local images to LskyPro.