newsticker.texi 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618
  1. \input texinfo @c -*-texinfo-*-
  2. @comment %**start of header
  3. @setfilename ../../info/newsticker.info
  4. @include emacsver.texi
  5. @set VERSION @value{EMACSVER}
  6. @settitle Newsticker @value{VERSION}
  7. @include docstyle.texi
  8. @syncodeindex vr cp
  9. @syncodeindex fn cp
  10. @syncodeindex pg cp
  11. @comment %**end of header
  12. @copying
  13. This manual documents Newsticker, a feed reader for Emacs. It
  14. corresponds to Emacs version @value{EMACSVER}.
  15. @noindent
  16. Copyright @copyright{} 2004--2016 Free Software Foundation, Inc.
  17. @quotation
  18. Permission is granted to copy, distribute and/or modify this document
  19. under the terms of the GNU Free Documentation License, Version 1.3 or
  20. any later version published by the Free Software Foundation; with no
  21. Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
  22. and with the Back-Cover Texts as in (a) below. A copy of the license
  23. is included in the section entitled ``GNU Free Documentation License''.
  24. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
  25. modify this GNU manual.''
  26. @end quotation
  27. @end copying
  28. @dircategory Emacs network features
  29. @direntry
  30. * Newsticker: (newsticker). A feed reader for Emacs.
  31. @end direntry
  32. @titlepage
  33. @title Newsticker---a feed reader for Emacs
  34. @author Ulf Jasper
  35. @author @email{ulf.jasper@@web.de}
  36. @author @uref{http://ulf.epplejasper.de/}
  37. @page
  38. @vskip 0pt plus 1filll
  39. @insertcopying
  40. @end titlepage
  41. @contents
  42. @ifnottex
  43. @node Top
  44. @top Newsticker
  45. @insertcopying
  46. @end ifnottex
  47. @menu
  48. * Overview:: What is Newsticker?
  49. * Installation:: Things to do before starting Newsticker the first time.
  50. * Retrieving News:: How Newsticker fetches headlines.
  51. * Headline Management:: How Newsticker stores headlines.
  52. * Reading News:: How to read RSS and Atom feeds with Newsticker.
  53. * Automatic Processing:: Automatically process news items.
  54. * Configuration:: Customize Newsticker to your liking.
  55. * Supported Formats:: RSS and Atom formats supported by Newsticker.
  56. * GNU Free Documentation License:: The license for this documentation.
  57. * Index:: Variable, function, and concept index.
  58. @end menu
  59. @node Overview
  60. @chapter Overview
  61. Newsticker provides a @b{Feed Reader} for Emacs. It retrieves
  62. headlines from a list of news sites, processes them, and provides
  63. frontends for reading and managing them. (Standard headline formats
  64. are RSS and Atom which makes Newsticker an ``RSS Reader'', ``Atom
  65. Reader'' or ``Feed Aggregator''.)
  66. Headlines (or news items) consist of a title, (mostly) a description,
  67. and a link to the full story. The description may be a brief summary
  68. in plain text or a full HTML-formatted article. A headline may carry
  69. enclosed data such as images, audio or video files, typically in the
  70. case of so ``podcast feeds''.
  71. Newsticker downloads headlines asynchronously at configurable times,
  72. processes and stores them so that you can read them later. The list
  73. of subscribed feeds, the headline processing, the presentation of the
  74. headlines and almost all other aspects of Newsticker can be
  75. customized to your liking.
  76. @node Installation
  77. @chapter Installation
  78. As Newsticker is part of GNU Emacs there is no need to perform any
  79. installation steps in order to use it.
  80. Newsticker is highly customizable. All options have reasonable default
  81. values, so that (in most cases) it is not necessary to customize
  82. anything before you start Newsticker for the first time.
  83. @node Retrieving News
  84. @chapter Retrieving News
  85. Newsticker downloads news periodically in the background. This is
  86. triggered as soon as you start reading news (@ref{Reading News}).
  87. @findex newsticker-start
  88. @findex newsticker-stop
  89. Alternatively you may use the command @code{newsticker-start}
  90. (@code{newsticker-stop}) in order to start (stop) the periodic
  91. download of news without opening the reader.
  92. The following variables define which feeds are fetched and how this is
  93. done.
  94. @table @code
  95. @vindex newsticker-url-list-defaults
  96. @item newsticker-url-list-defaults
  97. You may select any number of feeds from this list of (sample) news feeds.
  98. @vindex newsticker-url-list
  99. @item newsticker-url-list
  100. All your personal news feeds are defined here. Each feed is
  101. identified by its name and an URL@. You may set the start-time and the
  102. retrieval interval for each feed as well as the retrieval command
  103. arguments in case that the default values do not fit a certain feed.
  104. @vindex newsticker-retrieval-method
  105. @vindex newsticker-wget-name
  106. @vindex newsticker-wget-arguments
  107. @item newsticker-retrieval-method
  108. By default Newsticker uses Emacs's built-in download capabilities for
  109. fetching headlines. You may change this to use an external tool like
  110. @code{wget}. In this case you need to set @code{newsticker-wget-name}
  111. and possibly @code{newsticker-wget-arguments}.
  112. @vindex newsticker-retrieval-interval
  113. @item newsticker-retrieval-interval
  114. The number of seconds between headline retrievals.
  115. @end table
  116. @node Headline Management
  117. @chapter Headline Management
  118. @cindex Age
  119. @cindex Status
  120. Newsticker assigns a status (or ``age'') to each headline which you
  121. can modify manually. This makes it easy to distinguish new headlines
  122. from old ones, to keep important headlines, to hide boring headlines
  123. etc. An item is ``new'' when it has just arrived and has not been
  124. read. You can mark it as ``old'' when you have read it or -- if you
  125. want to keep it -- you can mark it as ``immortal''. You can do that
  126. manually and you can define filters which do that automatically, see
  127. below. When a headline has vanished from the feed it is automatically
  128. marked as ``obsolete'' unless it has the status ``immortal''.
  129. ``Obsolete'' headlines get removed automatically after a certain time.
  130. @table @code
  131. @cindex Filter
  132. @vindex newsticker-auto-mark-filter-list
  133. @item newsticker-auto-mark-filter-list
  134. You may define any number of filters for automatically marking newly
  135. arrived headlines as ``immortal'' or ``old''. A filter looks for a
  136. regular expression in either the title or the description of a
  137. headline and then, if the expression matches, marks the headline as
  138. ``immortal'' or as ``old''. This is done only once, when a headline
  139. is fetched for the very first time.
  140. @vindex newsticker-keep-obsolete-items
  141. @vindex newsticker-obsolete-item-max-age
  142. @item newsticker-keep-obsolete-items
  143. Obsolete headlines are removed immediately unless
  144. @code{newsticker-keep-obsolete-items} is non-nil in which case they
  145. are kept until @code{newsticker-obsolete-item-max-age} is reached.
  146. @vindex newsticker-automatically-mark-items-as-old
  147. @item newsticker-automatically-mark-items-as-old
  148. If this is set to @code{t} then a ``new'' item becomes ``old'' as soon as
  149. it is retrieved a second time.
  150. @end table
  151. @node Reading News
  152. @chapter Reading News
  153. @findex newsticker-show-news
  154. Start Newsticker with the command @kbd{M-x newsticker-show-news}. This
  155. will start the asynchronous news download and displays all available
  156. headlines.
  157. @menu
  158. * Frontends:: Select the way headlines are displayed.
  159. * Navigation:: Move to the next unread headline etc.
  160. * Marking:: Mark important headlines.
  161. * More Actions:: Add new feeds etc..
  162. @end menu
  163. @node Frontends
  164. @section Frontends
  165. @cindex Frontends
  166. @vindex newsticker-frontend
  167. Newsticker provides two different @i{views} for browsing, marking and
  168. reading news. The variable @code{newsticker-frontend} determines the
  169. actual headline reader.
  170. @subheading Treeview
  171. @cindex Treeview
  172. In this view separate windows are used for displaying feeds, headlines
  173. and their descriptions. The feeds are shown as a tree on the left
  174. hand side, headlines of the currently selected feed are shown on the
  175. upper right side, and the full contents of the currently selected
  176. headline is shown on the lower right side.
  177. Feeds can be placed into groups, which themselves can be placed in
  178. groups and so on. This results in the tree which is displayed on the
  179. left. A node represents either a feed or a group of feeds holding a
  180. subtree. The following commands allow for managing groups.
  181. @table @kbd
  182. @item M-a
  183. @kindex M-a
  184. @findex newsticker-group-add-group
  185. Add a new feed group. Name of the new group and of the parent group
  186. must be entered. If The name of the parent group is the new group
  187. becomes a top-level group. (@code{newsticker-group-add-group})
  188. @item M-m
  189. @kindex M-m
  190. @findex newsticker-group-move-feed
  191. Moves a feed into a group. The name of the group must be
  192. entered. (@code{newsticker-group-move-feed})
  193. @end table
  194. The position of groups and feeds within the tree can be changed with these
  195. commands:
  196. @table @kbd
  197. @item M-up
  198. @itemx M-down
  199. @kindex M-up
  200. @kindex M-down
  201. @findex newsticker-group-shift-feed-up
  202. @findex newsticker-group-shift-feed-down
  203. Shift the currently selected feed up and down within its group.
  204. @item M-S-up
  205. @itemx M-S-down
  206. @kindex M-S-up
  207. @kindex M-S-down
  208. @findex newsticker-group-shift-group-up
  209. @findex newsticker-group-shift-group-down
  210. Shift the currently selected group up and down within its parent group.
  211. @end table
  212. The group settings are saved to a file either automatically when
  213. newsticker is being quit or manually when the following command is
  214. executed.
  215. @table @kbd
  216. @item s
  217. @kindex s
  218. @findex newsticker-treeview-save
  219. Save treeview group settings.
  220. @end table
  221. The Treeview is updated automatically as soon as new headlines have
  222. arrived.
  223. The Treeview is used when the variable @code{newsticker-frontend} is
  224. set to the value @code{newsticker-treeview}. (Alternatively it can be
  225. started with the command @code{newsticker-treeview}.)
  226. @subheading Plainview
  227. @cindex Plainview
  228. In this view all headlines of all feeds are displayed in a single
  229. buffer (@file{*newsticker*}). The modeline in the @file{*newsticker*}
  230. buffer informs you whenever new headlines have arrived.
  231. You may want to use imenu with Plainview, which allows for navigating
  232. with the help of a menu. In this case add the following to your Emacs
  233. startup file (@file{~/.emacs}).
  234. @lisp
  235. (add-hook 'newsticker-mode-hook 'imenu-add-menubar-index)
  236. @end lisp
  237. (Note that preparing the Plainview takes significantly more time than
  238. starting the Treeview because all headlines are displayed in a single
  239. buffer. When you have subscribed to a large amount of feeds you may
  240. find that Newsticker's efforts of minimizing rendering times, caching
  241. rendered items and so on you may find However, when you have
  242. subscribed to a large amount of feeds you may want to give the
  243. Treeview a try.)
  244. The Plainview is used when the variable @code{newsticker-frontend} is
  245. set to the value @code{newsticker-plainview}. (Alternatively it can be
  246. started with the command @code{newsticker-plainview}.)
  247. @subheading Ticker
  248. @cindex Ticker
  249. Additionally, headlines can be displayed in the echo area in the style of a
  250. news ticker.
  251. @findex newsticker-start-ticker
  252. @findex newsticker-stop-ticker
  253. Headlines can be displayed in the echo area, either scrolling like
  254. messages in a stock-quote ticker, or just changing. This can be
  255. started with the command @code{newsticker-start-ticker}. It can be
  256. stopped with @code{newsticker-stop-ticker}.
  257. @node Navigation
  258. @section Navigation
  259. @cindex Navigation
  260. Navigating through the list of feeds and headlines is rather
  261. straightforward. You may do this either with the mouse or with the
  262. keyboard. The following key bindings are provided in both, the
  263. Treeview as well as the Plainview.
  264. @table @kbd
  265. @item f
  266. @findex newsticker-next-feed
  267. @findex newsticker-treeview-next-feed
  268. Move to next feed (@code{newsticker-next-feed},
  269. @code{newsticker-treeview-next-feed}).
  270. @item F
  271. @findex newsticker-previous-feed
  272. @findex newsticker-treeview-prev-feed
  273. Move to previous feed (@code{newsticker-previous-feed},
  274. @code{newsticker-treeview-prev-feed}).
  275. @item n
  276. @findex newsticker-next-item
  277. @findex newsticker-treeview-next-item
  278. Move to next item (@code{newsticker-next-item},
  279. @code{newsticker-treeview-next-item}).
  280. @item N
  281. @findex newsticker-next-new-item
  282. @findex newsticker-treeview-next-new-item
  283. Move to next new item (possibly in another feed)
  284. (@code{newsticker-next-new-item},
  285. @code{newsticker-treeview-next-new-item}).
  286. @item p
  287. @findex newsticker-previous-item
  288. @findex newsticker-treeview-prev-item
  289. Move to previous item (@code{newsticker-previous-item},
  290. @code{newsticker-treeview-prev-item}).
  291. @item P
  292. @findex newsticker-previous-new-item
  293. @findex newsticker-treeview-prev-new-item
  294. Move to previous new item (possibly in another feed)
  295. (@code{newsticker-previous-new-item},
  296. @code{newsticker-treeview-prev-new-item}).
  297. @end table
  298. @subheading Treeview
  299. @table @kbd
  300. @item j
  301. @findex newsticker-treeview-jump
  302. Enter the name of a feed and jump to it
  303. (@code{newsticker-treeview-jump}).
  304. @end table
  305. @node Marking
  306. @section Marking
  307. @cindex Marking
  308. The following key bindings are provided in both, the Treeview as well
  309. as the Plainview.
  310. @table @kbd
  311. @item o
  312. @findex newsticker-mark-item-at-point-as-read
  313. @findex newsticker-treeview-mark-item-old
  314. Mark current item as old.
  315. (@code{newsticker-mark-item-at-point-as-read},
  316. @code{newsticker-treeview-mark-item-old}).
  317. @item i
  318. @findex newsticker-mark-item-at-point-as-immortal
  319. @findex newsticker-treeview-mark-item-immortal
  320. Mark current item as immortal. Immortal items are kept forever.
  321. (@code{newsticker-mark-item-at-point-as-immortal},
  322. @code{newsticker-treeview-mark-item-immortal}).
  323. @end table
  324. @node More Actions
  325. @section More Actions
  326. @cindex More Actions
  327. @subheading View full article
  328. @table @kbd
  329. @cindex Get News
  330. @item v
  331. @itemx RET
  332. @itemx <mouse-1>
  333. @findex newsticker-treeview-browse-url
  334. Open the link to the full article (as contained in the current
  335. headline) in your web browser @code{newsticker-treeview-browse-url}).
  336. @end table
  337. @subheading Get News
  338. @cindex Get News
  339. You can force immediate download of news with the following commands.
  340. @table @kbd
  341. @item g
  342. @findex newsticker-treeview-get-news
  343. Get news for currently shown feed (@code{newsticker-treeview-get-news}).
  344. @item G
  345. @findex newsticker-get-all-news
  346. Get news for all feeds (@code{newsticker-get-all-news}).
  347. @end table
  348. @subheading Add More Feeds
  349. @cindex Add More Feeds
  350. @table @kbd
  351. @item a
  352. @findex newsticker-add-url
  353. The command @code{newsticker-add-url} prompts for an URL and a name of
  354. a new feed. It then prepares a customization buffer where the details
  355. of the new feed can be set.
  356. @end table
  357. @node Automatic Processing
  358. @chapter Automatic Processing
  359. @cindex Automatic Processing
  360. Apart from automatic marking of headlines (by means of filters)
  361. Newsticker provides the possibility to fully process newly arrived
  362. headlines. Instead of reading headlines yourself you can tell
  363. Newsticker to do that for you.
  364. @vindex newsticker-new-item-functions
  365. In order to do so write a function which takes three arguments
  366. @table @var
  367. @item FEED
  368. the name of the corresponding news feed,
  369. @item TITLE
  370. the title of the headline,
  371. @item DESC
  372. the decoded description of the headline.
  373. @end table
  374. and add it to @code{newsticker-new-item-functions}. Each function
  375. contained in this list is called once for each new headline.
  376. Depending on the feed, the title and the description of a headline you
  377. can
  378. @itemize
  379. @item
  380. automatically download images referenced in HTML-formatted
  381. descriptions (for which a function already exists, see
  382. @code{newsticker-download-images}),
  383. @item
  384. automatically save enclosed audio and video files (for which another
  385. function exists as well, see @code{newsticker-download-images}),
  386. @item
  387. flash the screen while playing some sound,
  388. @item
  389. whatever you want.
  390. @end itemize
  391. @node Configuration
  392. @chapter Configuration
  393. All Newsticker options are customizable, i.e., they can be changed with
  394. Emacs customization methods. Call the command
  395. @code{customize-group} and enter @samp{newsticker} for the customization
  396. group.
  397. @noindent
  398. The following list shows the available groups of Newsticker options
  399. and some of the most important options.
  400. @itemize
  401. @item
  402. @code{newsticker-retrieval} contains options that define which news
  403. feeds are retrieved and how this is done.
  404. @itemize
  405. @item
  406. @vindex newsticker-url-list
  407. @code{newsticker-url-list} defines the list of headlines that are
  408. retrieved.
  409. @item
  410. @vindex newsticker-retrieval-method
  411. @code{newsticker-retrieval-method} defines how headlines are
  412. retrieved. This is either done using Emacs's built-in download
  413. capabilities or using an external tool.
  414. @item
  415. @vindex newsticker-retrieval-interval
  416. @code{newsticker-retrieval-interval} defines how often headlines
  417. are retrieved.
  418. @end itemize
  419. @item
  420. @code{newsticker-headline-processing} contains options that define
  421. how the retrieved headlines are processed.
  422. @itemize
  423. @item
  424. @vindex newsticker-keep-obsolete-items
  425. @code{newsticker-keep-obsolete-items} decides whether unread
  426. headlines that have been removed from the feed are kept in the
  427. Newsticker cache.
  428. @item
  429. @vindex newsticker-auto-mark-filter-list
  430. @code{newsticker-auto-mark-filter-list} provides the possibility to
  431. automatically mark headlines as immortal or old.
  432. @end itemize
  433. @item
  434. @code{newsticker-hooks} contains options for hooking other Emacs
  435. commands to newsticker functions.
  436. @itemize
  437. @item
  438. @vindex newsticker-new-item-functions
  439. @code{newsticker-new-item-functions} allows for automatic
  440. processing of headlines. See @code{newsticker-download-images}, and
  441. @code{newsticker-download-enclosures} for sample functions.
  442. @item
  443. @vindex newsticker-plainview-hooks
  444. The subgroup @code{newsticker-plainview-hooks} contains hooks that
  445. apply to the plainview reader only.
  446. @end itemize
  447. @item
  448. @code{newsticker-miscellaneous} contains other Newsticker options.
  449. @item
  450. @code{newsticker-ticker} contains options that define how headlines
  451. are shown in the echo area, i.e., the ``ticker''.
  452. @itemize
  453. @item
  454. @vindex newsticker-display-interval
  455. @vindex newsticker-scroll-smoothly
  456. @code{newsticker-ticker-interval} and
  457. @code{newsticker-scroll-smoothly} define how headlines are shown in
  458. the echo area.
  459. @end itemize
  460. @item
  461. @code{newsticker-reader} contains options for adjusting the headline reader.
  462. @itemize
  463. @item
  464. @vindex newsticker-frontend
  465. @code{newsticker-frontend} determines the actual headline reader. The
  466. ``plainview'' reader uses a single buffer, the ``treeview'' uses
  467. separate buffers and windows.
  468. @end itemize
  469. @itemize
  470. @item
  471. @vindex newsticker-plainview
  472. The subgroup @code{newsticker-plainview} contains options for the
  473. plainview reader.
  474. @item
  475. @vindex newsticker-treeview
  476. The subgroup @code{newsticker-treeview} contains options for the
  477. treeview reader.
  478. @end itemize
  479. @end itemize
  480. @noindent
  481. For the complete list of options please have a look at the
  482. customization buffers.
  483. @node Supported Formats
  484. @appendix Supported Formats
  485. @cindex Supported Formats
  486. Newsticker works with the standard RSS and Atom formats listed below
  487. (being lenient with feeds which break the specifications).
  488. @subheading RSS formats
  489. @itemize
  490. @item RSS 0.91 (see @uref{http://backend.userland.com/rss091})
  491. @item RSS 0.92 (see @uref{http://backend.userland.com/rss092})
  492. @item RSS 1.0 (see @uref{http://purl.org/rss/1.0/spec})
  493. @item RSS 2.0 (see @uref{http://blogs.law.harvard.edu/tech/rss})
  494. @end itemize
  495. @subheading Atom formats
  496. @itemize
  497. @item Atom 0.3
  498. @item Atom 1.0 (see
  499. @uref{https://datatracker.ietf.org/doc/rfc4287/})
  500. @end itemize
  501. @node GNU Free Documentation License
  502. @appendix GNU Free Documentation License
  503. @include doclicense.texi
  504. @node Index
  505. @unnumbered Index
  506. @printindex cp
  507. @bye