An Obsidian plugin for rigorous, vault-wide citation management. Converts numeric footnotes into unique hex-codes, logs unique hex codes and their reference information into a base, assures consistent hex codes per reference.
- Converts numeric citations
[1]into unique hex codes[^a1b2c3] - Consistent algorithm ensures the same reference always generates the same hex code
- Maintains vault-wide consistency across all documents
- Extract properly formatted citations from URLs using Jina.ai Reader API
- Highlights a URL and automatically generates citation in the format:
[^1b34df]: 2016, May. "[Originals, by Adam Grant | Bob's Books](https://bobsbeenreading.com/2016/05/08/originals-by-adam-grant/)" schoultz. [Bob's Books](https://bobsbeenreading.com/). - Updates existing footnotes or creates new ones
- Works without API key, but adding one can avoid rate limits
- Supports multiple citation formats: numeric
[1], footnotes[^1], Perplexity-style1. [https://...] - Automatic detection and grouping of citation instances
- Intelligent reference source tracking
- Moves citations after punctuation (e.g.,
text[1].→text.[1]) - Ensures proper spacing between multiple citations
- Maintains clean, readable document structure
- Automatically creates citation files in a dedicated folder for Dataview queries
- Rich metadata including title, author, URL, usage count, and file tracking
- Comprehensive frontmatter for powerful Dataview queries and organization
pnpm install
pnpm add -D esbuild @types/node builtin-modules
pnpm build
pnpm dev
Create a symbolic link into the plugins directory:
Here is my example, but you will need to use your own path structure:
ln -s /Users/mpstaton/code/lossless-monorepo/cite-wide /Users/mpstaton/content-md/lossless/.obsidian/plugins/cite-wideThe plugin automatically creates citation files for Dataview integration:
- Open Obsidian Settings → Community Plugins → Cite Wide
- Set your preferred citations folder (default: "Citations")
- Citation files will be created automatically when you use citation commands
The URL citation extraction feature works without an API key, but adding one can help avoid rate limits:
- Get a Jina.ai API key from https://jina.ai/
- Open Obsidian Settings → Community Plugins → Cite Wide
- Enter your API key in the settings (optional)
- Save the settings
Note: The feature works perfectly without an API key, but you may encounter rate limits with heavy usage.
- Highlight a URL in your document
- Run the "Extract Citation from URL" command (Ctrl/Cmd + P)
- The URL will be replaced with a citation reference like
[^a1b2c3] - A properly formatted citation will be added to the Footnotes section
Example:
- URL:
https://bobsbeenreading.com/2016/05/08/originals-by-adam-grant/ - Becomes:
[^1b34df]: 2016, May. "[Originals, by Adam Grant | Bob's Books](https://bobsbeenreading.com/2016/05/08/originals-by-adam-grant/)" schoultz. [Bob's Books](https://bobsbeenreading.com/).
For existing footnotes:
- Before:
[^028ee3]: @https://bobsbeenreading.com/2016/05/08/originals-by-adam-grant/ - After:
[^028ee3]: 2016, May. "[Originals, by Adam Grant | Bob's Books](https://bobsbeenreading.com/2016/05/08/originals-by-adam-grant/)" schoultz. [Bob's Books](https://bobsbeenreading.com/).
The plugin automatically creates citation files with rich metadata for powerful Dataview queries. Each citation file includes:
---
hexId: "a1b2c3"
title: "Article Title"
author: "Author Name"
url: "https://example.com/article"
date: "2024"
source: "example.com"
tags: []
created: "2024-01-15T10:30:00.000Z"
lastModified: "2024-01-15T10:30:00.000Z"
referenceText: "Full reference text"
usageCount: 1
filesUsedIn: ["path/to/file.md"]
---Basic citation table:
TABLE title, author, date, usageCount
FROM "Citations"
SORT created DESC
Most used citations:
TABLE title, author, source, filesUsedIn
FROM "Citations"
WHERE usageCount > 1
SORT usageCount DESC
Citations by author:
TABLE title, date, usageCount, url
FROM "Citations"
WHERE author
SORT author ASC, date DESC
See examples/dataview-citations-examples.md for comprehensive Dataview query examples.




