Home

Awesome

<br /> <h1 align="center">NVIM-RSS</h1> <p align="center">A simple rss reader for neovim written in lua.</p> <br />

Intro

nvim-rss aims to be similar to the excellent vnews and, if you squint hard enough while looking sideways, then perhaps elfeed.

Ideally, if you have a bunch of feeds and simply wish to view the latest entries in neovim instead of browsers or dedicated apps, then this plugin should help you out.

Demo (v0.2)

https://user-images.githubusercontent.com/9110181/141071168-ce671cd5-3f9b-4b68-b0d0-bb76abb7a8c5.mp4

Pre-requisites

  1. neovim
  2. curl | Usually pre-installed on most systems
  3. sqlite3 | Usually pre-installed on some systems
  4. tami5/sqlite.lua | Either as plugin or luarock
  5. tomasguisasola/luaexpat | From luarocks

Installation

Tested on linux, may work on macos. Probably won't work on windows.

If using packer.nvim (recommended) then


use {
  "empat94/nvim-rss",
  requires = { "tami5/sqlite.lua" },
  rocks = { "luaexpat" },
  config = function() require("nvim-rss").setup({...}) end
}

Else if using vim-plug then


Plug `tami5/sqlite.lua`

Plug 'empat94/nvim-rss'


luarocks install luaexpat


lua << EOF
  require("nvim-rss").setup({...})
EOF

Else your usual way of installing plugins and luarocks

Setup


require("nvim-rss").setup({   -- set nothing to use defaults

  feeds_dir = "/home/user",   -- ensure has write permissions (use full path to dir)

  date_format = "%x %r",      -- man date for more formats; updates when feed is refreshed

})

If using init.vim, wrap the code inside lua << EOF ... EOF

Usage

By default, no mappings/commands present. All functions are exposed so you may use them as you like!


To use above functions, write the usual mapping or command syntax. Example -


vim.cmd [[ -- no need for vim.cmd if vim file

  command! OpenRssView lua require("nvim-rss").open_feeds_tab()

  command! FetchFeed lua require("nvim-rss").fetch_feed()

  command! FetchAllFeeds lua require("nvim-rss").fetch_all_feeds()

  command! FetchFeedsByCategory lua require("nvim-rss").fetch_feeds_by_category()

  command! -range FetchSelectedFeeds lua require("nvim-rss").fetch_selected_feeds()

  command! ViewFeed lua require("nvim-rss").view_feed()

  command! CleanFeed lua require("nvim-rss").clean_feed()

  command! ResetDB lua require("nvim-rss").reset_db()

  command! -nargs=1 ImportOpml lua require("nvim-rss").import_opml(<args>)

]]

NOTE: The command ImportOpml requires a full path and surrounding quotes.


:ImportOpml "/home/user/Documents/rss-file.opml"

Checkout my feeds list here

Todos

Personal Goals

  1. Learn lua (I plan to make a few more plugins!)
  2. Learn how to make a neovim plugin
  3. Contribute to the awesome neovim ecosystem
  4. Share some open-source love <3