From: Kyle Bowman Date: Fri, 10 Jan 2025 00:25:35 +0000 (-0500) Subject: initialize issues branch X-Git-Url: https://git.rocketbowman.com/?a=commitdiff_plain;h=89908fecf213a96092fb2068a52a4163d4b784e9;p=nom.git initialize issues branch --- diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/nom.md b/nom.md new file mode 100644 index 0000000..b0af9cb --- /dev/null +++ b/nom.md @@ -0,0 +1,114 @@ +# Nom + +## Usage + +Separate by things that act on `feed` and things that act on `entry`. + + Ex: `nom feed show` vs `nom entry show` + +1. Add feed (with name, url, category) to feed list. +2. Remove feed from feed list. +3. List (unread) entries from feed list. + +## Feed Actions + +### Show + +`nom feed show [filters]` + +### Add + +`nom feed add [--category [, --category ]] ` + +### Remove + +`nom feed remove ` + +### Fetch + +`nom feed update [url|filters]` + +## Entry Actions + +### Show + +`nom entry show [filters]` + +aliased as `nom show [filters]` + +### Mark Viewed + +`nom entry mark viewed` + +### Add (really cool future idea) + +`nom entry add [--category [...]] ` + +You could easily turn this into a read-later app by adding a URL +and inferring metadata from the HTML \ tags. + +Since each feed goes in its own file, all these could go into a +`read-later.xml` or similar. You probably want it to go in `.local/share` +rather than `.cache`. + +### Fetch / Read (cool future idea) + +Needs to pull CSS as well as HTML. Or, define your own styling... + +## Filters + +**Remember** Feed filters are not necessarily the same as entry filters. + +**Remember**, you can always `grep` as a way of filtering rows. +You can always `cut` as a way of filtering columns. + +Hmm... It would be cool to batch update using filters. For example, + +``` bash +nom entry show [filters] | xargs nom entry mark viewed +``` + +### Viewed / Not Viewed / Both + +Could do the following: + +* `--viewed=exclude` default, hides entries that have already been read. +* `--viewed=include` shows entries that have already been read. +* `--viewed=only` shows only entries that have been read, + excluding unread entries. + +### Entry Metadata + +* Title +* Category +* Feed +* Summary +* Date (Published | Updated) + +### Feed metadata + +* Name +* URL +* Category + +## File locations + +Aim to use freedesktop.org data dir specs. I could envision having different +"profiles" that each use a different feed list. + +### Feed Definitions + +Data: Name, URL, Category (Optional) +Location: `~/.config/nom/profiles/default` + +### Entry Status (Viewed | Not Viewed) + +Data: Key for each feed entry, Read/unread boolean. +Location: `~/.local/share/nom/view-status` + +### Cache of each Feed + +Data: The Atom | RSS feed itself. +Location: `~/.cache/nom/feeds/*.xml` + +The name of `*.xml` should probably relate to the canonical name of the feed. \ No newline at end of file