GnoxNahte / obsidian-auto-embed

Obsidian plugin to embed websites using simple markdown instead of iframe
MIT License
18 stars 0 forks source link
obsidian-plugin

GitHub manifest version GitHub last commit GitHub Open Issues GitHub Closed Issues GitHub License Obsidian Downloads

obsidian-auto-embed

Obsidian plugin to help embed links automatically instead of using iframes

Getting Started

Assuming you have Obsidian downloaded, Download the plugin: https://obsidian.md/plugins?id=auto-embed

Embedding links

  1. Paste a link
  2. Select "Create Embed"
  3. (Optional) Add Options
  4. Done! Wait for the embed to load

https://github.com/user-attachments/assets/def3599a-bac6-4517-83f3-96fc6ba5a815

Uses the same syntax as Obsidian - Embed Web pages. Syntax: ![options](link)

Features

Auto embeds websites like: Imgur, CodePen, Steam. Full list of supported websites

Supported websites:

Social Media:

Sound/Music:

Others:

[!WARNING] Websites with * means that it has some sort of limitation/note. See Current Limitations & Known Bugs for more info

For unsupported websites, the plugin will embed the whole website and not modify it.

For a list with examples of how the websites look like Supported Websites List.

Custom Options

How to add options:

All options:

Option Description Example Markdown
noembed Disables embedding for this link. If possible, try using [](link) instead. Same syntax, just without '!' ![noembed](https://example.com)
w:value / width:value Sets embed's width ![w:100%](https://example.com)
h:value / height:value Sets embed's height ![h:500px](https://example.com)

Uses CSS Units where applicable.

Custom styles

TODO: Add a table that lists all the CSS classes users can override.

How the plugin works

A brief overview with some steps on how the plugin works. Not required to use the plugin, just for those who are curious. Certain steps vary depending on whether you're in Reading View or Live Preview. However, the plugin doesn't have any impact when you're in source mode.

  1. Search where in the document the syntax is found.
    • In Reading View:
      Searches for the <img> tag that's generated by Obsidian when you use this format: ![](link)
    • In Live Preview:
      Searches for ![](link) and gets the options and URL from it.
  2. Get the URL from it, and convert it to the embed equivalent. Usually adds /embed/ somewhere in the url. Results in the same website but focused only on the content. No headers, footer, etc
  3. Replace those tags with <iframe> and apply options (width, height, dark mode, etc)
  4. Some websites like Twitter, Reddit or Imgur, will send a resize message. The plugin uses the info to resize the embed.

Roadmap

[!TIP] Submit any features you want using GitHub Issues or Google Forms (if u aren't comfortable with GitHub) Even if the feature is already listed, just submit it so I'll try to prioritise it.

Current Limitations & Known Bugs

Please send any issues you found!

Frequently asked questions

The embed isn't appearing

  1. Have you enabled the plugin?
  2. Are you following this syntax? ![](link)
    For example: ![](https://example.com)
  3. If it still doesn't work, create a post in Discussions so I can help you

Contact Me

I've just started Obsidian and this is my first plugin.
If you have any questions, feature requests, bugs or anything related to the plugin, feel free to create an issue or submit a Google Form.

Alternatively, you can email me too.

If this plugin helped you and want to support its development, please consider supporting me at Ko-fi

Credits