mirror of
https://github.com/ckelsoe/obsidian-rss-importer.git
synced 2026-07-22 07:48:56 +00:00
No description
Correctness: resolver classifies /p/ as Substack only on a substack.com host; redirect cap aligned to 5; extractFeedItemId unescapes in a single pass (round trips literal backslash escapes). Feature: podcast/media notes now record media-url frontmatter and append an [Episode audio]/[Media] body link. Safety: the import command guards synchronous NoteWriter construction (a bad destination folder now surfaces a Notice, not a silent throw); loadSettings validates per-feed literal fields from data.json. Diagnosability: empty-body imports and skipped image downloads are logged. Structure: FeedPickerModal and DuplicatePromptModal moved to their own files; id non-empty guard at the mapping boundary; doc + type-dedup cleanups. 244 tests; build + lint green. Deferred (low/cosmetic): shared header helper, Atom updated-vs-published date precedence, the sanctioned settings-tab cast. |
||
|---|---|---|
| .github | ||
| __tests__ | ||
| scripts | ||
| .editorconfig | ||
| .gitignore | ||
| .npmrc | ||
| add-feed-modal.ts | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| debug-logger.ts | ||
| dismiss-store.ts | ||
| duplicate-prompt-modal.ts | ||
| esbuild.config.mjs | ||
| eslint.config.mts | ||
| feed-picker-modal.ts | ||
| feed-resolver.ts | ||
| feed-source.ts | ||
| feed-xml.ts | ||
| fetch-pacer.ts | ||
| folder-suggest.ts | ||
| html-converter.ts | ||
| image-downloader.ts | ||
| import-modal.ts | ||
| import-runner.ts | ||
| jest.config.cjs | ||
| LICENSE | ||
| main.ts | ||
| manifest.json | ||
| note-writer.ts | ||
| package-lock.json | ||
| package.json | ||
| paywall-detector.ts | ||
| PRIVACY.md | ||
| README.md | ||
| SECURITY.md | ||
| settings-tab.ts | ||
| settings.ts | ||
| source-common.ts | ||
| source-generic.ts | ||
| source-substack.ts | ||
| styles.css | ||
| tsconfig.json | ||
| turndown-plugin-gfm.d.ts | ||
| types.d.ts | ||
| ui-helpers.ts | ||
| vault-index.ts | ||
| version-bump.mjs | ||
| versions.json | ||
RSS Importer
Import articles and podcasts from RSS, Atom, and Substack feeds into your vault as Markdown notes, organized by source feed and deduplicated by note identity.
It is an importer, not a reader. It writes notes you own and then gets out of the way.
Features
- Multiple sources. Add any RSS, Atom, or podcast feed. Substack publications are first-class: paste a
@handle, a subdomain, a custom domain, or a post URL and the plugin resolves it to the right feed. - One folder per feed. Each feed imports into its own destination folder. Reorganize the notes into subfolders however you like; the plugin still finds them.
- Never re-imports. Each note carries a stable identity in its frontmatter. Moving or renaming a note does not cause a duplicate on the next import.
- Three-state item list. Every item shows as imported, dismissed, or available. Dismiss items you are not interested in; dismissing is reversible.
- Clean Markdown. Article HTML is converted to tidy Markdown (headings, lists, tables, code blocks, captions), with subscribe and share widgets stripped.
- Images your way. Link to the original image URLs, or download images into your vault.
- Podcasts. Podcast items import as notes from the show notes with a link to the episode audio.
Usage
- Open Settings → RSS Importer and add a feed under Feeds. Paste a feed URL or a Substack handle, click Resolve to preview it, pick a destination folder, and save.
- Run the Import command (or the ribbon icon) to open the import window.
- Select the items you want and import them. A summary reports what was created, skipped, or failed.
Installation
From Obsidian Community Plugins (recommended)
- Open Obsidian settings.
- Navigate to Community plugins.
- Click Browse.
- Search for RSS Importer.
- Click Install, then Enable.
Manual installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Create a folder named
rss-importerin your vault's.obsidian/plugins/directory. - Copy the downloaded files into this folder.
- Reload Obsidian.
- Enable RSS Importer in Settings → Community plugins.
BRAT (optional, for pre-release testing)
BRAT lets power users install pre-release builds before they reach the marketplace.
- Install the BRAT plugin from Community Plugins.
- Open BRAT settings and click Add Beta Plugin.
- Enter:
https://github.com/ckelsoe/obsidian-rss-importer - Enable RSS Importer in Settings → Community plugins.
Development
See CONTRIBUTING.md for setup, quality gates, and conventions.
License
MIT. See LICENSE.