URI:
       sfeed.1 - www.codemadness.org - www.codemadness.org saait content files
  HTML git clone git://git.codemadness.org/www.codemadness.org
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       sfeed.1 (2863B)
       ---
            1 .Dd January 7, 2023
            2 .Dt SFEED 1
            3 .Os
            4 .Sh NAME
            5 .Nm sfeed
            6 .Nd RSS and Atom parser
            7 .Sh SYNOPSIS
            8 .Nm
            9 .Op Ar baseurl
           10 .Sh DESCRIPTION
           11 .Nm
           12 reads RSS or Atom feed data (XML) from stdin.
           13 It writes the feed data in a TAB-separated format to stdout.
           14 If the
           15 .Ar baseurl
           16 argument is a valid absolute URL then the relative links or enclosures will be
           17 made an absolute URL.
           18 .Sh TAB-SEPARATED FORMAT FIELDS
           19 The items are output per line in a TAB-separated format.
           20 .Pp
           21 For the fields title, id and author each whitespace character is replaced by a
           22 SPACE character.
           23 Control characters are removed.
           24 .Pp
           25 The content field can contain newlines and these are escaped.
           26 TABs, newlines and '\e' are escaped with '\e', so it becomes: '\et', '\en'
           27 and '\e\e'.
           28 Other whitespace characters except spaces are removed.
           29 Control characters are removed.
           30 .Pp
           31 The order and content of the fields are:
           32 .Bl -tag -width 15n
           33 .It 1. timestamp
           34 UNIX timestamp in UTC+0, empty if missing or on a parse failure.
           35 .It 2. title
           36 Title text, HTML code in titles is ignored and is treated as plain-text.
           37 .It 3. link
           38 Link
           39 .It 4. content
           40 Content, can have plain-text or HTML code depending on the content-type field.
           41 .It 5. content-type
           42 "html" or "plain" if it has content.
           43 .It 6. id
           44 RSS item GUID or Atom id.
           45 .It 7. author
           46 Item, first author.
           47 .It 8. enclosure
           48 Item, first enclosure.
           49 .It 9. category
           50 Item, categories, multiple values are separated by the '|' character.
           51 .El
           52 .Sh EXIT STATUS
           53 .Ex -std
           54 .Sh EXAMPLES
           55 .Bd -literal
           56 curl -s 'https://codemadness.org/atom.xml' | sfeed
           57 .Ed
           58 .Pp
           59 To convert the character set from a feed that is not UTF-8 encoded the
           60 .Xr iconv 1
           61 tool can be used:
           62 .Bd -literal
           63 curl -s 'https://codemadness.org/some_iso-8859-1_feed.xml' | \e
           64 iconv -f iso-8859-1 -t utf-8 | \e
           65 sfeed
           66 .Ed
           67 .Sh EXAMPLE SETUP
           68 1. Create a directory for the sfeedrc configuration and the feeds:
           69 .Bd -literal
           70         mkdir -p ~/.sfeed/feeds
           71 .Ed
           72 .Pp
           73 2. Copy the example
           74 .Xr sfeedrc 5
           75 configuration:
           76 .Bd -literal
           77         cp sfeedrc.example ~/.sfeed/sfeedrc
           78         $EDITOR ~/.sfeed/sfeedrc
           79 .Ed
           80 .Pp
           81 Or import existing OPML subscriptions using
           82 .Xr sfeed_opml_import 1 :
           83 .Bd -literal
           84         sfeed_opml_import < file.opml > ~/.sfeed/sfeedrc
           85 .Ed
           86 .Pp
           87 3. To update feeds and merge the new items with existing items:
           88 .Bd -literal
           89         sfeed_update
           90 .Ed
           91 .Pp
           92 4. Format feeds to a plain-text list:
           93 .Bd -literal
           94         sfeed_plain ~/.sfeed/feeds/*
           95 .Ed
           96 .Pp
           97 Or format feeds to a curses interface:
           98 .Bd -literal
           99         sfeed_curses ~/.sfeed/feeds/*
          100 .Ed
          101 .Pp
          102 There are also other formatting programs included.
          103 The README file has more examples.
          104 .Sh SEE ALSO
          105 .Xr sfeed_curses 1 ,
          106 .Xr sfeed_opml_import 1 ,
          107 .Xr sfeed_plain 1 ,
          108 .Xr sfeed_update 1 ,
          109 .Xr sfeed 5 ,
          110 .Xr sfeedrc 5
          111 .Sh AUTHORS
          112 .An Hiltjo Posthuma Aq Mt hiltjo@codemadness.org
          113 .Sh CAVEATS
          114 If a timezone for the timestamp field is not in the RFC822 or RFC3339 format it
          115 is not supported and the timezone is interpreted as UTC+0.