Scientific Article Card

approvedunreviewed

by Kirsley CHENNEN

Turn a PMID, PMCID, DOI, arXiv ID or article URL into a metadata card with title, authors, journal, abstract, image and identifiers.

↓ 85 downloadsUpdated 19d agoMIT

πŸ”¬ Scientific Article Card

Release Obsidian Downloads Tests Release build License: MIT Data sources

Created by Kirsley Chennen

πŸ“„ Turn a PMID, PMCID, DOI, arXiv ID or scientific article URL into a rich metadata card in your notes: title, authors, journal, year/volume/issue/pages, abstract, preview image, DOI, PMID, PMCID and keywords.

Scientific Article Card rendering PMID 34265844 in Obsidian: title, authors, citation, DOI/PMID/PMC links, MeSH keywords, preview figure and the structured abstract

πŸ’‘ Think Auto Card Link, but for papers: instead of a generic web preview, metadata comes from scholarly databases.

```paper
url: "https://pubmed.ncbi.nlm.nih.gov/34265844/"
title: "Highly accurate protein structure prediction with AlphaFold"
authors: "Jumper J, Evans R, Pritzel A, Green T, Figurnov M, Ronneberger O, Tunyasuvunakool K, Bates R, Ε½Γ­dek A, Potapenko A, et al."
journal: "Nature"
year: "2021"
volume: "596"
issue: "7873"
pages: "583-589"
doi: "10.1038/s41586-021-03819-2"
pmid: "34265844"
pmcid: "PMC8371605"
type: "Journal Article"
host: "pubmed.ncbi.nlm.nih.gov"
abstract: "Proteins are essential to life, and understanding their structure can facilitate…"
```

