Plugins mini FAQ

I’ve added for a specific plugin to remove any potential misunderstandings.

Ah, OK, that clears it up. My apologies for hounding you like this.

1 Like

Happy to help! I might have GitHub blindness and this could clear it up for others too!

Just for clarification, why isn’t there a way for folks to submit their plug-ins to Obsidian for easier distribution to the masses who don’t want to deal with GitHub. I’m thinking of the way Themes are offered from within the app itself. This notion of create sub directory in Obsidian, download file, expand, yada, yada, yada seems a little convoluted and prone to problems. There seems to be a plethora of moderators who would be in a position to oversee the maintenance of the process. After all, what’s the plan for when Obsidian reaches v1, tell all purchasers to follow this procedure?

@Daveb08 the reason is that it’s an alpha release! this is on the devs radar and will be added at some point.

2 Likes

I feel it’s important to add the following, since I’ve seen this pop up a few times: Please keep in mind that the plugin API is an alpha release. Things won’t be smooth right now, and to get things to work you might need to jump some hoops. Alpha software is not the final Obsidian product. It’s important that as users you manage your expectations accordingly. If you feel the process is too convoluted right now, it might make sense to wait a little. Please let us know how we can improve things, but don’t forget to be kind to plugin developers (and moderators for that matter) who are volunteering their time to make Obsidian even more awesome.

?

No more purchasing then than now.

1 Like

Ya, I get the alpha thing. My point is…why not start the ‘process’ with One plug-in chosen by the Devs so Supporters who don’t have the advanced skills can participate in the ‘Alphaing’. Just to be clear, I’m not quibbling with their roadmap as much as I’m advocating for a larger testing process. As in …TaDa…Here’s Plug-ins…go to settings to turn it on…take one, two, three, etc… for a test drive…More to come.

And because we are cross-posting, I have nothing but admiration and thanks for/to the Devs, Moderators and all participants who are working tirelessly to make THIS all happen.

1 Like

Moderators are volunteers who help out on tidying the forum when they have the chance. Being a moderator does not necessarily entail any sort of proficiency with software development or an obligation to provide QA for 3rd party plugins.

I think it should be more difficult to get started right now. It will keep people who don’t have any development experience from harming their own computers or Vaults. In my opinion, making it plug-and-play simple right now would just add more premature support requests and detract from developers properly testing it all out first. If you aren’t comfortable with the process right now, please just wait until it isn’t alpha anymore. That’s exactly what @argentum answered originally.

3 Likes

@argentum and @rigmarole, I get your points. I’ve never had patience, but finally being in my 7th decade and under the circumstances I guess I’ll have to learn to be.

1 Like

Hello,

How one can debug plugin or access the logs?

ctrl-shift-i to open de chrome dev tool. There you can see de console et add breakpoint.

4 Likes

What is the risk of turning off the ‘safe mode’? Is it safe to just turn it off without installing anything. I thought devs approved plugins are safe, but not sure after seeing that message when I tried to turn off the safe mode

1 Like

So I downloaded the obsidian-sample-plugin files and saved in the plugins folder in a folder called obsidian-sample-plugin.
I am using files from here


The path from my vault is
.obsidian/plugins/obsidian-sample-plugin

I can switch it on in the Obsidian 0.9.11
But I get failed to load obsidian-sample-plugin.

The main file ends with .ts

Are there any other steps I need to do?

1 Like

Hi, I’m just trying to get started aswell.

When trying to activate the example plugin in the obsidian settings, the console will tell you

app.js:1 Plugin failure: obsidian-sample-plugin Error: ENOENT: no such file or directory, open ‘C:\Users\Ben\Dropbox\Obsidian Vaults\Personal Reading.obsidian\plugins\obsidian-sample-plugin\main.js’

So I assume you need to compile main.ts to main.js first.

In the readme of obsidian-sample-plugin they tell you to do this via npm run dev´ (which in turn invokes some tool called rollup`).

However, that gives me errors likeunexpected token so it seems it cant parse the ts properly. Will report back when I know more.

A post was split to a new topic: How to use cryptomator?

Thanks for that.
@argentum it would be great to see this added to the bottom of the mini FAQ how to develop in a ‘how to debug’ line :slight_smile:

Hey @Artemgy, I haven’t maintained this FAQ a lot, but this reply from @pjeby should probably help: How to get started with developing a custom Plugin? - #7 by pjeby

1 Like
  • @zephraph put together some tools for programmatically working with plugins. There’s also an unofficial collection of CLI tools that helps you build plugins for Obsidian. Apparently it’ll prompt you for which vault you want to develop in (via a select list; it finds all your vaults), sets up and automatically copies over built code, and prompts to you to install the hot-reload plugin if you haven’t already (it’ll do that for you automatically too). It’ll even copy over the manifest file if any changes happen to that.
1 Like

I tried to make a as-simple-as-possible-but-no-simpler set of instructions for getting started with plugins. (The idea here is to give you everything you need to be able to do things with plugin development, and nothing more than that.)

A rough guide on getting started fiddling with plugins

  • Download VS Code
  • Set up Node.js and NPM
  • Find a simple plugin on GitHub (the sample plugin is a potential one, but it doesn’t really do anything—maybe look for something that provides functionality similar to what you’d like to build)
  • Download the plugin into a folder on your desktop by cloning it
  • Compile the downloaded plugin code
    • Open your terminal
    • Open the folder for the newly-downloaded plugin in the terminal (If you need help with the terminal, search the web for advice for your platform—the exact commands can be different depending on whether you’re using macOS/Windows/Linux/etc.
    • Run npm i in the plugin folder
    • Run npm run dev and the terminal will re-compile whenever the .ts file has changes saved
  • Open up the plugin’s folder in VS Code
  • Open the file main.ts and start changing things
  • Refer to the Obsidian API to understand what you can use
    • In VS Code, you can hover over/select API elements and look up their definitions
  • Use console.log(object) or console.log(variable) to check the state/functioning of your plugin (see debugging below)
  • Drag the newly-created main.js and manifest.json files from the plugin folder into Your-Vault/.obsidian/plugins/Some-Plugin-Folder
  • (If loading the plugin for the first time, reload—or quit and relaunch—Obsidian)
  • (Unload and re)load the plugin in Obsidian’s Preferences → Community Plugins → the appropriate plugin toggle
  • Test it by invoking the features you’ve played with
  • Debug by using the Console tab in Obsidian’s Developer Tools (open dev tools with cmd/ctrl+shift+i, then select the console tab)
11 Likes

While I am not sensing this is or has been a contentious issue, I was wondering what the general consensus is on Obsidian, down the line, implementing features that have already been dutifully addressed by one or more plugins. While I understand that this likely would not affect a user’s ability to install a that plugin, I can imagine that most people might switch over to using the core feature or core plugin. My question exempts major features that are on the roadmap, as the plugin developer will not have been caught off guard.

I am wondering whether the Obsidian developers might opt to keep certain plugins plugins, when eventually they could be implemented as core without too much difficulty. This would likely support the thriving plugin ecosystem and also not divert the user base of hardworking plugin developers. I realize now that I guess my question may not fit the topic of FAQ, but does anyone else hope that the developers would perhaps work with the plugin developers to implement their work or just hopefully feel perfectly comfortable implementing something as core on their own even if it already has been addressed and hasn’t been on the roadmap?

By the way, for the record, I love Obsidian and genuinely feel that the developers will make the right decision. I am just not sure what it is. Regardless of how things go, I think 99% of the community will be with them, and that really does provide a lot of freedom, which evidently is helpful.

Thanks.