aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.github/mailmap2
-rw-r--r--AUTHORS12
-rw-r--r--CHANGELOG.md32
-rw-r--r--README.md4
-rw-r--r--doc/md/Browsing-and-searching.md18
-rw-r--r--doc/md/Community-&-Related-software.md47
-rw-r--r--doc/md/Download-and-Installation.md10
-rw-r--r--doc/md/Firefox-share.md3
-rw-r--r--doc/md/docker/shaarli-images.md14
-rw-r--r--doc/md/index.md43
-rw-r--r--docker/alpine/Dockerfile.armhf.latest47
-rw-r--r--docker/alpine/Dockerfile.armhf.master47
-rw-r--r--index.php2
-rw-r--r--mkdocs.yml8
-rw-r--r--tpl/default/page.header.html52
-rw-r--r--tpl/default/pluginsadmin.html6
16 files changed, 248 insertions, 99 deletions
diff --git a/.github/mailmap b/.github/mailmap
index bbdb7908..7633afcf 100644
--- a/.github/mailmap
+++ b/.github/mailmap
@@ -1,6 +1,8 @@
1ArthurHoaro <arthur@hoa.ro> 1ArthurHoaro <arthur@hoa.ro>
2Florian Eula <eula.florian@gmail.com> feula 2Florian Eula <eula.florian@gmail.com> feula
3Florian Eula <eula.florian@gmail.com> <mr.pikzen@gmail.com> 3Florian Eula <eula.florian@gmail.com> <mr.pikzen@gmail.com>
4Immánuel Fodor <immanuelfactor+github@gmail.com>
5kalvn <kalvnthereal@gmail.com> <kalvn@users.noreply.github.com>
4Nicolas Danelon <hi@nicolasmd.com.ar> nicolasm 6Nicolas Danelon <hi@nicolasmd.com.ar> nicolasm
5Nicolas Danelon <hi@nicolasmd.com.ar> <nda@3818.com.ar> 7Nicolas Danelon <hi@nicolasmd.com.ar> <nda@3818.com.ar>
6Nicolas Danelon <hi@nicolasmd.com.ar> <nicolasdanelon@gmail.com> 8Nicolas Danelon <hi@nicolasmd.com.ar> <nicolasdanelon@gmail.com>
diff --git a/AUTHORS b/AUTHORS
index 105561c1..6c4d9529 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,6 +1,6 @@
1 537 ArthurHoaro <arthur@hoa.ro> 1 574 ArthurHoaro <arthur@hoa.ro>
2 252 VirtualTam <virtualtam@flibidi.net> 2 277 VirtualTam <virtualtam@flibidi.net>
3 148 nodiscc <nodiscc@gmail.com> 3 169 nodiscc <nodiscc@gmail.com>
4 56 Sébastien Sauvage <sebsauvage@sebsauvage.net> 4 56 Sébastien Sauvage <sebsauvage@sebsauvage.net>
5 15 Florian Eula <eula.florian@gmail.com> 5 15 Florian Eula <eula.florian@gmail.com>
6 13 Emilien Klein <emilien@klein.st> 6 13 Emilien Klein <emilien@klein.st>
@@ -11,8 +11,9 @@
11 5 Lucas Cimon <lucas.cimon@gmail.com> 11 5 Lucas Cimon <lucas.cimon@gmail.com>
12 4 Alexandre Alapetite <alexandre@alapetite.fr> 12 4 Alexandre Alapetite <alexandre@alapetite.fr>
13 4 David Sferruzza <david.sferruzza@gmail.com> 13 4 David Sferruzza <david.sferruzza@gmail.com>
14 4 kalvn <kalvnthereal@gmail.com>
15 3 Immánuel Fodor <immanuelfactor+github@gmail.com>
14 3 Teromene <teromene@teromene.fr> 16 3 Teromene <teromene@teromene.fr>
15 3 kalvn <kalvnthereal@gmail.com>
16 2 Chris Kuethe <chris.kuethe@gmail.com> 17 2 Chris Kuethe <chris.kuethe@gmail.com>
17 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org> 18 2 Knah Tsaeb <Knah-Tsaeb@knah-tsaeb.org>
18 2 Mathieu Chabanon <git@matchab.fr> 19 2 Mathieu Chabanon <git@matchab.fr>
@@ -27,6 +28,7 @@
27 1 BoboTiG <bobotig@gmail.com> 28 1 BoboTiG <bobotig@gmail.com>
28 1 Bronco <bronco@warriordudimanche.net> 29 1 Bronco <bronco@warriordudimanche.net>
29 1 D Low <daniellowtw@gmail.com> 30 1 D Low <daniellowtw@gmail.com>
31 1 Daniel Jakots <vigdis@chown.me>
30 1 Dimtion <zizou.xena@gmail.com> 32 1 Dimtion <zizou.xena@gmail.com>
31 1 Fanch <fanch-github@qth.fr> 33 1 Fanch <fanch-github@qth.fr>
32 1 Felix Bartels <felix@host-consultants.de> 34 1 Felix Bartels <felix@host-consultants.de>
@@ -41,6 +43,8 @@
41 1 Lionel Martin <renarddesmers@gmail.com> 43 1 Lionel Martin <renarddesmers@gmail.com>
42 1 Mark Gerarts <mark.gerarts@gmail.com> 44 1 Mark Gerarts <mark.gerarts@gmail.com>
43 1 Marsup <marsup@gmail.com> 45 1 Marsup <marsup@gmail.com>
46 1 Neros <contact@neros.fr>
44 1 Sbgodin <Sbgodin@users.noreply.github.com> 47 1 Sbgodin <Sbgodin@users.noreply.github.com>
45 1 TsT <tst2005@gmail.com> 48 1 TsT <tst2005@gmail.com>
46 1 dimtion <zizou.xena@gmail.com> 49 1 dimtion <zizou.xena@gmail.com>
50 1 durcheinandr <jochen@durcheinandr.de>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 33feac20..b823ba70 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
4The format is based on [Keep a Changelog](http://keepachangelog.com/) 4The format is based on [Keep a Changelog](http://keepachangelog.com/)
5and this project adheres to [Semantic Versioning](http://semver.org/). 5and this project adheres to [Semantic Versioning](http://semver.org/).
6 6
7## [v0.9.3](https://github.com/shaarli/Shaarli/releases/tag/v0.9.3) - 2018-01-04
8**XSS vulnerability fixed. Please update.**
9
10## Security
11- Fix an XSS (cross-site-scripting) vulnerability in `index.php`
12
13
7## [v0.9.2](https://github.com/shaarli/Shaarli/releases/tag/v0.9.2) - 2017-10-07 14## [v0.9.2](https://github.com/shaarli/Shaarli/releases/tag/v0.9.2) - 2017-10-07
8 15
9**Major security issue fixed. Please update.** 16**Major security issue fixed. Please update.**
@@ -42,6 +49,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
42 49
43- Fixed reflected XSS vulnerability introduced in v0.9.1, discovered by @chb9 ([CVE-2017-15215](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15215)). 50- Fixed reflected XSS vulnerability introduced in v0.9.1, discovered by @chb9 ([CVE-2017-15215](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15215)).
44 51
52
45## [v0.9.1](https://github.com/shaarli/Shaarli/releases/tag/v0.9.1) - 2017-08-23 53## [v0.9.1](https://github.com/shaarli/Shaarli/releases/tag/v0.9.1) - 2017-08-23
46 54
47The documentation has been migrated to ReadTheDocs: 55The documentation has been migrated to ReadTheDocs:
@@ -115,7 +123,7 @@ Theming:
115 - Introduce a new theme 123 - Introduce a new theme
116 - Allow selecting themes/templates from the configuration page 124 - Allow selecting themes/templates from the configuration page
117 - New/Edit link form can be submitted using CTRL+Enter in the textarea 125 - New/Edit link form can be submitted using CTRL+Enter in the textarea
118 - Shaarli version is displayed in the footer when logged in 126 - Shaarli version is displayed in the footer when logged in
119- Add plugin placeholders to Atom/RSS feed templates 127- Add plugin placeholders to Atom/RSS feed templates
120- Add OpenSearch to feed templates 128- Add OpenSearch to feed templates
121- Add `campaign_` to the URL cleanup pattern list 129- Add `campaign_` to the URL cleanup pattern list
@@ -145,7 +153,7 @@ Theming:
145- Improved date time display depending on the locale 153- Improved date time display depending on the locale
146- Partial namespace support for Shaarli classes 154- Partial namespace support for Shaarli classes
147- Shaarli version is now only present in `shaarli_version.php` 155- Shaarli version is now only present in `shaarli_version.php`
148- Human readable maximum file size upload 156- Human readable maximum file size upload
149 157
150 158
151### Removed 159### Removed
@@ -171,6 +179,12 @@ Theming:
171- Markdown plugin: escape HTML entities by default 179- Markdown plugin: escape HTML entities by default
172 180
173 181
182## [v0.8.5](https://github.com/shaarli/Shaarli/releases/tag/v0.8.5) - 2018-01-04
183**XSS vulnerability fixed. Please update.**
184
185## Security
186- Fix an XSS (cross-site-scripting) vulnerability in `index.php`
187
174## [v0.8.4](https://github.com/shaarli/Shaarli/releases/tag/v0.8.4) - 2017-03-04 188## [v0.8.4](https://github.com/shaarli/Shaarli/releases/tag/v0.8.4) - 2017-03-04
175### Security 189### Security
176- Markdown plugin: escape HTML entities by default 190- Markdown plugin: escape HTML entities by default
@@ -186,7 +200,7 @@ Theming:
186 200
187## [v0.8.1](https://github.com/shaarli/Shaarli/releases/tag/v0.8.1) - 2016-12-12 201## [v0.8.1](https://github.com/shaarli/Shaarli/releases/tag/v0.8.1) - 2016-12-12
188 202
189> Note: this version will create an automatic backup of your database if anything goes wrong. 203> Note: this version will create an automatic backup of your database if anything goes wrong.
190 204
191### Added 205### Added
192- Add CHANGELOG.md to track the whole project's history 206- Add CHANGELOG.md to track the whole project's history
@@ -203,7 +217,7 @@ Theming:
203- Link ID complete refactoring: 217- Link ID complete refactoring:
204 - Links now have a numeric ID instead of dates 218 - Links now have a numeric ID instead of dates
205 - Short URLs are now created once and can't change over time (previous URL are kept) 219 - Short URLs are now created once and can't change over time (previous URL are kept)
206- Templates: 220- Templates:
207 - Changed placeholder behaviour for: `buttons_toolbar`, `fields_toolbar` and `action_plugin` 221 - Changed placeholder behaviour for: `buttons_toolbar`, `fields_toolbar` and `action_plugin`
208 - Cleanup `{loop}` declarations in templates 222 - Cleanup `{loop}` declarations in templates
209 - Tools: hide Firefox Social button when not in HTTPS 223 - Tools: hide Firefox Social button when not in HTTPS
@@ -221,7 +235,7 @@ Theming:
221- Plugins: 235- Plugins:
222 - Tools: only display parameter description when it exists 236 - Tools: only display parameter description when it exists
223 - archive.org: do not propose archival of private notes 237 - archive.org: do not propose archival of private notes
224 - Markdown: 238 - Markdown:
225 - render links properly in code blocks 239 - render links properly in code blocks
226 - bug regarding the `nomarkdown` tag 240 - bug regarding the `nomarkdown` tag
227 - W3C compliance 241 - W3C compliance
@@ -360,7 +374,7 @@ Please use our release archives, or follow the
360### Fixed 374### Fixed
361- Fix a bug where renaming a tag was causing a 404 375- Fix a bug where renaming a tag was causing a 404
362- Fix a bug allowing to search blank terms 376- Fix a bug allowing to search blank terms
363- Fix a bug preventing to remove a tag with special chars when searching 377- Fix a bug preventing to remove a tag with special chars when searching
364 378
365 379
366## [v0.6.2](https://github.com/shaarli/Shaarli/releases/tag/v0.6.2) - 2015-12-23 380## [v0.6.2](https://github.com/shaarli/Shaarli/releases/tag/v0.6.2) - 2015-12-23
@@ -666,7 +680,7 @@ Initial release on GitHub.
666- When you click the key to see only private links, it turns yellow 680- When you click the key to see only private links, it turns yellow
667 681
668### Changed 682### Changed
669- The "Daily" page now automatically skips empty days. 683- The "Daily" page now automatically skips empty days.
670 684
671### Fixed 685### Fixed
672- Corrected the tag encoding (there was a bug when selecting a second tag which contains accented characters) 686- Corrected the tag encoding (there was a bug when selecting a second tag which contains accented characters)
@@ -964,7 +978,7 @@ Initial release on GitHub.
964- Nicer timezone selection patch by killruana 978- Nicer timezone selection patch by killruana
965 979
966### Fixed 980### Fixed
967- New lines now appear correctly in the RSS feed descriptions. 981- New lines now appear correctly in the RSS feed descriptions.
968 982
969 983
970## [v0.0.17beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) 984## [v0.0.17beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history)
@@ -1018,7 +1032,7 @@ Initial release on GitHub.
1018## [v0.0.14beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) 1032## [v0.0.14beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history)
1019### Added 1033### Added
1020- You no longer need to disable `magic_quotes` on your host. 1034- You no longer need to disable `magic_quotes` on your host.
1021 Shaarli will cope with this option beeing activated. 1035 Shaarli will cope with this option beeing activated.
1022 1036
1023 1037
1024## [v0.0.13beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history) 1038## [v0.0.13beta](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history)
diff --git a/README.md b/README.md
index c1050027..e7e8ad4c 100644
--- a/README.md
+++ b/README.md
@@ -6,10 +6,10 @@ _Do you want to share the links you discover?_
6_Shaarli is a minimalist link sharing service that you can install on your own server._ 6_Shaarli is a minimalist link sharing service that you can install on your own server._
7_It is designed to be personal (single-user), fast and handy._ 7_It is designed to be personal (single-user), fast and handy._
8 8
9[![](https://img.shields.io/badge/stable-v0.8.4-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.8.4) 9[![](https://img.shields.io/badge/stable-v0.8.5-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.8.5)
10[![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli) 10[![](https://img.shields.io/travis/shaarli/Shaarli/stable.svg?label=stable)](https://travis-ci.org/shaarli/Shaarli)
11&bull; 11&bull;
12[![](https://img.shields.io/badge/latest-v0.9.2-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.2) 12[![](https://img.shields.io/badge/latest-v0.9.3-blue.svg)](https://github.com/shaarli/Shaarli/releases/tag/v0.9.3)
13[![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli) 13[![](https://img.shields.io/travis/shaarli/Shaarli/latest.svg?label=latest)](https://travis-ci.org/shaarli/Shaarli)
14&bull; 14&bull;
15[![](https://img.shields.io/badge/master-v0.9.x-blue.svg)](https://github.com/shaarli/Shaarli) 15[![](https://img.shields.io/badge/master-v0.9.x-blue.svg)](https://github.com/shaarli/Shaarli)
diff --git a/doc/md/Browsing-and-searching.md b/doc/md/Browsing-and-searching.md
index bda619e1..16c69855 100644
--- a/doc/md/Browsing-and-searching.md
+++ b/doc/md/Browsing-and-searching.md
@@ -14,10 +14,24 @@ Use the `Filter by tags` field to restrict displayed links to entries tagged wit
14 14
15**Hidden tags:** Tags starting with a dot `.` (example `.secret`) are private. They can only be seen and searched when logged in. 15**Hidden tags:** Tags starting with a dot `.` (example `.secret`) are private. They can only be seen and searched when logged in.
16 16
17Alternatively you can use the `Tag cloud` to discover all tags and click on any of them to display related links. 17### Tag cloud
18 18
19To search for links that are not tagged, enter `""` in the tag search field. 19The `Tag cloud` page diplays a "cloud" view of all tags in your Shaarli.
20
21 * The most frequently used tags are displayed with a bigger font size.
22 * When sorting by `Most used` or `Alphabetical`, tags are displayed as a _list_, along with counters and edit/delete buttons for each tag.
23 * Clicking on any tag will display a list of all Shaares matching this tag.
24 * Clicking on the counter next to a tag `example`, will filter the tag cloud to only display tags found in Shaares tagged `example`. Repeat this any number of times to further filter the tag cloud. Click `List all links with those tags` to display Shaares matching your current tag filter.
20 25
21## Filtering RSS feeds/Picture wall 26## Filtering RSS feeds/Picture wall
22 27
23RSS feeds can also be restricted to only return items matching a text/tag search: see [RSS feeds](RSS-feeds). 28RSS feeds can also be restricted to only return items matching a text/tag search: see [RSS feeds](RSS-feeds).
29
30## Filter buttons
31
32Filter buttons can be found at the top left of the link list. They allow you to apply different filters to the list:
33
34 * **Private links:** When this toggle button is enabled, only shaares set to `private` will be shown.
35 * **Untagged links:** When the this toggle button is enabled (top left of the link list), only shaares _without any tags_ will be shown in the link list.
36
37Filter buttons are only available when logged in.
diff --git a/doc/md/Community-&-Related-software.md b/doc/md/Community-&-Related-software.md
index e4095465..207153b6 100644
--- a/doc/md/Community-&-Related-software.md
+++ b/doc/md/Community-&-Related-software.md
@@ -1,23 +1,7 @@
1_Unofficial but related work on Shaarli. If you maintain one of these, 1_Unofficial but related work on Shaarli. If you maintain one of these,
2please get in touch with us to help us find a way to adapt your work to our fork._ 2please get in touch with us to help us find a way to adapt your work to our fork._
3 3
4## Community 4## Related software
5- [Liens en vrac de sebsauvage](http://sebsauvage.net/links/) - the original Shaarli
6- [A large list of Shaarlis](http://porneia.free.fr/pub/links/ou-est-shaarli.html)
7- [A list of working Shaarli aggregators](https://raw.githubusercontent.com/Oros42/find_shaarlis/master/annuaires.json)
8- [A list of some known Shaarlis](https://github.com/Oros42/shaarlis_list)
9- [Adieu Delicious, Diigo et StumbleUpon. Salut Shaarli ! - sebsauvage.net](http://sebsauvage.net/rhaa/index.php?2011/09/16/09/29/58-adieu-delicious-diigo-et-stumbleupon-salut-shaarli-) (fr) _16/09/2011 - the original post about Shaarli_
10- [Original ideas/fixme/TODO page](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:ideas)
11- [Original discussion page](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:discussion) (fr)
12- [Original revisions history](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history)
13- [Shaarli.fr/my](https://www.shaarli.fr/my.php) - Unofficial, unsupported (old fork) hosted Shaarlis provider, courtesy of [DMeloni](https://github.com/DMeloni)
14
15
16### Articles and social media discussions
17- 2016-09-22 - Hacker News - https://news.ycombinator.com/item?id=12552176
18- 2015-08-15 - Reddit - [Question about migrating from WordPress to Shaarli.](https://www.reddit.com/r/selfhosted/comments/3h3zwh/question_about_migrating_from_wordpress_to_shaarli/)
19- 2015-06-22 - Hacker News - https://news.ycombinator.com/item?id=9755366
20- 2015-05-12 - Reddit - [shaarli - Self hosted Bookmarking / Delicious (PHP, MySQL)](https://www.reddit.com/r/selfhosted/comments/35pkkc/shaarli_self_hosted_bookmarking_delicious_php/)
21 5
22 6
23### REST API clients 7### REST API clients
@@ -29,6 +13,7 @@ See [REST API](REST-API) for a list of official and community clients.
29- [Code Coloration](https://github.com/ArthurHoaro/code-coloration) by [@ArthurHoaro](https://github.com/ArthurHoaro): client side code syntax highlighter. 13- [Code Coloration](https://github.com/ArthurHoaro/code-coloration) by [@ArthurHoaro](https://github.com/ArthurHoaro): client side code syntax highlighter.
30- [Disqus](https://github.com/kalvn/shaarli-plugin-disqus) by [@kalvn](https://github.com/kalvn): Adds Disqus comment system to your Shaarli. 14- [Disqus](https://github.com/kalvn/shaarli-plugin-disqus) by [@kalvn](https://github.com/kalvn): Adds Disqus comment system to your Shaarli.
31- [emojione](https://github.com/NerosTie/emojione) by [@NerosTie](https://github.com/NerosTie): Add colorful emojis to your Shaarli. 15- [emojione](https://github.com/NerosTie/emojione) by [@NerosTie](https://github.com/NerosTie): Add colorful emojis to your Shaarli.
16- [twemoji](https://github.com/NerosTie/twemoji) by [@NerosTie](https://github.com/NerosTie): Add colorful emojis to your Shaarli (Twemoji version)
32- [google analytics](https://github.com/ericjuden/Shaarli-Google-Analytics-Plugin) by [@ericjuden](http://github.com/ericjuden): Adds Google Analytics tracking support 17- [google analytics](https://github.com/ericjuden/Shaarli-Google-Analytics-Plugin) by [@ericjuden](http://github.com/ericjuden): Adds Google Analytics tracking support
33- [launch](https://github.com/ArthurHoaro/launch-plugin) - Launch Plugin is a plugin designed to enhance and customize Launch Theme for Shaarli. 18- [launch](https://github.com/ArthurHoaro/launch-plugin) - Launch Plugin is a plugin designed to enhance and customize Launch Theme for Shaarli.
34- [markdown-toolbar](https://github.com/immanuelfodor/shaarli-markdown-toolbar) by [@immanuelfodor](https://github.com/immanuelfodor) - Easily insert markdown syntax into the Description field when editing a link. 19- [markdown-toolbar](https://github.com/immanuelfodor/shaarli-markdown-toolbar) by [@immanuelfodor](https://github.com/immanuelfodor) - Easily insert markdown syntax into the Description field when editing a link.
@@ -36,23 +21,26 @@ See [REST API](REST-API) for a list of official and community clients.
36- [social](https://github.com/alexisju/social) by [@alexisju](https://github.com/alexisju): share links to social networks. 21- [social](https://github.com/alexisju/social) by [@alexisju](https://github.com/alexisju): share links to social networks.
37- [shaarli2twitter](https://github.com/ArthurHoaro/shaarli2twitter) by [@ArthurHoaro](https://github.com/ArthurHoaro) - Automatically tweet your shared links from Shaarli 22- [shaarli2twitter](https://github.com/ArthurHoaro/shaarli2twitter) by [@ArthurHoaro](https://github.com/ArthurHoaro) - Automatically tweet your shared links from Shaarli
38- [shaarli2mastodon](https://github.com/kalvn/shaarli2mastodon) by [@kalvn](https://github.com/kalvn) - This Shaarli plugin allows you to automatically publish links you post on your Mastodon timeline. 23- [shaarli2mastodon](https://github.com/kalvn/shaarli2mastodon) by [@kalvn](https://github.com/kalvn) - This Shaarli plugin allows you to automatically publish links you post on your Mastodon timeline.
24- [shaarli-descriptor](https://github.com/immanuelfodor/shaarli-descriptor) by [@immanuelfodor](https://github.com/immanuelfodor) - Customize the default height/number of rows of the Description field when editing a link.
39 25
40 26
41### Third-party themes 27### Third-party themes
42See [Theming](Theming) for a list of community-contributed themes, and an installation guide. 28See [Theming](Theming) for a list of community-contributed themes, and an installation guide.
43 29
44 30
45## Integration with other platforms 31### Integration with other platforms
46- [tt-rss-shaarli](https://github.com/jcsaaddupuy/tt-rss-shaarli) - [Tiny-Tiny RSS](http://tt-rss.org/) plugin that adds support for sharing articles with Shaarli 32- [tt-rss-shaarli](https://github.com/jcsaaddupuy/tt-rss-shaarli) - [Tiny-Tiny RSS](http://tt-rss.org/) plugin that adds support for sharing articles with Shaarli
47- [octopress-shaarli](https://github.com/ahmet2mir/octopress-shaarli) - Octopress plugin to retrieve Shaarli links on the sidebar 33- [octopress-shaarli](https://github.com/ahmet2mir/octopress-shaarli) - Octopress plugin to retrieve Shaarli links on the sidebar
48- [Scuttle to Shaarli](https://github.com/q2apro/scuttle-to-shaarli) - Import bookmarks from Scuttle 34- [Scuttle to Shaarli](https://github.com/q2apro/scuttle-to-shaarli) - Import bookmarks from Scuttle
49 35
50 36
51### Mobile Apps 37### Mobile Apps
52- [ShaarliOS](https://github.com/mro/ShaarliOS) iOS share extension - see [#308](https://github.com/shaarli/Shaarli/issues/308#issuecomment-184592070) for some promo codes, 38- [ShaarliOS](https://github.com/mro/ShaarliOS) - Apple iOS share extension.
53- [Shaarli for Android](http://sebsauvage.net/links/?ZAyDzg) - Android application that adds Shaarli as a sharing provider 39- [Shaarli for Android](http://sebsauvage.net/links/?ZAyDzg) - Android application that adds Shaarli as a sharing provider
54- [Shaarlier for Android](https://github.com/dimtion/Shaarlier) - Android application to simply add links directly into your Shaarli 40- [Shaarlier for Android](https://github.com/dimtion/Shaarlier) - Android application to simply add links directly into your Shaarli
55 41
42### Browser addons
43 * [Shaarli Web Extension](https://github.com/ikipatang/shaarli-web-extension) - toolbar button to share your current tab with Shaarli.
56 44
57### Server apps 45### Server apps
58- [shaarchiver](https://github.com/nodiscc/shaarchiver) - Archive your Shaarli bookmarks and their content 46- [shaarchiver](https://github.com/nodiscc/shaarchiver) - Archive your Shaarli bookmarks and their content
@@ -63,7 +51,22 @@ See [Theming](Theming) for a list of community-contributed themes, and an instal
63- [Self dead link](https://github.com/qwertygc/shaarli-dev-code/blob/master/self-dead-link.php) - Detect dead links on shaarli. This version use the database of shaarli. [Another version](https://github.com/qwertygc/shaarli-dev-code/blob/master/dead-link.php), can be used for other shaarli instances (but is more resource consuming). 51- [Self dead link](https://github.com/qwertygc/shaarli-dev-code/blob/master/self-dead-link.php) - Detect dead links on shaarli. This version use the database of shaarli. [Another version](https://github.com/qwertygc/shaarli-dev-code/blob/master/dead-link.php), can be used for other shaarli instances (but is more resource consuming).
64- [Bookmark Archiver](https://github.com/pirate/bookmark-archiver) - Save an archived copy of all websites starred using browser bookmarks/Shaarli/Delicious/Instapaper/Unmark.it/Pocket/Pinboard. Outputs browseable html. 52- [Bookmark Archiver](https://github.com/pirate/bookmark-archiver) - Save an archived copy of all websites starred using browser bookmarks/Shaarli/Delicious/Instapaper/Unmark.it/Pocket/Pinboard. Outputs browseable html.
65 53
66
67## Alternatives to Shaarli 54## Alternatives to Shaarli
68See the [bookmarks & link sharing](https://github.com/Kickball/awesome-selfhosted/#bookmarks--link-sharing) 55See [awesome-selfhosted: bookmarks & link sharing](https://github.com/Kickball/awesome-selfhosted/#bookmarks--link-sharing).
69section on [awesome-selfhosted](https://github.com/Kickball/awesome-selfhosted/). 56
57## Community
58- [Liens en vrac de sebsauvage](http://sebsauvage.net/links/) - the original Shaarli
59- [A large list of Shaarlis](http://porneia.free.fr/pub/links/ou-est-shaarli.html)
60- [A list of working Shaarli aggregators](https://raw.githubusercontent.com/Oros42/find_shaarlis/master/annuaires.json)
61- [A list of some known Shaarlis](https://github.com/Oros42/shaarlis_list)
62- [Adieu Delicious, Diigo et StumbleUpon. Salut Shaarli ! - sebsauvage.net](http://sebsauvage.net/rhaa/index.php?2011/09/16/09/29/58-adieu-delicious-diigo-et-stumbleupon-salut-shaarli-) (fr) _16/09/2011 - the original post about Shaarli_
63- [Original ideas/fixme/TODO page](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:ideas)
64- [Original discussion page](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:discussion) (fr)
65- [Original revisions history](http://sebsauvage.net/wiki/doku.php?id=php:shaarli:history)
66- [Shaarli.fr/my](https://www.shaarli.fr/my.php) - Unofficial, unsupported (old fork) hosted Shaarlis provider, courtesy of [DMeloni](https://github.com/DMeloni)
67
68### Articles and social media discussions
69- 2016-09-22 - Hacker News - https://news.ycombinator.com/item?id=12552176
70- 2015-08-15 - Reddit - [Question about migrating from WordPress to Shaarli.](https://www.reddit.com/r/selfhosted/comments/3h3zwh/question_about_migrating_from_wordpress_to_shaarli/)
71- 2015-06-22 - Hacker News - https://news.ycombinator.com/item?id=9755366
72- 2015-05-12 - Reddit - [shaarli - Self hosted Bookmarking / Delicious (PHP, MySQL)](https://www.reddit.com/r/selfhosted/comments/35pkkc/shaarli_self_hosted_bookmarking_delicious_php/)
diff --git a/doc/md/Download-and-Installation.md b/doc/md/Download-and-Installation.md
index e64d1a43..0fdbd27d 100644
--- a/doc/md/Download-and-Installation.md
+++ b/doc/md/Download-and-Installation.md
@@ -15,7 +15,7 @@ Using one of the following methods:
15- by downloading full release archives including all dependencies 15- by downloading full release archives including all dependencies
16- by downloading Github archives 16- by downloading Github archives
17- by cloning the Git repository 17- by cloning the Git repository
18- using Docker: [see the documentation](docker/shaarli-images) 18- using Docker: [see the documentation](docker/shaarli-images.md)
19 19
20-------------------------------------------------------------------------------- 20--------------------------------------------------------------------------------
21 21
@@ -25,11 +25,11 @@ Using one of the following methods:
25 25
26In most cases, you should download the latest Shaarli release from the [releases](https://github.com/shaarli/Shaarli/releases) page. **Download our *shaarli-full* archive** to include dependencies. 26In most cases, you should download the latest Shaarli release from the [releases](https://github.com/shaarli/Shaarli/releases) page. **Download our *shaarli-full* archive** to include dependencies.
27 27
28The current latest released version is `v0.9.1` 28The current latest released version is `v0.9.3`
29 29
30```bash 30```bash
31$ wget https://github.com/shaarli/Shaarli/releases/download/v0.9.1/shaarli-v0.9.1-full.zip 31$ wget https://github.com/shaarli/Shaarli/releases/download/v0.9.3/shaarli-v0.9.3-full.zip
32$ unzip shaarli-v0.9.1-full.zip 32$ unzip shaarli-v0.9.3-full.zip
33$ mv Shaarli /path/to/shaarli/ 33$ mv Shaarli /path/to/shaarli/
34``` 34```
35 35
@@ -96,7 +96,7 @@ Install [Composer](Unit-tests.md#install_composer) to manage Shaarli dependencie
96To get the latest changes from the `master` branch: 96To get the latest changes from the `master` branch:
97 97
98```bash 98```bash
99# clone the repository 99# clone the repository
100$ git clone https://github.com/shaarli/Shaarli.git -b master /path/to/shaarli/ 100$ git clone https://github.com/shaarli/Shaarli.git -b master /path/to/shaarli/
101# install/update third-party dependencies 101# install/update third-party dependencies
102$ cd /path/to/shaarli 102$ cd /path/to/shaarli
diff --git a/doc/md/Firefox-share.md b/doc/md/Firefox-share.md
index 878884a4..9a46b185 100644
--- a/doc/md/Firefox-share.md
+++ b/doc/md/Firefox-share.md
@@ -1,3 +1,6 @@
1| Note | Firefox Share is no longer available for Firefox 57 and later versions. |
2|---------|---------|
3
1### Add Shaarli as a sharing service to Firefox 4### Add Shaarli as a sharing service to Firefox
2 5
3- Open your Shaarli and `Login` 6- Open your Shaarli and `Login`
diff --git a/doc/md/docker/shaarli-images.md b/doc/md/docker/shaarli-images.md
index 1d19510a..5491ee76 100644
--- a/doc/md/docker/shaarli-images.md
+++ b/doc/md/docker/shaarli-images.md
@@ -1,3 +1,6 @@
1A brief guide on getting starting using docker is given in [Docker 101](docker-101.md).
2To learn more about user data and how to keep it across versions, please see [Upgrade and Migration](../Upgrade-and-migration.md).
3
1## Get and run a Shaarli image 4## Get and run a Shaarli image
2 5
3### DockerHub repository 6### DockerHub repository
@@ -78,3 +81,14 @@ backstabbing_galileo
78$ docker ps -a 81$ docker ps -a
79CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 82CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
80``` 83```
84
85### Automatic builds
86
87Docker users can start a personal instance from an [autobuild image](https://hub.docker.com/r/shaarli/shaarli/). For example to start a temporary Shaarli at ``localhost:8000``, and keep session data (config, storage):
88```
89MY_SHAARLI_VOLUME=$(cd /path/to/shaarli/data/ && pwd -P)
90docker run -ti --rm \
91 -p 8000:80 \
92 -v $MY_SHAARLI_VOLUME:/var/www/shaarli/data \
93 shaarli/shaarli
94```
diff --git a/doc/md/index.md b/doc/md/index.md
index 2b7d0f00..e77b4d3a 100644
--- a/doc/md/index.md
+++ b/doc/md/index.md
@@ -22,20 +22,25 @@ It runs the latest development version of Shaarli and is updated/reset daily.
22 22
23Login: `demo`; Password: `demo` 23Login: `demo`; Password: `demo`
24 24
25Docker users can start a personal instance from an [autobuild image](https://hub.docker.com/r/shaarli/shaarli/). For example to start a temporary Shaarli at ``localhost:8000``, and keep session data (config, storage):
26```
27MY_SHAARLI_VOLUME=$(cd /path/to/shaarli/data/ && pwd -P)
28docker run -ti --rm \
29 -p 8000:80 \
30 -v $MY_SHAARLI_VOLUME:/var/www/shaarli/data \
31 shaarli/shaarli
32```
33
34A brief guide on getting starting using docker is given in [Docker 101](docker/docker-101).
35To learn more about user data and how to keep it across versions, please see [Upgrade and Migration](Upgrade-and-migration) documentation.
36
37## Features 25## Features
38 26
27Shaarli can be used:
28
29- to share, comment and save interesting links and news.
30- to bookmark useful/frequent personal links (as private links) and share them between computers.
31- as a minimal blog/microblog/writing platform (no character limit).
32- as a read-it-later list (for example items tagged `readlater`).
33- to draft and save articles/posts/ideas.
34- to keep code snippets.
35- to keep notes and documentation.
36- as a shared clipboard/notepad/pastebin between machines.
37- as a todo list.
38- to store playlists (e.g. with the `music` or `video` tags).
39- to keep extracts/comments from webpages that may disappear.
40- to keep track of ongoing discussions (for example items tagged `discussion`).
41- [to feed RSS aggregators](http://shaarli.chassegnouf.net/?9Efeiw) (planets) with specific tags.
42- to feed other social networks, blogs... using RSS feeds and external services (dlvr.it, ifttt.com ...).
43
39### Interface 44### Interface
40- minimalist design (simple is beautiful) 45- minimalist design (simple is beautiful)
41- FAST 46- FAST
@@ -89,14 +94,12 @@ Easily extensible by any client using the REST API exposed by Shaarli.
89 94
90See the [API documentation](http://shaarli.github.io/api-documentation/). 95See the [API documentation](http://shaarli.github.io/api-documentation/).
91 96
92### Other usages 97### Using Shaarli as a blog, notepad, pastebin...
93Though Shaarli is primarily a bookmarking application, it can serve other purposes 98- Go to your Shaarli setup and log in
94(see [Features](Features)): 99- Click the `Add Link` button
95 100- To share text only, do not enter any URL in the corresponding input field and click `Add Link`
96- micro-blogging 101- Pick a title and enter your article, or note, in the description field; add a few tags; optionally check `Private` then click `Save`
97- pastebin 102- Voilà! Your article is now published (privately if you selected that option) and accessible using its permalink.
98- online notepad
99- snippet archive
100 103
101## About 104## About
102### Shaarli community fork 105### Shaarli community fork
diff --git a/docker/alpine/Dockerfile.armhf.latest b/docker/alpine/Dockerfile.armhf.latest
new file mode 100644
index 00000000..c923834a
--- /dev/null
+++ b/docker/alpine/Dockerfile.armhf.latest
@@ -0,0 +1,47 @@
1FROM lsiobase/alpine.armhf:3.6
2MAINTAINER Shaarli Community
3
4RUN apk --update --no-cache add \
5 ca-certificates \
6 curl \
7 nginx \
8 php7 \
9 php7-ctype \
10 php7-curl \
11 php7-fpm \
12 php7-gd \
13 php7-iconv \
14 php7-intl \
15 php7-json \
16 php7-mbstring \
17 php7-openssl \
18 php7-phar \
19 php7-session \
20 php7-xml \
21 php7-zlib \
22 s6
23
24COPY nginx.conf /etc/nginx/nginx.conf
25COPY php-fpm.conf /etc/php7/php-fpm.conf
26COPY services.d /etc/services.d
27
28RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \
29 && rm -rf /etc/php7/php-fpm.d/www.conf \
30 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \
31 && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini
32
33
34WORKDIR /var/www
35RUN curl -L https://github.com/shaarli/Shaarli/archive/latest.tar.gz | tar xzf - \
36 && mv Shaarli-latest shaarli \
37 && cd shaarli \
38 && composer --prefer-dist --no-dev install \
39 && rm -rf ~/.composer \
40 && chown -R nginx:nginx .
41
42VOLUME /var/www/shaarli/data
43
44EXPOSE 80
45
46ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"]
47CMD []
diff --git a/docker/alpine/Dockerfile.armhf.master b/docker/alpine/Dockerfile.armhf.master
new file mode 100644
index 00000000..7f1bdf85
--- /dev/null
+++ b/docker/alpine/Dockerfile.armhf.master
@@ -0,0 +1,47 @@
1FROM lsiobase/alpine.armhf:3.6
2MAINTAINER Shaarli Community
3
4RUN apk --update --no-cache add \
5 ca-certificates \
6 curl \
7 nginx \
8 php7 \
9 php7-ctype \
10 php7-curl \
11 php7-fpm \
12 php7-gd \
13 php7-iconv \
14 php7-intl \
15 php7-json \
16 php7-mbstring \
17 php7-openssl \
18 php7-phar \
19 php7-session \
20 php7-xml \
21 php7-zlib \
22 s6
23
24COPY nginx.conf /etc/nginx/nginx.conf
25COPY php-fpm.conf /etc/php7/php-fpm.conf
26COPY services.d /etc/services.d
27
28RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \
29 && rm -rf /etc/php7/php-fpm.d/www.conf \
30 && sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \
31 && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini
32
33
34WORKDIR /var/www
35RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \
36 && mv Shaarli-master shaarli \
37 && cd shaarli \
38 && composer --prefer-dist --no-dev install \
39 && rm -rf ~/.composer \
40 && chown -R nginx:nginx .
41
42VOLUME /var/www/shaarli/data
43
44EXPOSE 80
45
46ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"]
47CMD []
diff --git a/index.php b/index.php
index 9d5f25ea..27335a36 100644
--- a/index.php
+++ b/index.php
@@ -436,7 +436,7 @@ if (isset($_POST['login']))
436 else 436 else
437 { 437 {
438 ban_loginFailed($conf); 438 ban_loginFailed($conf);
439 $redir = '&username='. $_POST['login']; 439 $redir = '&username='. urlencode($_POST['login']);
440 if (isset($_GET['post'])) { 440 if (isset($_GET['post'])) {
441 $redir .= '&post=' . urlencode($_GET['post']); 441 $redir .= '&post=' . urlencode($_GET['post']);
442 foreach (array('description', 'source', 'title', 'tags') as $param) { 442 foreach (array('description', 'source', 'title', 'tags') as $param) {
diff --git a/mkdocs.yml b/mkdocs.yml
index 8617ea45..443c3a08 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -22,16 +22,15 @@ pages:
22 - Reverse proxy configuration: docker/reverse-proxy-configuration.md 22 - Reverse proxy configuration: docker/reverse-proxy-configuration.md
23 - Docker resources: docker/resources.md 23 - Docker resources: docker/resources.md
24- Usage: 24- Usage:
25 - Features: Features.md
26 - Bookmarklet: Bookmarklet.md 25 - Bookmarklet: Bookmarklet.md
27 - Browsing and searching: Browsing-and-searching.md 26 - Browsing and searching: Browsing-and-searching.md
28 - Firefox share: Firefox-share.md 27 - Firefox share: Firefox-share.md
29 - RSS feeds: RSS-feeds.md 28 - RSS feeds: RSS-feeds.md
30 - REST API: REST-API.md 29 - REST API: REST-API.md
30 - Community & Related software: Community-&-Related-software.md
31- How To: 31- How To:
32 - Backup, restore, import and export: Backup,-restore,-import-and-export.md 32 - Backup, restore, import and export: Backup,-restore,-import-and-export.md
33 - Various hacks: Various-hacks.md 33 - Various hacks: Various-hacks.md
34- Troubleshooting: Troubleshooting.md
35- Development: 34- Development:
36 - Development guidelines: Development-guidelines.md 35 - Development guidelines: Development-guidelines.md
37 - Continuous integration tools: Continuous-integration-tools.md 36 - Continuous integration tools: Continuous-integration-tools.md
@@ -47,6 +46,5 @@ pages:
47 - Theming: Theming.md 46 - Theming: Theming.md
48 - Unit tests: Unit-tests.md 47 - Unit tests: Unit-tests.md
49 - Unit tests inside Docker: Unit-tests-Docker.md 48 - Unit tests inside Docker: Unit-tests-Docker.md
50- About: 49- FAQ: FAQ.md
51 - FAQ: FAQ.md 50- Troubleshooting: Troubleshooting.md
52 - Community & Related software: Community-&-Related-software.md
diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html
index 2411703c..6f15c1c5 100644
--- a/tpl/default/page.header.html
+++ b/tpl/default/page.header.html
@@ -1,7 +1,7 @@
1<div class="shaarli-menu pure-g" id="shaarli-menu"> 1<div class="shaarli-menu pure-g" id="shaarli-menu">
2 <div class="pure-u-lg-0 pure-u-1"> 2 <div class="pure-u-lg-0 pure-u-1">
3 <div class="pure-menu"> 3 <div class="pure-menu">
4 <a href="{$titleLink}" class="pure-menu-link"> 4 <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-mobile">
5 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="logo" /> 5 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="logo" />
6 {$shaarlititle} 6 {$shaarlititle}
7 </a> 7 </a>
@@ -12,32 +12,32 @@
12 <div class="pure-menu menu-transform pure-menu-horizontal pure-g"> 12 <div class="pure-menu menu-transform pure-menu-horizontal pure-g">
13 <ul class="pure-menu-list pure-u-lg-5-6 pure-u-1"> 13 <ul class="pure-menu-list pure-u-lg-5-6 pure-u-1">
14 <li class="pure-menu-item pure-u-0 pure-u-lg-visible"> 14 <li class="pure-menu-item pure-u-0 pure-u-lg-visible">
15 <a href="{$titleLink}" class="pure-menu-link"> 15 <a href="{$titleLink}" class="pure-menu-link shaarli-title" id="shaarli-title-desktop">
16 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="logo" /> 16 <img src="img/icon.png" width="16" height="16" class="head-logo" alt="logo" />
17 {$shaarlititle} 17 {$shaarlititle}
18 </a> 18 </a>
19 </li> 19 </li>
20 {if="isLoggedIn() || $openshaarli"} 20 {if="isLoggedIn() || $openshaarli"}
21 <li class="pure-menu-item"> 21 <li class="pure-menu-item">
22 <a href="?do=addlink" class="pure-menu-link"> 22 <a href="?do=addlink" class="pure-menu-link" id="shaarli-menu-shaare">
23 <i class="fa fa-plus" ></i> {'Shaare'|t} 23 <i class="fa fa-plus" ></i> {'Shaare'|t}
24 </a> 24 </a>
25 </li> 25 </li>
26 <li class="pure-menu-item"> 26 <li class="pure-menu-item" id="shaarli-menu-tools">
27 <a href="?do=tools" class="pure-menu-link">{'Tools'|t}</a> 27 <a href="?do=tools" class="pure-menu-link">{'Tools'|t}</a>
28 </li> 28 </li>
29 {/if} 29 {/if}
30 <li class="pure-menu-item"> 30 <li class="pure-menu-item" id="shaarli-menu-tags">
31 <a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a> 31 <a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a>
32 </li> 32 </li>
33 <li class="pure-menu-item"> 33 <li class="pure-menu-item" id="shaarli-menu-picwall">
34 <a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a> 34 <a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a>
35 </li> 35 </li>
36 <li class="pure-menu-item"> 36 <li class="pure-menu-item" id="shaarli-menu-daily">
37 <a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a> 37 <a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a>
38 </li> 38 </li>
39 {loop="$plugins_header.buttons_toolbar"} 39 {loop="$plugins_header.buttons_toolbar"}
40 <li class="pure-menu-item"> 40 <li class="pure-menu-item shaarli-menu-plugin">
41 <a 41 <a
42 {$value.attr.class=isset($value.class) ? $value.attr.class . ' pure-menu-link' : 'pure-menu-link'} 42 {$value.attr.class=isset($value.class) ? $value.attr.class . ' pure-menu-link' : 'pure-menu-link'}
43 {loop="$value.attr"} 43 {loop="$value.attr"}
@@ -47,47 +47,47 @@
47 </a> 47 </a>
48 </li> 48 </li>
49 {/loop} 49 {/loop}
50 <li class="pure-menu-item pure-u-lg-0"> 50 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-rss">
51 <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a> 51 <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a>
52 </li> 52 </li>
53 {if="isLoggedIn()"} 53 {if="isLoggedIn()"}
54 <li class="pure-menu-item pure-u-lg-0"> 54 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-logout">
55 <a href="?do=logout" class="pure-menu-link">{'Logout'|t}</a> 55 <a href="?do=logout" class="pure-menu-link">{'Logout'|t}</a>
56 </li> 56 </li>
57 {else} 57 {else}
58 <li class="pure-menu-item pure-u-lg-0"> 58 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-login">
59 <a href="?do=login" class="pure-menu-link">{'Login'|t}</a> 59 <a href="?do=login" class="pure-menu-link">{'Login'|t}</a>
60 </li> 60 </li>
61 {/if} 61 {/if}
62 </ul> 62 </ul>
63 <div class="header-buttons pure-u-lg-1-6 pure-u-0 pure-u-lg-visible"> 63 <div class="header-buttons pure-u-lg-1-6 pure-u-0 pure-u-lg-visible">
64 <ul class="pure-menu-list"> 64 <ul class="pure-menu-list">
65 <li class="pure-menu-item"> 65 <li class="pure-menu-item" id="shaarli-menu-desktop-search">
66 <a href="#" class="pure-menu-link subheader-opener" 66 <a href="#" class="pure-menu-link subheader-opener"
67 data-open-id="search" 67 data-open-id="search"
68 id="search-button" title="{'Search'|t}"> 68 id="search-button" title="{'Search'|t}">
69 <i class="fa fa-search"></i> 69 <i class="fa fa-search"></i>
70 </a> 70 </a>
71 </li> 71 </li>
72 <li class="pure-menu-item"> 72 <li class="pure-menu-item" id="shaarli-menu-desktop-rss">
73 <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}"> 73 <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}">
74 <i class="fa fa-rss"></i> 74 <i class="fa fa-rss"></i>
75 </a> 75 </a>
76 </li> 76 </li>
77 {if="!isLoggedIn()"} 77 {if="!isLoggedIn()"}
78 <li class="pure-menu-item"> 78 <li class="pure-menu-item" id="shaarli-menu-desktop-login">
79 <a href="?do=login" class="pure-menu-link" 79 <a href="?do=login" class="pure-menu-link"
80 data-open-id="header-login-form" 80 data-open-id="header-login-form"
81 id="login-button" title="{'Login'|t}"> 81 id="login-button" title="{'Login'|t}">
82 <i class="fa fa-user"></i> 82 <i class="fa fa-user"></i>
83 </a> 83 </a>
84 </li> 84 </li>
85 {else} 85 {else}
86 <li class="pure-menu-item"> 86 <li class="pure-menu-item" id="shaarli-menu-desktop-logout">
87 <a href="?do=logout" class="pure-menu-link" title="{'Logout'|t}"> 87 <a href="?do=logout" class="pure-menu-link" title="{'Logout'|t}">
88 <i class="fa fa-sign-out"></i> 88 <i class="fa fa-sign-out"></i>
89 </a> 89 </a>
90 </li> 90 </li>
91 {/if} 91 {/if}
92 </ul> 92 </ul>
93 </div> 93 </div>
@@ -156,7 +156,7 @@
156{/if} 156{/if}
157 157
158{if="!empty($plugin_errors) && isLoggedIn()"} 158{if="!empty($plugin_errors) && isLoggedIn()"}
159 <div class="pure-g new-version-message pure-alert pure-alert-error pure-alert-closable"> 159 <div class="pure-g new-version-message pure-alert pure-alert-error pure-alert-closable" id="shaarli-errors-alert">
160 <div class="pure-u-2-24"></div> 160 <div class="pure-u-2-24"></div>
161 <div class="pure-u-20-24"> 161 <div class="pure-u-20-24">
162 {loop="plugin_errors"} 162 {loop="plugin_errors"}
diff --git a/tpl/default/pluginsadmin.html b/tpl/default/pluginsadmin.html
index ca17b435..b2d7cdc5 100644
--- a/tpl/default/pluginsadmin.html
+++ b/tpl/default/pluginsadmin.html
@@ -137,9 +137,9 @@
137 {if="count($enabledPlugins)==0"} 137 {if="count($enabledPlugins)==0"}
138 <p class="center">{'No plugin enabled.'|t}</p> 138 <p class="center">{'No plugin enabled.'|t}</p>
139 {else} 139 {else}
140 {$counter=0} 140 {$nbParameters=0}
141 {loop="$enabledPlugins"} 141 {loop="$enabledPlugins"}
142 {$counter=$counter+count($value.parameters)} 142 {$nbParameters=$nbParameters+count($value.parameters)}
143 {if="count($value.parameters) > 0"} 143 {if="count($value.parameters) > 0"}
144 <div class="plugin_parameters"> 144 <div class="plugin_parameters">
145 <h3 class="window-subtitle">{function="str_replace('_', ' ', $key)"}</h3> 145 <h3 class="window-subtitle">{function="str_replace('_', ' ', $key)"}</h3>
@@ -161,7 +161,7 @@
161 </div> 161 </div>
162 {/if} 162 {/if}
163 {/loop} 163 {/loop}
164 {if="$counter===0"} 164 {if="$nbParameters===0"}
165 <p class="center">{'No parameter available.'|t}</p> 165 <p class="center">{'No parameter available.'|t}</p>
166 {else} 166 {else}
167 <div class="center"> 167 <div class="center">