Turn GitHub into an RSS reader

Overview

Crates.io license GitHub Workflow Status

NotCraft::NotFeed

An RSS reader running entirely from your GitHub repo.

  • Free hosting on GitHub Pages. No ads. No third party tracking.
  • No need for backend. Content updates via GitHub Actions.
  • Customizable layouts and styles via templating and theming API. Just bring your HTML and CSS.
  • Free and open source. No third-party tracking.

How to use it?

Github Pages

  1. Use the NotFeed-Template generate your own repository.

  2. In the repository root, open Config.toml file, click the "Pencil (Edit this file)" button to edit.

  3. Remove # to uncommend the cacheUrl property, replace with your GitHub username, and replace with your GitHub repo name.

  4. In the sources, update the items to the sources you want to follow. The final content of the file should look similar to this:

    site_title = "ArxivDaily"
    cache_max_days = 7
    sources = [
        "https://export.arxiv.org/rss/cs.CL"
    ]
    # proxy = "http://127.0.0.1:7890" ## Optional: default is None
    # statics_dir   = "statics"       ## Optional: default is "statics"
    # templates_dir = "includes"      ## Optional: default is "includes"
    # cache_url = "https://GITHUB_USERNAME.github.io/REPO_NAME/cache.json"
    # minify = true
    
    # [scripts]
    # highlight = "scripts/highlight.rhai"
  5. Scroll to the bottom of the page, click "Commit changes" button.

  6. Once the rebuild finishes, your feed will be available at https://.github.io/

Localhost

  1. Clone the NotFeed-Template repository.
  2. Edit Config.toml file.
  3. Run notfeed
    • build: notfeed build
    • serve: notfeed serve --addr 127.0.0.1 --port 8080 or simply notfeed serve

TODO

  • When build error should retry or skip.
  • Fix If minify is true, the statics dir will be flattened.
  • Generate atom format file.
  • Refactor render structs.

Thanks

