Ellpeck / ObsidianCustomFrames

An Obsidian plugin that turns web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.
MIT License
578 stars 30 forks source link
embed google-keep iframe obsidian obsidian-plugin obsidianmd

Obsidian Custom Frames

An Obsidian plugin that turns web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.

A screenshot of the plugin in action, where you can see Google Keep attached as a narrow side pane on the right

A screenshot of the plugin in action, where you can see Google Calendar opened in the center, and the mouse hovering over the corresponding ribbon button

A screenshot of the plugin's settings

🤔 Usage

To use this plugin, simply go into its settings and add a new frame, either from a preset shipped with the plugin, or a custom one that you can edit yourself.

🪟 Pane Mode

To open a Custom Frame as a pane, you can use the "Custom Frames: Open" command.

There are also plenty of settings to customize your frame further, including adding custom CSS to the site, adding a ribbon icon, displaying the frame in the center of the editor, and more.

🗒️ Markdown Mode

You can also display your custom frames in your Markdown documents. Custom Frames adds a special code block syntax that transforms the code block into a custom frame in Live Preview and Reading mode. Your code block should look like this:

```custom-frames
frame: YOUR FRAME'S NAME
```

Optionally, you can also pass custom style settings to the embed, which allows you to change things like the embed's height, as well as an additional suffix that will be appended to the frame's regular URL, which can be useful for things like displaying a specific note in Google Keep.

Here's an example using the Google Keep preset:

```custom-frames
frame: Google Keep
style: height: 1000px;
urlSuffix: #reminders
```

📱 On Obsidian Mobile

Unfortunately, Obsidian Mobile does not run on Electron, which is what allows iframes and webviews to be displayed with very few restrictions related to cookies, cross-origin resource sharing, and so on. This means that a lot of sites won't work there, especially ones that you have to log in to. However, when you create a frame, you can toggle the "Disable on Mobile" option to hide a Desktop-only frame in Obsidian mobile.

Need help using the plugin? Feel free to join the Discord server!

Join the Discord server

📦 Presets

By default, Custom Frames comes with a few presets that allow you to get new panes for popular sites up and running quickly.

If you create a frame that you think other people would like, don't hesitate to create a pull request with a new preset.

🛣️ Roadmap

⚠️ Known Issues

There are a few known issues with Custom Frames. If you encounter any of these, please don't report it on the issue tracker.

🙏 Acknowledgements

Thanks to lishid for their help with making iframes work in Obsidian for a purpose like this. Also thanks to them for motivating me to turn Obsidian Keep into a more versatile plugin, which is how Custom Frames was born.

If you like this plugin and want to support its development, you can do so through my website by clicking this fancy image!

Support me (if you want), via Patreon, Ko-fi or GitHub Sponsors