๐ Welcome to the Obsidian Better Auto Linker repository!
This plugin was created to automate the creation of links between notes in Obsidian, and while the developer isnโt a professional coder, they do know Python ๐ well enough to understand most of whatโs going on... more or less ๐
. When it comes to JavaScript and TypeScript, however, itโs a different story. So, everything has been coded in JavaScript and kept in one single main.js
file (yes, itโs not the cleanest, but it works!) ๐ฅฒ.
Oh, and by the way, English isnโt my first language! So, I apologize in advance if I misunderstand anything or donโt respond perfectly to issues or pull requests ๐ . Please be patient, and Iโll do my best to understand and reply!
The goal of this plugin is simple: make life in Obsidian easier by automatically linking notes together. With a few more ideas in mind, this plugin will hopefully keep evolving into something even more useful!
The plugin already offers several handy features for automating link creation between notes:
- ๐ Note scanning: Scans markdown files to detect potential matches with other notes.
- ๐ Link suggestions: Provides link suggestions to insert into the active note.
- โก Title caching: Uses a caching system to avoid re-indexing all notes every time, improving performance.
- ๐ Modal interface with pagination: Displays results in a modal with navigation buttons to go through the result pages.
- โ Link selection: Allows selecting all links on a page or from the entire set of found matches.
- ๐ Excluding folders and frontmatter: Lets you exclude certain folders or sections (like frontmatter) from being scanned.
- ๐ก Case sensitivity: Supports case-sensitive matching for notes.
- ๐ Wikilinks support: Works with Wikilinks (itโs not perfect, but it works!).
- ๐ Custom modal length: Adjust the length of the popup to make selecting links easier.
Hereโs a checklist of ideas for future features (if someone is willing to help or if I get the energy to add them ๐):
- ๐ Note alias support: Add support for managing and resolving note aliases.
- ๐ Improved Wikilink support: Make handling Wikilinks even smoother.
- โ๏ธ Advanced filtering options: Add more customizable filtering options for note scanning.
- ๐ Link statistics: Provide stats on the connections between notes to better visualize their interconnections.
- ๐จ Better UI/Design for link selection: Improve the aesthetics and user interface for selecting links to create.
- ๐ Fix display bugs/misalignment: Correct display issues or alignment bugs.
- ๐ Handle special characters properly: Improve handling of special characters like parentheses or backslashes that JavaScript struggles with.
- โก Optimize speed further: Make the scanning process even faster and more efficient.
- ๐ผ๏ธ Customizable selection window: Allow customization of the selection window, such as the amount of context shown for each link.
- ๐ Alias detection and replacement: Support the detection and replacement of links using note aliases.
- ๐ Proper link replacement: Ensure that link replacement works smoothly, without bugs, and in the correct order.
- ๐ And many more...: Thereโs always room for more improvements and ideas!
I know there are already similar plugins, but many seem abandoned ๐ด. So, this plugin was created to fill that gap and meet my own needs. For now, everything is coded in one file (main.js
)โyes, I took the lazy route ๐
โbut it works, and I think it should hold up fine even with future features.
However, if the community strongly feels it should be refactored into TypeScript for cleanliness, thatโs an option. Just donโt expect much help from me on that frontโTypeScript and I donโt get along well ๐ .
If youโre comfortable with JavaScript or TypeScript and you see ways to improve or add features, any help would be greatly appreciated!
This project has potential to become cleaner and more robust, so if you want to refactor the code or suggest improvements, pull requests and issues are open! ๐
To install and try out the Obsidian Better Auto Linker Plugin, follow these steps:
- Download the
main.js
andmanifest.json
files from this repository. - Create a new folder in your Obsidian vault under the path:
<your-vault>/.obsidian/plugins/obsidian-better-auto-linker/
- Place the downloaded
main.js
andmanifest.json
files into this folder. - Restart Obsidian.
- Go to Settings > Community plugins and enable the Obsidian Better Auto Linker Plugin.
Thatโs it! The plugin should now be active, and you can start using it to automate the linking of your notes.
Iโve also created other plugins for Obsidian, so if youโre curious, feel free to check them out on my GitHub profile.
If you have suggestions, ideas for improvements, or run into any bugs, feel free to open an issue or a pull request. Since English isnโt my first language, please be patient if I misunderstand something or take time to respond. Iโll do my best to understand and reply! ๐ค
Iโm not really concerned about the number of stars, but if you find this project useful or interesting, consider giving it a star on GitHub to help me gauge the interest. If youโd rather not leave a star, thatโs totally fine โ feel free to open an issue, submit a pull request, or even drop a message of support in an issue instead! All kinds of feedback, advice, and contributions are always welcome and appreciated. ๐
Thanks to everyone who takes the time to test, contribute, or even just read this README! Together, we can turn this plugin into something really useful for the Obsidian community. ๐ช