cite-wide 0.3.0 Published

Cite Wide 0.3.0 — every citation visible again, and the sources that matter kept for good

0.3.0 fixes the bug that hid most citations, then fills in their authors, dates, and publishers, and keeps your key sources in the vault.

Cite Wide turns the citation chaos of LLM-pasted research into clean, stable, vault-wide references. 0.3.0 is the biggest release yet: every citation is visible to the plugin again, citation files fill themselves in, and the handful of sources that matter can be kept in your vault for good.

Requires Obsidian 1.13 or later. If you're on an older Obsidian, it keeps you on 0.2.3.

Why care?

A footnote is only as good as what it points to. Cite Wide has always given each citation a stable ID, [^a1b2c3], so it survives reordering, copy-paste, and merging. That's the easy half. The hard half is knowing who wrote it, when, and for whom, and still having the source when the link dies. That's what this release is about.

What's new

  • Promote to canonical source. Put the cursor on a citation and promote it. Cite Wide reads the footnote and the page itself and fills in the title, authors, publication date, publisher, and type. Then it saves the original file (a PDF report, say) and its full text as markdown into your vault. The result is a reusable record your other notes can draw on, and it doesn't vanish when the publisher takes the report down.

  • Enrich citations. Enrich all citations (or Enrich this citation) fills in every citation file's missing fields. Nothing is written until you've reviewed each change, old → new, with a checkbox per citation. Junk left by older versions gets replaced: "Page not found" titles, "3 minutes" authors. Each run leaves a report note.

  • Authors, found the way a librarian would. The page's structured data, its byline, the YouTube channel for videos, and, when no person is credited, the organization ("Kaszek", "Wikipedia contributors"), as the major citation styles do.

  • Publisher brand assets. Favicon, app icon, logo (the actual wordmark, often as SVG), brand color, and more, taken from the publisher's own homepage when the source is a PDF.

  • "Cited in" links that survive renames. Each citation records the notes that use it as wikilinks, [[Vocabulary/Relational Databases|Relational Databases]], which Obsidian updates when you rename or move a note.

  • Searchable settings. Every Cite Wide setting now appears in Obsidian's settings search.

Fixed

  • Most citations were invisible to the plugin. Cite Wide generates IDs from letters a–z and digits, but it only recognized IDs using a–f. That left about 98% of citations unseen by Show citations, Save all hex citations, and the conversion commands. All of them work now.

  • Citation files stayed empty. A citation file created on insert never got its footnote text. Saving now fills in any empty file.

  • Text with apostrophes was cut short, so "Kyle O'Brien" became "Kyle O". It's fixed in titles and authors.

  • Pages that block bots, and error pages, no longer become titles. "Just a moment...", "Client Challenge", and "Page not found" are no longer saved as titles.

  • Reading times are no longer saved as authors. "3 minutes" is not an author.

  • Fetch times are no longer saved as publication dates. Some readers report when they fetched a page as its "published" time. That time is now recorded honestly, as date_fetched.

Every one of these was found by running the new pipeline over a real vault of 75 citations before shipping, and every fix has a test.

Under the hood

  • Metadata pipeline. Tier 1 is a dependency-free <meta>/JSON-LD extractor; tier 2 is Jina Reader, used for whatever tier 1 misses. Brand assets come from the publisher's homepage, and video channels from YouTube oEmbed. A single isJunkTitle / isPlausibleAuthor gate checks every candidate value.

  • Enrich plans changes with a pure function (planCitationChanges) and writes only what you approve. A field edited while the review modal is open is never overwritten, and re-running over an enriched vault proposes nothing.

  • Settings tab: getSettingDefinitions() (Obsidian 1.13), with minAppVersion 1.8.10 → 1.13.0.

  • Tests: 117, run by Node's built-in runner with no new dependencies. They include an onload() test that all 17 commands register.

  • Lint: Obsidian's own review-bot rules (eslint-plugin-obsidianmd), at 0 errors and 0 warnings.

  • Version 0.2.3 → 0.3.0 across manifest.json, package.json, and versions.json. Every release asset is attested: gh attestation verify main.js --repo lossless-group/cite-wide.

The Lossless Group plugin family

PluginWhat it does
Cite Wide (this release)Stable citations, canonical sources, and citation metadata that fills itself in
Image GinRecraft and Ideogram image generation in your own house style, stock search, ImageKit CDN, and a confirmation gate for every dropped image
PerplexedSource-cited research from Perplexity, Claude, Perplexica, or LM Studio
MetafetchOpenGraph metadata into note frontmatter

Each plugin installs and works on its own. If Cite Wide saves you time, buy us a coffee.