The block is rendered as a card with a preview image on the left (the article's first figure when available), the site icon, publication type, linked title, authors, citation, clickable DOI / PMID / PMC / arXiv links, keyword chips (the author keywords, or the MeSH terms when there are none) and a collapsible abstract (structured abstracts keep their Background / Methods / Results sections). The card is styled after Mantine's Card component and follows Obsidian's light or dark theme. Because it is plain YAML, you can edit any field by hand.

πŸ”Ž Supported inputs

InputExamples
PMIDPMID: 34265844, 34265844 (commands), https://pubmed.ncbi.nlm.nih.gov/34265844/
PMCIDPMC8371605, https://pmc.ncbi.nlm.nih.gov/articles/PMC8371605/, Europe PMC links
DOI10.1038/s41586-021-03819-2, doi:…, https://doi.org/…
arXivarXiv:1706.03762, https://arxiv.org/abs/1706.03762, …/pdf/1706.03762v7
Publisher URLany URL containing a DOI (Science, Wiley, PLOS, Frontiers, bioRxiv/medRxiv, PNAS…), nature.com/articles/…
Any article pagepages exposing citation_* / Dublin Core / OpenGraph meta tags

Markdown links ([text](url)) and <url> are accepted too. Trailing /full, .pdf, v2 and similar suffixes are stripped from DOIs.

πŸš€ Usage

Pasting PMID: 34265844 inserts a fetching placeholder, which is replaced by the article card; the abstract then expands
  • πŸ“‹ Paste: with Enhance default paste on, pasting a PubMed/PMC/DOI/arXiv link, a DOI, PMID: …, or a URL from a listed publisher domain turns it into a card once it lands in your note. Other URLs are left untouched.
  • ⌨️ Commands
    • Convert selection (or identifier under cursor) to article card β€” accepts several identifiers separated by spaces, commas or new lines
    • Insert article card from PMID / DOI / URL… β€” opens a prompt
    • Create paper note from PMID / DOI / URL… β€” see Paper notes
    • Refresh paper metadata β€” in a paper note
    • Link cards and paper notes in this note (backlinks) β€” in a reading list
    • Create Papers base (overview of paper notes)
  • πŸ–±οΈ Editor context menu: Convert to article card.

🎨 Output formats

  • πŸƒ Card (default): a paper code block rendered by the plugin.

  • πŸ“ Markdown template: plain Markdown that stays readable without the plugin. The default template is a collapsible callout; customize it with placeholders:

    {{title}} {{authors}} {{firstAuthor}} {{journal}} {{journalAbbr}} {{year}} {{date}} {{volume}} {{issue}} {{pages}} {{citation}} {{doi}} {{pmid}} {{pmcid}} {{arxiv}} {{ids}} {{url}} {{host}} {{image}} {{type}} {{publisher}} {{keywords}} {{abstract}}

    Wrap text in {{#key}}…{{/key}} to include it only when key has a value.

πŸ“ Your notes

Add your own reading status, rating, tags and a note to any card: select the ✏️ button in the card's header, fill in the form and save. (Once a card has a paper note, these live in the paper note instead.) They appear in a separate Your notes section, so what you wrote stays apart from the fetched metadata.

Card with a Your notes section: a To read status, a 4-star rating, the tags #impatient2 and #methods, and a short note

They are stored as extra fields in the card, which you can also edit by hand:

status: "to-read"        # to-read, reading or read
rating: 4                # 1 to 5
tags: ["impatient2", "methods"]
note: "Compare with ESMFold on our cohort."

Tags in Obsidian. Obsidian doesn't index tags inside code blocks. With Add card tags to the note's tags on (the default), saving notes also adds the card's tags to the note's tags property, so the tag pane, search, Dataview and Bases find the note. Removing a tag from a card doesn't remove it from the property, since you may use it elsewhere in the note.

πŸ“š Paper notes

For papers you work with, create one note per paper with the Create note button in the card's header. The paper's metadata becomes the note's properties, so each paper has its own tags, status and rating in Obsidian's tag pane, search, Dataview and Bases.

  • Name: FirstAuthor_JournalAbbreviation_Year, e.g. Jumper_Nature_2021, Zucca_HumGenet_2025. A different paper with the same name gets …2025a, …2025b, and so on. If a paper note with the same DOI or PMID already exists in the papers folder (or is linked from the reading list), it is reused.
  • Location: next to the note with the card (optionally in a subfolder), or in one dedicated folder. See the settings.
  • Content: the paper's metadata as properties (type: paper, title, authors, journal, year, doi, pmid, pmcid, url, image, publication-type, keywords, status, rating, summary, tags, created, reading-lists), the abstract, and a Notes section for your writing.
  • Your notes move with it: the card's status, rating and tags become the note's properties, and its note becomes the summary property. The paper note is then the single place for your notes: write longer notes in its Notes section.
  • Reading lists keep their cards: the card gets a paper-note link, its button becomes Open note, and its Your notes section shows the paper note's status, rating, tags and summary (labelled in Meyer_JNeuromusculDis_2024). Edit the summary property (or use ✏️) to change the text shown on the card; it is rendered as Markdown (lists, links, emphasis…). If the card's link is missing or broken, the card finds its paper note by DOI or PMID among the notes linked from the reading list's papers property and in the papers folder, and Open note repairs the link.
  • One place for your notes: if a linked card still has its own status, rating, tags or note (for example added by hand), Open note and ✏️ first move them into the paper note β€” without overwriting: the paper note's values win, tags are combined, and a note that differs from the summary is added to Notes.
  • Backlinks: the paper note and the reading list link to each other through properties β€” reading-lists: ["[[Biblios]]"] in the paper note and papers: ["[[Zucca_HumGenet_2025]]"] in the reading list β€” so each shows in the other's backlinks and on the graph, and Obsidian updates them when you rename a note. For cards linked before version 1.8, run Link cards and paper notes in this note (backlinks) in the reading list.

Refresh paper metadata: in a paper note, run the Refresh paper metadata command to fetch the paper again (for example after a preprint is published, or when a figure becomes available). It updates only the fetched properties β€” title, authors, journal, year, volume, issue, pages, identifiers, URL, image, publication type and keywords β€” and never your status, rating, tags, created, other properties or the note's text. An empty result keeps the old value.

Papers base: the Create Papers base command creates Papers.base in the papers folder (or opens it if it exists), listing the paper notes in that folder with four views:

ViewShows
All paperstable of title, year, journal, status, rating and tags, newest first
To readpapers with status: to-read, oldest first
By statusthe table grouped by status
Shelfcards with each paper's figure as the cover

It's a regular Bases file, so you can change its filters, columns and views in Obsidian.

Example properties:

type: paper
title: Highly accurate protein structure prediction with AlphaFold
authors: [Jumper J, Evans R, Pritzel A, …]
journal: Nature
year: 2021
doi: 10.1038/s41586-021-03819-2
pmid: "34265844"
status: to-read
rating: 4
summary: Compare with ESMFold on our cohort.
tags: [impatient2, methods]

βš™οΈ Settings

Main link target (what you pasted / DOI / PubMed), author format (Smith JA or John A. Smith), maximum authors before et al., include abstract / keywords / MeSH terms, fetch preview image, expand abstract by default, add card tags to the note's tags, publisher domains for paste, contact email and NCBI API key.

  • Colors: card style (Mantine, or Match Obsidian theme to use your theme's colors and font), and the colors of the publication type badge, the keywords, and your tags and note (Mantine's 13 colors, or your Obsidian accent color).
  • Badges (publication type, keywords, tags and status, as Mantine Badges): variant (Light, Filled, Outline, Dot, Default), size (extra small to extra large), radius (extra small to a pill), and uppercase (publication type only, all badges, or none).
  • Sections: expand the keywords / MeSH terms and your summary by default, or show them as Keywords (n) and Summary toggles.
  • Paper notes: location (next to the note with the card, with an optional subfolder, or a dedicated folder).

🌐 Network use

This plugin makes network requests only when you convert an identifier into a card. It sends the identifier (PMID, PMCID, DOI, arXiv ID or URL) to:

  • NCBI E-utilities / PubMed β€” article metadata by PMID
  • Europe PMC REST API β€” metadata by DOI / PMCID / PMID
  • Crossref REST API β€” metadata for DOIs not indexed in Europe PMC
  • arXiv API β€” arXiv preprints
  • the PMC Open Access dataset on AWS (pmc-oa-opendata.s3.amazonaws.com) β€” the first figure of articles available in PubMed Central, used as the preview image
  • the article's own page (the URL you pasted, or its doi.org landing page) β€” to read citation meta tags, and the preview image when the article is not in PMC
  • the NCBI CDN (cdn.ncbi.nlm.nih.gov) β€” PubMed's preview image, shown when no figure is available for a PubMed article
  • Google's favicon service (www.google.com/s2/favicons) β€” the site icon displayed on the card, loaded when the card is rendered

If you enter a contact email or NCBI API key in the settings, they are sent to NCBI (and the email to Crossref) as recommended by their usage policies. No other data is collected or transmitted, and there is no telemetry.

πŸ“‹ Clipboard

The plugin does not access the system clipboard: it never reads or writes it.

Paste-to-card works on your note, not the clipboard. When you paste, Obsidian inserts the text as usual; the plugin then looks at that newly inserted text and, if it is a PMID, PMCID, DOI, arXiv ID or supported article URL, replaces it with a card (⌘Z brings back what you pasted). Turn Enhance default paste off to disable this.

Using Auto Card Link too? If its Enhance Default Paste option is on, it takes over pasted URLs before they reach the note, so PubMed/DOI links become generic link cards. Turn that option off, or paste the bare DOI / PMID: …, or use Convert selection to article card on the link.

πŸ” Verifying releases

Release files (main.js, styles.css, manifest.json) are built by GitHub Actions and carry artifact attestations, so you can check that they came from this repository:

gh attestation verify main.js --repo kchennen/obsidian-scientific-article-card

πŸ§ͺ Development

The plugin is plain JavaScript (main.js, styles.css) with no build step. Tests use Node's built-in test runner:

npm install
npm test

They run offline: API answers (PubMed, Europe PMC, Crossref, arXiv, PMC figures) are recorded in tests/fixtures and replayed, and Obsidian is replaced by an in-memory vault (tests/helpers). What they cover:

FileBehaviour
identifiers.test.jsPMID, PMCID, DOI, arXiv and URL parsing, DOI clean-up
text.test.jsabstracts: super/subscripts, section labels, JATS
format.test.jsauthors, citation, code block YAML, Markdown template
fields.test.jscard notes fields, tags, finding and rewriting a card, merging notes
paper-notes.test.jsfile names, properties, body, refresh rules, Papers.base
render.test.jsthe card: sections, buttons, linked cards, warning strip, colors
styles.test.jsCSS variables and color classes defined, image on the left, no uppercase keywords
resolver.test.jsevery lookup path, preview images, keyword fallback, main link
paste.test.jspaste detection on real CodeMirror transactions, no clipboard access
flows.test.jsinserting cards, your notes, Create/Open note, backlinks, duplicates, renames, refresh, commands

Tests run on every push, and a release is only published if they pass. When an API changes its format, re-record the fixtures with npm run record-fixtures. Add a test with each new feature or bug fix.

πŸ“¦ Installation

🧩 From Obsidian: Settings β†’ Community plugins β†’ Browse, search for Scientific Article Card.

πŸ› οΈ Manually: download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/scientific-article-card/, then enable the plugin.

⚠️ Known limitations

  • Some publishers (e.g. Elsevier / ScienceDirect) block automated page requests. Paste the DOI or PMID instead of the page URL.
  • The preview image is the article's first figure when it is open access in PubMed Central. Otherwise it comes from the publisher page, which many publishers block. Articles indexed in PubMed fall back to PubMed's preview image.
  • The card's own paper-note link sits inside a code block, which Obsidian doesn't track. The papers / reading-lists properties provide the backlinks; if the card's link breaks after a rename, the card finds the note by its DOI or PMID.
  • To find paper notes the plugin never lists the whole vault: it only looks at the reading list's papers links and the papers folder. In the default location (next to each reading list), a paper note kept in another project's folder isn't found by DOI, so Create note makes one for this project; use a dedicated papers folder to share paper notes across projects.

πŸ‘€ Author

Kirsley Chennen β€” @kchennen

Issues and suggestions are welcome on the issue tracker. ⭐ Star the repo if you find it useful!

πŸ“œ License

MIT Β© 2026 Kirsley Chennen

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.