wanted
+wanted content
+unwanted content
+wanted
+wanted content
+wanted
+unwanted content
+wanted content
+wanted
-wanted content
-unwanted content
-wanted
-wanted content
-wanted
-unwanted content
-wanted content
-diff --git a/docs/en/admins/02_Prerequisites.md b/docs/en/admins/02_Prerequisites.md
index 196edad63..7828972dd 100644
--- a/docs/en/admins/02_Prerequisites.md
+++ b/docs/en/admins/02_Prerequisites.md
@@ -6,7 +6,7 @@ You need to verify that your server can run FreshRSS before installing it. If yo
| Software | Recommended | Also Works With |
| ------------- | ----------------------- | ----------------------- |
-| Web server | **Apache 2** | Nginx |
+| Web server | **Apache 2** | Nginx, lighttpd |
| PHP | **PHP 7+** | PHP 5.6+ |
| PHP modules | Required: libxml, cURL, JSON, PDO\_MySQL, PCRE and ctype.
Required (32-bit only): GMP
Recommanded: Zlib, mbstring, iconv, ZipArchive
*For the whole modules list see [Dockerfile](https://github.com/FreshRSS/FreshRSS/blob/master/Docker/Dockerfile-Alpine#L7-L9)* | |
| Database | **MySQL 5.5.3+** | SQLite 3.7.4+, PostgreSQL 9.5+ |
diff --git a/docs/en/admins/03_Installation.md b/docs/en/admins/03_Installation.md
index 5efd0871f..6cbbae6ad 100644
--- a/docs/en/admins/03_Installation.md
+++ b/docs/en/admins/03_Installation.md
@@ -10,7 +10,7 @@ Before you begin, make sure that you've read the [prerequisites](02_Prerequisite
3. Give ownership of the FreshRSS folder to your web server user (often `www-data`). Give group read permissions to all files in `.`[^2], and group write permissions to `./data/`.
-4. Install needed PHP modules.
+4. Install needed PHP modules. A precise and up-to-date list can be found in [the Dockerfile](https://github.com/FreshRSS/FreshRSS/blob/master/Docker/Dockerfile#L11-L12).
5. Create a database for FreshRSS to use. Note the username and password for this database, as it will be needed during installation!
@@ -18,6 +18,8 @@ Before you begin, make sure that you've read the [prerequisites](02_Prerequisite
7. You can then customize [the configuration of your instance](https://github.com/FreshRSS/FreshRSS/blob/master/config.default.php#L3-L4), [the default configuration for new users](https://github.com/FreshRSS/FreshRSS/blob/master/config-user.default.php#L3-L5) or [the default set of feeds for new users](https://github.com/FreshRSS/FreshRSS/blob/master/opml.default.xml#L2-L5).
+---
+
[^1]: Make sure to expose only the `./p/` folder to the Web, as the other directories contain personal and sensitive data.
[^2]: If you wish to allow updates from the web interface, also give group write permissions to this folder.
diff --git a/docs/en/admins/05_Configuring_email_validation.md b/docs/en/admins/05_Configuring_email_validation.md
index fe073545c..0379e4c1a 100644
--- a/docs/en/admins/05_Configuring_email_validation.md
+++ b/docs/en/admins/05_Configuring_email_validation.md
@@ -27,7 +27,7 @@ To configure a SMTP server, you'll have to modify the `data/config.php` file.
First, change the `mailer` item to `smtp` (instead of the default `mail`).
Then, you should change the `smtp` options like you would do with a regular
-email client. You can find the full list of options in the [`config.default.php` file](/config.default.php).
+email client. You can find the full list of options in the [`config.default.php` file](https://github.com/FreshRSS/FreshRSS/blob/master/config.default.php).
If you're not sure to what each item is corresponding, you may find useful [the
PHPMailer documentation](http://phpmailer.github.io/PHPMailer/classes/PHPMailer.PHPMailer.PHPMailer.html#properties)
(which is used by FreshRSS under the hood).
diff --git a/docs/en/contributing.md b/docs/en/contributing.md
index 3d4bde6a8..91fc49797 100644
--- a/docs/en/contributing.md
+++ b/docs/en/contributing.md
@@ -1,10 +1,3 @@
-## Join us on the mailing lists
-
-Do you want to ask us some questions? Do you want to discuss with us? Don't hesitate to subscribe to our mailing lists!
-
-* The first mailing is destined to generic information, it should be adapted to users. [Join mailing@freshrss.org](https://freshrss.org/mailman/listinfo/mailing).
-* The second mailing is mainly for developers. [Join dev@freshrss.org](https://freshrss.org/mailman/listinfo/dev)
-
## Report a bug
Have you found a bug? Don't panic, here are some steps to report it with ease:
@@ -25,6 +18,8 @@ We also need some information:
* Your storage system (SQLite, MySQL, MariaDB, PostgreSQL)
* If possible, the related logs (PHP logs and FreshRSS logs under `data/users/your_user/log.txt`)
+For a more detailed guide on writing bug reports, please refer to [the in-depth guide on reporting bugs](developers/06_Reporting_Bugs).
+
## Fix a bug
Would you like to fix a bug? For optimum coordination between collaborators, you should follow these indications:
@@ -34,7 +29,7 @@ Would you like to fix a bug? For optimum coordination between collaborators, you
3. [Create a new branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/). The name of the branch should be clear, and ideally prefixed by the related ticket id. For instance, `783-contributing-file` to fix [ticket #783](https://github.com/FreshRSS/FreshRSS/issues/783).
4. Make your changes to your fork and [send a pull request](https://help.github.com/articles/using-pull-requests/).
-If you have to write code, please follow [our coding style recommendations](developers/01_First_steps.md).
+If you have to write code, please follow [our coding style recommendations](developers/02_First_steps.md).
**Tip:** if you're searching for easy-to-fix bugs, please have a look at the "[good first issue](https://github.com/FreshRSS/FreshRSS/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)" ticket label.
diff --git a/docs/en/developers/01_Index.md b/docs/en/developers/01_Index.md
new file mode 100644
index 000000000..fcd9204af
--- /dev/null
+++ b/docs/en/developers/01_Index.md
@@ -0,0 +1,29 @@
+# FreshRSS Development
+
+## First Steps
+
+Start by creating your development environment. A guide to setting up FreshRSS's development environment can be found on [the appropriate page](02_First_steps.md).
+
+## After That
+
+* [Github Branching and Pushing](02_Github.md)
+* [Running tests](03_Running_tests.md)
+* [Creating a pull request](04_Pull_requests.md)
+* [Releasing a new version](05_Release_new_version.md)
+* [Reporting bugs](06_Reporting_Bugs.md)
+* [Fever API](06_Fever_API.md)
+
+## Backend Development
+
+* [Making extensions for FreshRSS](03_Backend/05_Extensions.md)
+* [Database Schema](03_Backend/01_Database_schema.md)
+* [External libraries](03_Backend/03_External_libraries.md)
+* [Changing source code](03_Backend/04_Changing_source_code.md)
+
+## Frontend Development
+
+* [View files](04_Frontend/01_View_files.md)
+* [Design](04_Frontend/02_Design.md)
+
+## Minz
+Minz is the homemade PHP framework used by FreshRSS. More information can be found [here](Minz/index.md).
\ No newline at end of file
diff --git a/docs/en/developers/01_First_steps.md b/docs/en/developers/02_First_steps.md
similarity index 100%
rename from docs/en/developers/01_First_steps.md
rename to docs/en/developers/02_First_steps.md
diff --git a/docs/en/developers/02_Github.md b/docs/en/developers/02_Github.md
index a898dc23e..953785d4f 100644
--- a/docs/en/developers/02_Github.md
+++ b/docs/en/developers/02_Github.md
@@ -1,70 +1,3 @@
-# Reporting a bug or a suggestion
-
-Despite the care given to FreshRSS, it's still possible that bugs occur. The project is young and development is dynamic, so it can be corrected quickly. You might also have a feature in mind that doesn't yet exist. Regardless whether your idea seems silly, far-fetched, useless or too specific, please don't hesitate to propose it to us! "Ideas in the air" often find an attentive ear. It's new external perspectives that make the project evolve the most.
-
-If you're convinced that you should be heard, here's how you can go about it.
-
-## On GitHub
-
-GitHub is the ideal platform to submit your requests. It allows us to discuss a problem or suggestion with others and it often generates new ideas. Let's not neglect this "social" aspect!
-
- 1. [Go to the bug ticket manager](https://github.com/FreshRSS/FreshRSS/issues)
- 2. Start by checking if a similar request hasn't already been made. If so, please feel free to add your voice to the request.
- 3. If your request is new, [open a new bug ticket](https://github.com/FreshRSS/FreshRSS/issues/new)
- 4. Finally, write your request. If you're fluent in English, it's the preferred language because it allows for discussion with the largest number of people.
- 5. Please follow the tips below to make it easier to let your ticket be heard.
-
-## Informal
-
-Not everyone likes or uses GitHub for a variety of legitimate reasons. That is why you can also contact us in a more informal way.
-
-* On [our Mattermost chat](https://framateam.org/signup_user_complete/?id=e2680d3e3128b9fac8fdb3003b0024ee)
-* On [the mailing lists](https://freshrss.org/announce-of-the-mailing-lists.html)
-* At events / meetings around Free Software
-* Over a beer in a bar
-* Etc.
-
-## Tips
-
-Here are some tips to help you present your bug report or suggestion:
-
-
-* **Pay attention to spelling**. Even if it's not always easy, try your best!
-* **Give an explicit title to your request**, even if it's a bit long. This not only helps us understand your request, but also to find your ticket later.
-* **One request = one ticket.** You may have lots of ideas while being afraid to spam the bug manager: it doesn't matter. It's better to have a few too many tickets than too many requests in one. We'll close and consolidate requests when possible.
-* If you report a bug, think about **providing us with the FreshRSS logs** (accessible in the FreshRSS `data/log/` folder) and the **PHP logs** (the location may vary by distribution, but consider searching in `/var/log/httpd` or `/var/log/apache`).
-* If you can't find the log files, specify it in your ticket so we know you've already searched.
-* Not all bugs require logs, but if you have any doubts, it is better to provide them to us. Logs are important and very useful for debugging!
-* The logs may reveal confidential information, so **be careful not to disclose anything sensitive.**
-
-In addition, when facing a bug, you're encouraged to follow this message format (from the [Sam & Max website](http://sametmax.com/template-de-demande-daide-en-informatique/):
-
-### What's my goal?
-
-Give the general context of what you were trying to do.
-
-### What have I been trying to do?
-
-Explain step by step what you have done so that we can reproduce the bug.
-
-### What results have I achieved?
-
-The bug: what you see that shouldn't have happened. Here you can provide the logs.
-
-### What was the expected result?
-
-So that we understand what you consider to be the problem.
-
-### What are my circumstances?
-
-Remember to give the following information if you know it:
-
- 1. Which browser? Which version?
- 2. Which server: Apache, Nginx? Which version?
- 3. Which version of PHP?
- 4. Which database: SQLite, MySQL, MariaDB, PostgreSQL? Which version?
- 5. Which distribution runs on the server? And... which version?
-
# Branching
## Basic
diff --git a/docs/en/developers/03_Backend/01_Database_schema.md b/docs/en/developers/03_Backend/01_Database_schema.md
index e69de29bb..1978eabea 100644
--- a/docs/en/developers/03_Backend/01_Database_schema.md
+++ b/docs/en/developers/03_Backend/01_Database_schema.md
@@ -0,0 +1 @@
+# Database Schema
\ No newline at end of file
diff --git a/docs/en/developers/03_Backend/03_External_libraries.md b/docs/en/developers/03_Backend/03_External_libraries.md
index e69de29bb..2f6ca8efb 100644
--- a/docs/en/developers/03_Backend/03_External_libraries.md
+++ b/docs/en/developers/03_Backend/03_External_libraries.md
@@ -0,0 +1 @@
+# External Libraries
diff --git a/docs/en/users/06_Fever_API.md b/docs/en/developers/06_Fever_API.md
similarity index 100%
rename from docs/en/users/06_Fever_API.md
rename to docs/en/developers/06_Fever_API.md
diff --git a/docs/en/developers/06_Reporting_Bugs.md b/docs/en/developers/06_Reporting_Bugs.md
new file mode 100644
index 000000000..12d3259a6
--- /dev/null
+++ b/docs/en/developers/06_Reporting_Bugs.md
@@ -0,0 +1,66 @@
+# Reporting a bug or a suggestion
+
+Despite the care given to FreshRSS, it's still possible that bugs occur. Development is dynamic, so issues can be corrected quickly. You might also have a feature in mind that doesn't yet exist. Regardless whether your idea seems silly, far-fetched, useless or too specific, please don't hesitate to propose it to us! "Ideas in the air" often find an attentive ear. It's new external perspectives that make the project evolve the most.
+
+If you're convinced that you should be heard, here's how you can go about it.
+
+## On GitHub
+
+GitHub is the ideal platform to submit your requests. It allows us to discuss a problem or suggestion with others and it often generates new ideas. Let's not neglect this "social" aspect!
+
+ 1. [Go to the bug ticket manager](https://github.com/FreshRSS/FreshRSS/issues)
+ 2. Start by checking if a similar request hasn't already been made. If so, please feel free to add your voice to the request.
+ 3. If your request is new, [open a new bug ticket](https://github.com/FreshRSS/FreshRSS/issues/new)
+ 4. Finally, write your request. If you're fluent in English, it's the preferred language because it allows for discussion with the largest number of people.
+ 5. Please follow the tips below to make it easier to let your ticket be heard.
+
+## Informal
+
+Not everyone likes or uses GitHub for a variety of legitimate reasons. That is why you can also contact us in a more informal way.
+
+* On [our Mattermost chat](https://framateam.org/signup_user_complete/?id=e2680d3e3128b9fac8fdb3003b0024ee)
+* On [our subreddit](https://www.reddit.com/r/freshrss/)
+* At events / meetings around Free Software
+* Over a beer in a bar
+* Etc.
+
+## Tips
+
+Here are some tips to help you present your bug report or suggestion:
+
+
+* **Pay attention to spelling**. Even if it's not always easy, try your best!
+* **Give an explicit title to your request**, even if it's a bit long. This not only helps us understand your request, but also to find your ticket later.
+* **One request = one ticket.** You may have lots of ideas while being afraid to spam the bug manager: it doesn't matter. It's better to have a few too many tickets than too many requests in one. We'll close and consolidate requests when possible.
+* If you report a bug, think about **providing us with the FreshRSS logs** (accessible in the FreshRSS `data/log/` folder) and the **PHP logs** (the location may vary by distribution, but consider searching in `/var/log/httpd` or `/var/log/apache`).
+* If you can't find the log files, specify it in your ticket so we know you've already searched.
+* Not all bugs require logs, but if you have any doubts, it is better to provide them to us. Logs are important and very useful for debugging!
+* The logs may reveal confidential information, so **be careful not to disclose anything sensitive.**
+
+In addition, when facing a bug, you're encouraged to follow this message format (from the [Sam & Max website](http://sametmax.com/template-de-demande-daide-en-informatique/):
+
+### What's my goal?
+
+Give the general context of what you were trying to do.
+
+### What have I been trying to do?
+
+Explain step by step what you have done so that we can reproduce the bug.
+
+### What results have I achieved?
+
+The bug: what you see that shouldn't have happened. Here you can provide the logs.
+
+### What was the expected result?
+
+So that we understand what you consider to be the problem.
+
+### What are my circumstances?
+
+Remember to give the following information if you know it:
+
+ 1. Which browser? Which version?
+ 2. Which server: Apache, Nginx? Which version?
+ 3. Which version of PHP?
+ 4. Which database: SQLite, MySQL, MariaDB, PostgreSQL? Which version?
+ 5. Which distribution runs on the server? And... which version?
diff --git a/docs/en/index.md b/docs/en/index.md
index 0534891b5..550cfb21d 100644
--- a/docs/en/index.md
+++ b/docs/en/index.md
@@ -18,7 +18,7 @@ FreshRSS has a lot of features including:
This documentation is split into different sections:
-* [User documentation](./users/02_First_steps.html), where you can discover all the possibilities offered by FreshRSS
-* [Administrator documentation](./admins/01_Index.html) for detailed installation and maintenance related tasks
-* [Developer documentation](./developers/01_First_steps.html) to guide you in the source code of FreshRSS and to help you if you want to contribute
+* [User documentation](./users/02_First_steps.md), where you can discover all the possibilities offered by FreshRSS
+* [Administrator documentation](./admins/01_Index.md) for detailed installation and maintenance related tasks
+* [Developer documentation](./developers/01_Index.md) to guide you in the source code of FreshRSS and to help you if you want to contribute
* [Contributor guidelines](./contributing.md) for those who want to help improve FreshRSS
diff --git a/docs/en/users/03_Main_view.md b/docs/en/users/03_Main_view.md
index c5800081c..3771a381a 100644
--- a/docs/en/users/03_Main_view.md
+++ b/docs/en/users/03_Main_view.md
@@ -1,14 +1,36 @@
+FreshRSS has three primary viewing modes: Normal, Global, and Reader view.
+
# Normal view
-**TODO**
+Normal view will allow you to view articles in a compressed view. They can be separated by category or individual feed, or viewed in the "main stream" containing all feeds. Clicking a feed in the sidebar (mobile users will need to click the folder icon to open it) will open that feed's view.
+
+## Article List
+
+By default, the normal view includes six items per article. From left to right:
+* **Read status:** An envalope icon to show if the article has been read or not. Closed envalopes are unread, open envalopes are read. Clicking on the icon will toggle the read status.
+* **Favourite status:** A star icon to show if the article has been favourited or not. Filled stars are favourited, empty stars are not. Clicking on the icon will toggle the favourite status.
+* **Feed name:** The name of the feed that the article is from. Clicking the feed name will move to that feed's view in normal view.
+* **Article title:** The title of the article. Clicking will open the article for viewing within FreshRSS.
+* **Article date/time:** The time the article was posted.
+* **Link to original article:** A globe icon that can be clicked to go to the article on the original website.
+
+## Normal View Sidebar
+
+Clicking the gear icon next to an individual feed will display additional options for that feed.
+* **Filter:** Run the defined filter to mark articles as read
+* **Statistics:** View statistics about the feed
+* **See website:** Open the feed's website in another tab
+* **Manage:** Configure the feed
+* **Actualize:** Force-update the feed
+* **Mark as read:** Mark all items in the feed as read
# Global view
-**TODO**
+Global view allows quick views of feed's statuses at once. Feeds and categories are shown with the number of unread articles next to them. Clicking a feed's name will open it in a view similar to normal view.
# Reader view
-**TODO**
+Reader view will display a feed will all articles already open for reading. Feeds can be switched by clicking the folder icon at the top to bring up the category/feed sidebar.
# Refreshing feeds
diff --git a/docs/en/users/04_Subscriptions.md b/docs/en/users/04_Subscriptions.md
index b18272518..bfb3eabe4 100644
--- a/docs/en/users/04_Subscriptions.md
+++ b/docs/en/users/04_Subscriptions.md
@@ -1,11 +1,92 @@
# Adding a feed
1. To add a feed, copy the URL of its RSS or Atom file (for instance, the Framablog RSS URL is `https://framablog.org/feed/`). FreshRSS is able to automatically find the address of the feed for websites that are declaring it in a standard way.
- 2. On FreshRSS, click “Subscriptions management”.
- 3. Paste the URL in “Add an RSS feed” below the page title.
+ 2. In FreshRSS, click the "**+**" button next to “Subscriptions management”.
+ 3. Paste the URL in the “Feed URL” field.
4. (optional): You can select the category for your feed. By default, it will be in “Uncategorized”.
+ 5. (optional): If the subscription requires credentials, you can enter them in the "HTTP username" and "HTTP password" fields.
+ 6. (optional): You can set a timeout for the feed request if the feed requires it.
+ 7. (optional): You can choose to ignore SSL certificate errors (such as with self-signed certificates) by setting "Verify SSL security" to "No". This is not recommended, and it is better to either add the root certificate to the FreshRSS server or to fix the SSL certificate problems on the feed hosting server.
-# Import and export
+# Subscription management
+
+The "Subscription management" submenu allows categories and feeds to be configured. Feeds can be moved between categories by drag-and-drop, or in the individual feed's settings. Hovering over a feed/category will cause a gear icon to appear. Clicking the icon will bring up the settings for that item.
+
+## Category Settings
+
+### Information
+
+* **Title:** Name of category
+ * **Display position:** Defines the order of categories. Lower numbers get priority, non-numbered items come last, and equally numbered items will sort by alphabetical order.
+
+### Archiving
+
+If "Purge Policy" has "By default" selected, then the [default purge policy](./05_Configuration.md) is used and the other options are not displayed. Category options will override the default policy, but they will not override feed-specific options.
+
+## Feed Settings
+
+
+These fields will be auto-filled when adding a feed, but they can be modified later. **Visibility** will define if the feed is displayed in the main feed, only in specific categories, or not at all.
+
+### Archival
+
+This section will let you override the default settings for feed archiving and update frequency.
+
+### Login
+
+Some feeds require a username/password submitted over HTTP. These usually aren't needed for feeds.
+
+### Advanced
+
+#### Retrieve a truncated feed from within FreshRSS
+
+This question comes up regularly, so we'll try to clarify how one can retrieve a truncated RSS feed with FreshRSS. Please note that the process is absolutely not user friendly, but it works. :)
+
+Please be aware that this way you'll generate much more traffic to the originating sites, and they might block you accordingly. FreshRSS performance is also negatively affected, because you'll have to fetch the full article content one by one. So it's a feature to use sparingly!
+
+The "Article CSS selector on original website" corresponds to the "path" consisting of IDs and classes (which in HTML, matches the id and class attributes) to retrieve only the interesting part that corresponds to the article. Ideally, this path starts with an id (which is unique to the page). The basics are explained [here](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors).
+
+##### Example: Rue89
+
+To find this path, you have to go to the address of one of the truncated articles (for example, http://www.rue89.com/2013/10/15/prof-maths-jai-atteint-lextase-dihn-pedagogie-inversee-246635). You look have to look for the "block" of HTML that corresponds to article content (in the source code!).
+
+Here we find that the block that encompasses nothing but the content of the article is ```
wanted content
+unwanted content
+wanted content
+unwanted content
+wanted content
+wanted content
-unwanted content
-wanted content
-unwanted content
-wanted content
-