Freeform Link Cards

by Artur Netsvetaev
5
4
3
2
1
Score: 50/100

Description

Apple Freeform-style local link preview cards for Obsidian Canvas.

Reviews

No reviews yet.

Stats

0
stars
335
downloads
0
forks
55
days
55
days
55
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
13
commits

Latest Version

README file from

Github

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

  1. Install dependencies with pnpm install (or npm install).
  2. Run pnpm build.
  3. Copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/freeform-link-cards/.
  4. 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:// or https:// URL onto empty canvas space.
  • Wait for the confirmation. The image is stored in Freeform Link Cards/assets by 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.js
  • manifest.json
  • styles.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