diff --git a/README.md b/README.md index 7f39057d1..da869b8f8 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,15 @@ RSS Guard ### [Discord server](https://discord.gg/7xbVMPPNqH) | [Downloads](https://github.com/martinrotter/rssguard/releases) | [Development builds](https://github.com/martinrotter/rssguard/releases/tag/devbuild) | [Documentation](https://github.com/martinrotter/rssguard/blob/master/resources/docs/Documentation.md) -RSS Guard is simple RSS/ATOM feed reader for Windows, Linux, BSD, OS/2 or macOS which can work with RSS/ATOM/JSON feeds and also supports many online feed services: -* [Feedly](https://feedly.com), -* [Gmail](https://developers.google.com/gmail/api), -* Google Reader API ([Bazqux](https://bazqux.com), [FreshRSS](https://freshrss.org), [Inoreader](https://www.inoreader.com), [Miniflux](https://miniflux.app), [Reedah](http://reedah.com), [The Old Reader](https://theoldreader.com) and others), -* [Nextcloud News](https://apps.nextcloud.com/apps/news), -* [Tiny Tiny RSS](https://tt-rss.org). +RSS Guard is a simple RSS/ATOM feed reader for Windows, Linux, BSD, OS/2 or macOS which can work with RSS/ATOM/JSON feeds as well as many online feed services: +* [Feedly](https://feedly.com) +* [Gmail](https://developers.google.com/gmail/api) +* Google Reader API ([Bazqux](https://bazqux.com), [FreshRSS](https://freshrss.org), [Inoreader](https://www.inoreader.com), [Miniflux](https://miniflux.app), [Reedah](http://reedah.com), [The Old Reader](https://theoldreader.com) and more) +* [Nextcloud News](https://apps.nextcloud.com/apps/news) +* [Tiny Tiny RSS](https://tt-rss.org) ![RSS Guard](resources/docs/videos/rssguard.gif) Contributed graphics: -* RSS Guard logo - [Siddharth Yadav](mailto:illustrationdesignsid@gmail.com), [@Siddharth_yd](https://www.instagram.com/siddharth_yd/). -* Flag icons - [IconDrawer](http://www.icondrawer.com). +* RSS Guard logo - [Siddharth Yadav](mailto:illustrationdesignsid@gmail.com), [@Siddharth_yd](https://www.instagram.com/siddharth_yd/) +* Flag icons - [IconDrawer](http://www.icondrawer.com) diff --git a/resources/docs/Documentation.md b/resources/docs/Documentation.md index a954acaab..79247f836 100644 --- a/resources/docs/Documentation.md +++ b/resources/docs/Documentation.md @@ -37,11 +37,11 @@ There is a [Discord server](https://discord.gg/7xbVMPPNqH) for user communicatio RSS Guard is an [open-source](https://en.wikipedia.org/wiki/Open_source) [cross-platform](#sos) [multi-protocol](#sfr) desktop feed reader. It is able to fetch feeds in RSS/RDF/ATOM/JSON formats. RSS Guard is developed on top of the [Qt library](http://qt-project.org). ## Downloads -Official place to download RSS Guard is at [Github Releases](https://github.com/martinrotter/rssguard/releases). You can also download the [development (beta) build](https://github.com/martinrotter/rssguard/releases/tag/devbuild), which is updated automatically every time the source code is updated. +Official place to download RSS Guard is at [Github Releases page](https://github.com/martinrotter/rssguard/releases). You can also download the [development (beta) build](https://github.com/martinrotter/rssguard/releases/tag/devbuild), which is updated automatically every time the source code is updated. -RSS Guard is also available for [many Linux distributions](https://repology.org/project/rssguard/versions), and even via [Flathub](https://flathub.org/apps/details/com.github.rssguard). +RSS Guard is also available in [repositories of many Linux distributions](https://repology.org/project/rssguard/versions), and via [Flathub](https://flathub.org/apps/details/com.github.rssguard). -I highly recommend to download RSS Guard only from reputable sources. +I highly recommend to download RSS Guard only from trusted sources. ## Supported Operating Systems RSS Guard is a cross-platform application, and at this point it is known to work on: @@ -54,7 +54,7 @@ RSS Guard is a cross-platform application, and at this point it is known to work ## Major Features ### Supported Feed Readers -RSS Guard is multi-account application and supports many web-based feed readers via [built-in plugins](#papi). One of the plugins, of course, provides the support for standard **RSS/ATOM/JSON** feeds with the set of features everyone would expect from classic feed reader, like OPML support, etc. +RSS Guard is multi-account application and supports many web-based feed readers via [built-in plugins](#papi). One of the plugins, of course, provides the support for standard list of **RSS/ATOM/JSON** feeds with the set of features everyone would expect from classic feed reader, like OPML support, etc. I organized the supported web-based feed readers into an elegant table: @@ -70,7 +70,7 @@ I organized the supported web-based feed readers into an elegant table: alt-img -With ISA, RSS Guard only downloads articles which are new or were updated. While the old algorithm usually always fetch all available articles, even if they are not needed, which leads to unnecessary overload of your network connection and RSS Guard. +With ISA, RSS Guard only downloads articles which are new or were updated. The old algorithm usually always fetches all available articles, even if they are not needed, which leads to unnecessary overload of your network connection and the RSS Guard. 2 Note that [labels](#lbls) are supported for all plugins, but for some plugins they are local-only, and are not synchronized with the service. Usually because service itself does not support the feature. @@ -82,15 +82,15 @@ With ISA, RSS Guard only downloads articles which are new or were updated. While * TheOldReader * FreshRSS -4 [OAuth](https://en.wikipedia.org/wiki/OAuth) is secure way of authenticating users in online applications. +4 [OAuth](https://en.wikipedia.org/wiki/OAuth) is a secure way of authenticating users in online applications. ### Article Filtering -Sometimes you need to automatically tweak incoming article - mark it starred, remove ads from its contents or simply ignore it. That's where filtering feature comes in. +Sometimes you need to automatically tweak the incoming article - mark it starred, remove ads from its contents, or simply ignore it. That's where filtering feature comes in. alt-img #### Writing article filter -Article filters are small scripts which are executed automatically when articles/feeds are downloaded. Article filters are `JavaScript` pieces of code which must provide function with prototype: +Article filters are small scripts which are executed automatically when articles/feeds are downloaded. Article filters are JavaScript pieces of code which must provide function with prototype: ```js function filterMessage() { } @@ -100,23 +100,26 @@ The function should be fast and must return values which belong to enumeration [ Each article is accessible in your script via global variable named `msg` of type `MessageObject`, see [this file](https://github.com/martinrotter/rssguard/blob/master/src/librssguard/core/messageobject.h) for the declaration. Some properties are writeable, allowing you to change contents of the article before it is written to RSS Guard's DB. You can mark article important, change its description, perhaps change author name or even assign some label to it!!! -Almost any changes you make are synchronized back to feed service if the particular RSS Guard plugin supports it. +Almost all changes you make are synchronized back to feed service, if corresponding RSS Guard plugin supports it. -You can use [special placeholders](#userd-plac) within article filter. +A [special placeholders](#userd-plac) can be used in article filters. -Also, there is a special variable named `utils`. This variable is of type `FilterUtils` and offers some useful [utility functions](#utils-object) for you to use in your filters. +There is also a special variable named `utils`. This variable is of `FilterUtils` type. It offers some useful [utility functions](#utils-object) for your filters. -RSS Guard allows to use the list of labels assigned to each article. You can, therefore, execute actions in your filtering script, based on which labels are assigned to the article. The property is called `assignedLabels` and is array of [`Label`](#Label-class) objects. +Labels assigned to articles are visible to your filters. You can, therefore, execute actions in your filtering script, based on which labels are assigned to the article. The property is called `assignedLabels` and is an array of the [`Label`](#Label-class) objects. -Passed article also offers special function: +Passed article also offers a special function: ```js Boolean MessageObject.isAlreadyInDatabase(DuplicateCheck) ``` -which allows you to perform runtime check for existence of the article in RSS Guard's database. The parameter is value from enumeration [`DuplicateCheck`](#dupl-check) and specifies how exactly you want to match your article. +which allows you to perform runtime check for existence of the article in RSS Guard's database. Parameter is the value from enumeration [`DuplicateCheck`](#dupl-check). It specifies how exactly the article should match. -For example, if you want to check if there is already another article with same author in database, you should call `msg.isAlreadyInDatabase(MessageObject.SameAuthor)`. Values of the enumeration can be combined via bitwise OR (`|`) operator in single call, like this: +For example, if you want to check if there is already another article by the same author in a database, you should call `msg.isAlreadyInDatabase(MessageObject.SameAuthor)`. +The values of enumeration can be combined in a single call with the **[bitwise OR] (`|`)** operator, like this: + + [bitwise OR]: ```js msg.isAlreadyInDatabase(MessageObject.SameAuthor | MessageObject.SameUrl) @@ -125,46 +128,46 @@ msg.isAlreadyInDatabase(MessageObject.SameAuthor | MessageObject.SameUrl) Here is the reference of methods and properties of types available in your filtering scripts. #### `MessageObject` class -| Type | Name(Parameters) | Return value | Read-only | Synchronized | Description -| :--- | :--- | :--- | :---: | :---: | --- +| Type | Name(Parameters) | Return value | Read-only | Synchronized | Description +| :--- | :--- | :--- | :---: | :---: | --- | Property | `assignedLabels` | `Array