Freeform Link Cards
approvedby Artur Netsvetaev
Turns URLs pasted on Canvas into local, Apple's Freeform-style preview cards. - This plugin has not been manually reviewed by Obsidian staff.
Freeform Link Cards
An Obsidian plugin by Artur Netsvetaev that turns a URL pasted onto Canvas into a self-contained Apple Freeform-style card.
The card keeps the original web link, downloads the best large image into the vault, shows the page title and domain, and derives the caption color from the image. The .canvas file stores a small JSON payload inside a text node, so the preview remains portable and editable without a proprietary database.
Install for development
- Install dependencies with
pnpm install(ornpm install). - Run
pnpm build. - Copy
main.js,manifest.json, andstyles.cssinto<vault>/.obsidian/plugins/freeform-link-cards/. - Enable Freeform Link Cards under Settings → Community plugins.
For a manual install, create <vault>/.obsidian/plugins/freeform-link-cards/, download main.js, manifest.json, and styles.css from the latest GitHub Release into that folder, then enable the plugin.
Use
- Open a Canvas and paste one complete
http://orhttps://URL onto empty canvas space. - Wait for the confirmation. The image is stored in
Freeform Link Cards/assetsby default. - Double-click the finished card to open the original page.
- Resize a card from any handle; its original aspect ratio is enforced and the image is never cropped.
- The caption panel keeps an automatic content-based height instead of scaling with the card.
- If automatic conversion is disabled, run Freeform Link Cards: Create link card from clipboard from the command palette.
The image folder, default card width, paste behavior, and number of images inspected are configurable in plugin settings.
How image selection works
The plugin prioritizes Open Graph, Twitter Card, JSON-LD/schema.org, microdata, and image_src metadata. It uses the first valid structured preview image; only when no structured image can be downloaded does it fall back to responsive srcset and regular <img> candidates ordered by size. Icons and oversized files are rejected, and the chosen asset is stored locally.
Known constraints
- Canvas does not currently expose node creation as a stable public plugin API. This plugin uses the same internal Canvas methods used by established Canvas extensions; a future Obsidian update may require a compatibility adjustment.
- Pages protected by authentication, bot challenges, or strict hotlink rules may produce a text-only card.
- Dynamic pages that do not include image metadata or image URLs in their initial HTML cannot be fully inspected without running a browser.
Release files
Only these files are needed for installation:
main.jsmanifest.jsonstyles.css
Release files are built and cryptographically attested by GitHub Actions. Verify a downloaded file with gh attestation verify <file> -R netsvetaev/obsidian-freeform-link-cards.
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.