{"id":21229396,"url":"https://github.com/aoout/obsidian-rss-copyist","last_synced_at":"2025-07-10T15:32:02.741Z","repository":{"id":192035101,"uuid":"670158570","full_name":"aoout/obsidian-rss-copyist","owner":"aoout","description":"Get the RSS articles as notes.","archived":false,"fork":false,"pushed_at":"2024-11-13T07:34:32.000Z","size":759,"stargazers_count":26,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-13T08:27:58.980Z","etag":null,"topics":["obsidian","obsidian-md","obsidian-plugin","rss"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aoout.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-07-24T12:24:24.000Z","updated_at":"2024-11-13T07:34:35.000Z","dependencies_parsed_at":"2023-09-02T07:12:53.151Z","dependency_job_id":"708159a3-6ae6-46e8-a14a-d4a9b45e6750","html_url":"https://github.com/aoout/obsidian-rss-copyist","commit_stats":null,"previous_names":["aoout/obsidian-rss-copyist"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoout%2Fobsidian-rss-copyist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoout%2Fobsidian-rss-copyist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoout%2Fobsidian-rss-copyist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aoout%2Fobsidian-rss-copyist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aoout","download_url":"https://codeload.github.com/aoout/obsidian-rss-copyist/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225645661,"owners_count":17501729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["obsidian","obsidian-md","obsidian-plugin","rss"],"created_at":"2024-11-20T23:27:10.208Z","updated_at":"2024-11-20T23:27:10.710Z","avatar_url":"https://github.com/aoout.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obsidian RSS Copyist Plugin\n\n## Usage\n\nTo use this plugin, you need to create a note and tag it with the `feed` tag to represent an **RSS feed**. The plugin will then collect the updated articles from this feed into a folder with the same name, located in the root directory of the directory where the feed notes are located.\n\nAdditionally, you need to place a `template.md` file at the same level, or in a higher-level directory, to provide a template for all **RSS feeds** under it. This template will be used to format the articles collected from the RSS feeds.\n\nAfter these final preparations, you can run the `Get the newest articles from all feeds` command to get the latest subscription articles. This command will fetch the latest articles from all RSS feeds you have set up and format them according to the template you provided.\n\n\u003e[!note]\n\u003eIt's worth noting that the parsing effect of this plugin is better on the desktop side than on the mobile side. This means that you may get more accurate and complete article content on your desktop than on your mobile device.\n\n## FileTree Example\n\nHere's an example of how your file structure might look like after setting up the plugin:\n```\n.\n└── RSS/\n    ├── obsidian\n    ├── sppai\n    ├── steam/\n    │   ├── gameUpdate1\n    │   ├── gameUpdate2\n    │   ├── gameUpdate1.md\n    │   └── gameUpdate2.md\n    ├── obsidian.md\n    ├── sppai.md\n    └── template.md\n```\n\n## My Template\n\nHere's an example of what your `template.md` file might look like:\n```\n---\nfeed: \"{{item.feed}}\"\nurl: \"{{item.link}}\"\nauthor: \"{{item.author}}\"\ndate: \"{{item.pubDate}}\"\nfirstImage: \"{{item.firstImage}}\"\nunread: true\n---\n{{item.content}}\n```\n\n## Feed.md Example\n\nAnd here's an example of what your `feed.md` file might look like:\n``````\n---\nurl: https://rsshub.app/sspai/index\nnewestNum: 10\nshowunreadonly: true\ntags:\n- feed\n---\n```dataview\ntable dateformat(file.mtime, \"yyyy.MM.dd\") AS \"publish date\",\n\"![](\" + firstImage + \")\"\nwhere file.folder = this.file.folder + \"/\" + this.file.name\nand (!this.showunreadonly or unread)\nsort file.mtime DESC \n```\n``````\n\n\n## How RSS Articles Are Parsed here\n\nThis plugin uses the `xml-js` library to parse RSS feeds. The process is straightforward:\n\n1. The XML feed content is converted to JavaScript objects using `xml2js.xml2js()`\n2. The parser extracts key fields like title, description, author, link, publication date and even the content from each RSS item\n3. The extracted content is then formatted according to the template and saved as individual markdown files\n\nSo what I want to say is, this parsing process is really simple, to the point where it cannot be as universally compatible as some mature RSS services. Sometimes, the parsing just fails.\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoout%2Fobsidian-rss-copyist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faoout%2Fobsidian-rss-copyist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoout%2Fobsidian-rss-copyist/lists"}