Comments
  • build(deps): update clap requirement from 3 to 4

    build(deps): update clap requirement from 3 to 4

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Updates the requirements on clap to permit the latest version.

    Release notes

    Sourced from clap's releases.

    v4.0.7

    [4.0.7] - 2022-09-30

    Features

    • (derive) Populate implicit ArgGroup (#3165)

    Fixes

    • (derive) Support #[group(skip)] on Parser derive
    • (derive) Tell users about implicit arg groups when running into group name conflicts
    • (error) Don't report unrelated groups in conflict or requires errors
    Changelog

    Sourced from clap's changelog.

    [4.0.7] - 2022-09-30

    Features

    • (derive) Populate implicit ArgGroup (#3165)

    Fixes

    • (derive) Support #[group(skip)] on Parser derive
    • (derive) Tell users about implicit arg groups when running into group name conflicts
    • (error) Don't report unrelated groups in conflict or requires errors

    [4.0.6] - 2022-09-30

    Features

    [4.0.5] - 2022-09-30

    [4.0.4] - 2022-09-29

    Fixes

    • (error) Specialize the self-conflict error to look like clap v3

    [4.0.3] - 2022-09-29

    Fixes

    • (error) Quote literals consistently
    • (error) Stylize escape (--) suggestions
    • (error) Format help flag as a literal

    [4.0.2] - 2022-09-28

    Fixes

    • (parser) SetFalse should conflict with itself like SetTrue and Set
    • (parser) Allow one-off overrides

    [4.0.1] - 2022-09-28

    Fixes

    • (derive) Ensure #[clap(...)] attribute still works

    [4.0.0] - 2022-09-28

    Highlights

    ... (truncated)

    Commits
    • 0bea4f2 chore: Release
    • b654130 docs: Update changelog
    • 2ea9455 Merge pull request #4310 from epage/skip
    • 5f145a2 fix(derive): Support 'group' attribute with Parser
    • 106d8f5 Merge pull request #4309 from epage/docs
    • 16e5599 docs: Note that author doesn't show up by default
    • 49186a5 docs: Note the move in ErrorKind
    • 4eb3da2 docs(help): Include example with old template
    • db31881 docs: Remove references to global settings
    • 973f30f refactor(docs): Use intra-doc links to avoid breakages
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): update v_latexescape requirement from 0.13 to 0.14

    build(deps): update v_latexescape requirement from 0.13 to 0.14

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Updates the requirements on v_latexescape to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): update rss requirement from 1.0 to 2.0

    build(deps): update rss requirement from 1.0 to 2.0

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Updates the requirements on rss to permit the latest version.

    Changelog

    Sourced from rss's changelog.

    2.0.0 - 2021-10-21

    1.10.0 - 2021-01-07

    1.9.0 - 2020-01-23

    1.8.0 - 2019-05-25

    1.7.0 - 2019-03-26

    1.6.1 - 2018-11-18

    ... (truncated)

    Commits
    • 24eb174 Release 2.0.0
    • 759a9a6 Disable clock feature of chrono to mitigate RUSTSEC-2020-0159
    • b359f13 Remove needless borrow (suggested by Clippy)
    • 6ce470b Add changelog
    • 0daf20b Update quick_xml
    • f3283a1 Fix issues found by clippy
    • 8b088b1 Replace HashMap with BTreeMap to have a stable order of tags/attributes
    • 975e4aa Update atom_syndication to 0.10.0
    • f736a24 Infallible builders
    • 283a10a Version 1.10.0
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • build(deps): update v_latexescape requirement from 0.12.1 to 0.13.1

    build(deps): update v_latexescape requirement from 0.12.1 to 0.13.1

    Updates the requirements on v_latexescape to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update tracing-subscriber requirement from 0.2 to 0.3

    build(deps): update tracing-subscriber requirement from 0.2 to 0.3

    Updates the requirements on tracing-subscriber to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update rss requirement from 1.0 to 2.0

    build(deps): update rss requirement from 1.0 to 2.0

    Updates the requirements on rss to permit the latest version.

    Changelog

    Sourced from rss's changelog.

    2.0.0 - 2021-10-21

    1.10.0 - 2021-01-07

    1.9.0 - 2020-01-23

    1.8.0 - 2019-05-25

    1.7.0 - 2019-03-26

    1.6.1 - 2018-11-18

    ... (truncated)

    Commits
    • 24eb174 Release 2.0.0
    • 759a9a6 Disable clock feature of chrono to mitigate RUSTSEC-2020-0159
    • b359f13 Remove needless borrow (suggested by Clippy)
    • 6ce470b Add changelog
    • 0daf20b Update quick_xml
    • f3283a1 Fix issues found by clippy
    • 8b088b1 Replace HashMap with BTreeMap to have a stable order of tags/attributes
    • 975e4aa Update atom_syndication to 0.10.0
    • f736a24 Infallible builders
    • 283a10a Version 1.10.0
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): update html-minifier requirement from 3 to 4

    build(deps): update html-minifier requirement from 3 to 4

    Updates the requirements on html-minifier to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v0.2.9)
Owner
NotCraft
A collections of useful tools designed by ylfeng.
NotCraft
Turn any web page into a desktop app (but, lightweight <1MB)

Intro Turn any web page into a desktop app (but, lightweight <1MB) The bundle will be less than 2MB Demo: https://i.imgur.com/BLr03oF.mp4 Install carg

null 9 Dec 27, 2022
A Blog & RSS system written in Rust based on Luke Smith's LB.

OB - Oliver's Blog Script A Blog and RSS system written in Rust. Features Converts blog entries written in Markdown into HTML. ✍?? Keeps a rolling blo

Oliver Brotchie 19 Aug 28, 2022
A RSS forwarder

newsfrwdr Checks inputs for new entries and forwards them to outputs (based on name/tag). For now, the only inputs it supports are rss feeds. Inspired

null 10 Dec 13, 2022
A Rust app for creating RSS Feeds in Notion.

Notion Feed A Rust app for creating RSS Feeds in Notion. Features Manage your RSS sources in a separate Notion page Enable/disable RSS sources Read fe

Alexandru Bereghici 16 Nov 30, 2022
Discover GitHub token scope permission and return you an easy interface for checking token permission before querying GitHub.

github-scopes-rs Discover GitHub token scope permission and return you an easy interface for checking token permission before querying GitHub. In many

