• Stars
    star
    457
  • Rank 95,357 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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.

πŸ“¦ Presets

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

  • Obsidian Forum
  • Google Keep, optimized for a narrow pane on the side
  • Google Calendar, optimized by removing some buttons. Close side panel with top-left button.
  • Todoist, optimized for a narrow (half-height) side panel by removing some buttons and slimming margins.
  • Notion (it's recommended to close Notion's sidebar if used as a side pane)
  • Twitter

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

  • Allow setting a custom icon for each pane
  • Allow displaying custom frames in Markdown code blocks
  • Add the ability to add a ribbon button for a frame that opens it in the main view
  • Allow creating links that open in a custom frame rather than the browser
  • Possibly allow executing custom JavaScript in iframes (though security implications still need to be explored)
  • Add a global setting that causes popups to be opened in a new Obsidian window rather than the default browser
  • Add more options to Markdown mode, like allowing for back and forward buttons

⚠️ 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.

  • In Obsidian 0.14.2 and lower, a lot of websites don't function properly in custom frames. This is due to these older versions not having features in place that allow for frames to have special, additional functionality related to cookies and headers.
  • In Obsidian 0.14.5 and lower, when dragging or moving a pane, hovering the mouse over a custom frame will cause it to get stuck or behave unexpectedly.

πŸ™ 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

More Repositories

1

ActuallyAdditions

A Minecraft Mod about lots of useful gadgets and things!
Java
213
star
2

ObsidianSimpleTimeTracker

Multi-purpose time trackers for your notes!
TypeScript
117
star
3

MLEM

Libraries for MonoGame and FNA that provide abstractions, quality of life improvements and additional features like a ui system and easy input handling.
C#
68
star
4

NaturesAura

A Minecraft mod about using Aura for unique mechanics
Java
46
star
5

Coroutine

A simple implementation of Unity's Coroutines to be used for any C# project
C#
33
star
6

Contentless

A tool for MonoGame that automatically handles adding assets to the Content Pipeline project
C#
20
star
7

PrettyPipes

Pretty Pipes is a simple to use, all-inclusive item transport mod featuring simple pipes that can be upgraded using modules to accomplish much more advanced tasks.
Java
15
star
8

ObsidianJustSharePlease

An Obsidian plugin that allows quickly and easily sharing individual notes online using an anonymized link
TypeScript
11
star
9

GameBundle

A tool to package MonoGame and other .NET Core applications into several distributable formats
C#
11
star
10

TinyLifeExampleMod

An example mod for my game Tiny Life. Use this template repository to create your own mod!
C#
7
star
11

Illumilib

A simple keyboard and mouse lighting library with support for Razer, Logitech and Corsair devices
C#
6
star
12

Nyx

A mod about effects of the moon. Commission for Drakallen
Java
4
star
13

TelegramVisualization

A work in progress thing to visualize Telegram chat data in all sorts of ways
JavaScript
3
star
14

MarkdownToBB

Why Steam still uses BBCode is beyond me but here you go, a converter that actually works for once
JavaScript
3
star
15

OptionSync

A Minecraft Mod about syncing your options between Minecraft instances
Java
2
star
16

CraftableDeeds

Commission for DB20xx
Java
2
star
17

DontLetGo

A short puzzle game about depression and panic attacks
C#
2
star
18

WhileYouWereAway

A server-side Minecraft mod that allows stuff to continue happening in unloaded chunks
Java
2
star
19

MiningTweaks

A mod that lets you configure the hardness and mining level of existing blocks
Java
2
star
20

TrustCircle

A Minecraft mod that makes players close to each other have buffs
Java
2
star
21

Sparks

Mirrors move power, basically
Java
2
star
22

Wopper

A mod that adds a wooden hopper
Java
2
star
23

AnimalTownGame

A 2d topdown game that has you living as the mayor of a town full of animals doing activities. It's basically Animal Crossing, people.
C#
1
star
24

CityBuilder

A city-building minigame where you have to place buildings in a tightly packed space
C#
1
star
25

Tetro

Definitely not Tetris
JavaScript
1
star
26

SketchBookAttributes

Minecraft mod commission for sketchlayer
Java
1
star
27

TerraFirmaBottom

TerraFirmaCraft for Rock Bottom
Java
1
star
28

PumpkiSplode

A Minecraft mod that makes villagers explode when they see pumpkins
Java
1
star
29

WoodpeckerPlugins

Simple plugins I created and use for Woodpecker CI
JavaScript
1
star
30

EnchantmentStorage

A mod to store enchantments. Commission for Zilch
Java
1
star
31

DynamicEnums

Enum-like single-instance values with additional capabilities, including dynamic addition of new arbitrary values and flags
C#
1
star
32

SkyGroups

A mod to make sky groups
Java
1
star
33

NaturesStarlight

Commission for Flabort
Java
1
star
34

PoemGen

Online tool to generate Ellpeck-like poems randomly
JavaScript
1
star
35

SimpleProtection

A Minecraft Mod that allows server admins to configure certain areas to allow and disallow certain things.
Java
1
star
36

SolidifiedExperienceTheMovieTheMod

Yes
Java
1
star
37

TownRPG

A town RPG type thing made with MonoGame
C#
1
star
38

ExtremelySimpleLogger

A very simple logger for .NET programs
C#
1
star
39

TinyBox

just another fantasy console
C#
1
star
40

ThingsThatMatta

A mod that adds things that do stuff
Java
1
star
41

TinyLifeWeb

HTML
1
star
42

PatchouliWeb

A node app that generates a web version of any Patchouli manual in one command
JavaScript
1
star
43

ButlerDotNet

A dotnet tool that automatically downloads and invokes itch.io's butler
C#
1
star
44

MapTransitionPOC

A nice way to make teleporters between scenes in Unity without having to type goal location coordinates
C#
1
star