### Environment
* wallabag version (or git revision) that exhibits the issue:
-* How did you install wallabag? Via `composer create-project` or by downloading the package?
+* How did you install wallabag? Via `git clone` or by downloading the package?
* Last wallabag version that did not exhibit the issue (if applicable):
* php version:
* OS:
More informations on our website: [wallabag.org](https://wallabag.org)
-# Want to test the v2?
-Keep in mind it's an **unstable** branch, everything can be broken :)
+# Install wallabag
If you don't have it yet, please [install composer](https://getcomposer.org/download/).
Then you can install wallabag by executing the following commands:
```
git clone https://github.com/wallabag/wallabag.git
cd wallabag
- git checkout 2.0.0-beta.2
+ git checkout 2.0.0
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
php bin/console server:run --env=prod
--- /dev/null
+download_pictures: Telecargar los imatges sul servidor
+carrot: Activar lo partatge cap a Carrot
+diaspora_url: URL de Diaspora, se lo servici Diaspora es activat
+export_epub: Activar l'expòrt ePub
+export_mobi: Activar l'expòrt .mobi
+export_pdf: Activar l'expòrt PDF
+export_csv: Activar l'expòrt CSV
+export_json: Activar l'expòrt JSON
+export_txt: Activar l'expòrt TXT
+export_xml: Activar l'expòrt XML
+pocket_consumer_key: Clau d'autentificacion Pocket per importar las donadas (https://getpocket.com/developer/docs/authentication)
+shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
+share_diaspora: Activar lo partatge cap a Diaspora
+share_mail: Activar lo partatge per corrièl
+share_shaarli: Activar lo partatge cap a Shaarli
+share_twitter: Activar lo partatge cap a Twitter
+show_printlink: Afichar un ligam per imprimir
+wallabag_support_url: URL d'assisténcia de wallabag
+wallabag_url: URL de *vòstra* instància de wallabag
+entry: "article"
+export: "expòrt"
+import: "impòrt"
+misc: "divèrs"
+modify_settings: "aplicar"
+piwik_host: URL de vòstre site dins Piwik
+piwik_site_id: ID de vòstre site dins Piwik
+piwik_enabled: Activar Piwik
+demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
+demo_mode_username: "Utilizaire de la demostracion"
--- /dev/null
+Login: "Se connectar"
+Enter your email address below and we'll send you password reset instructions.: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
assets: ~
wallabag_core:
- version: 2.0.0-beta.2
+ version: 2.0.0
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
languages:
en: 'English'
pl: 'Polish'
da: 'Dansk'
es: 'Español'
+ oc: 'Occitan'
items_on_page: 12
theme: material
language: en
"paragonie/random_compat": "~1.0",
"craue/config-bundle": "~1.4",
"mnapoli/piwik-twig-extension": "^1.0",
- "lexik/maintenance-bundle": "~2.1"
+ "lexik/maintenance-bundle": "~2.1",
+ "ocramius/proxy-manager": "1.*"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "~2.2",
--- /dev/null
+API documentation
+=================
+
+Thanks to this documentation, we'll see how to interact with the wallabag API.
+
+Requirements
+------------
+
+* wallabag freshly (or not) installed on http://localhost:8000
+* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget.
+* all the API methods are documented here http://localhost:8000/api/doc
+
+Creating a new API client
+-------------------------
+
+In your wallabag account, you can create a new API client at this URL http://localhost:8000/developer/client/create.
+
+Just give the redirect URL of your application and create your client. If your application is a desktop one, put whatever URL suits you the most.
+
+You get information like this:
+
+::
+
+ Client ID:
+
+ 1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc
+
+ Client secret:
+
+ 636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4
+
+
+Obtaining a refresh token
+-------------------------
+
+For each API call, you'll need a token. Let's create it with this command (replace ``client_id``, ``client_secret``, ``username`` and ``password`` with their values):
+
+::
+
+ http POST http://localhost:8000/oauth/v2/token \
+ grant_type=password \
+ client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc \
+ client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 \
+ username=wallabag \
+ password=wallabag
+
+You'll have this in return:
+
+::
+
+ HTTP/1.1 200 OK
+ Cache-Control: no-store, private
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 08:44:33 GMT
+ Host: localhost:8000
+ Pragma: no-cache
+ X-Debug-Token: 19c8e0
+ X-Debug-Token-Link: /_profiler/19c8e0
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "access_token": "ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA",
+ "expires_in": 3600,
+ "refresh_token": "OTNlZGE5OTJjNWQwYzc2NDI5ZGE5MDg3ZTNjNmNkYTY0ZWZhZDVhNDBkZTc1ZTNiMmQ0MjQ0OThlNTFjNTQyMQ",
+ "scope": null,
+ "token_type": "bearer"
+ }
+
+We'll work with the ``access_token`` value in our next calls.
+
+Getting existing entries
+------------------------
+
+Documentation for this method: http://localhost:8000/api/doc#get--api-entries.{_format}
+
+As we work on a fresh wallabag installation, we'll have no result with this command:
+
+::
+
+ http GET http://localhost:8000/api/entries.json \
+ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+returns:
+
+::
+
+ HTTP/1.1 200 OK
+ 0: application/json
+ Cache-Control: no-cache
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 08:51:32 GMT
+ Host: localhost:8000
+ Set-Cookie: PHPSESSID=nrogm748md610ovhu6j70c3q63; path=/; HttpOnly
+ X-Debug-Token: 4fbbc4
+ X-Debug-Token-Link: /_profiler/4fbbc4
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "_embedded": {
+ "items": []
+ },
+ "_links": {
+ "first": {
+ "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+ },
+ "last": {
+ "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+ },
+ "self": {
+ "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+ }
+ },
+ "limit": 30,
+ "page": 1,
+ "pages": 1,
+ "total": 0
+ }
+
+The ``items`` array is empty.
+
+Adding your first entry
+-----------------------
+
+Documentation for this method: http://localhost:8000/api/doc#post--api-entries.{_format}
+
+::
+
+ http POST http://localhost:8000/api/entries.json \
+ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" \
+ url="http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html"
+
+returns
+
+::
+
+ HTTP/1.1 200 OK
+ 0: application/json
+ Cache-Control: no-cache
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 09:07:54 GMT
+ Host: localhost:8000
+ Set-Cookie: PHPSESSID=bjie40ck72kp2pst3i71gf43a4; path=/; HttpOnly
+ X-Debug-Token: e01c51
+ X-Debug-Token-Link: /_profiler/e01c51
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "_links": {
+ "self": {
+ "href": "/api/entries/1"
+ }
+ },
+ "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\" //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w, //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\" //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w, //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\" //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w, //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n",
+ "created_at": "2016-04-05T09:07:54+0000",
+ "domain_name": "www.numerama.com",
+ "id": 1,
+ "is_archived": 0,
+ "is_starred": 0,
+ "language": "fr-FR",
+ "mimetype": "text/html",
+ "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+ "reading_time": 2,
+ "tags": [],
+ "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+ "updated_at": "2016-04-05T09:07:54+0000",
+ "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+ "user_email": "",
+ "user_id": 1,
+ "user_name": "wallabag"
+ }
+
+Now, if you execute the previous command (see **Get existing entries**), you'll have data.
+
+Deleting an entry
+-----------------
+
+Documentation for this method: http://localhost:8000/api/doc#delete--api-entries-{entry}.{_format}
+
+::
+
+ http DELETE http://localhost:8000/api/entries/1.json \
+ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+returns
+
+::
+
+ HTTP/1.1 200 OK
+ 0: application/json
+ Cache-Control: no-cache
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 09:19:07 GMT
+ Host: localhost:8000
+ Set-Cookie: PHPSESSID=jopgnfvmuc9a62b27sqm6iulr6; path=/; HttpOnly
+ X-Debug-Token: 887cef
+ X-Debug-Token-Link: /_profiler/887cef
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "_links": {
+ "self": {
+ "href": "/api/entries/"
+ }
+ },
+ "annotations": [],
+ "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\" //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w, //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\" //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w, //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\" //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w, //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n",
+ "created_at": "2016-04-05T09:07:54+0000",
+ "domain_name": "www.numerama.com",
+ "is_archived": 0,
+ "is_starred": 0,
+ "language": "fr-FR",
+ "mimetype": "text/html",
+ "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+ "reading_time": 2,
+ "tags": [],
+ "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+ "updated_at": "2016-04-05T09:07:54+0000",
+ "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+ "user_email": "",
+ "user_id": 1,
+ "user_name": "wallabag"
+ }
+
+And if you want to list the existing entries (see **Get existing entries**), the array is empty.
+
+Other methods
+-------------
+
+We won't write samples for each API method.
+
+Have a look on the listing here: http://localhost:8000/api/doc to know each method.
:caption: User documentation
user/installation
+ user/migration
user/create_account
user/login
user/configuration
:maxdepth: 2
:caption: Developer documentation
+ developer/api
developer/docker
developer/translate
developer/maintenance
- developer/releasing
Requirements
------------
-wallabag is compatible with php >= 5.5, including php 7.
+wallabag is compatible with PHP >= 5.5, including PHP 7.
-You'll need the following extensions for wallabag to work. Some of these may already activated in your version of php, so you may not have to install all corresponding packages.
+You'll need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
- php-session
- php-ctype
wallabag uses PDO to connect to database, so you'll need one of:
-- php-pdo_mysql
-- php-pdo_sqlite
-- php-pdo_pgsql
+- pdo_mysql
+- pdo_sqlite
+- pdo_pgsql
and it's corresponding database server.
git clone https://github.com/wallabag/wallabag.git
cd wallabag
- git checkout 2.0.0-beta.2
+ git checkout 2.0.0
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
:alt: Import from wallabag v1
:align: center
+Import via command-line interface (CLI)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
+
+::
+
+ bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
+
+Please replace values:
+
+* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
+* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
+
+You'll have this in return:
+
+::
+
+ Start : 05-04-2016 11:36:07 ---
+ 403 imported
+ 0 already saved
+ End : 05-04-2016 11:36:09 ---
From wallabag 2.x
-----------------
--- /dev/null
+Documentation de l'API
+======================
+
+Grâce à cette documentation, nous allons voir comment interagir avec l'API de wallabag.
+
+Pré-requis
+----------
+
+* wallabag fraichement installé et disponible à http://localhost:8000
+* ``httpie`` installé sur votre ordinateur (`voir le site du projet <https://github.com/jkbrzt/httpie>`__). Vous pouvez également adapter les commandes en utilisant curl ou wget.
+* toutes les méthodes de l'API documentées ici http://localhost:8000/api/doc
+
+Créer un nouveau client d'API
+-----------------------------
+
+Depuis votre wallabag, vous pouvez créer un nouveau client d'API à cette URL http://localhost:8000/developer/client/create.
+
+Vous devez renseigner l'URL de redirection de votre application et créer votre client. Si votre application est une application desktop, renseignez l'URL que vous souhaitez.
+
+Vous obtiendrez les informations suivantes :
+
+::
+
+ Client ID:
+
+ 1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc
+
+ Client secret:
+
+ 636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4
+
+
+Créer un jeton
+--------------
+
+Pour chaque appel d'API, vous aurez besoin d'un jeton. Créons-le avec la commande suivante (remplacez ``client_id``, ``client_secret``, ``username`` and ``password`` par leur valeur):
+
+::
+
+ http POST http://localhost:8000/oauth/v2/token \
+ grant_type=password \
+ client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc \
+ client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 \
+ username=wallabag \
+ password=wallabag
+
+Vous obtiendrez :
+
+::
+
+ HTTP/1.1 200 OK
+ Cache-Control: no-store, private
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 08:44:33 GMT
+ Host: localhost:8000
+ Pragma: no-cache
+ X-Debug-Token: 19c8e0
+ X-Debug-Token-Link: /_profiler/19c8e0
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "access_token": "ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA",
+ "expires_in": 3600,
+ "refresh_token": "OTNlZGE5OTJjNWQwYzc2NDI5ZGE5MDg3ZTNjNmNkYTY0ZWZhZDVhNDBkZTc1ZTNiMmQ0MjQ0OThlNTFjNTQyMQ",
+ "scope": null,
+ "token_type": "bearer"
+ }
+
+Nous allons utiliser la valeur de ``access_token`` dans nos prochains appels.
+
+Récupérer les articles existants
+--------------------------------
+
+Documentation pour cette méthode : http://localhost:8000/api/doc#get--api-entries.{_format}
+
+Comme nous venons tout juste d'installer wallabag, nous n'aurons aucun résultat avec cette commande :
+
+::
+
+ http GET http://localhost:8000/api/entries.json \
+ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+retournera :
+
+::
+
+ HTTP/1.1 200 OK
+ 0: application/json
+ Cache-Control: no-cache
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 08:51:32 GMT
+ Host: localhost:8000
+ Set-Cookie: PHPSESSID=nrogm748md610ovhu6j70c3q63; path=/; HttpOnly
+ X-Debug-Token: 4fbbc4
+ X-Debug-Token-Link: /_profiler/4fbbc4
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "_embedded": {
+ "items": []
+ },
+ "_links": {
+ "first": {
+ "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+ },
+ "last": {
+ "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+ },
+ "self": {
+ "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+ }
+ },
+ "limit": 30,
+ "page": 1,
+ "pages": 1,
+ "total": 0
+ }
+
+Le tableau ``items`` est vide.
+
+Créer votre premier article
+---------------------------
+
+Documentation pour cette méthode : http://localhost:8000/api/doc#post--api-entries.{_format}
+
+::
+
+ http POST http://localhost:8000/api/entries.json \
+ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" \
+ url="http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html"
+
+retournera :
+
+::
+
+ HTTP/1.1 200 OK
+ 0: application/json
+ Cache-Control: no-cache
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 09:07:54 GMT
+ Host: localhost:8000
+ Set-Cookie: PHPSESSID=bjie40ck72kp2pst3i71gf43a4; path=/; HttpOnly
+ X-Debug-Token: e01c51
+ X-Debug-Token-Link: /_profiler/e01c51
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "_links": {
+ "self": {
+ "href": "/api/entries/1"
+ }
+ },
+ "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\" //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w, //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\" //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w, //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\" //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w, //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n",
+ "created_at": "2016-04-05T09:07:54+0000",
+ "domain_name": "www.numerama.com",
+ "id": 1,
+ "is_archived": 0,
+ "is_starred": 0,
+ "language": "fr-FR",
+ "mimetype": "text/html",
+ "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+ "reading_time": 2,
+ "tags": [],
+ "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+ "updated_at": "2016-04-05T09:07:54+0000",
+ "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+ "user_email": "",
+ "user_id": 1,
+ "user_name": "wallabag"
+ }
+
+Maintenant, si vous exécutez la précédente commande (voir **Récupérer les articles existants**), vous obtiendrez quelque chose.
+
+Supprimer un article
+--------------------
+
+Documentation pour cette méthode : http://localhost:8000/api/doc#delete--api-entries-{entry}.{_format}
+
+::
+
+ http DELETE http://localhost:8000/api/entries/1.json \
+ "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+retournera :
+
+::
+
+ HTTP/1.1 200 OK
+ 0: application/json
+ Cache-Control: no-cache
+ Connection: close
+ Content-Type: application/json
+ Date: Tue, 05 Apr 2016 09:19:07 GMT
+ Host: localhost:8000
+ Set-Cookie: PHPSESSID=jopgnfvmuc9a62b27sqm6iulr6; path=/; HttpOnly
+ X-Debug-Token: 887cef
+ X-Debug-Token-Link: /_profiler/887cef
+ X-Powered-By: PHP/7.0.4
+
+ {
+ "_links": {
+ "self": {
+ "href": "/api/entries/"
+ }
+ },
+ "annotations": [],
+ "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\" //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w, //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\" //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w, //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\" //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w, //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n",
+ "created_at": "2016-04-05T09:07:54+0000",
+ "domain_name": "www.numerama.com",
+ "is_archived": 0,
+ "is_starred": 0,
+ "language": "fr-FR",
+ "mimetype": "text/html",
+ "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+ "reading_time": 2,
+ "tags": [],
+ "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+ "updated_at": "2016-04-05T09:07:54+0000",
+ "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+ "user_email": "",
+ "user_id": 1,
+ "user_name": "wallabag"
+ }
+
+Et si vous voulez voir la liste des articles existants (voir **Récupérer les articles existants**), le tableau sera vide.
+
+Autres méthodes
+---------------
+
+Nous n'écrirons pas d'exemples pour toutes les méthodes de l'API.
+
+Jetez un œil à la liste complète ici http://localhost:8000/api/doc pour connaitre chaque méthode.
:caption: Documentation utilisateur
user/installation
+ user/migration
user/create_account
user/login
user/configuration
:maxdepth: 2
:caption: Documentation développeur
+ developer/api
developer/docker
developer/translate
developer/maintenance
Pré-requis
------------
-wallabag est compatible avec php >= 5.5, php 7 inclus.
+wallabag est compatible avec PHP >= 5.5, PHP 7 inclus.
-Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de php, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
+Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de PHP, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
- php-session
- php-ctype
wallabag utilise PDO afin de se connecter à une base de données, donc vous aurez besoin d'une extension et d'un système de bases de données parmi :
-- php-pdo_mysql
-- php-pdo_sqlite
-- php-pdo_pgsql
+- pdo_mysql
+- pdo_sqlite
+- pdo_pgsql
Installation
------------
git clone https://github.com/wallabag/wallabag.git
cd wallabag
- git checkout 2.0.0-beta.2
+ git checkout 2.0.0
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
:alt: Import depuis wallabag v1
:align: center
+Import via via la ligne de commande (CLI)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Si vous avez accès à la ligne de commandes de votre serveur web, vous pouvez exécuter cette commande pour import votre fichier wallabag v1 :
+
+::
+
+ bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
+
+Remplacez les valeurs :
+
+* ``1`` est l'identifiant de votre utilisateur en base (l'ID de votre premier utilisateur créé sur wallabag est 1)
+* ``~/Downloads/wallabag-export-1-2016-04-05.json`` est le chemin de votre export wallabag v1
+
+Vous obtiendrez :
+
+::
+
+ Start : 05-04-2016 11:36:07 ---
+ 403 imported
+ 0 already saved
+ End : 05-04-2016 11:36:09 ---
Depuis wallabag 2.x
-------------------
$fulfilled = true;
- $label = '<comment>PDO Drivers</comment>';
+ $label = '<comment>PDO Driver</comment>';
$status = '<info>OK!</info>';
$help = '';
- if (!(extension_loaded('pdo_sqlite') || extension_loaded('pdo_mysql') || extension_loaded('pdo_pgsql'))) {
+
+ if (!extension_loaded($this->getContainer()->getParameter('database_driver'))) {
$fulfilled = false;
$status = '<error>ERROR!</error>';
- $help = 'Needs one of sqlite, mysql or pgsql PDO drivers';
+ $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.';
}
$rows = [];
wallabag_core.graby:
class: Graby\Graby
arguments:
- - { error_message: "wallabag can't retrieve contents for this article. Please report this issue to us." }
+ -
+ error_message: "wallabag can't retrieve contents for this article. Please report this issue to us."
+ http_client:
+ user_agents:
+ 'lifehacker.com': 'PHP/5.2'
+ 'gawker.com': 'PHP/5.2'
+ 'deadspin.com': 'PHP/5.2'
+ 'kotaku.com': 'PHP/5.2'
+ 'jezebel.com': 'PHP/5.2'
+ 'io9.com': 'PHP/5.2'
+ 'jalopnik.com': 'PHP/5.2'
+ 'gizmodo.com': 'PHP/5.2'
+ '.wikipedia.org': 'Mozilla/5.2'
+ '.fok.nl': 'Googlebot/2.1'
+ 'getpocket.com': 'PHP/5.2'
+ 'iansommerville.com': 'PHP/5.2'
calls:
- [ setLogger, [ "@logger" ] ]
tags:
event.preventDefault();
});
- /* ==========================================================================
- Keyboard gestion
- ========================================================================== */
-
- $(window).keydown(function(e){
- if ( ( e.target.tagName.toLowerCase() !== 'input' && e.keyCode == 83 ) || (e.keyCode == 27 && $bagitForm.is(':visible') ) ) {
- $bagit.removeClass("current");
- $("#bagit-arrow").removeClass("arrow-down");
- toggleSaveLinkForm();
- return false;
- }
- });
-
/* ==========================================================================
Process all links inside an article
========================================================================== */
padding: 0;
}
-#warning_message {
- position: fixed;
- background-color: #ff6347;
- z-index: 1000;
- bottom: 0;
- left: 0;
- width: 100%;
- color: #000;
-}
-
-#warning_message a {
- color: #555;
-}
-
.border-bottom {
border-bottom: 1px solid #DDD;
}
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
- # archive: 'Archived entries'
+ # archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
# number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
+ # list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
page_titles:
unread: 'Ungelesene Einträge'
starred: 'Favorisierte Einträge'
- archive: 'Archivierte Einträge'
+ archived: 'Archivierte Einträge'
filtered: 'Gefilterte Einträge'
list:
number_on_the_page: '{0} Es gibt keine Einträge.|{1} Es gibt einen Eintrag.|]1,Inf[ Es gibt %count% Einträge.'
documentation: 'Dokumentation'
how_to_first_app: 'Wie erstelle ich meine erste Anwendung'
full_documentation: 'Komplette API-Dokumentation einsehen'
+ # list_methods: 'List API methods'
clients:
title: 'Clients'
create_new: 'Neuen Client erstellen'
page_titles:
unread: 'Unread entries'
starred: 'Starred entries'
- archive: 'Archived entries'
+ archived: 'Archived entries'
filtered: 'Filtered entries'
list:
number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
documentation: 'Documentation'
how_to_first_app: 'How to create my first application'
full_documentation: 'View full API documentation'
+ list_methods: 'List API methods'
clients:
title: 'Clients'
create_new: 'Create a new client'
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
- # archive: 'Archived entries'
+ # archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
+ # list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
- # archive: 'Archived entries'
+ # archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
# number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
+ # list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
page_titles:
unread: 'Articles non lus'
starred: 'Articles favoris'
- archive: 'Articles lus'
+ archived: 'Articles lus'
filtered: 'Articles filtrés'
list:
number_on_the_page: "{0} Il n'y a pas d'articles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles."
documentation: 'Documentation'
how_to_first_app: 'Comment créer votre première application'
full_documentation: "Voir la documentation complète de l'API"
+ list_methods: "Lister toutes les méthodes de l'API"
clients:
title: 'Clients'
create_new: 'Créer une nouveau client'
--- /dev/null
+security:
+ login:
+ page_title: 'Benvenguda sus wallabag !'
+ keep_logged_in: 'Demorar connectat'
+ forgot_password: 'Senhal doblidat ?'
+ submit: 'Se connectar'
+ register: 'Crear un compte'
+ username: "Nom d'utilizaire"
+ password: 'Senhal'
+ cancel: 'Anullar'
+ resetting:
+ description: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
+ register:
+ page_title: 'Se crear un compte'
+ go_to_account: 'Anar sus vòstre compte'
+
+menu:
+ left:
+ unread: 'Pas legits'
+ starred: 'Favorits'
+ archive: 'Legits'
+ all_articles: 'Tots los articles'
+ config: 'Configuracion'
+ tags: 'Etiquetas'
+ internal_settings: 'Configuracion interna'
+ import: 'Importar'
+ howto: 'Ajuda'
+ developer: 'Desvolopador'
+ logout: 'Déconnexion'
+ about: 'A prepaus'
+ search: 'Cercar'
+ save_link: 'Enregistrar un novèl article'
+ back_to_unread: 'Tornar als articles pas legits'
+ top:
+ add_new_entry: 'Enregistrar un novèl article'
+ search: 'Cercar'
+ filter_entries: 'Filtrar los articles'
+ export: 'Exportar'
+ search_form:
+ input_label: 'Picatz vòstre mot-clau a cercar aquí'
+
+footer:
+ wallabag:
+ elsewhere: 'Emportatz wallabag amb vosaultres'
+ social: 'Social'
+ powered_by: 'propulsat per'
+ about: 'A prepaus'
+ page_title: 'Configuracion'
+
+config:
+ tab_menu:
+ settings: 'Paramètres'
+ rss: 'RSS'
+ user_info: 'Mon compte'
+ password: 'Senhal'
+ rules: "Règlas d'etiquetas automaticas"
+ new_user: 'Crear un compte'
+ form:
+ save: 'Enregistrar'
+ form_settings:
+ theme_label: 'Tèma'
+ items_per_page_label: "Nombre d'articles per pagina"
+ language_label: 'Lenga'
+ reading_speed:
+ label: 'Velocitat de lectura'
+ help_message: 'Podètz utilizar una aisina en linha per estimar vòstra velocitat de lectura :'
+ 100_word: "Legissi a l'entorn de 100 mots per minuta"
+ 200_word: "Legissi a l'entorn de 200 mots per minuta"
+ 300_word: "Legissi a l'entorn de 300 mots per minuta"
+ 400_word: "Legissi a l'entorn de 400 mots per minuta"
+ form_rss:
+ description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton."
+ token_label: 'Geton RSS'
+ no_token: 'Aucun jeton généré'
+ token_create: 'Pas cap de geton generat'
+ token_reset: 'Reïnicializatz vòstre geton'
+ rss_links: 'URL de vòstres fluxes RSS'
+ rss_link:
+ unread: 'pas legits'
+ starred: 'favorits'
+ archive: 'legits'
+ rss_limit: "Nombre d'articles dins un flux RSS"
+ form_user:
+ two_factor_description: "Activar l'autentificacion doble-factor vòl dire que recebretz un còdi per corrièl per cada novèla connexion pas aprovada."
+ name_label: 'Nom'
+ email_label: 'Adreça de corrièl'
+ twoFactorAuthentication_label: 'Dobla autentificacion'
+ form_password:
+ old_password_label: 'Senhal actual'
+ new_password_label: 'Senhal novèl'
+ repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
+ form_rules:
+ if_label: 'se'
+ then_tag_as_label: 'alara atribuir las etiquetas'
+ delete_rule_label: 'suprimir'
+ rule_label: 'Règla'
+ tags_label: 'Etiquetas'
+ faq:
+ title: 'FAQ'
+ tagging_rules_definition_title: "Qué significa las règlas d'etiquetas automaticas ?"
+ tagging_rules_definition_description: "Son de règlas utilizadas per wallabad per classar automaticament vòstres novèls articles.<br />Cada còp qu'un novèl article es apondut, totas las règlas d'etiquetas automaticas seràn utilizadas per ajustar d'etiquetas qu'avètz configuradas, en vos esparnhant l'esfòrç de classificar vòstres articles manualament."
+ how_to_use_them_title: 'Cossí las utilizar ?'
+ how_to_use_them_description: "Imaginem que volètz atribuir als novèls article l'etiqueta « <i>lectura corta</i> » quand lo temps per legir es inferior a 3 minutas.<br />Dins aquel cas, deuriatz metre « readingTime <= 3 » dins lo camp <i>Règla</i> e « <i>lectura corta</i> » dins lo camp <i>Etiqueta</i>.<br />Mai d'una etiquetas pòdon èsser apondudas simultanèament ne las separant amb de virgulas : « <i>lectura corta, per ligir</i> »<br />De règlas complèxas pòdon èsser creadas en emplegant d'operators predefinits : se « <i>readingTime >= 5 AND domainName = \"github.com\"</i> » alara atribuir las etiquetas « <i>lectura longa, github </i> »"
+ variables_available_title: 'Quinas variablas e operators pòdi utilizar per escriure de règlas ?'
+ variables_available_description: "Las variablas e operators seguents pòdon èsser utilizats per escriure de règlas d'etiquetas automaticas :"
+ meaning: 'Significacion'
+ variable_description:
+ label: 'Variabla'
+ title: "Títol de l'article"
+ url: "URL de l'article"
+ isArchived: "Se l'article es archivat o pas"
+ isStarred: "Se l'article es favorit o pas"
+ content: "Lo contengut de l'article"
+ language: "La lenga de l'article"
+ mimetype: "Lo tipe MIME de l'article"
+ readingTime: "Lo temps de lectura estimat de l'article, en minutas"
+ domainName: "Lo nom de domeni de l'article"
+ operator_description:
+ label: 'Operator'
+ less_than: 'Mens que…...'
+ strictly_less_than: 'Estrictament mens que…'
+ greater_than: 'Mai que…'
+ strictly_greater_than: 'Estrictament mai que…'
+ equal_to: 'Egal a…'
+ not_equal_to: 'Diferent de…'
+ or: "Una règla O l'autra"
+ and: "Una règla E l'autra"
+ matches: 'Teste se un <i>subjècte</i> correspond a una <i>recerca</i> (non sensibla a la cassa).<br />Exemple : <code>title matches \"football\"</code>'
+ form_new_user:
+ username_label: "Nom d'utilizaire"
+ password_label: 'Senhal'
+ repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
+ plain_password_label: 'Senhal en clar'
+ email_label: 'Adreça de corrièl'
+
+entry:
+ page_titles:
+ unread: 'Articles pas legits'
+ starred: 'Articles favorits'
+ archived: 'Articles legits'
+ filtered: 'Articles filtrats'
+ list:
+ number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles."
+ reading_time: 'durada de lectura'
+ reading_time_minutes: 'durada de lectura : %readingTime% min'
+ reading_time_less_one_minute: 'durada de lectura : <small class="inferieur"><</small> 1 min'
+ original_article: 'original'
+ toogle_as_read: 'Marcar coma legit/pas legit'
+ toogle_as_star: 'Marcar coma favorit'
+ delete: 'Suprimir'
+ export_title: 'Exportar'
+ filters:
+ title: 'Filtres'
+ status_label: 'Estatus'
+ archived_label: 'Legits'
+ starred_label: 'Favorits'
+ preview_picture_label: 'A una fotò'
+ preview_picture_help: 'Fotò'
+ language_label: 'Lenga'
+ reading_time:
+ label: 'Durada de lectura en minutas'
+ from: 'de'
+ to: 'per'
+ domain_label: 'Nom de domeni'
+ created_at:
+ label: 'Data de creacion'
+ from: 'de'
+ to: 'per'
+ action:
+ clear: 'Escafar'
+ filter: 'Filtrar'
+ view:
+ left_menu:
+ back_to_top: 'Tornar en naut'
+ back_to_homepage: 'Tornar'
+ set_as_read: 'Marcar coma legit'
+ set_as_unread: 'Marcar coma pas legit'
+ set_as_favorite: 'Metre en favori'
+ view_original_article: 'Article original'
+ re_fetch_content: 'Tornar cargar lo contengut'
+ delete: 'Suprimir'
+ add_a_tag: 'Ajustar una etiqueta'
+ share_content: 'Partatjar'
+ share_email_label: 'Corrièl'
+ download: 'Telecargar'
+ print: 'Imprimir'
+ problem:
+ label: 'Un problèma ?'
+ description: "Marca mal la presentacion d'aqueste article ?"
+ edit_title: 'Modificar lo títol'
+ original_article: 'original'
+ annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %nbAnnotations% anotacions"
+ new:
+ page_title: 'Enregistrar un novèl article'
+ placeholder: 'http://website.com'
+ form_new:
+ url_label: Url
+ edit:
+ page_title: 'Modificar un article'
+ title_label: 'Títol'
+ url_label: 'Url'
+ is_public_label: 'Public'
+ save_label: 'Enregistrar'
+
+about:
+ page_title: 'A prepaus'
+ top_menu:
+ who_behind_wallabag: "L'equipa darrèr wallabag"
+ getting_help: "Besonh d'ajuda"
+ helping: 'Ajudar wallabag'
+ contributors: 'Contributors'
+ third_party: 'Bibliotècas tèrças'
+ who_behind_wallabag:
+ developped_by: 'Desvolopat per'
+ website: 'Site web'
+ many_contributors: 'E un fum de contributors ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">sur Github</a>'
+ project_website: 'Site web del projète'
+ license: 'Licéncia'
+ version: 'Version'
+ getting_help:
+ documentation: 'Documentacion'
+ bug_reports: 'Rapòrt de bugs'
+ support: "<a href=\"https://support.wallabag.org\">Sus nòstre site d'assisténcia</a> ou <a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
+ helping:
+ description: 'wallabag es a gratuit e opensource. Nos podètz ajudar :'
+ by_contributing: 'en ajudant lo projècte :'
+ by_contributing_2: 'un bilhet recensa totes nòstres besonhs'
+ by_paypal: 'via Paypal'
+ contributors:
+ description: "Mercés als contributors de l'aplicacion web de wallabag"
+ third_party:
+ description: 'Aquí la lista de las dependéncias utilizadas dins wallabag (e lor licéncia) :'
+ package: 'Dependéncia'
+ license: 'Licéncia'
+
+howto:
+ page_title: 'Ajuda'
+ page_description: "I a mai d'un biai d'enregistrar un article :"
+ top_menu:
+ browser_addons: 'Extensions de navigator'
+ mobile_apps: 'Aplicacions mobil'
+ bookmarklet: 'Bookmarklet'
+ form:
+ description: 'Gràcias a aqueste formulari'
+ browser_addons:
+ firefox: 'Extension Firefox'
+ chrome: 'Extension Chrome'
+ mobile_apps:
+ android:
+ via_f_droid: 'via F-Droid'
+ via_google_play: 'via Google Play'
+ ios: 'sus iTunes Store'
+ windows: 'sus Microsoft Store'
+ bookmarklet:
+ description: 'Lisatz-depausatz aqueste ligam dins vòstra barra de favorits :'
+
+quickstart:
+ page_title: 'Per ben començar'
+ intro:
+ title: 'Benvenguda sus wallabag !'
+ paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas fonccionalitats que vos poirián interessar per vos apropriar aquesta aisina."
+ paragraph_2: 'Seguètz-nos '
+ configure:
+ title: "Configuratz l'aplicacio"
+ language: "Cambiatz la lenga e l'estil de l'aplicacion"
+ rss: 'Activatz los fluxes RSS'
+ tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles'
+ admin:
+ title: 'Administracion'
+ description: "En qualitat d'adminitrastor sus wallabag, avètz de privilègis que vos permeton de :"
+ new_user: 'Crear un novèl utilizaire'
+ analytics: 'Configurar las estadisticas'
+ sharing: 'Activar de paramètres de partatge'
+ export: 'Configurar los expòrt'
+ import: 'Configurar los impòrt'
+ first_steps:
+ title: 'Primièrs passes'
+ new_article: 'Ajustatz vòstre primièr article'
+ unread_articles: 'E racaptatz-lo !'
+ migrate:
+ title: 'Migrar dempuèi un servici existent'
+ description: "Sètz un ancian utilizaire d'un servici existent ? Vos ajudarem a trapar vòstras donadas sus wallabag."
+ pocket: 'Migrar dempuèi Pocket'
+ wallabag_v1: 'Migrar dempuèi wallabag v1'
+ wallabag_v2: 'Migrar dempuèi wallabag v2'
+ developer:
+ title: 'Pels desvolopadors'
+ create_application: 'Crear vòstra aplicacion tèrça'
+ docs:
+ title: 'Documentacion complèta'
+ annotate: 'Anotatar vòstre article'
+ export: 'Convertissètz vòstres articles en ePub o en PDF'
+ search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa"
+ fetching_errors: "Qué far se mon article es pas recuperat coma cal ?"
+ all_docs: "E encara plen de causas mai !"
+ support:
+ title: 'Assisténcia'
+ description: 'Perque avètz benlèu besonh de nos pausar una question, sèm disponibles per vosautres.'
+ github: 'Sus GitHub'
+ email: 'Per e-mail'
+ gitter: 'Sus Gitter'
+
+tag:
+ page_title: 'Etiquetas'
+ list:
+ number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas."
+
+import:
+ page_title: 'Importar'
+ page_description: "Benvenguda sus l'aisina de migracion de wallabag. Causissètz çai-jos lo servici dempuèi lo qual volètz migrar."
+ action:
+ import_contents: 'Importar los contenguts'
+ form:
+ mark_as_read_title: 'Tot marcar coma legit ?'
+ mark_as_read_label: 'Marcar tot los contenguts importats coma legits'
+ file_label: 'Fichièr'
+ save_label: 'Importar lo fichièr'
+ pocket:
+ page_title: 'Importer > Pocket'
+ description: "Aquesta aisina importarà totas vòstras donadas de Pocket. Pocket nos permet pas de recuperar lo contengut dempuèi lor servidor, alara wallabag deu tornar fulhetar cada article per recuperar son contengut."
+ config_missing:
+ description: "L'importacion dempuèi Pocket es pas configurada."
+ admin_message: "Vos cal definir %keyurls% una clau per l'API Pocket %keyurle%."
+ user_message: "L'administrator de vòstre servidor deu definir una clau per l'API Pocket."
+ authorize_message: "Podètz importar vòstras donadas dempuèi vòstre compte Pocket. Vos cal pas que clicar sul boton çai-jos e autorizar wallabag a se connectar a getpocket.com."
+ connect_to_pocket: 'Se connectar a Pocket e importar las donadas'
+ wallabag_v1:
+ page_title: 'Importer > Wallabag v1'
+ description: 'Aquesta aisina importarà totas vòstras donadas de wallabag v1. Sus vòstre pagina de configuracion de wallabag v1, clicatz sus \"Export JSON\" dins la seccion \"Exportar vòstras donadas de wallabag\". Traparatz un fichièr \"wallabag-export-1-xxxx-xx-xx.json\".'
+ how_to: "Causissètz lo fichièr de vòstra exportacion wallabag v1 e clicatz sul boton çai-jos per l'importar."
+ wallabag_v2:
+ page_title: 'Importer > Wallabag v2'
+ description: "Aquesta aisina importarà totas vòstras donadas d'una instància mai de wallabag v2. Anatz dins totes vòstres articles, puèi, sus la barra laterala, clicatz sus \"JSON\". Traparatz un fichièr \"All articles.json\""
+
+developer:
+ page_title: 'Desvolopador'
+ welcome_message: "Benvenguda sus l'API de wallabag"
+ documentation: 'Documentacion'
+ how_to_first_app: 'Cossí crear vòstra primièra aplicacion'
+ full_documentation: "Veire la documentacion completa de l'API"
+ # list_methods: 'List API methods'
+ clients:
+ title: 'Clients'
+ create_new: 'Crear un novèl client'
+ existing_clients:
+ title: 'Los clients existents'
+ field_id: 'ID Client'
+ field_secret: 'Clé secreta'
+ field_uris: 'URLs de redireccion'
+ field_grant_types: 'Tipe de privilègi acordat'
+ no_client: 'Pas cap de client pel moment'
+ remove:
+ warn_message_1: 'Avètz la possibilitat de supriimr un client. Aquesta accion es IRREVERSIBLA !'
+ warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag."
+ action: 'Suprimir aqueste client'
+ client:
+ page_title: 'Desvlopador > Novèl client'
+ page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion."
+ form:
+ redirect_uris_label: 'URLs de redireccion'
+ save_label: 'Crear un novèl client'
+ action_back: 'Retorn'
+ client_parameter:
+ page_title: 'Desvolopador > Los paramètres de vòstre client'
+ page_description: 'Vaquí los paramètres de vòstre client'
+ field_id: 'ID Client'
+ field_secret: 'Clau secreta'
+ back: 'Retour'
+ read_howto: 'Legir \"cossí crear ma primièra aplicacion\"'
+ howto:
+ page_title: 'Desvolopador > Cossí crear ma primièra aplicacion'
+ description:
+ paragraph_1: "Las comandas seguentas utilizan la <a href=\"https://github.com/jkbrzt/httpie\">libraria HTTPie</a>. Asseguratz-vos que siasqueòu installadas abans de l'utilizar."
+ paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar."
+ paragraph_3: 'Per crear un geton, vos cal crear <a href=\"%link%\">crear un novèl client</a>.'
+ paragraph_4: 'Ara creatz un geton (remplaçar client_id, client_secret, username e password amb las bonas valors) :'
+ paragraph_5: "L'API vos tornarà una responsa coma aquò :"
+ paragraph_6: "L'access_token deu èsser emplegat per far una requèsta a l'API. Per exemple :"
+ paragraph_7: "Aquesta requèsta tornarà totes los articles de l'utilizaire."
+ paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp d’uèlh <a href=\"%link%\">a la documentacion de l'API</a>."
+ back: 'Retorn'
+
+validator:
+ password_must_match: 'Cal que los dos senhals siasquen los meteisses'
+ password_too_short: 'Lo senhal deu aver almens 8 caractèrs'
+ password_wrong_value: 'Vòstre senhal actual es pas bon'
+ item_per_page_too_high: "Aquò li agradarà pas a l'aplicacion"
+ rss_limit_too_hight: "Aquò li agradarà pas a l'aplicacion"
+
+flashes:
+ config:
+ notice:
+ config_saved: 'Los paramètres son ben estats meses a jorn. Certans seràn aplicats aprèp desconnexion.'
+ password_updated: 'Vòstre senhal es ben estat mes a jorn'
+ password_not_updated_demo: "En demostration, podètz pas cambiar lo senhal d'aqueste utilizaire."
+ user_updated: 'Vòstres informacions personnelas son ben estadas mesas a jorn'
+ rss_updated: 'La configuracion dels fluxes RSS es ben estada mesa a jorn'
+ tagging_rules_updated: 'Règlas misa a jorn'
+ tagging_rules_deleted: 'Règla suprimida'
+ user_added: 'Utilizaire "%username%" apondut'
+ rss_token_updated: 'Geton RSS mes a jorn'
+ entry:
+ notice:
+ entry_already_saved: 'Article ja salvargardat lo %date%'
+ entry_saved: 'Article enregistrat'
+ entry_updated: 'Article mes a jorn'
+ entry_reloaded: 'Article recargat'
+ entry_reload_failed: "Fracàs de l'actualizacion de l'article"
+ entry_archived: 'Article marcat coma legit'
+ entry_unarchived: 'Article marcat coma pas legit'
+ entry_starred: 'Article apondut dins los favorits'
+ entry_unstarred: 'Article quitat dels favorits'
+ entry_deleted: 'Article suprimit'
+ tag:
+ notice:
+ tag_added: 'Etiqueta aponduda'
+ import:
+ notice:
+ failed: "L'importacion a fracassat, mercés de tornar ensajar"
+ failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr."
+ summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents."
+ developer:
+ notice:
+ client_created: 'Novèl client creat'
+ client_deleted: 'Client suprimit'
page_titles:
unread: 'Nieprzeczytane wpisy'
starred: 'Wpisy oznaczone gwiazdką'
- archive: 'Zarchiwizowane wpisy'
+ archived: 'Zarchiwizowane wpisy'
filtered: 'Odfiltrowane wpisy'
list:
number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.'
documentation: 'Dokumentacja'
how_to_first_app: 'Jak stworzyć moją pierwszą aplikację'
full_documentation: 'Pokaż pełne API'
+ # list_methods: 'List API methods'
clients:
title: 'Klienci'
create_new: 'Utwórz nowego klienta'
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
- # archive: 'Archived entries'
+ # archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
# number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
+ # list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
page_titles:
# unread: 'Unread entries'
# starred: 'Starred entries'
- # archive: 'Archived entries'
+ # archived: 'Archived entries'
# filtered: 'Filtered entries'
list:
number_on_the_page: '{0} Herhangi bir makale yok.|{1} Burada bir adet makale var.|]1,Inf[ Burada %count% adet makale var.'
# documentation: 'Documentation'
# how_to_first_app: 'How to create my first application'
# full_documentation: 'View full API documentation'
+ # list_methods: 'List API methods'
# clients:
# title: 'Clients'
# create_new: 'Create a new client'
{% block footer %}{% endblock %}
- <div id="warning_message">
- You're trying wallabag v2, which is in beta version. If you find a bug, please have a look to <a href="https://github.com/wallabag/wallabag/issues">our issues list</a> and <a href="https://github.com/wallabag/wallabag/issues/new">open a new one if necessary</a>.
- </div>
-
{% if craue_setting('piwik_enabled') %}
{{ piwik(craue_setting('piwik_host'), craue_setting('piwik_site_id')) }}
{% endif %}
<h2>{{ 'config.tab_menu.rss'|trans }}</h2>
- {{ form_start(form.rss) }}
+ {{ form_start(form.rss) }}
{{ form_errors(form.rss) }}
<div class="row">
{{ form_rest(form.pwd) }}
</form>
- <h2>{{ 'config.tab_menu.rules'|trans }}}</h2>
+ <h2>{{ 'config.tab_menu.rules'|trans }}</h2>
<ul>
{% for tagging_rule in app.user.config.taggingRules %}
{% endfor %}
</ul>
- {{ form_start(form.new_tagging_rule) }}
+ {{ form_start(form.new_tagging_rule) }}
{{ form_errors(form.new_tagging_rule) }}
<fieldset class="w500p inline">
{{ form_rest(form.new_tagging_rule) }}
</form>
+ <div class="row">
+ <div class="input-field col s12">
+ <h3>{{ 'config.form_rules.faq.title'|trans }}</h3>
+
+ <h4>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h4>
+ <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
+
+ <h4>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h4>
+ <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
+
+ <h4>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h4>
+ <p class="help">
+ {{ 'config.form_rules.faq.variables_available_description'|trans }}
+ </p>
+
+ <table class="bordered">
+ <thead>
+ <tr>
+ <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
+ <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+ <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
+ <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>title</td>
+ <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
+ <td><=</td>
+ <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>url</td>
+ <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
+ <td><</td>
+ <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>isArchived</td>
+ <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
+ <td>=></td>
+ <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>isStarred</td>
+ <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
+ <td>></td>
+ <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>content</td>
+ <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
+ <td>=</td>
+ <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
+ </tr>
+ <tr>
+ <td>language</td>
+ <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
+ <td>!=</td>
+ <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
+ </tr>
+ <tr>
+ <td>mimetype</td>
+ <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
+ <td>OR</td>
+ <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
+ </tr>
+ <tr>
+ <td>readingTime</td>
+ <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
+ <td>AND</td>
+ <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
+ </tr>
+ <tr>
+ <td>domainName</td>
+ <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
+ <td>matches</td>
+ <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
{% if is_granted('ROLE_SUPER_ADMIN') %}
<h2>{{ 'config.tab_menu.new_user'|trans }}</h2>
<ul>
<li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
- <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
+ <li><a href="http://doc.wallabag.org/en/v2-documentation-api/developer/api.html">{{ 'developer.full_documentation'|trans }}</a></li>
+ <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.list_methods'|trans }}</a></li>
</ul>
<h4>{{ 'developer.clients.title'|trans }}</h4>
{% for entry in entries %}
<div id="entry-{{ entry.id|e }}" class="entry">
<h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2>
- {% if entry.readingTime > 0 %}
- <div class="estimatedTime">
+
+ {% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
+ <div class="estimatedTime">
<span class="tool reading-time">
- {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }}
- </span>
- </div>
+ {% if readingTime > 0 %}
+ {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round}) }}
{% else %}
- <div class="estimatedTime">
- <span class="tool reading-time">
- {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
- </span>
- </div>
+ {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
{% endif %}
+ </span>
+ </div>
<ul class="tools links">
<li><a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool icon-check icon {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{{ 'entry.list.toogle_as_read'|trans }}</span></a></li>
<dl>
<dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt>
- <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+ <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://www.loeuillet.org">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dl>
<dt>{{ 'about.getting_help.documentation'|trans }}</dt>
- <dd><a href="https://doc.wallabag.org/en">english</a></dd>
- <dd><a href="https://doc.wallabag.org/fr">français</a></dd>
- <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd>
+ <dd><a href="http://doc.wallabag.org/en/v2/">english</a></dd>
+ <dd><a href="http://doc.wallabag.org/fr/v2/">français</a></dd>
<dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
<dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
</ul>
<h3>{{ 'howto.top_menu.browser_addons'|trans }}</h3>
<ul>
- <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
+ <li><a href="https://addons.mozilla.org/firefox/addon/wallabag-v2/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
<li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li>
</ul>
<h3>{{ 'howto.top_menu.mobile_apps'|trans }}</h3>
<li><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li>
<li><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li>
<li><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li>
- <li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
+ <!--<li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
<div id="search-form" class="messages info popup-form">
<form method="get" action="index.php">
<h2>{{ 'menu.left.search'|trans }}</h2>
<input id="submit-search" type="submit" value="{{ 'menu.left.search'|trans }}">
</form>
</div>
- </li>
+ </li>-->
<li><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li>
{% if is_granted('ROLE_SUPER_ADMIN') %}
<li><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li>
<h5>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h5>
<p class="help">
{{ 'config.form_rules.faq.variables_available_description'|trans }}
-
- <table class="bordered">
- <thead>
- <tr>
- <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
- <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
- <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
- <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
- </tr>
- </thead>
-
- <tbody>
- <tr>
- <td>title</td>
- <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
- <td><=</td>
- <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
- </tr>
- <tr>
- <td>url</td>
- <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
- <td><</td>
- <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
- </tr>
- <tr>
- <td>isArchived</td>
- <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
- <td>=></td>
- <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
- </tr>
- <tr>
- <td>isStarred</td>
- <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
- <td>></td>
- <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
- </tr>
- <tr>
- <td>content</td>
- <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
- <td>=</td>
- <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
- </tr>
- <tr>
- <td>language</td>
- <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
- <td>!=</td>
- <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
- </tr>
- <tr>
- <td>mimetype</td>
- <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
- <td>OR</td>
- <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
- </tr>
- <tr>
- <td>readingTime</td>
- <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
- <td>AND</td>
- <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
- </tr>
- <tr>
- <td>domainName</td>
- <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
- <td>matches</td>
- <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
- </tr>
- </tbody>
- </table>
</p>
+
+ <table class="bordered">
+ <thead>
+ <tr>
+ <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
+ <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+ <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
+ <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tr>
+ <td>title</td>
+ <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
+ <td><=</td>
+ <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>url</td>
+ <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
+ <td><</td>
+ <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>isArchived</td>
+ <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
+ <td>=></td>
+ <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>isStarred</td>
+ <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
+ <td>></td>
+ <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
+ </tr>
+ <tr>
+ <td>content</td>
+ <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
+ <td>=</td>
+ <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
+ </tr>
+ <tr>
+ <td>language</td>
+ <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
+ <td>!=</td>
+ <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
+ </tr>
+ <tr>
+ <td>mimetype</td>
+ <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
+ <td>OR</td>
+ <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
+ </tr>
+ <tr>
+ <td>readingTime</td>
+ <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
+ <td>AND</td>
+ <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
+ </tr>
+ <tr>
+ <td>domainName</td>
+ <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
+ <td>matches</td>
+ <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
+ </tr>
+ </tbody>
+ </table>
</div>
</div>
</div>
<ul>
<li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
- <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
+ <li><a href="http://doc.wallabag.org/en/v2-documentation-api/developer/api.html">{{ 'developer.full_documentation'|trans }}</a></li>
+ <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.list_methods'|trans }}</a></li>
</ul>
<h4>{{ 'developer.clients.title'|trans }}</h4>
<span class="tool reading-time">
{% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
{% if readingTime > 0 %}
- {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime}) }}
+ {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round}) }}
{% else %}
{{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
{% endif %}
{% endfor %}
</div>
- {% if entry.previewPicture is not null %}
- <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div>
- {% endif %}
-
<div class="input-field nav-panel-add-tag" style="display: none">
{{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }}
</div>
+ {% if entry.previewPicture is not null %}
+ <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div>
+ {% endif %}
+
</aside>
<article>
{{ entry.content | raw }}
<div id="set1" class="col s12">
<dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt>
- <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+ <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://www.loeuillet.org">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt>
<div id="set2" class="col s12">
<dl>
<dt>{{ 'about.getting_help.documentation'|trans }}</dt>
- <dd><a href="https://doc.wallabag.org/en">english</a></dd>
- <dd><a href="https://doc.wallabag.org/fr">français</a></dd>
- <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd>
+ <dd><a href="http://doc.wallabag.org/en/v2/">english</a></dd>
+ <dd><a href="http://doc.wallabag.org/fr/v2/">français</a></dd>
<dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
<dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
<div class="col s12">
<h5>{{ 'howto.top_menu.browser_addons'|trans }}</h5>
<ul>
- <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
+ <li><a href="https://addons.mozilla.org/firefox/addon/wallabag-v2/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
<li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li>
</ul>
</div>
<i class="mdi-content-add"></i>
</a>
</li>
- <li>
+ <!--<li>
<a title="{{ 'menu.top.search'|trans }}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search">
<i class="mdi-action-search"></i>
</a>
- </li>
+ </li>-->
<li id="button_filters">
<a title="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right">
<i class="mdi-content-filter-list"></i>