null 8 Sep 15, 2022
A minimal and flexible blog generator based on GitHub Gists.

gisture Utilizing GitHub Gists as a Blogging Platform A minimal and flexible blog generator based on GitHub Gists with SEO, Templating, Syntax Highlig

Mufeed VH 26 Dec 27, 2022
Self-Hosted alternative to GitHub Gists

GitPad Self-Hosted GitHub Gists Features Upload code snippets(✓ REST API) Syntax Highlighting Comments Versioning through Git Fork gists Gist privacy:

Aravinth Manivannan 52 Dec 22, 2022
An API to track various stats written in Rust. Tracking Github, Wakatime, Spotify, and Duolingo

Null API API For collecting data Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About The Project Built With Getting St

The Null Dev 2 Dec 15, 2022
Rust Macro which loads files into the rust binary at compile time during release and loads the file from the fs during dev.

Rust Embed Rust Custom Derive Macro which loads files into the rust binary at compile time during release and loads the file from the fs during dev. Y

Peter 1k Jan 5, 2023
ditch poetry for pip. converts pyproject.toml into requirements.txt.

Say No To Poetry Did you grow up using just pip or conda? Are you being forced to use poetry everywhere at work? They try to convince you poetry just

Jaivarsan 7 Nov 6, 2022
The [cain!] macro is a macro that rewrites sequential Rust branch statements into nested branches

Note! This crate is experimental and under development. It may include bugs that alter the behavior of your code in unexpected ways. You should review

Fredrik Østrem 2 Jan 19, 2022
Tools that parsing Rust code into UML diagram (in dot format currently).

rudg Rust UML Diagram Generator Tools that parsing Rust code into UML diagram (in dot format currently). Usage $ rudg.exe --help rudg 0.1.0 USAGE:

Zhai Yao 16 Nov 13, 2022
Merge multiple Juniper object definitions into a single object type.

juniper-compose Merge multiple Juniper object definitions into a single object type. crates.io | docs | github Motivation You are building a GraphQL s

Kit Isaev 3 Aug 5, 2022
Deserialize (potentially nested) environment variables into your custom structs

envious allows you to deserialize your serde enabled structs from environment variables. See it in action: use serde::{Deserialize, Serialize}; #[der

Marcel Müller 46 Feb 19, 2023
A TUI feed reader for RSS, Atom, and (aspirationally) Podcasts

moccasin A TUI feed reader for RSS, Atom, and (eventually) Podcasts. VIM keybindings. Ranger-inspired interface. Configurable. Installation cargo inst

Tobias Fried 6 Sep 5, 2023
Single-reader, multi-writer & single-reader, multi-verifier; broadcasts reads to multiple writeable destinations in parallel

Bus Writer This Rust crate provides a generic single-reader, multi-writer, with support for callbacks for monitoring progress. It also provides a gene

Pop!_OS 26 Feb 7, 2022
A fetcher hook for the Plato document reader that syncs an e-reader with an OPDS catalogue.

plato-opds A fetcher hook for the Plato document reader that syncs an e-reader with an OPDS catalogue. Motivation I wanted to be able to sync my e-rea

null 11 Nov 8, 2023
👦 🗞 Paperboy is a GitHub template that delivers RSS by email.

Paperboy Paperboy is a GitHub template that delivers RSS by email. Why? Free, no trackers, easy to set up, and does the job. Usage Click on "use this

Eduardo Stuart 12 Jul 5, 2022
Turn static CLI commands into TUIs with ease

lazycli Turn static CLI commands into TUIs with ease Demo: Usage Pick a command that spits out either a list or table of content, like ls, docker ps,

Jesse Duffield 255 Dec 20, 2022
将 C/C++ 代码转换成流程图 / Turn your C/C++ code into flowchart

cxx2flow 将 C/C++ 代码转换为流程图 效果 更多效果图请参考 GALLERY 两种样式: 折线 平滑 安装 自行编译 cargo install cxx2flow 下载预构建二进制 可以到 GitHub Actions 或 Nightly.link 下载最新构建的二进制,包含 Linu

mgt 427 Dec 26, 2022