```. We'll only use the `.content` class here. Nevertheless, as said above, it's best to start the path with an id. If we go back to the parent block, we find ```
``` and that's perfect! The path will be ```#article .content```.
-##### Add the corresponding classes to the article CSS path on the feed configuration page. Examples:
+##### Add the corresponding classes to the article CSS path on the feed configuration page
-* Rue89: ```#article .content```
-* PCINpact: ```#actu_content```
-* Lesnumériques: ```article#body div.text.clearfix```
-* Phoronix: ```#main .content```
+Examples:
+
+* Rue89: ```#article .content```
+* PCINpact: ```#actu_content```
+* Lesnumériques: ```article#body div.text.clearfix```
+* Phoronix: ```#main .content```
##### Combining CSS Classes
@@ -94,20 +97,20 @@ See [SQLite export/import]( https://github.com/FreshRSS/FreshRSS/tree/edge/cli)
## Export
- 1. To export your list of feeds, go to “Subscriptions management”.
- 2. Click on “Import / export”
- 3. You can select for your export:
- 1. the list of feeds
- 2. labelled articles
- 3. favourite articles
- 4. and finally, you can select feeds you want to export (by default, all feeds are selected)
- 4. Click on “export”.
+1. To export your list of feeds, go to “Subscriptions management”.
+2. Click on “Import / export”
+3. You can select for your export:
+ 1. the list of feeds
+ 2. labelled articles
+ 3. favourite articles
+ 4. and finally, you can select feeds you want to export (by default, all feeds are selected)
+4. Click on “export”.
## Import
- 1. Go to the page “Import / export”.
- 2. Click on “Browse” and select your OPML or archive file on your computer.
- 3. Click on “Import”
+1. Go to the page “Import / export”.
+2. Click on “Browse” and select your OPML or archive file on your computer.
+3. Click on “Import”
> **Important**: you can not import directly a list of feeds from a text file.
> You need to convert it beforehand to _OPML_.
@@ -116,11 +119,11 @@ See [SQLite export/import]( https://github.com/FreshRSS/FreshRSS/tree/edge/cli)
> * [Pandoc](https://pandoc.org/) available for most systems,
> * [OPML generator](https://opml-gen.ovh/) available online,
> * [txt2opml](https://alterfiles.com/convert/txt/opml) available online.
-
+
## Use bookmarklet
Bookmarklets are little scripts that you can execute to perform various tasks. FreshRSS offers a bookmarklet for subscribing to newsfeeds.
- 1. Open “Subscriptions management”.
- 2. Click on “Subscription tools”.
- 3. Drag the “Subscribe” button to your bookmark toolbar or right click and choose your browser’s “Bookmark link” action.
+1. Open “Subscriptions management”.
+2. Click on “Subscription tools”.
+3. Drag the “Subscribe” button to your bookmark toolbar or right click and choose your browser’s “Bookmark link” action.
diff --git a/docs/en/users/05_Configuration.md b/docs/en/users/05_Configuration.md
index a08a9e5fc..2002a18fe 100644
--- a/docs/en/users/05_Configuration.md
+++ b/docs/en/users/05_Configuration.md
@@ -15,14 +15,14 @@ Available languages are: cz, de, en, es, fr, he, it, ko, nl, oc, pt-br, ru, tr,
There's no accounting for tastes, which is why FreshRSS offers eight official themes:
- * *Blue Lagoon* by **Mister aiR**
- * *Dark* by **AD**
- * *Flat design* by **Marien Fressinaud**
- * *Origine* by **Marien Fressinaud**
- * *Origine-compact* by **Kevin Papst**
- * *Pafat* by **Plopoyop**
- * *Screwdriver* by **Mister aiR**
- * *Swage* by **Patrick Crandol**
+* *Blue Lagoon* by **Mister aiR**
+* *Dark* by **AD**
+* *Flat design* by **Marien Fressinaud**
+* *Origine* by **Marien Fressinaud**
+* *Origine-compact* by **Kevin Papst**
+* *Pafat* by **Plopoyop**
+* *Screwdriver* by **Mister aiR**
+* *Swage* by **Patrick Crandol**
If you can't find any themes you like, it's always possible to [create your own](../developers/04_Frontend/02_Design.md).
@@ -32,10 +32,10 @@ To select a theme, simply scroll through the themes and select one that strikes
Some people prefer short lines of text, while others prefer to maximize the available screen space. To satisfy the maximum number of people, it's possible to customize the width of the displayed content. There are four settings available:
- * **Fine** displays content up to a maximum width of 550 pixels
- * **Medium** displays content up to a maximum width of 800 pixels
- * **Large** displays content up to a maximum width of 1000 pixels
- * **No limit** displays the content on 100% of the available space
+* **Fine** displays content up to a maximum width of 550 pixels
+* **Medium** displays content up to a maximum width of 800 pixels
+* **Large** displays content up to a maximum width of 1000 pixels
+* **No limit** displays the content on 100% of the available space
## Article icons
@@ -68,11 +68,11 @@ If you don't use those buttons because you never browse on mobile or because you
## Number of articles per page
-This setting defines the number of articles to display at once before needing to load more. In normal and reading view, more articles are loaded automatically. In global view, a button will appear at the bottom of the list.
+This setting defines the number of articles to display at once before needing to load more. In normal and reading view, more articles are loaded automatically. In global view, a button will appear at the bottom of the list.
## Articles to display
-The status of articles to display when loading FreshRSS. "Adjust showing" will display only unread articles by default, but will display all articles when there are no unread articles to show.
+The status of articles to display when loading FreshRSS. "Adjust showing" will display only unread articles by default, but will display all articles when there are no unread articles to show.
## Use "lazy load" mode to load images
@@ -84,9 +84,9 @@ This will set images to load as they are viewed. This can save data, but will ca
These are the global options for fetching and retaining articles from feeds. They can be overwridden by individual feed's settings.
-## Maintenance
+## Maintenance
-This allows for purging/optimizing the current user's articles in the database.
+This allows for purging/optimizing the current user's articles in the database.
# Sharing
@@ -99,16 +99,15 @@ By default, the sharing list is empty.
To add a new item to the list, please follow the following simple steps:
- 1. Select the desired sharing method in the drop-down list.
- 1. Press the ```✚``` button to add it to the list.
- 1. Configure the method in the list. All names can be modified in the display. Some methods need the sharing URL to be able to work properly (ex: Shaarli).
- 1. Submit your changes.
+1. Select the desired sharing method in the drop-down list.
+1. Press the ```✚``` button to add it to the list.
+1. Configure the method in the list. All names can be modified in the display. Some methods need the sharing URL to be able to work properly (ex: Shaarli).
+1. Submit your changes.
To remove an item from the list, follow those simple steps:
- 1. Press the ```❌``` button next to the share method you want to remove.
- 1. Submit your changes.
-
+1. Press the ```❌``` button next to the share method you want to remove.
+1. Submit your changes.
# Shortcuts
@@ -120,10 +119,10 @@ Of course, if you're not satisfied with the key mapping, you can change you conf
There are 4 types of shortcuts:
- 1. Views: they allow switching views with ease.
- 1. Navigation: they allow navigation through articles, feeds, and categories.
- 1. Article actions: they allow interactions with an article, like sharing or opening it on the original web-site.
- 1. Other actions: they allow other interactions with the application, like opening the user queries menu or accessing the documentation.
+1. Views: they allow switching views with ease.
+1. Navigation: they allow navigation through articles, feeds, and categories.
+1. Article actions: they allow interactions with an article, like sharing or opening it on the original web-site.
+1. Other actions: they allow other interactions with the application, like opening the user queries menu or accessing the documentation.
It's worth noting that the share article action has two levels. Once you press the shortcut, a menu containing all the share options opens.
To choose one share option, you need to select it by its number. When there is only one option, it's selected automatically though.
@@ -142,26 +141,26 @@ At the moment, there is no helper to build a user query from here.
# Profile
-You can change your email address or password here. The authentication token is required for accessing the aggregated RSS feed for a user. A blank token will disable accessing the RSS feed without being logged in.
+You can change your email address or password here. The authentication token is required for accessing the aggregated RSS feed for a user. A blank token will disable accessing the RSS feed without being logged in.
# Extensions
-Extensions can be managed from this menu. Note that while extensions can be removed from the web interface, they cannot be added from it.
+Extensions can be managed from this menu. Note that while extensions can be removed from the web interface, they cannot be added from it.
# Users
-**TODO**
+> **TODO**
## Authentication methods
### HTTP Authentication (Apache)
- 1. User control is based on the `.htaccess` file.
- 2. It is best practice to place the `.htaccess` file in the `./i/` subdirectory so the API and other third party services can work.
- 3. If you want to limit all access to registered users only, place the file in the FreshRSS directory itself or in a parent directory. Note that WebSub and API will not work!
- 4. Example `.htaccess` file for a user "marie":
+1. User control is based on the `.htaccess` file.
+2. It is best practice to place the `.htaccess` file in the `./i/` subdirectory so the API and other third party services can work.
+3. If you want to limit all access to registered users only, place the file in the FreshRSS directory itself or in a parent directory. Note that WebSub and API will not work!
+4. Example `.htaccess` file for a user "marie":
-```
+```apache
AuthUserFile /home/marie/repertoire/.htpasswd
AuthGroupFile /dev/null
AuthName "Chez Marie"
diff --git a/docs/en/users/06_Mobile_access.md b/docs/en/users/06_Mobile_access.md
index 59b3d6c52..9974fb2bb 100644
--- a/docs/en/users/06_Mobile_access.md
+++ b/docs/en/users/06_Mobile_access.md
@@ -13,8 +13,8 @@ See the [page about the Fever compatible API](../developers/06_Fever_API.md.md)
# Testing
-3. Under the section “Profile”, click on the link like `https://rss.example.net/api/` next to the field “API password”.
-4. Click on first link “Check full server configuration”:
+1. Under the section “Profile”, click on the link like `https://rss.example.net/api/` next to the field “API password”.
+2. Click on first link “Check full server configuration”:
* If you get *PASS* then you are done, all is good: you may proceed to step 6.
* If you get *Bad Request!* or *Not Found*, then your server probably does not accept slashes `/` that are escaped `%2F`. Proceed to step 5.
* If you get any other error message, proceed to step 5.
@@ -22,7 +22,7 @@ See the [page about the Fever compatible API](../developers/06_Fever_API.md.md)
# Fix server configuration
-5. Click on the second link “Check partial server configuration (without `%2F` support)”:
+* Click on the second link “Check partial server configuration (without `%2F` support)”:
* If you get `PASS`, then the problem is indeed that your server does not accept slashes `/` that are escaped `%2F`.
* With Apache, remember the directive [`AllowEncodedSlashes On`](http://httpd.apache.org/docs/trunk/mod/core.html#allowencodedslashes)
* Or use a client that does not escape slashes (such as EasyRSS), in which case proceed to step 6.
diff --git a/docs/en/users/07_Frequently_Asked_Questions.md b/docs/en/users/07_Frequently_Asked_Questions.md
index f9b6fcd61..ac04cf5f2 100644
--- a/docs/en/users/07_Frequently_Asked_Questions.md
+++ b/docs/en/users/07_Frequently_Asked_Questions.md
@@ -13,7 +13,8 @@ Of course, ```/i``` has a purpose! It's used for performance and usability:
To increase security, FreshRSS is hosted in two sections. The first section is public (the `./p` folder) and the second section is private (everything else). Therefore the `robots.txt` file is located in the `./p` sub-folder.
-As explained in the [security section](../admins/09_AccessControl.html), it's highly recommended to make only the public section available at the domain level. With that configuration, `./p` is the root folder for http://demo.freshrss.org/, thus making `robots.txt` available at the root of the application.
+As explained in the [security section](../admins/09_AccessControl.html), it's highly recommended to make only the public section available at the domain level.
+With that configuration, `./p` is the root folder for
, thus making `robots.txt` available at the root of the application.
The same principle applies to `favicon.ico` and `.htaccess`.
diff --git a/docs/fr/contributing.md b/docs/fr/contributing.md
index bb67db304..966393849 100644
--- a/docs/fr/contributing.md
+++ b/docs/fr/contributing.md
@@ -4,11 +4,10 @@ S'il vous manque des informations, n'hésitez pas à fouiller un peu la
documentation ou venir nous poser directement vos questions sur [la mailing
list des développeurs](https://freshrss.org/mailman/listinfo/dev).
-* Le premier mailing est destiné à l'information générique, il doit être
- adapté aux utilisateurs. [Rejoignez
- mailing@freshrss.org](https://freshrss.org/mailman/listinfo/mailing).
-* Le deuxième mailing s'adresse principalement aux développeurs. [Rejoignez
- dev@freshrss.org](https://freshrss.org/mailman/listinfo/dev)
+* Le premier mailing est destiné à l'information générique, il doit être adapté aux utilisateurs.
+ [Rejoignez mailing@freshrss.org](https://freshrss.org/mailman/listinfo/mailing).
+* Le deuxième mailing s'adresse principalement aux développeurs.
+ [Rejoignez dev@freshrss.org](https://freshrss.org/mailman/listinfo/dev)
## Signaler un bug
@@ -16,47 +15,39 @@ Avez-vous trouvé un bogue ? Ne paniquez pas, voici quelques étapes pour le
signaler facilement :
1. Cherche sur [le bug tracker](https://github.com/FreshRSS/FreshRSS/issues)
- (n'oubliez pas d'utiliser la barre de recherche).
+ (n'oubliez pas d'utiliser la barre de recherche).
2. Si vous constatez un bogue similaire, n'hésitez pas à poster un
- commentaire pour ajouter de l'importance au ticket correspondant.
-3. Si vous ne l'avez pas trouvé, [ouvrez un nouveau
- ticket](https://github.com/FreshRSS/FreshRSS/issues/new).
+ commentaire pour ajouter de l'importance au ticket correspondant.
+3. Si vous ne l'avez pas trouvé,
+ [ouvrez un nouveau ticket](https://github.com/FreshRSS/FreshRSS/issues/new).
Si vous devez créer un nouveau ticket, essayez de garder les conseils
suivants :
-* Donnez un titre explicite au ticket pour le retrouver plus facilement plus
- tard.
-* Soyez aussi exhaustif que possible dans la description : qu'avez-vous fait
- ? Quel est le bogue ? Quelles sont les étapes pour reproduire le bogue ?
+* Donnez un titre explicite au ticket pour le retrouver plus facilement plus tard.
+* Soyez aussi exhaustif que possible dans la description : qu'avez-vous fait ?
+ Quel est le bogue ? Quelles sont les étapes pour reproduire le bogue ?
Nous avons aussi besoin de quelques informations :
-* Votre version de FreshRSS (sur la page A propos) ou le fichier
- `constants.php`)
+* Votre version de FreshRSS (sur la page A propos) ou le fichier `constants.php`)
* Votre configuration de serveur : type d'hébergement, version PHP
-* Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle
- version ?
-* Si possible, les logs associés (logs PHP et logs FreshRSS sous
- `data/users/your_user/log.txt`)
+* Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle version ?
+* Si possible, les logs associés (logs PHP et logs FreshRSS sous `data/users/your_user/log.txt`)
## Corriger un bogue
Voulez-vous corriger un bogue ? Pour maintenir une grande coordination entre
les collaborateurs, vous devrez suivre ces indications :
-1. Assurez-vous que le bogue est associé à un ticket et indiquez que vous
- allez travailler sur le bogue.
-2. [Fork du répertoire de
- projet](https://help.github.com/articles/fork-a-repo/).
-3. [Créez une nouvelle
- branche](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/).
- Le nom de la branche doit être clair, et idéalement préfixé par
- l'identifiant du ticket correspondant. Par exemple,
- `783-contributing-file` pour réparer [ticket
- #783](https://github.com/FreshRSS/FreshRSS/issues/783).
-4. Ajoutez vos modifications à votre fork et [ouvrez une demande de pull
- request](https://help.github.com/articles/using-pull-requests/).
+1. Assurez-vous que le bogue est associé à un ticket et indiquez que vous allez travailler sur le bogue.
+2. [Fork du répertoire de projet](https://help.github.com/articles/fork-a-repo/).
+3. [Créez une nouvelle branche](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/).
+ Le nom de la branche doit être clair, et idéalement préfixé par l'identifiant du ticket correspondant.
+ Par exemple, `783-contributing-file` pour réparer
+ [ticket #783](https://github.com/FreshRSS/FreshRSS/issues/783).
+4. Ajoutez vos modifications à votre fork et
+ [ouvrez une demande de pull request](https://help.github.com/articles/using-pull-requests/).
Si vous devez écrire du code, veuillez suivre [nos recommandations de style
de codage](developers/01_First_steps.md).
diff --git a/docs/fr/developers/01_First_steps.md b/docs/fr/developers/01_First_steps.md
index 8c2bf4505..59b475ffa 100644
--- a/docs/fr/developers/01_First_steps.md
+++ b/docs/fr/developers/01_First_steps.md
@@ -1,4 +1,6 @@
-# Configurer son environnement (Docker)
+# Premier pas
+
+## Configurer son environnement (Docker)
FreshRSS est construit en PHP et utilise le framework Minz. Les
dépendancessont directement incluses dans le code source, donc vous n'avez
@@ -27,9 +29,9 @@ Tout d'abord, vous devez installer
Une fois que c'est fait, clonez le dépôt de code de la manière suivante :
-```console
-$ git clone https://github.com/FreshRSS/FreshRSS.git
-$ cd FreshRSS
+```sh
+git clone https://github.com/FreshRSS/FreshRSS.git
+cd FreshRSS
```
Notez que, pour contribuer, vous devrez d'abord « forker » ce dépôt de code
@@ -38,8 +40,8 @@ dépôt. Adaptez les commandes en conséquence.
Ensuite, la seule commande que vous devez connaître est la suivante :
-```console
-$ make start
+```sh
+make start
```
Cela peut prendre un certain temps pour que Docker télécharge l'image
@@ -51,8 +53,8 @@ commande en la préfixant par `sudo`.
Vous pouvez arrêter les conteneurs en tapant
Control +
c ou avec la commande suivante, dans un autre terminal:
-```console
-$ make stop
+```sh
+make stop
```
Si la configuration vous intéresse, les commandes `make' sont définies dans
@@ -63,8 +65,8 @@ différent (par défaut `alpine`), vous pouvez surcharger de la manière
suivante la variable d'environnement `TAG` au moment de l'exécution de la
commande :
-```console
-$ TAG=arm make start
+```sh
+TAG=arm make start
```
Vous pouvez trouver la liste complète des tags disponibles [sur le hub
@@ -73,26 +75,26 @@ Docker](https://hub.docker.com/r/freshrss/freshrss/tags).
Si vous voulez construire l'image Docker, vous pouvez lancer la commande
suivante :
-```console
-$ make build
-$ # ou
-$ TAG=arm make build
+```sh
+make build
+# ou
+TAG=arm make build
```
La valeur de la variable `TAG` peut contenir n'importe quelle valeur (par
exemple `local`). Vous pouvez cibler une architecture spécifique en ajoutant
`-alpine` ou `-arm` à la fin du tag (par exemple `local-arm`).
-# Architecture du projet
+## Architecture du projet
-**À FAIRE**
+> **À FAIRE**
-# Extensions
+## Extensions
Si vous souhaitez créer votre propre extension FreshRSS, consultez la
[documentation de l'extension](03_Backend/05_Extensions.md).
-# Style de codage
+## Style de codage
Si vous désirez contribuer au code, il est important de respecter le style
de codage suivant. Le code actuel ne le respecte pas entièrement mais il est
@@ -101,12 +103,13 @@ de notre devoir à tous de le changer dès que l'occasion se présente.
Aucune nouvelle contribution ne respectant pas ces règles ne sera acceptée
tant que les corrections nécessaires ne sont pas appliquées.
-## Espaces, tabulations et autres caractères blancs
+### Espaces, tabulations et autres caractères blancs
+
+#### Indentation
-### Indentation
L'indentation du code doit être faite impérativement avec des tabulations.
-### Alignement
+#### Alignement
Une fois l'indentation faite, il peut être nécessaire de faire un alignement
pour simplifier la lecture. Dans ce cas, il faut utiliser les espaces.
@@ -116,7 +119,7 @@ $resultat = une_fonction_avec_un_nom_long($param1, $param2,
$param3, $param4);
```
-### Fin de ligne
+#### Fin de ligne
Le caractère de fin de ligne doit être un saut de ligne (LF) qui est le
caractère de fin de ligne des systèmes *NIX. Ce caractère ne doit pas être
@@ -132,15 +135,15 @@ git diff --check
git diff --check --cached
```
-### Fin de fichier
+#### Fin de fichier
Chaque fichier doit se terminer par une ligne vide.
-### Le cas de la virgule, du point et du point-virgule
+#### Le cas de la virgule, du point et du point-virgule
Il n'y a pas d'espace avant ces caractères, il y en a un après.
-### Le cas des opérateurs
+#### Le cas des opérateurs
Chaque opérateur est entouré d'espaces.
@@ -152,7 +155,7 @@ if ($a == 10) {
echo $a ? 1 : 0;
```
-### Le cas des parenthèses
+#### Le cas des parenthèses
Il n'y a pas d'espaces entre des parenthèses. Il n'y a pas d'espaces avant
une parenthèse ouvrante sauf si elle est précédée d'un mot-clé. Il n'y a pas
@@ -169,7 +172,7 @@ if ((int)$a == 10) {
}
```
-### Le cas des fonctions chainées
+#### Le cas des fonctions chainées
Ce cas se présente le plus souvent en Javascript. Quand on a des fonctions
chainées, des fonctions anonymes ainsi que des fonctions de rappels, il est
@@ -192,7 +195,7 @@ shortcut.add("shift+" + shortcuts.mark_read, function () {
});
```
-## Longueur des lignes
+### Longueur des lignes
Les lignes ne doivent pas dépasser 80 caractères. Il est cependant autorisé
exceptionnellement de dépasser cette limite s'il n'est pas possible de la
@@ -209,12 +212,12 @@ function ma_fonction($param_1, $param_2,
}
```
-## Nommage
+### Nommage
L'ensemble des éléments du code (fonctions, classes, méthodes et variables)
doivent être nommés de manière à décrire leur usage de façon concise.
-### Fonctions et variables
+#### Fonctions et variables
Les fonctions et les variables doivent suivre la convention "snake case".
@@ -227,7 +230,7 @@ function nom_de_la_fontion() {
$nom_de_la_variable;
```
-### Méthodes
+#### Méthodes
Les méthodes doivent suivre la convention "lower camel case".
@@ -237,7 +240,7 @@ private function nomDeLaMethode() {
}
```
-### Classes
+#### Classes
Les classes doivent suivre la convention "upper camel case".
@@ -245,18 +248,19 @@ Les classes doivent suivre la convention "upper camel case".
abstract class NomDeLaClasse {}
```
-## Encodage
+### Encodage
Les fichiers doivent être encodés en UTF-8.
-## Compatibilité PHP
+### Compatibilité PHP
Assurez-vous que votre code fonctionne avec une version de PHP aussi
ancienne que celle que FreshRSS supporte officiellement.
-## Divers
+### Divers
+
+#### Le cas des opérateurs sur plusieurs lignes
-### Le cas des opérateurs
Les opérateurs doivent être en fin de ligne dans le cas de conditions sur
plusieurs lignes.
@@ -267,12 +271,12 @@ if ($a == 10 ||
}
```
-### Fin de fichier
+#### Fin de fichier PHP
Si le fichier ne contient que du PHP, il ne doit pas comporter de balise
fermante.
-### Tableaux
+#### Tableaux
Lors de l'écriture de tableaux sur plusieurs lignes, tous les éléments
doivent être suivis d'une virgule (même le dernier).
diff --git a/docs/fr/developers/02_Github.md b/docs/fr/developers/02_Github.md
index d850dee09..569f1760f 100644
--- a/docs/fr/developers/02_Github.md
+++ b/docs/fr/developers/02_Github.md
@@ -18,18 +18,18 @@ nous permet de pouvoir discuter à plusieurs sur un problème ou une
suggestion et de faire émerger, souvent, des idées nouvelles. Ne négligeons
pas cet aspect "social" !
- 1. [Rendez-vous sur le gestionnaire de tickets de
- bugs](https://github.com/FreshRSS/FreshRSS/issues)
- 2. Commencez par rechercher si une demande similaire n'a pas déjà été
- faite. Si oui, n'hésitez pas à ajouter votre voix à la demande.
- 3. Si votre demande est nouvelle, [ouvrez un nouveau ticket de
- bug](https://github.com/FreshRSS/FreshRSS/issues/new)
- 4. Rédigez enfin votre demande. Si vous maitrisez l'anglais, c'est la
- langue à privilégier car cela permet d'ouvrir la discussion à un plus
- grand nombre de personnes. Sinon, ce n'est pas grave, continuez en
- français :)
- 5. Merci de bien vouloir suivre les quelques conseils donnés plus bas pour
- faciliter la prise en compte de votre ticket.
+1. [Rendez-vous sur le gestionnaire de tickets de
+ bugs](https://github.com/FreshRSS/FreshRSS/issues)
+2. Commencez par rechercher si une demande similaire n'a pas déjà été
+ faite. Si oui, n'hésitez pas à ajouter votre voix à la demande.
+3. Si votre demande est nouvelle, [ouvrez un nouveau ticket de
+ bug](https://github.com/FreshRSS/FreshRSS/issues/new)
+4. Rédigez enfin votre demande. Si vous maitrisez l'anglais, c'est la
+ langue à privilégier car cela permet d'ouvrir la discussion à un plus
+ grand nombre de personnes. Sinon, ce n'est pas grave, continuez en
+ français :)
+5. Merci de bien vouloir suivre les quelques conseils donnés plus bas pour
+ faciliter la prise en compte de votre ticket.
## De façon informelle
@@ -38,9 +38,9 @@ diverses que légitimes. C'est pourquoi vous pouvez aussi nous contacter de
façon plus informelle.
* Sur [notre chat
- Mattermost](https://framateam.org/signup_user_complete/?id=e2680d3e3128b9fac8fdb3003b0024ee)
+ Mattermost](https://framateam.org/signup_user_complete/?id=e2680d3e3128b9fac8fdb3003b0024ee)
* Sur [les listes de
- diffusion](https://freshrss.org/announce-of-the-mailing-lists.html)
+ diffusion](https://freshrss.org/announce-of-the-mailing-lists.html)
* À des évènements / rencontres autour du Logiciel Libre
* Autour d'une bière dans un bar
* Etc.
@@ -52,24 +52,24 @@ suggestion :
* **Faites attention à l'orthographe.** même si ce n'est pas toujours
- facile, faites votre maximum. ;)
+ facile, faites votre maximum. ;)
* **Donnez un titre explicite à votre demande**, quitte à ce qu'il soit un
- peu long. Cela nous aide non seulement à comprendre votre demande, mais
- aussi à retrouver votre ticket plus tard.
+ peu long. Cela nous aide non seulement à comprendre votre demande, mais
+ aussi à retrouver votre ticket plus tard.
* **Une demande = un ticket.** Vous pouvez avoir des tas d'idées mais vous
- avez peur de spammer le gestionnaire de bugs : ça ne fait rien. Il vaut
- mieux avoir un peu trop de tickets que trop de demandes dans un seul. On
- s'occupera de fermer et regrouper les demandes qui le peuvent.
+ avez peur de spammer le gestionnaire de bugs : ça ne fait rien. Il vaut
+ mieux avoir un peu trop de tickets que trop de demandes dans un seul. On
+ s'occupera de fermer et regrouper les demandes qui le peuvent.
* Si vous remontez un bug, pensez à nous **fournir les logs de FreshRSS**
- (accessibles dans les dossier ''data/log/'' de FreshRSS) **et PHP**
- (l'emplacement peut varier selon les distributions, mais pensez à chercher
- dans ''/var/log/httpd'' ou ''/var/log/apache'').
+ (accessibles dans les dossier ''data/log/'' de FreshRSS) **et PHP**
+ (l'emplacement peut varier selon les distributions, mais pensez à chercher
+ dans ''/var/log/httpd'' ou ''/var/log/apache'').
* Si vous ne trouvez pas les fichiers de logs, précisez-le dans votre ticket
- afin que nous sachions que vous avez déjà cherché.
+ afin que nous sachions que vous avez déjà cherché.
* Tous les bugs ne nécessitent pas les logs, mais si vous doutez, mieux vaut
- nous les fournir. Les logs sont importants et très utiles pour débugguer !
+ nous les fournir. Les logs sont importants et très utiles pour débugguer !
* Il se peut que les logs puissent révéler des informations plus ou moins
- confidentielles, **faites attention à ne rien divulguer de sensible.**
+ confidentielles, **faites attention à ne rien divulguer de sensible.**
De plus, face à un bug, je ne peux que vous encourager à suivre le format de
message suivant (tiré du [site de Sam &
@@ -97,12 +97,11 @@ Afin que nous comprenions bien où est le problème... au moins selon vous :p
Pensez à donner les informations suivantes si vous les connaissez :
- 1. Quel navigateur ? Quelle version ?
- 2. Quel serveur : Apache, Nginx ? Quelle version ?
- 3. Quelle version de PHP ?
- 4. Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle
- version ?
- 5. Quelle distribution sur le serveur ? Et… quelle version ?
+1. Quel navigateur ? Quelle version ?
+2. Quel serveur : Apache, Nginx ? Quelle version ?
+3. Quelle version de PHP ?
+4. Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle version ?
+5. Quelle distribution sur le serveur ? Et… quelle version ?
## Système de branches
diff --git a/docs/fr/developers/03_Backend/02_Minz.md b/docs/fr/developers/03_Backend/02_Minz.md
index 754e23ea9..5daf684f0 100644
--- a/docs/fr/developers/03_Backend/02_Minz.md
+++ b/docs/fr/developers/03_Backend/02_Minz.md
@@ -1,27 +1,29 @@
-# Modèles
+# Minz
-**À FAIRE**
+## Modèles
-# Contrôleurs et actions
+> **À FAIRE**
-**À FAIRE**
+## Contrôleurs et actions
-# Vues
+> **À FAIRE**
-**À FAIRE**
+## Vues
-# Routage
+> **À FAIRE**
-**À FAIRE**
+## Routage
-# Écriture des URL
+> **À FAIRE**
-**À FAIRE**
+## Écriture des URL
-# Internationalisation
+> **À FAIRE**
-**À FAIRE**
+## Internationalisation
-# Comprendres les mécanismes internes
+> **À FAIRE**
-**À FAIRE**
+## Comprendres les mécanismes internes
+
+> **À FAIRE**
diff --git a/docs/fr/developers/03_Backend/04_Changing_source_code.md b/docs/fr/developers/03_Backend/04_Changing_source_code.md
index fd4a354d1..734d40569 100644
--- a/docs/fr/developers/03_Backend/04_Changing_source_code.md
+++ b/docs/fr/developers/03_Backend/04_Changing_source_code.md
@@ -1,15 +1,17 @@
-# Accès à la base de données
+# Éditer le code source
-**À FAIRE**
+## Accès à la base de données
-# Écrire une action et sa vue associée
+> **À FAIRE**
-**À FAIRE**
+## Écrire une action et sa vue associée
-# Gestion de l'authentification
+> **À FAIRE**
-**À FAIRE**
+## Gestion de l'authentification
-# Gestion des logs
+> **À FAIRE**
-**À FAIRE**
+## Gestion des logs
+
+> **À FAIRE**
diff --git a/docs/fr/developers/03_Backend/05_Extensions.md b/docs/fr/developers/03_Backend/05_Extensions.md
index 95cccfe7f..41571d7bb 100644
--- a/docs/fr/developers/03_Backend/05_Extensions.md
+++ b/docs/fr/developers/03_Backend/05_Extensions.md
@@ -14,8 +14,7 @@ FreshRSS est limité dans ses possibilités techniques par différents facteurs
* La disponibilité des développeurs principaux ;
* La volonté d'intégrer certains changements ;
-* Le niveau de « hack » nécessaire pour intégrer des fonctionnalités à la
- marge.
+* Le niveau de « hack » nécessaire pour intégrer des fonctionnalités à la marge.
Si la première limitation peut, en théorie, être levée par la participation
de nouveaux contributeurs au projet, elle est en réalité conditionnée par la
@@ -27,11 +26,10 @@ Une autre solution consiste à passer par un système d'extensions. En
permettant à des utilisateurs d'écrire leur propre extension sans avoir à
s'intéresser au cœur même du logiciel de base, on permet :
-1. De réduire la quantité de code source à assimiler pour un nouveau
- contributeur ;
+1. De réduire la quantité de code source à assimiler pour un nouveau contributeur ;
2. De permettre d'intégrer des nouveautés de façon non-officielles ;
3. De se passer des développeurs principaux pour d'éventuelles améliorations
- sans passer par la case « fork ».
+ sans passer par la case « fork ».
Note : il est tout à fait imaginable que les fonctionnalités d'une extension
puissent par la suite être intégrées dans le code initial de FreshRSS de
@@ -57,26 +55,26 @@ Minz repose et impose une architecture MVC pour les projets l'utilisant. On
distingue dans cette architecture trois composants principaux :
* Le Modèle : c'est l'objet de base que l'on va manipuler. Dans FreshRSS,
- les catégories, les flux et les articles sont des modèles. La partie du
- code qui permet de les manipuler en base de données fait aussi partie du
- modèle mais est séparée du modèle de base : on parle de DAO (pour « Data
- Access Object »). Les modèles sont stockés dans un répertoire `Models`.
+ les catégories, les flux et les articles sont des modèles. La partie du
+ code qui permet de les manipuler en base de données fait aussi partie du
+ modèle mais est séparée du modèle de base : on parle de DAO (pour « Data
+ Access Object »). Les modèles sont stockés dans un répertoire `Models`.
* La Vue : c'est ce qui représente ce que verra l'utilisateur. La vue est
- donc simplement du code HTML que l'on mixe avec du PHP pour afficher les
- informations dynamiques. Les vues sont stockées dans un répertoire
- `views`.
+ donc simplement du code HTML que l'on mixe avec du PHP pour afficher les
+ informations dynamiques. Les vues sont stockées dans un répertoire
+ `views`.
* Le Contrôleur : c'est ce qui permet de lier modèles et vues entre
- eux. Typiquement, un contrôleur va charger des modèles à partir de la base
- de données (une liste d'articles par exemple) pour les « passer » à une
- vue afin qu'elle les affiche. Les contrôleurs sont stockés dans un
- répertoire `Controllers`.
+ eux. Typiquement, un contrôleur va charger des modèles à partir de la base
+ de données (une liste d'articles par exemple) pour les « passer » à une
+ vue afin qu'elle les affiche. Les contrôleurs sont stockés dans un
+ répertoire `Controllers`.
### Routage
Afin de lier une URL à un contrôleur, on doit passer par une phase dite de «
routage ». Dans FreshRSS, cela est particulièrement simple car il suffit
-d'indiquer le nom du contrôleur à charger dans l'URL à l'aide d'un paramètre
-`c`. Par exemple, l'adresse http://exemple.com?c=hello va exécuter le code
+d'indiquer le nom du contrôleur à charger dans l'URL à l'aide d'un paramètre `c`.
+Par exemple, l'adresse
va exécuter le code
contenu dans le contrôleur `hello`.
Une notion qui n'a pas encore été évoquée est le système d'« actions ». Une
@@ -102,11 +100,11 @@ class FreshRSS_hello_Controller extends Minz_ActionController {
?>
```
-Si l'on charge l'adresse http://exemple.com?c=hello&a=world, l'action
+Si l'on charge l'adresse , l'action
`world` va donc être exécutée sur le contrôleur `hello`.
Note : si `c` ou `a` n'est pas précisée, la valeur par défaut de chacune de
-ces variables est `index`. Ainsi l'adresse http://exemple.com?c=hello va
+ces variables est `index`. Ainsi l'adresse va
exécuter l'action `index` du contrôleur `hello`.
Plus loin, sera utilisée la convention `hello/world` pour évoquer un couple
@@ -183,7 +181,7 @@ suivante doit être évitée :
```
Si un jour il est décidé d'utiliser un système d'« url rewriting » pour
-avoir des adresses au format http://exemple.com/controller/action, toutes
+avoir des adresses au format , toutes
les adresses précédentes deviendraient ineffectives !
Préférez donc l'utilisation de la classe `Minz_Url` et de sa méthode
@@ -300,12 +298,9 @@ Français sont situés dans `i18n/fr/`. Il existe sept fichiers différents :
* `conf.php` pour l'aspect configuration ;
* `feedback.php` contient les traductions des messages de feedback ;
* `gen.php` stocke ce qui est global à FreshRSS (gen pour « general ») ;
-* `index.php` pour la page principale qui liste les flux et la page « À
- propos » ;
-* `install.php` contient les phrases relatives à l'installation de FreshRSS
- ;
-* `sub.php` pour l'aspect gestion des abonnements (sub pour « subscription
- »).
+* `index.php` pour la page principale qui liste les flux et la page « À propos » ;
+* `install.php` contient les phrases relatives à l'installation de FreshRSS ;
+* `sub.php` pour l'aspect gestion des abonnements (sub pour « subscription »).
Cette organisation permet de ne pas avoir un unique énorme fichier de
traduction.
@@ -377,7 +372,7 @@ FreshRSS sans avoir à toucher au cœur du projet directement.
### Travailler dans Docker
Quand on travaille sur une extension, c'est toujours plus facile de la travailler directement dans son environnement. Avec Docker, on peut exploiter l'option ```volume``` quand on démarre le conteneur. Heureusement, on peut l'utiliser sans avoir de connaissances particulières de Docker en utilisant la règle du Makefile :
-```
+```sh
make start extensions="/chemin/complet/de/l/extension/1 /chemin/complet/de/l/extension/2"
```
@@ -394,7 +389,7 @@ Le répertoire principal d'une extension doit comporter au moins deux
fichiers **obligatoire** :
* Un fichier `metadata.json` qui contient une description de l'extension. Ce
- fichier est écrit en JSON ;
+ fichier est écrit en JSON ;
* Un fichier `extension.php` contenant le point d'entrée de l'extension.
Please note that there is a not a required link between the directory name
@@ -419,17 +414,17 @@ You may also need additional files or subdirectories depending on your
needs:
* `configure.phtml` est le fichier contenant le formulaire pour paramétrer
- votre extension
+ votre extension
* A `static/` directory containing CSS and JavaScript files that you will
- need for your extension (note that if you need to write a lot of CSS it
- may be more interesting to write a complete theme)
+ need for your extension (note that if you need to write a lot of CSS it
+ may be more interesting to write a complete theme)
* A `Controllers` directory containing additional controllers
* An `i18n` directory containing additional translations
-* `layout` and` views` directories to define new views or to overwrite the
- current views
+* `layout` and `views` directories to define new views or to overwrite the
+ current views
In addition, it is good to have a `LICENSE` file indicating the license
-under which your extension is distributed and a` README` file giving a
+under which your extension is distributed and a `README` file giving a
detailed description of it.
### The metadata.json file
@@ -440,15 +435,15 @@ following entries:
* `name` : le nom de votre extension ;
* `author` : votre nom, éventuellement votre adresse mail mais il n'y a pas
- de format spécifique à adopter ;
+ de format spécifique à adopter ;
* `description` : une description de votre extension ;
* `version` : le numéro de version actuel de l'extension ;
* `entrypoint` : indique le point d'entrée de votre extension. Il doit
- correspondre au nom de la classe contenue dans le fichier `extension.php`
- sans le suffixe `Extension` (donc si le point d'entrée est `HelloWorld`,
- votre classe s'appellera `HelloWorldExtension`) ;
+ correspondre au nom de la classe contenue dans le fichier `extension.php`
+ sans le suffixe `Extension` (donc si le point d'entrée est `HelloWorld`,
+ votre classe s'appellera `HelloWorldExtension`) ;
* `type` : définit le type de votre extension. Il existe deux types :
- `system` et `user`. Nous étudierons cette différence juste après.
+ `system` et `user`. Nous étudierons cette différence juste après.
Seuls les champs `name` et `entrypoint` sont requis.
@@ -463,46 +458,45 @@ A __system__ extension in comparison is enabled for every account.
This file is the entry point of your extension. It must contain a specific
class to function. As mentioned above, the name of the class must be your
-`entrypoint` suffixed by` Extension` (`HelloWorldExtension` for example).
+`entrypoint` suffixed by `Extension` (`HelloWorldExtension` for example).
In addition, this class must be inherited from the `Minz_Extension` class to
benefit from extensions-specific methods.
Your class will benefit from four methods to redefine:
* `install()` is called when a user clicks the button to activate your
- extension. It allows, for example, to update the database of a user in
- order to make it compatible with the extension. It returns `true` if
- everything went well or, if not, a string explaining the problem.
+ extension. It allows, for example, to update the database of a user in
+ order to make it compatible with the extension. It returns `true` if
+ everything went well or, if not, a string explaining the problem.
* `uninstall()` is called when a user clicks the button to disable your
- extension. This will allow you to undo the database changes you
- potentially made in `install ()`. It returns `true` if everything went
- well or, if not, a string explaining the problem.
+ extension. This will allow you to undo the database changes you
+ potentially made in `install ()`. It returns `true` if everything went
+ well or, if not, a string explaining the problem.
* `init()` is called for every page load *if the extension is enabled*. It
- will therefore initialize the behavior of the extension. This is the most
- important method.
+ will therefore initialize the behavior of the extension. This is the most
+ important method.
* `handleConfigureAction()` is called when a user loads the extension
- management panel. Specifically, it is called when the
- `?c=extension&a=configured&e=name-of-your-extension` URL is loaded. You
- should also write here the behavior you want when validating the form in
- your `configure.phtml` file.
+ management panel. Specifically, it is called when the
+ `?c=extension&a=configured&e=name-of-your-extension` URL is loaded. You
+ should also write here the behavior you want when validating the form in
+ your `configure.phtml` file.
-In addition, you will have a number of methods directly inherited from
-`Minz_Extension` that you should not redefine:
+ In addition, you will have a number of methods directly inherited from
+ `Minz_Extension` that you should not redefine:
* The "getters" first: most are explicit enough not to detail them here -
- `getName()`, `getEntrypoint()`, `getPath()` (allows you to retrieve the
- path to your extension), `getAuthor()`, `getDescription()`,
- `getVersion()`, `getType()`.
+ `getName()`, `getEntrypoint()`, `getPath()` (allows you to retrieve the
+ path to your extension), `getAuthor()`, `getDescription()`,
+ `getVersion()`, `getType()`.
* `getFileUrl($filename, $type)` will return the URL to a file in the
- `static` directory. The first parameter is the name of the file (without
- `static /`), the second is the type of file to be used (`css` or` js`).
+ `static` directory. The first parameter is the name of the file (without
+ `static /`), the second is the type of file to be used (`css` or `js`).
* `registerController($base_name)` will tell Minz to take into account the
- given controller in the routing system. The controller must be located in
- your `Controllers` directory, the name of the file must be`
- Controller.php` and the name of the
- `FreshExtension__Controller` class.
+ given controller in the routing system. The controller must be located in
+ your `Controllers` directory, the name of the file must be `Controller.php` and the name of the
+ `FreshExtension__Controller` class.
-**À FAIRE**
+> **À FAIRE**
* `registerViews()`
* `registerTranslates()`
@@ -529,44 +523,44 @@ class HelloWorldExtension extends Minz_Extension
The following events are available:
* `check_url_before_add` (`function($url) -> Url | null`): will be executed
- every time a URL is added. The URL itself will be passed as
- parameter. This way a website known to have feeds which doesn't advertise
- it in the header can still be automatically supported.
+ every time a URL is added. The URL itself will be passed as
+ parameter. This way a website known to have feeds which doesn't advertise
+ it in the header can still be automatically supported.
* `entry_before_display` (`function($entry) -> Entry | null`): will be
- executed every time an entry is rendered. The entry itself (instance of
- FreshRSS\_Entry) will be passed as parameter.
+ executed every time an entry is rendered. The entry itself (instance of
+ FreshRSS\_Entry) will be passed as parameter.
* `entry_before_insert` (`function($entry) -> Entry | null`): will be
- executed when a feed is refreshed and new entries will be imported into
- the database. The new entry (instance of FreshRSS\_Entry) will be passed
- as parameter.
+ executed when a feed is refreshed and new entries will be imported into
+ the database. The new entry (instance of FreshRSS\_Entry) will be passed
+ as parameter.
* `feed_before_actualize` (`function($feed) -> Feed | null`): will be
- executed when a feed is updated. The feed (instance of FreshRSS\_Feed)
- will be passed as parameter.
+ executed when a feed is updated. The feed (instance of FreshRSS\_Feed)
+ will be passed as parameter.
* `feed_before_insert` (`function($feed) -> Feed | null`): will be executed
- when a new feed is imported into the database. The new feed (instance of
- FreshRSS\_Feed) will be passed as parameter.
+ when a new feed is imported into the database. The new feed (instance of
+ FreshRSS\_Feed) will be passed as parameter.
* `freshrss_init` (`function() -> none`): will be executed at the end of the
- initialization of FreshRSS, useful to initialize components or to do
- additional access checks
+ initialization of FreshRSS, useful to initialize components or to do
+ additional access checks
* `menu_admin_entry` (`function() -> string`): add an entry at the end of
- the "Administration" menu, the returned string must be valid HTML
- (e.g. `New entry`)
+ the "Administration" menu, the returned string must be valid HTML
+ (e.g. `New entry`)
* `menu_configuration_entry` (`function() -> string`): add an entry at the
- end of the "Configuration" menu, the returned string must be valid HTML
- (e.g. `New entry`)
+ end of the "Configuration" menu, the returned string must be valid HTML
+ (e.g. `New entry`)
* `menu_other_entry` (`function() -> string`): add an entry at the end of
- the header dropdown menu (i.e. after the "About" entry), the returned
- string must be valid HTML (e.g. `New
- entry`)
+ the header dropdown menu (i.e. after the "About" entry), the returned
+ string must be valid HTML (e.g. `New
+ entry`)
* `nav_reading_modes` (`function($reading_modes) -> array | null`): **TODO**
- add documentation
+ add documentation
* `post_update` (`function(none) -> none`): **TODO** add documentation
* `simplepie_before_init` (`function($simplePie, $feed) -> none`): **TODO**
- add documentation
+ add documentation
### Writing your own configure.phtml
When you want to support user configurations for your extension or simply
display some information, you have to create the `configure.phtml` file.
-**À FAIRE**
+> **À FAIRE**
diff --git a/docs/fr/developers/04_Frontend/01_View_files.md b/docs/fr/developers/04_Frontend/01_View_files.md
index e35b48809..debfadee0 100644
--- a/docs/fr/developers/04_Frontend/01_View_files.md
+++ b/docs/fr/developers/04_Frontend/01_View_files.md
@@ -1,15 +1,17 @@
-# Les fichiers .phtml
+# Les vues
-**À FAIRE**
+## Les fichiers .phtml
-# Écrire une URL
+> **À FAIRE**
-**À FAIRE**
+## Écrire une URL
-# Afficher une icône
+> **À FAIRE**
-**À FAIRE**
+## Afficher une icône
-# Internationalisation
+> **À FAIRE**
-**À FAIRE**
+## Internationalisation
+
+> **À FAIRE**
diff --git a/docs/fr/developers/04_Frontend/02_Design.md b/docs/fr/developers/04_Frontend/02_Design.md
index 03d7ea862..d1432f069 100644
--- a/docs/fr/developers/04_Frontend/02_Design.md
+++ b/docs/fr/developers/04_Frontend/02_Design.md
@@ -1,11 +1,13 @@
-# Fichier modèle
+# Design
-**À FAIRE**
+## Fichier modèle
-# Écrire un nouveau thème
+> **À FAIRE**
-**À FAIRE**
+## Écrire un nouveau thème
-# Surcharger les icônes
+> **À FAIRE**
-**À FAIRE**
+## Surcharger les icônes
+
+> **À FAIRE**
diff --git a/docs/fr/developers/05_Release_new_version.md b/docs/fr/developers/05_Release_new_version.md
index 116d50ca6..0bdad8b4e 100644
--- a/docs/fr/developers/05_Release_new_version.md
+++ b/docs/fr/developers/05_Release_new_version.md
@@ -19,7 +19,7 @@ mises à jour de la version à sortir.
## Processus Git
-```sh
+```console
$ git checkout edge
$ git pull
$ vim constants.php
@@ -57,21 +57,21 @@ package FreshRSS (`PACKAGE_URL`). L'URL est de la forme
Il existe ensuite 5 fonctions à remplir :
* `apply_update()` qui se charge de sauvegarder le répertoire contenant les
- données, de vérifier sa structure, de télécharger le package FreshRSS, de
- le déployer et de tout nettoyer. Cette fonction est pré-remplie mais des
- ajustements peuvent être faits si besoin est (ex. réorganisation de la
- structure de `./data`). Elle retourne `true` si aucun problème n'est
- survenu ou une chaîne de caractères indiquant un soucis ;
+ données, de vérifier sa structure, de télécharger le package FreshRSS, de
+ le déployer et de tout nettoyer. Cette fonction est pré-remplie mais des
+ ajustements peuvent être faits si besoin est (ex. réorganisation de la
+ structure de `./data`). Elle retourne `true` si aucun problème n'est
+ survenu ou une chaîne de caractères indiquant un soucis ;
* `need_info_update()` retourne `true` si l'utilisateur doit intervenir
- durant la mise à jour ou `false` sinon ;
+ durant la mise à jour ou `false` sinon ;
* `ask_info_update()` affiche un formulaire à l'utilisateur si
- `need_info_update()` a retourné `true` ;
+ `need_info_update()` a retourné `true` ;
* `save_info_update()` est chargée de sauvegarder les informations
- renseignées par l'utilisateur (issues du formulaire de
- `ask_info_update()`) ;
+ renseignées par l'utilisateur (issues du formulaire de
+ `ask_info_update()`) ;
* `do_post_update()` est exécutée à la fin de la mise à jour et prend en
- compte le code de la nouvelle version (ex. si la nouvelle version modifie
- l'objet `Minz_Configuration`, vous bénéficierez de ces améliorations).
+ compte le code de la nouvelle version (ex. si la nouvelle version modifie
+ l'objet `Minz_Configuration`, vous bénéficierez de ces améliorations).
## Mise à jour du fichier de versions
@@ -101,11 +101,11 @@ Et voici comment fonctionne cette table :
* les versions `x.y.z-dev` sont **toutes** mises à jour vers `edge` ;
* les versions stables sont mises à jour vers des versions stables ;
* il est possible de sauter plusieurs versions d'un coup à condition que les
- scripts de mise à jour le prennent en charge ;
+ scripts de mise à jour le prennent en charge ;
* il est conseillé d'indiquer la correspondance de la version courante vers
- sa potentielle future version en précisant que cette version n'existe pas
- encore. Tant que le script correspondant n'existera pas, rien ne se
- passera.
+ sa potentielle future version en précisant que cette version n'existe pas
+ encore. Tant que le script correspondant n'existera pas, rien ne se
+ passera.
Il est **très fortement** indiqué de garder ce fichier rangé selon les
numéros de versions en séparant les versions stables et de dev.
@@ -134,16 +134,16 @@ update.freshrss.org :
Lorsque tout fonctionne, il est temps d'annoncer la sortie au monde entier !
* sur GitHub en créant [une nouvelle
- release](https://github.com/FreshRSS/FreshRSS/releases/new) ;
+ release](https://github.com/FreshRSS/FreshRSS/releases/new) ;
* sur le blog de freshrss.org au minimum pour les versions stables (écrire
- l'article sur
- [FreshRSS/freshrss.org](https://github.com/FreshRSS/freshrss.org)).
+ l'article sur
+ [FreshRSS/freshrss.org](https://github.com/FreshRSS/freshrss.org)).
* sur Twitter (compte [@FreshRSS](https://twitter.com/FreshRSS)) ;
* et sur mailing@freshrss.org ;
## Lancer la prochaine version de développement
-```sh
+```console
$ git checkout edge
$ vim constants.php
# Mettre à jour le numéro de version de FRESHRSS_VERSION
diff --git a/docs/fr/index.md b/docs/fr/index.md
index c8b69b099..a46e4c7b3 100644
--- a/docs/fr/index.md
+++ b/docs/fr/index.md
@@ -9,29 +9,27 @@ fonctionnalités :
* Agrégation des flux RSS et Atom.
* Utilisez les favoris pour marquer les articles qui vous ont plu ou que
- vous souhaitez lire plus tard.
+ vous souhaitez lire plus tard.
* Le système de filtrage et de recherche permettent de cibler exactement les
- articles que vous souhaitez lire.
+ articles que vous souhaitez lire.
* Les statistiques permettent de savoir en un coup d’œil quels sont les
- sites qui publient le plus, ou à l’inverse, le moins.
+ sites qui publient le plus, ou à l’inverse, le moins.
* Importation / exportation des flux au format OPML.
* Multi-thèmes pour changer l’habillage de FreshRSS.
* API Google Reader pour pouvoir y brancher des applications Android.
* « *Responsive design* » : l’application s’adapte aux petits écrans pour
- emporter FreshRSS dans votre poche.
+ emporter FreshRSS dans votre poche.
* Auto-hébergeable : le code source est libre (AGPL3) et vous pouvez donc
- l’héberger sur votre propre serveur.
-* Multi-utilisateurs pour héberger plusieurs personnes sur une même
- installation.
+ l’héberger sur votre propre serveur.
+* Multi-utilisateurs pour héberger plusieurs personnes sur une même installation.
* Et bien d’autres !
Cette documentation est divisée en plusieurs parties :
* La [documentation utilisateurs](./users/02_First_steps.md) pour découvrir
- les fonctionnalités de FreshRSS.
+ les fonctionnalités de FreshRSS.
* La [documentation administrateurs](../en/admins/01_Index.html) (en
- anglais) pour l’installation et la maintenance de FreshRSS.
+ anglais) pour l’installation et la maintenance de FreshRSS.
* La [documentation développeurs](./developers/01_First_steps.md) pour
- savoir comment contribuer et mieux comprendre le code source de FreshRSS.
-* Le [guide de contribution](./contributing.md) pour nous aider à développer
- FreshRSS.
+ savoir comment contribuer et mieux comprendre le code source de FreshRSS.
+* Le [guide de contribution](./contributing.md) pour nous aider à développer FreshRSS.
diff --git a/docs/fr/users/01_Installation.md b/docs/fr/users/01_Installation.md
index 84cdb3b95..090a8fec3 100644
--- a/docs/fr/users/01_Installation.md
+++ b/docs/fr/users/01_Installation.md
@@ -4,13 +4,13 @@ FreshRSS est un logiciel développé en PHP reposant sur le modèle client - ser
Il est toutefois de votre responsabilité de vérifier que votre hébergement permettra de faire tourner FreshRSS avant de nous taper dessus. Dans le cas où les informations listées ci-dessous ne seraient pas à jour, vous pourrez.
- | Logiciel | Recommandé | Fonctionne aussi avec |
- | -------- | ----------- | --------------------- |
- | Serveur web | **Apache 2** | Nginx |
- | PHP | **PHP 7+** | |
- | Modules PHP | Requis : libxml, cURL, JSON, PDO_MySQL, PCRE et ctype
Requis (32 bits seulement) : GMP
Recommandé : Zlib, mbstring et iconv, ZipArchive
*Pour une liste complète des modules nécessaires voir le [Dockerfile](https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/Dockerfile-Alpine#L7-L9)* | |
- | Base de données | **MySQL 5.5.3+** | SQLite 3.7.4+, PostgreSQL 9.5+ |
- | Navigateur | **Firefox** | Chrome, Opera, Safari, or Edge |
+| Logiciel | Recommandé | Fonctionne aussi avec |
+| -------- | ----------- | --------------------- |
+| Serveur web | **Apache 2** | Nginx |
+| PHP | **PHP 7+** | |
+| Modules PHP | Requis : libxml, cURL, JSON, PDO_MySQL, PCRE et ctype
Requis (32 bits seulement) : GMP
Recommandé : Zlib, mbstring et iconv, ZipArchive
*Pour une liste complète des modules nécessaires voir le [Dockerfile](https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/Dockerfile-Alpine#L7-L9)* | |
+| Base de données | **MySQL 5.5.3+** | SQLite 3.7.4+, PostgreSQL 9.5+ |
+| Navigateur | **Firefox** | Chrome, Opera, Safari, or Edge |
## Choisir la bonne version de FreshRSS
@@ -137,4 +137,4 @@ Pour un tutoriel pas à pas, vous pouvez suivre [cet article dédié](http://www
## Conseils de sécurité
-**TODO**
+> **TODO**
diff --git a/docs/fr/users/02_First_steps.md b/docs/fr/users/02_First_steps.md
index d5756387b..9a791bb7b 100644
--- a/docs/fr/users/02_First_steps.md
+++ b/docs/fr/users/02_First_steps.md
@@ -18,11 +18,11 @@ Une fois que vous avez ajouté vos flux à FreshRSS, il est temps de les
lire. Pour cela, trois modes de lecture s'offrent à vous :
1. [La vue normale](03_Main_view.md#la-vue-normale) qui permet de voir et de
- lire rapidement les nouveaux articles
+ lire rapidement les nouveaux articles
2. [La vue globale](03_Main_view.md#la-vue-globale) est destinée à vous
- offrir un panorama de l'état de vos flux
+ offrir un panorama de l'état de vos flux
3. [La vue lecture](03_Main_view.md#la-vue-lecture) est pensée pour vous
- offrir un meilleur confort de lecture
+ offrir un meilleur confort de lecture
Bien, vous maitrisez maintenant la vue que vous préférez ? Il est temps de
vous offrir un peu plus de confort de lecture. FreshRSS est grandement
@@ -31,16 +31,16 @@ le plus. Voici tout de même quelques pistes pour améliorer votre quotidien
sur FreshRSS :
* [Rangez vos flux dans des
- catégories](04_Subscriptions.md#organisation_des_flux)
+ catégories](04_Subscriptions.md#organisation_des_flux)
* [Configurez votre page
- d'accueil](05_Configuration.md#personnaliser-la-vue)
+ d'accueil](05_Configuration.md#personnaliser-la-vue)
* [Configurez vos options de
- lecture](05_Configuration.md#options-de-lecture)
+ lecture](05_Configuration.md#options-de-lecture)
* [Mettez à jour vos flux](03_Main_view.md#rafraichir-les-flux)
* [Filtrez les articles](03_Main_view.md#filtrer-les-articles) pour accéder
- rapidement à ceux que vous voulez lire en priorité
+ rapidement à ceux que vous voulez lire en priorité
* [Retrouvez un article](03_Main_view.md#rechercher-des-articles) qui a été
- publié il y a quelques jours ou mois
+ publié il y a quelques jours ou mois
* [Accédez à vos flux même sur mobile](06_Mobile_access.md)
* [Ajoutez quelques extensions](https://github.com/FreshRSS/Extensions)
* [Foire aux questions](07_Frequently_Asked_Questions.md)
diff --git a/docs/fr/users/03_Main_view.md b/docs/fr/users/03_Main_view.md
index 8cc3149d9..96e82a6b1 100644
--- a/docs/fr/users/03_Main_view.md
+++ b/docs/fr/users/03_Main_view.md
@@ -1,27 +1,29 @@
-# La vue normale
+# La page principale
-**À FAIRE**
+## La vue normale
-# La vue globale
+> **À FAIRE**
-**À FAIRE**
+## La vue globale
-# La vue lecture
+> **À FAIRE**
-**À FAIRE**
+## La vue lecture
-# Rafraîchir les flux
+> **À FAIRE**
+
+## Rafraîchir les flux
Pour profiter pleinement de FreshRSS, il faut qu’il récupère les nouveaux
articles disponibles des flux auxquels vous avez souscrit. Pour cela, il
existe plusieurs méthodes.
-## Mise à jour automatique
+### Mise à jour automatique
C’est la méthode recommandée car il n’y a pas besoin d’y penser, elle se
fait toute seule, à la fréquence que vous avez choisi.
-### Par le script actualize_script.php
+#### Par le script actualize_script.php
Cette méthode n’est possible que si vous avez accès aux tâches planifiées de
la machine sur laquelle est installée votre instance de FreshRSS.
@@ -43,34 +45,34 @@ toutes les heures.
« Paramètres de configuration du script; Ils sont utilisables simultanément
: »
-- Parameter "force"
-https://freshrss.example.net/i/?c=feed&a=actualize&force=1 If *force* is set
+* Parameter "force"
+ If *force* is set
to 1 all feeds will be refreshed at once.
-- Parameter "ajax" https://freshrss.example.net/i/?c=feed&a=actualize&ajax=1
+* Parameter "ajax"
Only a status site is returned and not a complete website. Example: "OK"
-- Parameter "maxFeeds"
-https://freshrss.example.net/i/?c=feed&a=actualize&maxFeeds=30 If *maxFeeds*
+* Parameter "maxFeeds"
+ If *maxFeeds*
is set the configured amount of feeds is refreshed at once. The default
setting is "10".
-- Parameter "token"
-https://freshrss.example.net/i/?c=feed&a=actualize&token=542345872345734
+* Parameter "token"
+
Security parameter to prevent unauthorized refreshes. For detailed
Documentation see "Form authentication".
-### Online cron
+#### Online cron
If you do not have access to the installation server scheduled task, you can
still automate the update process.
To do so, you need to create a scheduled task, which need to call a specific
-URL: https://freshrss.example.net/i/?c=feed&a=actualize (it could be
+URL: (it could be
different depending on your installation). Depending on your application
authentication method, you need to adapt the scheduled task.
-#### Aucune authentification
+##### Aucune authentification
C’est le cas le plus simple, puisque votre instance est publique, vous
n’avez rien de particulier à préciser :
@@ -79,7 +81,7 @@ n’avez rien de particulier à préciser :
0 * * * * curl 'https://freshrss.example.net/i/?c=feed&a=actualize'
```
-### Authentification par formulaire
+##### Authentification par formulaire
Dans ces cas-là, si vous avez autorisé la lecture anonyme des articles, vous
pouvez aussi permettre à n’importe qui de rafraîchir vos flux (« Autoriser
@@ -108,7 +110,7 @@ string, with `&user=insert-username`:
0 * * * * curl 'https://freshrss.exemple.net/i/?c=feed&a=actualize&user=quelquun&token=mon-token'
```
-### Authentification HTTP
+##### Authentification HTTP
Dans ce cas-là, le token et les permissions “anonymes” sont inutilisables et
il vous sera nécessaire d’indiquer vos identifiants dans la tâche
@@ -119,13 +121,13 @@ implique que vos identifiants seront visibles en clair !**
0 * * * * curl -u alice:motdepasse123 'https://freshrss.exemple.net/i/?c=feed&a=actualize'
```
-## Mise à jour manuelle
+### Mise à jour manuelle
Si vous ne pouvez pas ou ne voulez pas utiliser la méthode automatique, vous
pouvez le faire de façon manuelle. Il existe deux méthodes qui permettent de
mettre à jour tout ou partie des flux.
-### Mise à jour complète
+#### Mise à jour complète
Cette mise à jour se fait pour l’ensemble des flux de l’instance. Pour
initier cette mise à jour, il suffit de cliquer sur le lien de mise à jour
@@ -138,7 +140,7 @@ s’actualise au fur et à mesure de la récupération des articles.

-### Mise à jour partielle
+#### Mise à jour partielle
Cette mise à jour se fait pour le flux sélectionné uniquement. Pour initier
cette mise à jour, il suffit de cliquer sur le lien de mise à jour
@@ -146,36 +148,36 @@ disponible dans le menu du flux.

-# Filtrer les articles
+## Filtrer les articles
Avec le nombre croissant d’articles stockés par FreshRSS, il devient
important d’avoir des filtres efficaces pour n’afficher qu’une partie des
articles. Il existe plusieurs méthodes qui filtrent selon des critères
différents. Ces méthodes peuvent être combinées dans la plus part des cas.
-## Par catégorie
+### Par catégorie
C’est la méthode la plus simple. Il suffit de cliquer sur le titre d’une
catégorie dans le panneau latéral. Il existe deux catégories spéciales qui
sont placées en haut dudit panneau :
- * *Flux principal* qui affiche uniquement les articles des flux marqués
- comme visible dans cette catégorie
- * *Favoris* qui affiche uniquement les articles, tous flux confondus,
- marqués comme favoris
+* *Flux principal* qui affiche uniquement les articles des flux marqués
+ comme visible dans cette catégorie
+* *Favoris* qui affiche uniquement les articles, tous flux confondus,
+ marqués comme favoris
-## Par flux
+### Par flux
Il existe plusieurs méthodes pour filtrer les articles par flux :
- * en cliquant sur le titre du flux dans le panneau latéral
- * en cliquant sur le titre du flux dans le détail de l’article
- * en filtrant dans les options du flux dans le panneau latéral
- * en filtrant dans la configuration du flux
+* en cliquant sur le titre du flux dans le panneau latéral
+* en cliquant sur le titre du flux dans le détail de l’article
+* en filtrant dans les options du flux dans le panneau latéral
+* en filtrant dans la configuration du flux

-## Par statut
+### Par statut
Chaque article possède deux attributs qui peuvent être combinés. Le premier
attribut indique si l’article a été lu ou non. Le second attribut indique si
@@ -197,12 +199,12 @@ as no filter selected.
By default, this filter displays only unread articles
-## By content
+### By content
It is possible to filter articles by their content by inputting a string in
the search field.
-## Grâce au champ de recherche
+### Grâce au champ de recherche
Il est possible d’utiliser le champ de recherche pour raffiner les résultats
:
@@ -261,5 +263,5 @@ Il est également possible de combiner les mots-clefs pour faire un filtrage
encore plus précis, et il est autorisé d’avoir plusieurs instances de :
`f:`, `author:`, `intitle:`, `inurl:`, `#`, et texte libre.
-Combiner plusieurs critères implique un *et* logique, mais le mot clef ` OR`
+Combiner plusieurs critères implique un *et* logique, mais le mot clef `OR`
peut être utiliser pour combiner plusieurs critères avec un *ou* logique : `author:Dupont OR author:Dupond`
diff --git a/docs/fr/users/04_Subscriptions.md b/docs/fr/users/04_Subscriptions.md
index 2c5808fbf..d58abcffd 100644
--- a/docs/fr/users/04_Subscriptions.md
+++ b/docs/fr/users/04_Subscriptions.md
@@ -1,9 +1,9 @@
# Ajouter un flux
- 1. Pour ajouter un flux, copiez le lien vers le fichier RSS ou Atom qui vous intéresse (par exemple, le lien RSS du Framablog est `https://framablog.org/feed/`).
- 2. Sur l’interface de FreshRSS, cliquez sur « Gestion des abonnements ».
- 3. Collez l’URL du flux dans le champ « Ajouter un flux RSS » juste en dessous du titre.
- 4. (facultatif) : Vous pouvez descendre jusqu’à « Catégorie » et sélectionner la catégorie dans laquelle vous souhaitez enregistrer votre flux. Par défaut, le nouveau flux sera dans « Sans catégorie ».
+1. Pour ajouter un flux, copiez le lien vers le fichier RSS ou Atom qui vous intéresse (par exemple, le lien RSS du Framablog est `https://framablog.org/feed/`).
+2. Sur l’interface de FreshRSS, cliquez sur « Gestion des abonnements ».
+3. Collez l’URL du flux dans le champ « Ajouter un flux RSS » juste en dessous du titre.
+4. (facultatif) : Vous pouvez descendre jusqu’à « Catégorie » et sélectionner la catégorie dans laquelle vous souhaitez enregistrer votre flux. Par défaut, le nouveau flux sera dans « Sans catégorie ».
## Import et export
@@ -11,20 +11,20 @@ Voir [export/import SQLite]( https://github.com/FreshRSS/FreshRSS/tree/edge/cli)
## Exportation
- 1. Pour exporter votre liste d’abonnements, allez dans « Gestion des abonnements ».
- 2. Cliquez ensuite sur « Importer / exporter » dans le menu de gauche.
- 3. Vous pouvez mettre dans votre export :
- 1. la liste des flux
- 2. les articles que vous avez étiquetés
- 3. les articles que vous avez mis en favoris
- 4. et enfin, vous pouvez sélectionner les flux que vous voulez exporter (par défaut tous les flux sont sélectionnés)
- 4. Cliquez sur « Exporter ».
+1. Pour exporter votre liste d’abonnements, allez dans « Gestion des abonnements ».
+2. Cliquez ensuite sur « Importer / exporter » dans le menu de gauche.
+3. Vous pouvez mettre dans votre export :
+ 1. la liste des flux
+ 2. les articles que vous avez étiquetés
+ 3. les articles que vous avez mis en favoris
+ 4. et enfin, vous pouvez sélectionner les flux que vous voulez exporter (par défaut tous les flux sont sélectionnés)
+4. Cliquez sur « Exporter ».
## Importation
- 1. Pour importer un fichier d’abonnement vers votre compte FreshRSS, allez dans l’espace « Importer / exporter » comme ci-dessus
- 2. Cliquez sur « Parcourir » et sélectionnez votre fichier sur votre ordinateur.
- 3. Validez en cliquant sur « Importer ».
+1. Pour importer un fichier d’abonnement vers votre compte FreshRSS, allez dans l’espace « Importer / exporter » comme ci-dessus
+2. Cliquez sur « Parcourir » et sélectionnez votre fichier sur votre ordinateur.
+3. Validez en cliquant sur « Importer ».
> **Important**: vous ne pouvez pas importer directement depuis un fichier texte.
> Vous devez le convertir au format _OPML_ au préalable.
@@ -38,18 +38,18 @@ Voir [export/import SQLite]( https://github.com/FreshRSS/FreshRSS/tree/edge/cli)
Les « bookmarklets » sont de petits scripts que vous pouvez exécuter pour effectuer des tâches diverses et variées. FreshRSS offre un signet « bookmark » pour s’abonner aux fils de nouvelles.
- 1. Ouvrez « Gestion des abonnements ».
- 2. Cliquez sur « Outils d’abonnement ».
- 3. Glissez le bouton « S’abonner » dans la barre d’outils des signets ou
- cliquez droit et choisissez l’action « Lien vers les signets » de votre navigateur.
+1. Ouvrez « Gestion des abonnements ».
+2. Cliquez sur « Outils d’abonnement ».
+3. Glissez le bouton « S’abonner » dans la barre d’outils des signets ou
+ cliquez droit et choisissez l’action « Lien vers les signets » de votre navigateur.
## Organisation des flux
Vous pouvez trier vos flux dans différentes catégories. Un flux ne peut être que dans une seule catégorie.
- 1. Ouvrez « Gestion des abonnements ».
- 2. Vous pouvez ajouter une catégorie d’abonnements de cette manière :
- 1. Tapez le nom de votre catégorie dans le champ « Nouvelle catégorie »
- 2. Cliquez ensuite sur le bouton « Valider »
- 3. Ensuite, vous pouvez glisser vos abonnements de catégorie en catégorie
- 4. (facultatif) : Pour qu’un flux s’affiche dans la catégorie, et non pas dans l’onglet principal, dans son paramètre « Visibilité », choisissez « Afficher dans sa catégorie ».
+1. Ouvrez « Gestion des abonnements ».
+2. Vous pouvez ajouter une catégorie d’abonnements de cette manière :
+ 1. Tapez le nom de votre catégorie dans le champ « Nouvelle catégorie »
+ 2. Cliquez ensuite sur le bouton « Valider »
+3. Ensuite, vous pouvez glisser vos abonnements de catégorie en catégorie
+4. (facultatif) : Pour qu’un flux s’affiche dans la catégorie, et non pas dans l’onglet principal, dans son paramètre « Visibilité », choisissez « Afficher dans sa catégorie ».
diff --git a/docs/fr/users/05_Configuration.md b/docs/fr/users/05_Configuration.md
index 2a8bd1ef2..f205aa81d 100644
--- a/docs/fr/users/05_Configuration.md
+++ b/docs/fr/users/05_Configuration.md
@@ -23,14 +23,14 @@ pt-br, ru, tr, zh-cn.
Les goûts et les couleurs, ça ne se discute pas. C'est pourquoi FreshRSS
propose huit thèmes officiels :
- * *Blue Lagoon* par **Mister aiR**
- * *Dark* par **AD**
- * *Flat design* par **Marien Fressinaud**
- * *Origine* par **Marien Fressinaud**
- * *Origine-compact* par **Kevin Papst**
- * *Pafat* par **Plopoyop**
- * *Screwdriver* par **Mister aiR**
- * *Swage* par **Patrick Crandol**
+* *Blue Lagoon* par **Mister aiR**
+* *Dark* par **AD**
+* *Flat design* par **Marien Fressinaud**
+* *Origine* par **Marien Fressinaud**
+* *Origine-compact* par **Kevin Papst**
+* *Pafat* par **Plopoyop**
+* *Screwdriver* par **Mister aiR**
+* *Swage* par **Patrick Crandol**
Si aucun de ceux proposés ne convient, il est toujours possible de [créer
son propre thème](../developers/04_Frontend/02_Design.md).
@@ -46,10 +46,10 @@ maximiser l'espace disponible sur l'écran. Pour satisfaire le maximum de
personne, il est possible de choisir la largeur du contenu affiché. Il y a
quatre réglages disponibles :
- * **Fine** qui affiche le contenu jusqu'à 550 pixels
- * **Moyenne** qui affiche le contenu jusqu'à 800 pixels
- * **Large** qui affiche le contenu jusqu'à 1000 pixels
- * **Pas de limite** qui affiche le contenu sur 100% de la place disponible
+* **Fine** qui affiche le contenu jusqu'à 550 pixels
+* **Moyenne** qui affiche le contenu jusqu'à 800 pixels
+* **Large** qui affiche le contenu jusqu'à 1000 pixels
+* **Pas de limite** qui affiche le contenu sur 100% de la place disponible
## Icônes d'article
@@ -88,11 +88,11 @@ you browse with gestures, you can disable them from the interface.
# Reading
-**À FAIRE**
+> **À FAIRE**
# Archivage
-**À FAIRE**
+> **À FAIRE**
# Partage
@@ -109,17 +109,17 @@ configuration](../img/users/configuration.sharing.png)
Pour ajouter un nouvel élément à la liste, veuillez suivre les étapes
simples ci-dessous :
- 1. Select the desired sharing method in the drop-down list.
- 1. Press the ```✚``` button to add it to the list.
- 1. Configure the method in the list. All names can be modified in the
- display. Some methods need the sharing URL to be able to work properly
- (ex: Shaarli).
- 1. Submit your changes.
+1. Select the desired sharing method in the drop-down list.
+1. Press the ```✚``` button to add it to the list.
+1. Configure the method in the list. All names can be modified in the
+ display. Some methods need the sharing URL to be able to work properly
+ (ex: Shaarli).
+1. Submit your changes.
To remove an item from the list, follow those simple steps:
- 1. Press the ```❌``` button next to the share method you want to remove.
- 1. Submit your changes.
+1. Press the ```❌``` button next to the share method you want to remove.
+1. Submit your changes.
# Raccourcis
@@ -132,13 +132,13 @@ configuration to fit your needs.
There are 4 types of shortcuts:
- 1. Views: they allow switching views with ease.
- 1. Navigation: they allow navigation through articles, feeds, and
- categories.
- 1. Article actions: they allow interactions with an article, like sharing
- or opening it on the original web-site.
- 1. Other actions: they allow other interactions with the application, like
- opening the user queries menu or accessing the documentation.
+1. Views: they allow switching views with ease.
+1. Navigation: they allow navigation through articles, feeds, and
+ categories.
+1. Article actions: they allow interactions with an article, like sharing
+ or opening it on the original web-site.
+1. Other actions: they allow other interactions with the application, like
+ opening the user queries menu or accessing the documentation.
It's worth noting that the share article action has two levels. Once you
press the shortcut, a menu containing all the share options opens. To
@@ -161,21 +161,21 @@ At the moment, there is no helper to build a user query from here.
# Users
-**À FAIRE**
+> **À FAIRE**
## Authentication methods
### HTTP Authentication (Apache)
- 1. User control is based on the `.htaccess` file.
- 2. It is best practice to place the `.htaccess` file in the `./i/`
- subdirectory so the API and other third party services can work.
- 3. If you want to limit all access to registered users only, place the file
- in the FreshRSS directory itself or in a parent directory. Note that
- WebSub and API will not work!
- 4. Example `.htaccess` file for a user "marie":
+1. User control is based on the `.htaccess` file.
+2. It is best practice to place the `.htaccess` file in the `./i/`
+ subdirectory so the API and other third party services can work.
+3. If you want to limit all access to registered users only, place the file
+ in the FreshRSS directory itself or in a parent directory. Note that
+ WebSub and API will not work!
+4. Example `.htaccess` file for a user "marie":
-```
+```apache
AuthUserFile /home/marie/repertoire/.htpasswd
AuthGroupFile /dev/null
AuthName "Chez Marie"
@@ -190,15 +190,15 @@ d'Apache.](http://httpd.apache.org/docs/trunk/howto/auth.html#gettingitworking)
## Informations
-**À FAIRE**
+> **À FAIRE**
-## Archivage
+## Archivage des flux
-**À FAIRE**
+> **À FAIRE**
## Identification
-**À FAIRE**
+> **À FAIRE**
## Avancé
@@ -223,9 +223,7 @@ commence par un id (qui est unique pour la page).
#### Exemple : Rue89
-Pour trouver ce chemin, il faut se rendre à l'adresse d'un des articles
-tronqués (par exemple
-http://www.rue89.com/2013/10/15/prof-maths-jai-atteint-lextase-dihn-pedagogie-inversee-246635).
+Pour trouver ce chemin, il faut se rendre à l'adresse d'un des articles tronqués.
Il faut alors chercher le "bloc" HTML correspondant au contenu de l'article
(dans le code source !)
@@ -233,10 +231,10 @@ On trouve ici que le bloc qui englobe uniquement le contenu de l'article est ```
#### Liste de correspondances site → chemin css
-* Rue89 : ```#article .content```
-* PCINpact : ```#actu_content```
-* Lesnumériques : ```article#body div.text.clearfix```
-* Phoronix : ```#main .content```
+* Rue89 : ```#article .content```
+* PCINpact : ```#actu_content```
+* Lesnumériques : ```article#body div.text.clearfix```
+* Phoronix : ```#main .content```
### Récupérer un flux tronqué à l'aide d'outils externes
diff --git a/docs/fr/users/06_Fever_API.md b/docs/fr/users/06_Fever_API.md
index 580267697..6e655ad75 100644
--- a/docs/fr/users/06_Fever_API.md
+++ b/docs/fr/users/06_Fever_API.md
@@ -3,7 +3,7 @@
Voir la page [sur notre API compatible Google Reader](06_Mobile_access.md)
pour une autre possibilité et des généralités sur l’accès par API.
-## Clients compatibles
+## Clients compatibles GReader
De nombreux clients RSS prennent en charge l'API Fever, mais ils semblent
comprendre l'API Fever un peu différemment. Si votre client préféré ne
@@ -21,7 +21,7 @@ réinitialisez ensuite le mot de passe API de l'utilisateur.
Connectez ensuite votre application mobile en utilisant l'adresse de l'API
(e.g. `https://freshrss.example.net/api/fever.php`).
-## Clients compatibles
+## Clients compatibles Fever
| App | Platform | License |
|:----------------------------------------------------------------------------------:|:-------------------:|:--------------------------------------------------------:|
@@ -37,8 +37,7 @@ Les fonctionnalités suivantes sont implémentées :
* récupération des catégories
* récupération des flux
-* récupération des entrées (new, favorites, unread, by_id, by_feed,
- by_category,since)
+* récupération des entrées (new, favorites, unread, by_id, by_feed, by_category,since)
* récupération des favicons
* marquage des entrées comme lues
* marquage des entrées comme favoris
@@ -49,7 +48,7 @@ Les fonctionnalités suivantes sont implémentées :
Les fonctionnalités suivantes ne sont pas implémentées :
* « Hot Links » car il n'y a encore rien dans FreshRSS qui soit similaire ou
- qui puisse être utilisé pour le simuler.
+ qui puisse être utilisé pour le simuler.
## Tester et déboguer
@@ -58,7 +57,7 @@ de la tester manuellement avec un outil tel que
[Postman](https://www.getpostman.com/).
Envoyer une requête POST à l'adresse
-https://freshrss.example.net/api/fever.php?api devrait vous renvoyer le
+ devrait vous renvoyer le
résultat suivant :
```json
{
@@ -101,15 +100,15 @@ supportées. Pour plus d'information, veuillez vous référer à la
Voici quelques exemples simples d'appels réalisables :
-* https://freshrss.example.net/api/fever.php?api&items
-* https://freshrss.example.net/api/fever.php?api&feeds
-* https://freshrss.example.net/api/fever.php?api&groups
-* https://freshrss.example.net/api/fever.php?api&unread_item_ids
-* https://freshrss.example.net/api/fever.php?api&saved_item_ids
-* https://freshrss.example.net/api/fever.php?api&items&since_id=some_id
-* https://freshrss.example.net/api/fever.php?api&items&max_id=some_id
-* https://freshrss.example.net/api/fever.php?api&mark=item&as=read&id=some_id
-* https://freshrss.example.net/api/fever.php?api&mark=item&as=unread&id=some_id
+*
+*
+*
+*
+*
+*
+*
+*
+*
Remplacez `some_id` par un identifiant réel de votre base de données
`freshrss_username_entry`.
diff --git a/docs/fr/users/06_Mobile_access.md b/docs/fr/users/06_Mobile_access.md
index abef10191..32aa921d9 100644
--- a/docs/fr/users/06_Mobile_access.md
+++ b/docs/fr/users/06_Mobile_access.md
@@ -4,11 +4,12 @@ serveur](01_Installation.md).
# Activer l’API dans FreshRSS
1. Dans la section “Authentification”, cocher l’option “Autoriser l’accès
- par API (nécessaire pour les applis mobiles)”.
+ par API (nécessaire pour les applis mobiles)”.
2. Dans la section “Profil”, remplir le champ “Mot de passe API (ex. : pour applis mobiles)”.
* Chaque utilisateur doit choisir son mot de passe API.
* La raison d’être d’un mot de passe API
- différent du mot de passe principal est que le mot de passe API est potentiellement utilisé de manière moins sûre, mais il permet aussi moins de choses.
+ différent du mot de passe principal est que le mot de passe API est
+ potentiellement utilisé de manière moins sûre, mais il permet aussi moins de choses.
Le reste de cette page concerne l’API compatible Google Reader. Voir la
[page sur l’API compatible Fever](06_Fever_API.md) pour une autre
@@ -17,9 +18,9 @@ possibilité.
# Tester
-3. Dans la section “Profil”, cliquer sur le lien de la forme
- `https://rss.example.net/api/` à côté du champ “Mot de passe API”.
-4. Cliquer sur le premier lien “Check full server configuration”:
+1. Dans la section “Profil”, cliquer sur le lien de la forme
+ `https://rss.example.net/api/` à côté du champ “Mot de passe API”.
+2. Cliquer sur le premier lien “Check full server configuration”:
* Si vous obtenez `PASS`, tout est bon : passer à l’étape 6.
* Si vous obtenez *Bad Request!* ou *Not Found*, alors votre serveur ne semble pas accepter les slashs `/` qui sont encodés `%2F`. Passer à l’étape 5.
* Si vous obtenez un autre message d’erreur, passer à l’étape 5.
@@ -27,7 +28,7 @@ possibilité.
# Déboguer la configuration du serveur
-5. Cliquer sur le second lien “Check partial server configuration (without `%2F` support)”:
+* Cliquer sur le second lien “Check partial server configuration (without `%2F` support)”:
* Si vous obtenez `PASS`, alors le problème est bien que votre serveur n’accepte pas les slashs `/` qui sont encodés `%2F`.
* Avec Apache, vérifiez la directive [`AllowEncodedSlashes On`](http://httpd.apache.org/docs/trunk/mod/core.html#allowencodedslashes)
* Ou utilisez un client qui n’encode pas les slashs (comme EasyRSS), auquel cas passer à l’étape 6.
@@ -48,10 +49,10 @@ possibilité.
# Clients compatibles
-6. Sur la même page de l'API FreshRSS, notez l'adresse donnée sous "Votre adresse API", comme `https://freshrss.example.net/api/greader.php`
+1. Sur la même page de l'API FreshRSS, notez l'adresse donnée sous "Votre adresse API", comme `https://freshrss.example.net/api/greader.php`
* Saisissez l'adresse de l'API dans le client sélectionné puis votre nom d'utilisateur et votre mot de passe spécialement créé pour l'API.
-7. Vous pouvez maintenant tester sur une application mobile:
+2. Vous pouvez maintenant tester sur une application mobile:
* Android
* [News+](https://play.google.com/store/apps/details?id=com.noinnion.android.newsplus) avec [News+ Google Reader extension](https://github.com/noinnion/newsplus/blob/master/apk/GoogleReaderCloneExtension_101.apk) (Closed source)
* [FeedMe 3.5.3+](https://play.google.com/store/apps/details?id=com.seazon.feedme) (Propriétaire)
diff --git a/docs/fr/users/07_Frequently_Asked_Questions.md b/docs/fr/users/07_Frequently_Asked_Questions.md
index bb3789b9d..c831d8c49 100644
--- a/docs/fr/users/07_Frequently_Asked_Questions.md
+++ b/docs/fr/users/07_Frequently_Asked_Questions.md
@@ -8,18 +8,17 @@ Bien entendu, le ```/i``` n'est pas là pour faire joli ! Il s'agit d'une
question de performances et de praticité :
* Cela permet de servir les icônes, images, styles, scripts sans
- cookie. Sans cela, ces fichiers seraient souvent re-téléchargés, en
- particulier lorsque le formulaire de connexion est utilisé. De plus, les
- requêtes vers ces ressources seraient plus lourdes.
+ cookie. Sans cela, ces fichiers seraient souvent re-téléchargés, en
+ particulier lorsque le formulaire de connexion est utilisé. De plus, les
+ requêtes vers ces ressources seraient plus lourdes.
* La racine publique ```./p/``` peut être servie sans restriction d'accès
- HTTP (qui peut avantageusement être mise en place dans ```./p/i/```).
+ HTTP (qui peut avantageusement être mise en place dans ```./p/i/```).
* Cela permet d'éviter des problèmes pour des fichiers qui doivent être
- publics pour bien fonctionner, comme ```favicon.ico```, ```robots.txt```,
- etc.
+ publics pour bien fonctionner, comme ```favicon.ico```, ```robots.txt```, etc.
* Cela permet aussi d'avoir un logo FreshRSS plutôt qu'une page blanche pour
- accueillir l'utilisateur par exemple dans le cas de la restriction d'accès
- HTTP ou lors de l'attente du chargement plus lourd du reste de
- l'interface.
+ accueillir l'utilisateur par exemple dans le cas de la restriction d'accès
+ HTTP ou lors de l'attente du chargement plus lourd du reste de
+ l'interface.
## Pourquoi le ```robots.txt``` se trouve dans un sous-répertoire ?
@@ -32,9 +31,9 @@ Comme expliqué dans les [conseils de
sécurité](01_Installation.md#conseils-de-securite), il est recommandé de
faire pointer un nom de domaine vers ce sous-répertoire afin que seule la
partie publique ne soit accessible par un navigateur web. De cette manière
-https://demo.freshrss.org/ pointe vers le répertoire ```./p``` et le
+ pointe vers le répertoire ```./p``` et le
```robots.txt``` se trouve bien à la racine du site :
-https://demo.freshrss.org/robots.txt.
+
L'explication est la même pour les fichiers ```favicon.ico``` et
```.htaccess```.
@@ -48,17 +47,17 @@ dans un premier temps déterminer la cause du problème.Voici la liste des
étapes à suivre pour la déterminer :
1. __Vérifier la validité du flux__ grâce à l'[outil en ligne du
- W3C](https://validator.w3.org/feed/ "Validateur en ligne de flux RSS et
- Atom"). Si ça ne fonctionne pas, nous ne pouvons rien faire.
+ W3C](https://validator.w3.org/feed/ "Validateur en ligne de flux RSS et
+ Atom"). Si ça ne fonctionne pas, nous ne pouvons rien faire.
1. __Vérifier la reconnaissance par SimplePie__ grâce à l'[outil en ligne de
- SimplePie](https://simplepie.org/demo/ "Démo officielle de
- SimplePie"). Si ça ne fonctionne pas, nous ne pouvons rien faire.
+ SimplePie](https://simplepie.org/demo/ "Démo officielle de
+ SimplePie"). Si ça ne fonctionne pas, nous ne pouvons rien faire.
1. __Vérifier l'intégration dans FreshRSS__ grâce à la
- [démo](https://demo.freshrss.org "Démo officielle de FreshRSS"). Si ça ne
- fonctionne pas, il faut [créer un ticket sur
- Github](https://github.com/FreshRSS/FreshRSS/issues/new "Créer un ticket
- pour FreshRSS") pour que l'on puisse regarder ce qui se passe. Si ça
- fonctionne, il y a probablement un problème avec l'hébergement.
+ [démo](https://demo.freshrss.org "Démo officielle de FreshRSS"). Si ça ne
+ fonctionne pas, il faut [créer un ticket sur
+ Github](https://github.com/FreshRSS/FreshRSS/issues/new "Créer un ticket
+ pour FreshRSS") pour que l'on puisse regarder ce qui se passe. Si ça
+ fonctionne, il y a probablement un problème avec l'hébergement.
## Comment changer un mot de passe oublié ?
@@ -77,7 +76,6 @@ ligne de commande. Pour cela, il suffit d'ouvrir son terminal et de saisir
la commande suivante :
```sh
./cli/update_user.php --user --password
-
```
Pour plus d'information à ce sujet, il existe la [documentation
dédiée](../../cli/README.md).
@@ -107,8 +105,8 @@ permettre la consultation de la page de configuration « partage ».
Exemples avec _uBlock_ :
-- Ajoutez votre instance FreshRSS à la liste blanche de en l'ajoutant dans
- _uBlock > Ouvrir le tableau de bord > Liste blanche_.
-- Autorisez votre instance FreshRSS à appeler la page de configuration
- `sharing` en ajoutant la règle `*sharing,domain=~votredomaine.com` dans
- _uBlock > Ouvrir le fichier tableau de bord > Mes filtres_
+* Ajoutez votre instance FreshRSS à la liste blanche de en l'ajoutant dans
+ _uBlock > Ouvrir le tableau de bord > Liste blanche_.
+*-* Autorisez votre instance FreshRSS à appeler la page de configuration
+ `sharing` en ajoutant la règle `*sharing,domain=~votredomaine.com` dans
+ _uBlock > Ouvrir le fichier tableau de bord > Mes filtres_
diff --git a/docs/fr/users/08_PubSubHubbub.md b/docs/fr/users/08_PubSubHubbub.md
index 6e220b25b..4b382911c 100644
--- a/docs/fr/users/08_PubSubHubbub.md
+++ b/docs/fr/users/08_PubSubHubbub.md
@@ -5,7 +5,7 @@ En effet, le fonctionnement de base de ces deux derniers implique de vérifier
Cela même si le site concerné n’a rien publié depuis la dernière synchronisation.
Le [protocole WebSub](https://www.w3.org/TR/websub/) permet d’éviter des synchronisations inutiles en notifiant en temps réel l’agrégateur de la présence de nouveaux articles.
-# Fonctionnement de WebSub
+## Fonctionnement de WebSub
On va retrouver trois notions dans WebSub : les éditeurs (les sites qui publient du contenu), les abonnés (les agrégateurs de flux RSS) et les hubs.
@@ -15,10 +15,8 @@ Ainsi, lorsqu’un éditeur va publier du contenu, il va notifier le hub qui va
Pour pouvoir être notifié, les abonnés doivent fournir une adresse accessible publiquement sur Internet.
-# WebSub et FreshRSS
+## WebSub et FreshRSS
Depuis la version 1.1.2-beta, FreshRSS supporte officiellement WebSub.
Vous pouvez donc recevoir en temps réel les articles des sites qui affichent dans leur flux RSS un « hub »,
tels [Mastodon](https://joinmastodon.org), [Friendica](https://friendi.ca), WordPress (WordPress.com ou avec [une extension](https://wordpress.org/plugins/pubsubhubbub/)), Blogger, FeedBurner, Slashdot, etc.
-
-Vous pouvez tester avec http://push-pub.appspot.com.
diff --git a/docs/index.md b/docs/index.md
index 86a660d16..65ab7dfc4 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,6 +1,6 @@
-# Welcome to the FreshRSS documentation!
+# Welcome to the FreshRSS documentation
-This documentation is still under construction. If you want to contribute, you can [find us on GitHub](https://github.com/FreshRSS/FreshRSS).
+If you want to contribute, you can [find us on GitHub](https://github.com/FreshRSS/FreshRSS).
- [English documentation](./en/index.md)
- [Documentation française](./fr/index.md)
diff --git a/p/themes/BlueLagoon/README.md b/p/themes/BlueLagoon/README.md
index a83dd6743..694931e50 100644
--- a/p/themes/BlueLagoon/README.md
+++ b/p/themes/BlueLagoon/README.md
@@ -3,7 +3,6 @@ Blue Lagoon
**C'est un cocktail (bis)! C'est la version plus "fresh" de [Screwdriver](https://github.com/misterair/Screwdriver). C'est... c'est... un thème pour l'agrégateur de flux RSS [FreshRSS](https://github.com/FreshRSS/FreshRSS/)**
-
En toute modestie, ce thème tue du Nyan Cat.

@@ -11,14 +10,13 @@ En toute modestie, ce thème tue du Nyan Cat.
Installation
-----------------
+
1. Placez le dossier du thème dans ledossier /FreshRSS/p/themes/Screwdriver de votre FreshRSS;
2. Allez dans les paramètres d'Affichage et changez de thème;
3. Profitez de votre Blue Laggon sans modération!
4. Remontez les problèmes sur Github (*facultatif mais fortement apprécié*)
-
-
-Blue Lagoon est distribué sous license AlcoholWare:
+Blue Lagoon est distribué sous license AlcoholWare
-----------------
« LICENCE ALCOHOLWARE » (Révision 42):
@@ -29,10 +27,4 @@ vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
que vous pensez que ce truc vaut le coup, vous pouvez me payer un verre (rempli) en retour.
-*Mister aiR*
-
-
-
-
-
-
+*Mister aiR*.
diff --git a/p/themes/Screwdriver/README.md b/p/themes/Screwdriver/README.md
index 385e1dc71..2bfbf890c 100644
--- a/p/themes/Screwdriver/README.md
+++ b/p/themes/Screwdriver/README.md
@@ -1,36 +1,30 @@
-Screwdriver
+Screwdriver
=======
-**C'est un cocktail! C'est chaud mais "fresh" à la fois. C'est... c'est... un thème pour l'agrégateur de flux RSSFreshRSS!!**
+**C'est un cocktail! C'est chaud mais "fresh" à la fois. C'est... c'est... un thème pour l'agrégateur de flux RSS [FreshRSS](https://github.com/FreshRSS/FreshRSS/)!!**
+
En toute modestie, ce thème tue du chaton.
-
+
Installation
------------------
+------------
+
1. Placez le dossier du thème dans ledossier /FreshRSS/p/themes/Screwdriver de votre FreshRSS;
2. Allez dans les paramètres d'Affichage et changez de thème;
3. Profitez de votre Screwdriver!
4. Remontez les problèmes sur Github (facultatif mais fortement apprécié)
-
-
-Screwdriver est distribué sous license BeerWare:
+Screwdriver est distribué sous license BeerWare
-----------------
« LICENCE BEERWARE » (Révision 42):
-mister.air@gmail.com a créé ce fichier. Tant que vous conservez cet avertissement,
+ a créé ce fichier. Tant que vous conservez cet avertissement,
vous pouvez faire ce que vous voulez de ce truc. Si on se rencontre un jour et
que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en retour.
-*Mister aiR*
-
-
-
-
-
-
+*Mister aiR*.
diff --git a/package.json b/package.json
index 4ae01c19a..d20d6e860 100644
--- a/package.json
+++ b/package.json
@@ -21,11 +21,13 @@
"scripts": {
"eslint": "eslint --ext .js .",
"eslint_fix": "eslint --fix --ext .js .",
+ "markdownlint": "markdownlint '**/*.md'",
+ "markdownlint_fix": "markdownlint --fix '**/*.md'",
"rtlcss": "rtlcss -d p/themes && find . -type f -name '*.rtl.rtl.css' -delete",
"stylelint": "stylelint '**/*.css' && stylelint --syntax scss '**/*.scss'",
"stylelint_fix": "stylelint --fix '**/*.css' && stylelint --fix --syntax scss '**/*.scss'",
- "test": "npm run eslint && npm run stylelint",
- "fix": "npm run rtlcss && npm run stylelint_fix && npm run eslint_fix"
+ "test": "npm run eslint && npm run stylelint && npm run markdownlint",
+ "fix": "npm run rtlcss && npm run stylelint_fix && npm run eslint_fix && npm run markdownlint_fix"
},
"devDependencies": {
"eslint": "^7.32.0",
@@ -33,6 +35,7 @@
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.0",
+ "markdownlint-cli": "^0.29.0",
"rtlcss": "^3.4.0",
"stylelint": "^13.13.1",
"stylelint-config-recommended-scss": "^4.3.0",
--
cgit v1.2.3