Compare commits

..

248 Commits
2.4.3 ... 2.5.0

Author SHA1 Message Date
84c026081b Merge pull request #5799 from wallabag/release/2.5.0 2022-05-20 16:30:22 +02:00
db3e0dd175 Add info about translations 2022-05-20 16:11:07 +02:00
67ead77375 Add deprecated section in changelog 2022-05-20 15:47:07 +02:00
83f8ddccf0 Merge pull request #5800 from weblate/weblate-wallabag-messages 2022-05-20 07:17:23 +02:00
e0f234e568 Translated using Weblate (Indonesian)
Currently translated at 1.3% (8 of 578 strings)
2022-05-19 06:17:19 +02:00
eed182c591 Translated using Weblate (Galician)
Currently translated at 100.0% (40 of 40 strings)
2022-05-19 06:17:18 +02:00
4649745a6f Translated using Weblate (Galician)
Currently translated at 100.0% (578 of 578 strings)
2022-05-19 06:17:18 +02:00
1a5348a8b8 Prepare 2.5.0 release 2022-05-17 20:29:28 +02:00
96340e633d Merge pull request #5797 from wallabag/dependabot/npm_and_yarn/webpack-5.72.1 2022-05-16 06:23:44 +02:00
40e906e69d Merge pull request #5795 from weblate/weblate-wallabag-messages 2022-05-16 06:23:24 +02:00
c713d5bf60 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (578 of 578 strings)
2022-05-16 06:16:42 +02:00
8d3c5ebada Bump webpack from 5.72.0 to 5.72.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.72.0 to 5.72.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.72.0...v5.72.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 02:01:40 +00:00
5ef97e63c3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (40 of 40 strings)
2022-05-14 16:44:19 +02:00
5809d7b072 Merge pull request #5794 from wallabag/2.5.0
Merge branch 2.5.0 in master
2022-05-14 16:44:13 +02:00
6e39c92ead Merge pull request #5775 from wallabag/issue/5773
Deprecate mobi export
2022-05-14 14:35:55 +02:00
37019b5ad5 Fix tests 2022-05-13 14:15:19 +02:00
4947ea6758 Merge remote-tracking branch 'origin/master' into 2.5.0 2022-05-13 13:50:50 +02:00
c87c91d3df Update message 2022-05-13 09:56:35 +02:00
6824914eb5 Deprecate mobi export
- Disable mobi export on new installations
- Put a note in the setting label

Closes #5773

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2022-05-13 09:52:43 +02:00
e1957c08e4 Merge pull request #5791 from yguedidi/drop-php-prior-to-7.4
Drop PHP prior to 7.4
2022-05-13 09:51:09 +02:00
249b8134b1 Merge pull request #5792 from weblate/weblate-wallabag-messages 2022-05-13 09:31:11 +02:00
8e8f19720f Update PHP dependencies
+--------------------------------------+--------+--------+-------------------------------------------------------------------------------+
| Production Changes                   | From   | To     | Compare                                                                       |
+--------------------------------------+--------+--------+-------------------------------------------------------------------------------+
| craue/config-bundle                  | 2.4.0  | 2.5.0  | https://github.com/craue/CraueConfigBundle/compare/2.4.0...2.5.0              |
| http-interop/http-factory-guzzle     | 1.1.1  | 1.2.0  | https://github.com/http-interop/http-factory-guzzle/compare/1.1.1...1.2.0     |
| j0k3r/httplug-ssrf-plugin            | v2.0.1 | v2.0.2 | https://github.com/j0k3r/httplug-ssrf-plugin/compare/v2.0.1...v2.0.2          |
| laminas/laminas-code                 | 3.4.1  | 3.5.1  | https://github.com/laminas/laminas-code/compare/3.4.1...3.5.1                 |
| laminas/laminas-diactoros            | 2.4.1  | 2.10.0 | https://github.com/laminas/laminas-diactoros/compare/2.4.1...2.10.0           |
| laminas/laminas-eventmanager         | 3.2.1  | 3.5.0  | https://github.com/laminas/laminas-eventmanager/compare/3.2.1...3.5.0         |
| laminas/laminas-zendframework-bridge | 1.1.1  | 1.5.0  | https://github.com/laminas/laminas-zendframework-bridge/compare/1.1.1...1.5.0 |
| ocramius/proxy-manager               | 2.2.4  | 2.10.2 | https://github.com/Ocramius/ProxyManager/compare/2.2.4...2.10.2               |
| php-http/httplug-bundle              | 1.19.0 | 1.24.0 | https://github.com/php-http/HttplugBundle/compare/1.19.0...1.24.0             |
| php-http/stopwatch-plugin            | 1.3.0  | 1.4.1  | https://github.com/php-http/stopwatch-plugin/compare/1.3.0...1.4.1            |
| psr/container                        | 1.1.1  | 1.1.2  | https://github.com/php-fig/container/compare/1.1.1...1.1.2                    |
| webimpress/safe-writer               | NEW    | 2.2.0  |                                                                               |
+--------------------------------------+--------+--------+-------------------------------------------------------------------------------+
2022-05-13 07:29:23 +02:00
1bd86e156e Drop PHP prior to 7.4 2022-05-13 07:29:23 +02:00
9a045b87ab Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (570 of 570 strings)
2022-05-13 07:19:34 +02:00
788cb7c4c3 Merge pull request #5772 from yguedidi/fix-php-docker-image 2022-05-13 07:10:37 +02:00
ebfbdb4519 Merge pull request #5381 from wallabag/tag-search-results 2022-05-13 07:09:18 +02:00
3818cfe15f Merge pull request #5673 from wallabag/api-config-endpoint
Add new endpoint for API: config
2022-05-13 00:50:32 +02:00
f1ed14b8f8 Downgrade PHP to 7.4 on Docker 2022-05-13 00:38:53 +02:00
d988065148 Fix tests on Docker by adding missing WebP support 2022-05-13 00:38:53 +02:00
2ae3ef12af Update to the latest Composer 2.2 version 2022-05-13 00:38:53 +02:00
dce48a1d6a Merge pull request #5785 from wallabag/dependabot/npm_and_yarn/clipboard-2.0.11
Bump clipboard from 2.0.10 to 2.0.11
2022-05-10 10:12:41 +02:00
33ac3e6e21 Update assets
And update composer deps
2022-05-10 10:07:18 +02:00
234bc56240 Merge pull request #5788 from wallabag/dependabot/npm_and_yarn/eslint-8.15.0 2022-05-09 07:20:41 +02:00
9289efa277 Merge pull request #5786 from wallabag/dependabot/npm_and_yarn/webpack-dev-server-4.9.0 2022-05-09 07:08:31 +02:00
1f5d165cf9 Merge pull request #5787 from wallabag/dependabot/npm_and_yarn/stylelint-14.8.2 2022-05-09 07:07:53 +02:00
cde41d4ed0 Bump eslint from 8.14.0 to 8.15.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.14.0 to 8.15.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.14.0...v8.15.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:27:04 +00:00
657742976e Bump stylelint from 14.8.1 to 14.8.2
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.8.1 to 14.8.2.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.8.1...14.8.2)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:26:57 +00:00
fd086330e8 Bump webpack-dev-server from 4.8.1 to 4.9.0
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.8.1 to 4.9.0.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.8.1...v4.9.0)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:26:41 +00:00
c8004d0778 Bump clipboard from 2.0.10 to 2.0.11
Bumps [clipboard](https://github.com/zenorocha/clipboard.js) from 2.0.10 to 2.0.11.
- [Release notes](https://github.com/zenorocha/clipboard.js/releases)
- [Commits](https://github.com/zenorocha/clipboard.js/compare/v2.0.10...v2.0.11)

---
updated-dependencies:
- dependency-name: clipboard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 02:26:30 +00:00
09126c2c8e Merge pull request #5783 from weblate/weblate-wallabag-messages
Translations update from Hosted Weblate
2022-05-06 10:04:20 +02:00
5ccfc98b47 Translated using Weblate (Galician)
Currently translated at 100.0% (569 of 569 strings)
2022-05-06 08:14:32 +02:00
4f96305db7 Merge pull request #5778 from yguedidi/upgrade-php-dependencies 2022-05-03 23:13:11 +02:00
984a0d13f9 Upgrade PHP dependencies
+----------------------------------+----------+----------+-----------------------------------------------------------------------------+
| Production Changes               | From     | To       | Compare                                                                     |
+----------------------------------+----------+----------+-----------------------------------------------------------------------------+
| behat/transliterator             | v1.3.0   | v1.5.0   | https://github.com/Behat/Transliterator/compare/v1.3.0...v1.5.0             |
| clue/stream-filter               | v1.5.0   | v1.6.0   | https://github.com/clue/stream-filter/compare/v1.5.0...v1.6.0               |
| doctrine/dbal                    | 2.13.6   | 2.13.9   | https://github.com/doctrine/dbal/compare/2.13.6...2.13.9                    |
| doctrine/deprecations            | v0.5.3   | v1.0.0   | https://github.com/doctrine/deprecations/compare/v0.5.3...v1.0.0            |
| doctrine/instantiator            | 1.4.0    | 1.4.1    | https://github.com/doctrine/instantiator/compare/1.4.0...1.4.1              |
| j0k3r/graby-site-config          | 1.0.146  | 1.0.150  | https://github.com/j0k3r/graby-site-config/compare/1.0.146...1.0.150        |
| paragonie/constant_time_encoding | v2.4.0   | v2.5.0   | https://github.com/paragonie/constant_time_encoding/compare/v2.4.0...v2.5.0 |
| php-http/httplug                 | 2.2.0    | 2.3.0    | https://github.com/php-http/httplug/compare/2.2.0...2.3.0                   |
| php-http/logger-plugin           | 1.2.2    | 1.3.0    | https://github.com/php-http/logger-plugin/compare/1.2.2...1.3.0             |
| php-http/message                 | 1.12.0   | 1.13.0   | https://github.com/php-http/message/compare/1.12.0...1.13.0                 |
| phpseclib/phpseclib              | 3.0.12   | 3.0.14   | https://github.com/phpseclib/phpseclib/compare/3.0.12...3.0.14              |
| phpstan/phpdoc-parser            | 1.2.0    | 1.4.5    | https://github.com/phpstan/phpdoc-parser/compare/1.2.0...1.4.5              |
| simplepie/simplepie              | 1.5.8    | 1.6.0    | https://github.com/simplepie/simplepie/compare/1.5.8...1.6.0                |
| spomky-labs/otphp                | v10.0.1  | v10.0.3  | https://github.com/Spomky-Labs/otphp/compare/v10.0.1...v10.0.3              |
| symfony/deprecation-contracts    | v2.5.0   | v2.5.1   | https://github.com/symfony/deprecation-contracts/compare/v2.5.0...v2.5.1    |
| symfony/http-client              | v5.4.2   | v5.4.8   | https://github.com/symfony/http-client/compare/v5.4.2...v5.4.8              |
| symfony/http-client-contracts    | v2.5.0   | v2.5.1   | https://github.com/symfony/http-client-contracts/compare/v2.5.0...v2.5.1    |
| symfony/mime                     | v5.4.3   | v5.4.8   | https://github.com/symfony/mime/compare/v5.4.3...v5.4.8                     |
| symfony/polyfill-iconv           | v1.24.0  | v1.25.0  | https://github.com/symfony/polyfill-iconv/compare/v1.24.0...v1.25.0         |
| symfony/polyfill-uuid            | v1.24.0  | v1.25.0  | https://github.com/symfony/polyfill-uuid/compare/v1.24.0...v1.25.0          |
| symfony/service-contracts        | v2.5.0   | v2.5.1   | https://github.com/symfony/service-contracts/compare/v2.5.0...v2.5.1        |
| twig/twig                        | v2.14.11 | v2.14.13 | https://github.com/twigphp/Twig/compare/v2.14.11...v2.14.13                 |
| willdurand/negotiation           | 3.0.0    | 3.1.0    | https://github.com/willdurand/Negotiation/compare/3.0.0...3.1.0             |
+----------------------------------+----------+----------+-----------------------------------------------------------------------------+

+-----------------------------------+--------+--------+--------------------------------------------------------------------------+
| Dev Changes                       | From   | To     | Compare                                                                  |
+-----------------------------------+--------+--------+--------------------------------------------------------------------------+
| composer/pcre                     | 1.0.0  | 1.0.1  | https://github.com/composer/pcre/compare/1.0.0...1.0.1                   |
| composer/semver                   | 3.2.7  | 3.3.2  | https://github.com/composer/semver/compare/3.2.7...3.3.2                 |
| composer/xdebug-handler           | 2.0.4  | 2.0.5  | https://github.com/composer/xdebug-handler/compare/2.0.4...2.0.5         |
| doctrine/data-fixtures            | 1.5.1  | 1.5.3  | https://github.com/doctrine/data-fixtures/compare/1.5.1...1.5.3          |
| doctrine/doctrine-fixtures-bundle | 3.4.1  | 3.4.2  | https://github.com/doctrine/DoctrineFixturesBundle/compare/3.4.1...3.4.2 |
| symfony/phpunit-bridge            | v6.0.7 | v6.0.8 | https://github.com/symfony/phpunit-bridge/compare/v6.0.7...v6.0.8        |
+-----------------------------------+--------+--------+--------------------------------------------------------------------------+
2022-05-03 22:50:48 +02:00
a7bf62c70d Update composer.lock format
With `composer update --lock`
2022-05-03 22:40:11 +02:00
0d0baf467c Merge pull request #5751 from wallabag/dependabot/npm_and_yarn/material-design-icons-iconfont-6.7.0
Bump material-design-icons-iconfont from 6.6.0 to 6.7.0
2022-05-03 15:13:42 +02:00
99f61b6807 Update assets 2022-05-03 15:09:19 +02:00
c711cae494 Merge pull request #5763 from wallabag/dependabot/npm_and_yarn/babel/core-7.17.10 2022-05-03 09:16:55 +02:00
49b812961a Merge pull request #5769 from wallabag/dependabot/npm_and_yarn/autoprefixer-10.4.7 2022-05-03 09:16:37 +02:00
b06f669759 Bump autoprefixer from 10.4.6 to 10.4.7
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.6 to 10.4.7.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.6...10.4.7)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-03 05:53:31 +00:00
483bcba973 Merge pull request #5757 from yguedidi/exclude-local-phpunit.xml 2022-05-03 07:53:18 +02:00
aa1374cf9d Bump @babel/core from 7.17.9 to 7.17.10
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.9 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-03 05:51:10 +00:00
f104f7f870 Merge pull request #5749 from wallabag/dependabot/npm_and_yarn/babel-loader-8.2.5 2022-05-03 07:48:08 +02:00
a14efd975d Merge pull request #5750 from wallabag/dependabot/npm_and_yarn/postcss-scss-4.0.4 2022-05-03 07:47:52 +02:00
2f8e10da9c Merge pull request #5764 from wallabag/dependabot/npm_and_yarn/babel/preset-env-7.17.10 2022-05-03 07:47:22 +02:00
29984497f1 Merge pull request #5770 from yguedidi/disable-xdebug-in-test-make-recipe 2022-05-03 07:46:44 +02:00
05b1f56c56 Merge pull request #5771 from yguedidi/fix-sqlite-database-location 2022-05-03 07:45:30 +02:00
1efe54859f Fix SQLite database location 2022-05-03 06:47:58 +02:00
ff8f4079ea Disable XDebug in test make recipe 2022-05-03 06:39:37 +02:00
28fe2d3c08 Bump babel-loader from 8.2.4 to 8.2.5
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.2.4 to 8.2.5.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.2.4...v8.2.5)

---
updated-dependencies:
- dependency-name: babel-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-03 03:44:48 +00:00
1844752125 Bump postcss-scss from 4.0.3 to 4.0.4
Bumps [postcss-scss](https://github.com/postcss/postcss-scss) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/postcss/postcss-scss/releases)
- [Changelog](https://github.com/postcss/postcss-scss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss-scss/compare/4.0.3...4.0.4)

---
updated-dependencies:
- dependency-name: postcss-scss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-03 03:43:26 +00:00
fd409f402c Bump @babel/preset-env from 7.16.11 to 7.17.10
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.16.11 to 7.17.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.10/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-03 03:40:58 +00:00
d4a331af4a Merge pull request #5753 from wallabag/dependabot/npm_and_yarn/eslint-8.14.0 2022-05-03 05:40:57 +02:00
e90a7c20e2 Merge pull request #5742 from wallabag/fix/deprecated-baggy-theme 2022-05-03 05:40:38 +02:00
e778aeacf7 Merge pull request #5762 from wallabag/dependabot/npm_and_yarn/stylelint-14.8.1 2022-05-03 05:39:57 +02:00
1044c2ec38 Merge pull request #5765 from wallabag/dependabot/npm_and_yarn/sass-1.51.0 2022-05-03 05:39:30 +02:00
3ddf8be1b8 Merge pull request #5766 from wallabag/dependabot/npm_and_yarn/autoprefixer-10.4.6 2022-05-03 05:39:14 +02:00
711f8928a7 Merge pull request #5767 from wallabag/dependabot/npm_and_yarn/postcss-8.4.13 2022-05-03 05:38:58 +02:00
20183a47a0 Bump postcss from 8.4.12 to 8.4.13
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.12 to 8.4.13.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.12...8.4.13)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 02:03:45 +00:00
965d9f28cf Bump autoprefixer from 10.4.4 to 10.4.6
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.4 to 10.4.6.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.4...10.4.6)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 02:03:29 +00:00
27929bc99b Bump sass from 1.50.1 to 1.51.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.50.1 to 1.51.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.50.1...1.51.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 02:03:16 +00:00
2fba8815f4 Bump stylelint from 14.7.1 to 14.8.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.7.1 to 14.8.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.7.1...14.8.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 02:02:23 +00:00
acb849e1a4 Exclude local phpunit.xml 2022-04-29 00:20:20 +02:00
d28ffbd2d4 Bump eslint from 8.13.0 to 8.14.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.13.0 to 8.14.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.13.0...v8.14.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 02:56:39 +00:00
89e2ad80d7 Bump material-design-icons-iconfont from 6.6.0 to 6.7.0
Bumps [material-design-icons-iconfont](https://github.com/jossef/material-design-icons-iconfont) from 6.6.0 to 6.7.0.
- [Release notes](https://github.com/jossef/material-design-icons-iconfont/releases)
- [Commits](https://github.com/jossef/material-design-icons-iconfont/compare/v6.6.0...v6.7.0)

---
updated-dependencies:
- dependency-name: material-design-icons-iconfont
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 02:55:58 +00:00
dcddd4bdae Merge pull request #5744 from jonas-hagen/domainname-www 2022-04-24 08:11:43 +02:00
7e6d0d61db Merge pull request #5746 from yguedidi/remove-bundle-inheritance 2022-04-24 08:07:09 +02:00
82fc828442 Remove bundle inheritance 2022-04-24 05:56:44 +02:00
0396e15098 Use site with subdomain as tagging rule example
Fixes wallabag/doc#104
This change affects all translations in documentation and wallabag source.
2022-04-23 23:26:46 +02:00
9f6414785c Fix tests 2022-04-20 23:13:17 +02:00
5077c46e4e Added action to tag search results 2022-04-20 22:57:25 +02:00
d86f296870 Deprecated Baggy
- a big message will be displayed to user using the Baggy theme
- switching from Material to Baggy is no more allowed in config (it'll be forced to material)
- the theme label in the config for Baggy is now _Baggy (DEPRECATED)_
2022-04-20 22:50:08 +02:00
a885f5043a Update tests 2022-04-20 22:14:56 +02:00
33b1c252a7 fixed review 2022-04-20 22:12:49 +02:00
aaa03cc395 Added serialization group 2022-04-20 22:12:49 +02:00
bb12538fab Added new endpoint for API: config 2022-04-20 22:12:49 +02:00
88fd7afeb5 Merge pull request #5739 from wallabag/dependabot/npm_and_yarn/sass-1.50.1 2022-04-19 21:27:00 +02:00
baebc3cdbb Merge pull request #5738 from wallabag/dependabot/github_actions/actions/setup-node-3 2022-04-19 21:26:42 +02:00
590d4a1ede Bump sass from 1.50.0 to 1.50.1
Bumps [sass](https://github.com/sass/dart-sass) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.50.0...1.50.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-19 19:06:45 +00:00
a5d883a55d Bump actions/setup-node from 2 to 3
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2 to 3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-19 19:05:39 +00:00
96a83ecb02 Merge pull request #5737 from turrisxyz/naveen/feat/githubactions 2022-04-19 21:05:13 +02:00
d52f00132a Included githubactions in the dependabot config
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool

Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-04-19 13:55:41 -05:00
dfb43c21fd Merge pull request #5736 from wallabag/dependabot/npm_and_yarn/async-2.6.4 2022-04-19 07:10:28 +02:00
9f3b1b3b2c Merge pull request #5735 from wallabag/dependabot/npm_and_yarn/stylelint-14.7.1 2022-04-19 06:55:43 +02:00
0ee895da84 Bump async from 2.6.3 to 2.6.4
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-19 04:54:08 +00:00
e3a5d66afc Merge pull request #5732 from turrisxyz/naveen/feat/set-perms-actions 2022-04-19 06:53:40 +02:00
69f1e6ecca Bump stylelint from 14.6.1 to 14.7.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.6.1 to 14.7.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.6.1...14.7.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 02:01:08 +00:00
8446cda519 Set permissions for GitHub actions
- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

 Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-04-16 01:58:38 +00:00
5a14755be9 Merge pull request #5726 from wallabag/dependabot/npm_and_yarn/highlight.js-11.5.1
Bump highlight.js from 11.5.0 to 11.5.1
2022-04-12 16:47:02 +02:00
88113289d7 Rebuild assets 2022-04-12 16:25:30 +02:00
cdbdf7de1f Bump highlight.js from 11.5.0 to 11.5.1
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 11.5.0 to 11.5.1.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/11.5.1/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/11.5.0...11.5.1)

---
updated-dependencies:
- dependency-name: highlight.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 16:23:51 +02:00
c6ebd9cd25 Merge pull request #5725 from wallabag/dependabot/npm_and_yarn/material-design-icons-iconfont-6.6.0
Bump material-design-icons-iconfont from 6.5.0 to 6.6.0
2022-04-12 16:22:54 +02:00
82b79e6ebc Rebuild assets 2022-04-12 16:18:15 +02:00
c341cffe0c Bump material-design-icons-iconfont from 6.5.0 to 6.6.0
Bumps [material-design-icons-iconfont](https://github.com/jossef/material-design-icons-iconfont) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/jossef/material-design-icons-iconfont/releases)
- [Commits](https://github.com/jossef/material-design-icons-iconfont/compare/v6.5.0...v6.6.0)

---
updated-dependencies:
- dependency-name: material-design-icons-iconfont
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 16:16:42 +02:00
934f63efba Merge pull request #5722 from wallabag/dependabot/npm_and_yarn/babel/core-7.17.9
Bump @babel/core from 7.17.8 to 7.17.9
2022-04-12 16:15:55 +02:00
b57815a089 Bump @babel/core from 7.17.8 to 7.17.9
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.8 to 7.17.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.9/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 14:03:53 +00:00
d8d5f180b1 Merge pull request #5724 from wallabag/dependabot/npm_and_yarn/webpack-dev-server-4.8.1
Bump webpack-dev-server from 4.7.4 to 4.8.1
2022-04-12 16:01:42 +02:00
54c2440edc Merge pull request #5723 from wallabag/dependabot/npm_and_yarn/eslint-8.13.0
Bump eslint from 8.12.0 to 8.13.0
2022-04-12 16:01:16 +02:00
cc49b0516a Bump eslint from 8.12.0 to 8.13.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.12.0 to 8.13.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.12.0...v8.13.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 13:52:40 +00:00
b5555514bd Bump webpack-dev-server from 4.7.4 to 4.8.1
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.7.4 to 4.8.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.7.4...v4.8.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 13:51:15 +00:00
9e73a166a7 Merge pull request #5721 from wallabag/dependabot/npm_and_yarn/webpack-5.72.0
Bump webpack from 5.71.0 to 5.72.0
2022-04-12 15:49:42 +02:00
a07c4e2506 Bump webpack from 5.71.0 to 5.72.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.71.0 to 5.72.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.71.0...v5.72.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 13:43:42 +00:00
fc581b0320 Merge pull request #5720 from wallabag/dependabot/npm_and_yarn/eslint-plugin-import-2.26.0
Bump eslint-plugin-import from 2.25.4 to 2.26.0
2022-04-12 15:41:24 +02:00
baf470ea3f Bump eslint-plugin-import from 2.25.4 to 2.26.0
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.25.4 to 2.26.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.25.4...v2.26.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 13:36:03 +00:00
aa88671211 Merge pull request #5727 from wallabag/dependabot/npm_and_yarn/sass-1.50.0
Bump sass from 1.49.11 to 1.50.0
2022-04-12 15:33:50 +02:00
a6b428c207 Bump sass from 1.49.11 to 1.50.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.49.11 to 1.50.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.49.11...1.50.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 13:23:44 +00:00
23f12f853d Merge pull request #5729 from wallabag/fix/php-7.2-7.3-mysql 2022-04-12 15:17:36 +02:00
0ac8089eee CI workaround for PHP < 7.4 & MySQL 8
The error on PHP 7.2 & 7.3 is:

> PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]

See:
- https://stackoverflow.com/q/53066962/569101
- https://stackoverflow.com/q/52364415/569101
- https://stackoverflow.com/q/51489616/569101
- https://stackoverflow.com/q/50026939/569101

Also upgrade `actions/checkout` v3
2022-04-11 22:11:22 +02:00
17f87affdb Merge pull request #5715 from wallabag/fix-composer-dockerfile
Fix composer version in docker dev configuration
2022-04-04 14:35:37 +02:00
31337b0a0a Fixed composer version in docker dev configuration 2022-04-04 14:02:13 +02:00
d0cfc547ba Merge pull request #5713 from wallabag/dependabot/npm_and_yarn/sass-1.49.11
Bump sass from 1.49.9 to 1.49.11
2022-04-04 11:17:41 +02:00
c946372180 Update assets 2022-04-04 11:10:49 +02:00
3ea74bd4b2 Merge pull request #5662 from wallabag/impr/env
Update readme and docker development env
2022-04-04 10:59:21 +02:00
f51008aef0 Update docker-compose and Dockerfile for dev env
This change should ease the spawn of a development environment.
It can be used as a vscode devcontainer.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2022-04-04 10:10:55 +02:00
71ffcdc710 Update README
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2022-04-04 10:10:55 +02:00
52752cd0d9 Merge pull request #5712 from wallabag/dependabot/npm_and_yarn/webpack-5.71.0 2022-04-04 07:05:32 +02:00
8a92a7a569 Merge pull request #5714 from wallabag/dependabot/composer/symfony/phpunit-bridge-6.0.7 2022-04-04 07:05:16 +02:00
56a5625ce7 Bump sass from 1.49.9 to 1.49.11
Bumps [sass](https://github.com/sass/dart-sass) from 1.49.9 to 1.49.11.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.49.9...1.49.11)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 04:55:08 +00:00
2b736cb32b Bump webpack from 5.70.0 to 5.71.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.70.0 to 5.71.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.70.0...v5.71.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 04:54:34 +00:00
f8c5817251 Bump symfony/phpunit-bridge from 6.0.3 to 6.0.7
Bumps [symfony/phpunit-bridge](https://github.com/symfony/phpunit-bridge) from 6.0.3 to 6.0.7.
- [Release notes](https://github.com/symfony/phpunit-bridge/releases)
- [Changelog](https://github.com/symfony/phpunit-bridge/blob/5.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/phpunit-bridge/compare/v6.0.3...v6.0.7)

---
updated-dependencies:
- dependency-name: symfony/phpunit-bridge
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 04:53:39 +00:00
4ff43814bc Merge pull request #5708 from wallabag/fix/composer-2.3 2022-04-04 06:52:29 +02:00
fea2b46496 Composer 2.3 isn't compatible with wallabag 2022-04-01 16:09:59 +02:00
287eba084a Merge pull request #5703 from wallabag/dependabot/composer/guzzlehttp/psr7-1.8.4 2022-03-31 06:21:38 +02:00
d50288a951 Bump guzzlehttp/psr7 from 1.8.3 to 1.8.4
Bumps [guzzlehttp/psr7](https://github.com/guzzle/psr7) from 1.8.3 to 1.8.4.
- [Release notes](https://github.com/guzzle/psr7/releases)
- [Changelog](https://github.com/guzzle/psr7/blob/1.8.4/CHANGELOG.md)
- [Commits](https://github.com/guzzle/psr7/compare/1.8.3...1.8.4)

---
updated-dependencies:
- dependency-name: guzzlehttp/psr7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-29 22:19:08 +00:00
e096d66667 Merge pull request #5701 from wallabag/dependabot/npm_and_yarn/minimist-1.2.6 2022-03-28 06:14:42 +02:00
971b690d75 Merge pull request #5697 from wallabag/dependabot/npm_and_yarn/stylelint-webpack-plugin-3.2.0 2022-03-28 06:02:16 +02:00
2a70090a11 Merge pull request #5698 from wallabag/dependabot/npm_and_yarn/eslint-8.12.0 2022-03-28 06:01:40 +02:00
527719f8a8 Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 04:01:30 +00:00
77bdaf3e17 Merge pull request #5699 from wallabag/dependabot/npm_and_yarn/babel-loader-8.2.4 2022-03-28 06:01:24 +02:00
ba6eb8e424 Merge pull request #5700 from wallabag/dependabot/npm_and_yarn/stylelint-14.6.1 2022-03-28 06:01:00 +02:00
61ee19a7a1 Bump stylelint from 14.6.0 to 14.6.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.6.0 to 14.6.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.6.0...14.6.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 02:02:19 +00:00
a21bdfc2e5 Bump babel-loader from 8.2.3 to 8.2.4
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.2.3 to 8.2.4.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.2.3...v8.2.4)

---
updated-dependencies:
- dependency-name: babel-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 02:02:00 +00:00
b075eb4c38 Bump eslint from 8.11.0 to 8.12.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.11.0 to 8.12.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.11.0...v8.12.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 02:01:51 +00:00
6fa74891c8 Bump stylelint-webpack-plugin from 3.1.1 to 3.2.0
Bumps [stylelint-webpack-plugin](https://github.com/webpack-contrib/stylelint-webpack-plugin) from 3.1.1 to 3.2.0.
- [Release notes](https://github.com/webpack-contrib/stylelint-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/stylelint-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/stylelint-webpack-plugin/compare/v3.1.1...v3.2.0)

---
updated-dependencies:
- dependency-name: stylelint-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 02:01:38 +00:00
073e413e1f Merge pull request #5695 from wallabag/impr/mass-buttons
material: improve mass buttons style, mostly for smartphone screens
2022-03-25 12:32:16 +01:00
78ad422486 material: improve mass buttons style, mostly for smartphone screens
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2022-03-25 11:00:06 +01:00
59502d281a Merge pull request #5692 from wallabag/dependabot/composer/wallabag/php-mobi-1.1.1 2022-03-23 08:16:13 +01:00
2f0cc2ef84 Bump wallabag/php-mobi from 1.1.0 to 1.1.1
Bumps [wallabag/php-mobi](https://github.com/wallabag/php-mobi) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/wallabag/php-mobi/releases)
- [Commits](https://github.com/wallabag/php-mobi/compare/1.1.0...1.1.1)

---
updated-dependencies:
- dependency-name: wallabag/php-mobi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-23 03:07:23 +00:00
7a85206aba Merge pull request #5690 from wallabag/dependabot/npm_and_yarn/node-forge-1.3.0 2022-03-22 22:31:14 +01:00
bef57e4fb8 Bump node-forge from 1.2.1 to 1.3.0
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.2.1 to 1.3.0.
- [Release notes](https://github.com/digitalbazaar/forge/releases)
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.2.1...v1.3.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-22 20:50:29 +00:00
974062f749 Merge pull request #5647 from wallabag/fix/epub-language 2022-03-21 22:40:01 +01:00
8f2fefe233 Merge pull request #5680 from wallabag/impr/intl
Replace `iconv()` calls with Transliterator
2022-03-21 22:28:49 +01:00
b7ed531c31 Merge pull request #5687 from wallabag/feature/download-webp 2022-03-21 22:17:04 +01:00
1608bf5a4e Replace iconv() calls with Transliterator
See https://stackoverflow.com/a/35178027/954513

Closes #5377

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2022-03-21 22:12:11 +01:00
0049ef390b Add some basic test 2022-03-21 21:29:30 +01:00
1b9e1d4886 add webp support 2022-03-21 21:29:26 +01:00
20b450916e Merge pull request #5685 from wallabag/dependabot/npm_and_yarn/autoprefixer-10.4.4
Bump autoprefixer from 10.4.2 to 10.4.4
2022-03-21 21:16:45 +01:00
879dd60b9a Merge pull request #5683 from wallabag/dependabot/npm_and_yarn/stylelint-scss-4.2.0
Bump stylelint-scss from 4.1.0 to 4.2.0
2022-03-21 21:16:11 +01:00
6ab4088582 Bump autoprefixer from 10.4.2 to 10.4.4
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.2 to 10.4.4.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.2...10.4.4)

---
updated-dependencies:
- dependency-name: autoprefixer
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 20:00:53 +00:00
6bd4f98b78 Bump stylelint-scss from 4.1.0 to 4.2.0
Bumps [stylelint-scss](https://github.com/stylelint-scss/stylelint-scss) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/stylelint-scss/stylelint-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-scss/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: stylelint-scss
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 20:00:19 +00:00
2c870423c4 Fix epub language
Ensure language has `_` instead of `-`
And update wallabag/phpepub
2022-03-21 20:56:29 +01:00
5e377b8925 Merge pull request #5686 from wallabag/fix/chrome-import-test
Fix test with `usinenouvelle.com` being flaky these times
2022-03-21 20:55:50 +01:00
3a918cf30e Fix test with usinenouvelle.com being flaky these times
Replace it with a more robust website 🤩
2022-03-21 20:43:29 +01:00
194c87e363 Merge pull request #5682 from wallabag/dependabot/npm_and_yarn/babel/core-7.17.8
Bump @babel/core from 7.17.5 to 7.17.8
2022-03-21 10:10:58 +01:00
edc9e8410d Merge pull request #5681 from wallabag/dependabot/npm_and_yarn/stylelint-14.6.0
Bump stylelint from 14.5.3 to 14.6.0
2022-03-21 10:04:07 +01:00
746e6c06b9 Bump @babel/core from 7.17.5 to 7.17.8
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.5 to 7.17.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:02:20 +00:00
2b371a7d33 Bump stylelint from 14.5.3 to 14.6.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.5.3 to 14.6.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.5.3...14.6.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-21 03:02:10 +00:00
4b32192178 Merge pull request #5676 from Simounet/fix/style-row-card-regression 2022-03-15 15:39:21 +01:00
d0cfdaf10e Fix row and card style regressions 2022-03-15 13:54:04 +01:00
eb99cacf43 Merge pull request #5664 from Simounet/feat/home-entries-updated 2022-03-15 09:34:00 +01:00
33a7b1e105 Merge pull request #5659 from agallou/sort_tag_feed_on_updated_at 2022-03-15 08:05:33 +01:00
02a88d01a6 Merge pull request #5671 from wallabag/dependabot/composer/bdunogier/guzzle-site-authenticator-1.0.1 2022-03-15 07:47:24 +01:00
3036579ac5 Bump bdunogier/guzzle-site-authenticator from 1.0.0 to 1.0.1
Bumps [bdunogier/guzzle-site-authenticator](https://github.com/wallabag/guzzle-site-authenticator) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/wallabag/guzzle-site-authenticator/releases)
- [Commits](https://github.com/wallabag/guzzle-site-authenticator/compare/1.0.0...1.0.1)

---
updated-dependencies:
- dependency-name: bdunogier/guzzle-site-authenticator
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-15 03:07:21 +00:00
29df8ed590 this change adds an option to sort the feed entires by updated_at
There is now an option to sort the feed entires by updated_at, on the
controler : a sort querystring argument that accepts either "created"
or "updated".
2022-03-14 22:58:45 +01:00
201a9930f9 Card actions styled at the bottom 2022-03-14 22:13:44 +01:00
016ceb6829 ul entries list replaced by ol 2022-03-14 22:12:22 +01:00
e700cadae3 Mass action buttons extracted from entries list 2022-03-14 22:11:09 +01:00
85e91f9e67 CSS grid used for bloc mode entries and flex for card bloc 2022-03-14 22:09:07 +01:00
f6bc76a8ce Merge pull request #5669 from wallabag/dependabot/npm_and_yarn/material-design-icons-iconfont-6.5.0
Bump material-design-icons-iconfont from 6.4.2 to 6.5.0
2022-03-14 13:28:43 +01:00
34a8f36a42 Update assets 2022-03-14 12:04:41 +01:00
4f3da43416 Bump material-design-icons-iconfont from 6.4.2 to 6.5.0
Bumps [material-design-icons-iconfont](https://github.com/jossef/material-design-icons-iconfont) from 6.4.2 to 6.5.0.
- [Release notes](https://github.com/jossef/material-design-icons-iconfont/releases)
- [Commits](https://github.com/jossef/material-design-icons-iconfont/compare/v6.4.2...v6.5.0)

---
updated-dependencies:
- dependency-name: material-design-icons-iconfont
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 12:02:34 +01:00
3382e15ee2 Merge pull request #5667 from wallabag/dependabot/npm_and_yarn/highlight.js-11.5.0
Bump highlight.js from 11.4.0 to 11.5.0
2022-03-14 12:01:39 +01:00
be36db24ea Update assets 2022-03-14 11:50:58 +01:00
49d5f27cd0 Merge pull request #4341 from wallabag/with-annotations-route 2022-03-14 06:44:43 +01:00
b2226686ff Merge pull request #5668 from wallabag/dependabot/npm_and_yarn/css-loader-6.7.1 2022-03-14 06:31:33 +01:00
2a0e5b4d31 Bump css-loader from 6.7.0 to 6.7.1
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 6.7.0 to 6.7.1.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.7.0...v6.7.1)

---
updated-dependencies:
- dependency-name: css-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 05:19:11 +00:00
f24ab9e5b5 Merge pull request #5665 from wallabag/dependabot/npm_and_yarn/webpack-manifest-plugin-5.0.0 2022-03-14 06:16:53 +01:00
68208e899a Merge pull request #5666 from wallabag/dependabot/npm_and_yarn/eslint-8.11.0 2022-03-14 06:16:10 +01:00
7b22893806 Bump highlight.js from 11.4.0 to 11.5.0
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 11.4.0 to 11.5.0.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/main/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/11.4.0...11.5.0)

---
updated-dependencies:
- dependency-name: highlight.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:02:18 +00:00
3ec38b515e Bump eslint from 8.10.0 to 8.11.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.10.0 to 8.11.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.10.0...v8.11.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:02:08 +00:00
8f46e12579 Bump webpack-manifest-plugin from 4.1.1 to 5.0.0
Bumps [webpack-manifest-plugin](https://github.com/shellscape/webpack-manifest-plugin) from 4.1.1 to 5.0.0.
- [Release notes](https://github.com/shellscape/webpack-manifest-plugin/releases)
- [Commits](https://github.com/shellscape/webpack-manifest-plugin/compare/v4.1.1...v5.0.0)

---
updated-dependencies:
- dependency-name: webpack-manifest-plugin
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 03:01:51 +00:00
6bd257a711 Merge pull request #5656 from wallabag/add-greek-language
Enabled greek translation
2022-03-08 16:39:27 +01:00
9a9d8840bb Enabled greek translation 2022-03-08 15:30:45 +01:00
7fbbbb40f8 Merge pull request #5654 from wallabag/dependabot/npm_and_yarn/postcss-8.4.8 2022-03-08 06:25:43 +01:00
48222ed5af Merge pull request #5655 from wallabag/dependabot/composer/ocramius/proxy-manager-2.2.4 2022-03-08 06:25:21 +01:00
d1e7666d27 Bump postcss from 8.4.7 to 8.4.8
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.7 to 8.4.8.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.7...8.4.8)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-08 05:15:40 +00:00
5713402ffb Merge pull request #5651 from wallabag/dependabot/npm_and_yarn/css-loader-6.7.0 2022-03-08 06:14:11 +01:00
db2ff7c856 Merge pull request #5652 from wallabag/dependabot/npm_and_yarn/mini-css-extract-plugin-2.6.0 2022-03-08 06:13:53 +01:00
d1cb8f4e8a Merge pull request #5653 from wallabag/dependabot/npm_and_yarn/webpack-5.70.0 2022-03-08 06:13:32 +01:00
9093b884c7 Bump ocramius/proxy-manager from 2.2.3 to 2.2.4
Bumps [ocramius/proxy-manager](https://github.com/Ocramius/ProxyManager) from 2.2.3 to 2.2.4.
- [Release notes](https://github.com/Ocramius/ProxyManager/releases)
- [Commits](https://github.com/Ocramius/ProxyManager/compare/2.2.3...2.2.4)

---
updated-dependencies:
- dependency-name: ocramius/proxy-manager
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:06:37 +00:00
73f4b9b54d Bump webpack from 5.69.1 to 5.70.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.69.1 to 5.70.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.69.1...v5.70.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:02:25 +00:00
67ea13f0fa Bump mini-css-extract-plugin from 2.5.3 to 2.6.0
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 2.5.3 to 2.6.0.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.5.3...v2.6.0)

---
updated-dependencies:
- dependency-name: mini-css-extract-plugin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:02:13 +00:00
14092b8fb3 Bump css-loader from 6.6.0 to 6.7.0
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 6.6.0 to 6.7.0.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.6.0...v6.7.0)

---
updated-dependencies:
- dependency-name: css-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 03:01:54 +00:00
f2f62eb35c Merge pull request #5648 from wallabag/dependabot/composer/pagerfanta/pagerfanta-2.7.3 2022-03-03 06:43:09 +01:00
b422209634 Bump pagerfanta/pagerfanta from 2.7.2 to 2.7.3
Bumps [pagerfanta/pagerfanta](https://github.com/BabDev/Pagerfanta) from 2.7.2 to 2.7.3.
- [Release notes](https://github.com/BabDev/Pagerfanta/releases)
- [Changelog](https://github.com/BabDev/Pagerfanta/blob/v2.7.3/CHANGELOG.md)
- [Commits](https://github.com/BabDev/Pagerfanta/compare/v2.7.2...v2.7.3)

---
updated-dependencies:
- dependency-name: pagerfanta/pagerfanta
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-03 03:05:33 +00:00
7def677ba1 Merge pull request #5646 from wallabag/fix/tagging-rule-custom-reading-speed 2022-03-02 22:03:30 +01:00
7ec0c9f844 Fix tests 2022-03-02 20:12:08 +01:00
9160c4e713 Remove commented translations
Not necessary as they are handled by weblate.
2022-03-02 20:07:44 +01:00
0feee8ba9a Fixed review 2022-03-02 20:07:44 +01:00
9992017fb7 Fixed translation file 2022-03-02 20:07:44 +01:00
cd975c5f13 Added annotated filter 2022-03-02 20:07:44 +01:00
6dfc031839 Enhanced tests and changed route 2022-03-02 20:07:43 +01:00
0aeaf0e8c2 Added tests 2022-03-02 20:07:17 +01:00
dce50ddb79 Added route to list entries with annotations 2022-03-02 20:07:17 +01:00
9a6146d2ef Merge remote-tracking branch 'origin/master' into 2.5.0 2022-03-02 20:03:33 +01:00
10d071a4f2 Fix tests 2022-03-02 19:28:48 +01:00
5c4993832e Fix tagging rule match when user a custom reading speed
By default, we assume the reading speed is 200 word per minute (WPM) when we save an entry.
User can change that value in the config and the rendering is properly performed with the user reading speed.
BUT, when the matching rule is applied, it uses the default reading time defined in the entry without applying the custom reading speed of the user.
This should fix that bug.

Also update the `wallabag:tag:all` to fix the bug when tagging all entries.
2022-03-02 19:12:33 +01:00
32aa8e8fd6 Merge pull request #5640 from wallabag/dependabot/npm_and_yarn/material-design-icons-iconfont-6.4.2
Bump material-design-icons-iconfont from 6.4.1 to 6.4.2
2022-02-28 14:37:51 +01:00
35774dbac8 Update assets 2022-02-28 13:54:34 +01:00
ef970311b0 Merge pull request #5641 from wallabag/dependabot/npm_and_yarn/sass-1.49.9 2022-02-28 06:19:32 +01:00
5286b97b10 Merge pull request #5642 from wallabag/dependabot/npm_and_yarn/eslint-8.10.0 2022-02-28 06:19:21 +01:00
60218ad175 Merge pull request #5643 from wallabag/dependabot/npm_and_yarn/postcss-8.4.7 2022-02-28 06:19:10 +01:00
75ba895d72 Merge pull request #5639 from wallabag/dependabot/npm_and_yarn/stylelint-14.5.3 2022-02-28 06:18:53 +01:00
be4e74558f Bump postcss from 8.4.6 to 8.4.7
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.6 to 8.4.7.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.6...8.4.7)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:02:44 +00:00
55eeae3fef Bump eslint from 8.9.0 to 8.10.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.9.0 to 8.10.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.9.0...v8.10.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:02:29 +00:00
daa0ff2fb0 Bump sass from 1.49.8 to 1.49.9
Bumps [sass](https://github.com/sass/dart-sass) from 1.49.8 to 1.49.9.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.49.8...1.49.9)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:02:20 +00:00
9d54674c4f Bump material-design-icons-iconfont from 6.4.1 to 6.4.2
Bumps [material-design-icons-iconfont](https://github.com/jossef/material-design-icons-iconfont) from 6.4.1 to 6.4.2.
- [Release notes](https://github.com/jossef/material-design-icons-iconfont/releases)
- [Commits](https://github.com/jossef/material-design-icons-iconfont/compare/6.4.1...v6.4.2)

---
updated-dependencies:
- dependency-name: material-design-icons-iconfont
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:02:04 +00:00
62b085c16d Bump stylelint from 14.5.1 to 14.5.3
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.5.1 to 14.5.3.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.5.1...14.5.3)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-28 03:01:54 +00:00
798fae040f Merge pull request #5625 from wallabag/dependabot/npm_and_yarn/material-design-icons-iconfont-6.4.1
Bump material-design-icons-iconfont from 6.1.1 to 6.4.1
2022-02-21 10:41:16 +01:00
48a70c8071 Update assets 2022-02-21 10:19:02 +01:00
3a8e2d18b7 Bump material-design-icons-iconfont from 6.1.1 to 6.4.1
Bumps [material-design-icons-iconfont](https://github.com/jossef/material-design-icons-iconfont) from 6.1.1 to 6.4.1.
- [Release notes](https://github.com/jossef/material-design-icons-iconfont/releases)
- [Commits](https://github.com/jossef/material-design-icons-iconfont/compare/v6.1.1...6.4.1)

---
updated-dependencies:
- dependency-name: material-design-icons-iconfont
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 09:54:17 +01:00
9f59b176b5 Merge pull request #5629 from wallabag/dependabot/npm_and_yarn/sass-loader-12.6.0 2022-02-21 07:37:59 +01:00
d738cae6b8 Merge pull request #5628 from wallabag/dependabot/npm_and_yarn/webpack-5.69.1 2022-02-21 06:49:29 +01:00
e13f321686 Bump sass-loader from 12.4.0 to 12.6.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 12.4.0 to 12.6.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v12.4.0...v12.6.0)

---
updated-dependencies:
- dependency-name: sass-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 05:28:17 +00:00
e84e685199 Bump webpack from 5.68.0 to 5.69.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.68.0 to 5.69.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.68.0...v5.69.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 05:27:20 +00:00
5a76d86dea Merge pull request #5626 from wallabag/dependabot/npm_and_yarn/babel/core-7.17.5 2022-02-21 06:26:47 +01:00
d55ba3f1bd Merge pull request #5627 from wallabag/dependabot/npm_and_yarn/sass-1.49.8 2022-02-21 06:26:31 +01:00
601572e7b6 Merge pull request #5630 from wallabag/dependabot/npm_and_yarn/stylelint-14.5.1 2022-02-21 06:25:54 +01:00
a894fa5f4f Bump stylelint from 14.5.0 to 14.5.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.5.0 to 14.5.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.5.0...14.5.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:03:27 +00:00
fcd8f63c92 Bump sass from 1.49.7 to 1.49.8
Bumps [sass](https://github.com/sass/dart-sass) from 1.49.7 to 1.49.8.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.49.7...1.49.8)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:02:59 +00:00
89e94c551b Bump @babel/core from 7.17.2 to 7.17.5
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.2 to 7.17.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.17.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-21 03:02:51 +00:00
5d4ca12155 Merge pull request #5622 from weblate/weblate-wallabag-messages 2022-02-18 18:55:54 +01:00
Gil
3920ece418 Translated using Weblate (Portuguese)
Currently translated at 63.9% (364 of 569 strings)
2022-02-18 15:55:34 +01:00
17ed80d044 Merge pull request #5022 from wallabag/feature/del.icio.us-import
Add Delicious import
2021-02-09 10:23:19 +01:00
52cd346617 "below button" -> "button below" 2021-02-09 09:33:59 +01:00
38902a2f04 Fix test 2021-02-08 09:57:10 +01:00
a962a3ab13 CS 2021-02-08 09:56:25 +01:00
dd9d6a4c64 Add Delicious import
Since 2021, you can export again your data \o/

Also fix indentation in json fixtures files.
2021-02-08 09:47:56 +01:00
890c7d0bfa Added button to show entries with the same domain 2021-02-08 09:45:38 +01:00
146 changed files with 3366 additions and 1849 deletions

View File

@ -6,11 +6,15 @@
- Clone the repository
- Ensure your Docker daemon is running
- Launch `docker-compose up`
- Copy `docker/php/env.example` to `docker/php/env` and customize
- Launch `docker-compose run --rm php composer install` to bootstrap php dependencies
- Launch `docker-compose run --rm php bin/console wallabag:install` to bootstrap your installation
- Launch `docker-compose run --rm php yarn install` to bootstrap dependencies for the frontend
- Launch `docker-compose run --rm php yarn build:dev` to build assets for the frontend
- Launch `docker-compose up -d` to start the stack
You'll then have:
- a web server (nginx)
- a PHP daemon (using FPM)
- a PHP daemon with standalone web server
- a Redis database (to handle imports)
- a SQLite database to store articles
@ -20,7 +24,7 @@ If you want to test using an other database than SQLite, uncomment the `postgres
### Using your own PHP server
- Ensure you are running PHP > 7.1.
- Ensure you are running PHP >= 7.4.
- Clone the repository
- Launch `composer install`
- If you got some errors, fix them (they might be related to some missing PHP extension from your machine)

View File

@ -34,3 +34,10 @@ updates:
- dependency-name: nelmio/api-doc-bundle
versions:
- "> 2.13.4"
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 10

BIN
.github/images/screenshot.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 KiB

View File

@ -7,6 +7,9 @@ on:
- master
- 2.*
permissions:
contents: read
jobs:
js:
name: "Building assets"
@ -14,10 +17,10 @@ jobs:
steps:
- name: "Checkout"
uses: "actions/checkout@v2"
uses: "actions/checkout@v3"
- name: "Install Node"
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: "12"

View File

@ -7,6 +7,9 @@ on:
- master
- 2.*
permissions:
contents: read
jobs:
coding-standards:
name: "CS Fixer & PHPStan"
@ -14,14 +17,14 @@ jobs:
steps:
- name: "Checkout"
uses: "actions/checkout@v2"
uses: "actions/checkout@v3"
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "7.4"
tools: cs2pr, pecl, composer:v2
tools: cs2pr, pecl, composer:2.2
extensions: pdo, pdo_mysql, pdo_sqlite, pdo_pgsql, curl, imagick, pgsql, gd, tidy
ini-values: "date.timezone=Europe/Paris"
env:

View File

@ -29,8 +29,6 @@ jobs:
fail-fast: false
matrix:
php:
- "7.2"
- "7.3"
- "7.4"
- "8.0"
- "8.1"
@ -41,7 +39,7 @@ jobs:
steps:
- name: "Checkout"
uses: "actions/checkout@v2"
uses: "actions/checkout@v3"
with:
fetch-depth: 2
@ -50,7 +48,7 @@ jobs:
with:
php-version: "${{ matrix.php }}"
coverage: none
tools: pecl, composer:v2
tools: pecl, composer:2.2
extensions: json, pdo, pdo_mysql, pdo_sqlite, pdo_pgsql, curl, imagick, pgsql, gd, tidy
ini-values: "date.timezone=Europe/Paris"
@ -58,7 +56,7 @@ jobs:
if: "${{ matrix.database == 'mysql' }}"
run: |
sudo systemctl start mysql.service
sudo mysql -u root -proot -e "CREATE DATABASE wallabag_test"
sudo mysql -u root -proot -h 127.0.0.1 -e "CREATE DATABASE wallabag_test"
- name: "Setup PostgreSQL"
if: "${{ matrix.database == 'pgsql' }}"

View File

@ -7,6 +7,9 @@ on:
- master
- 2.*
permissions:
contents: read
jobs:
translations:
name: "Translations"
@ -19,14 +22,14 @@ jobs:
steps:
- name: "Checkout"
uses: "actions/checkout@v2"
uses: "actions/checkout@v3"
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "${{ matrix.php }}"
tools: pecl, composer:v2
tools: pecl, composer:2.2
extensions: pdo, pdo_mysql, pdo_sqlite, pdo_pgsql, curl, imagick, pgsql, gd, tidy
ini-values: "date.timezone=Europe/Paris"
env:

8
.gitignore vendored
View File

@ -15,6 +15,7 @@
!/bin/symfony_requirements
.php_cs.cache
.phpunit.result.cache
phpunit.xml
# Parameters
/app/config/parameters.yml
@ -35,16 +36,15 @@ web/uploads/
/build
/coverage
# Development
docker/php/env
# Composer PHAR
/composer.phar
# Data for wallabag
data/db/wallabag*.sqlite
# Docker container logs and data
docker/logs/
docker/data/
# assets stuff
node_modules/
bin

View File

@ -1,5 +1,56 @@
# Changelog
## [2.5.0](https://github.com/wallabag/wallabag/tree/2.5.0)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.4.3...2.5.0)
### Features
- Add Delicious import by @j0k3r in https://github.com/wallabag/wallabag/pull/5022
- Add route to list entries with annotations by @nicosomb in https://github.com/wallabag/wallabag/pull/4341
- Add an option to sort the feed entries by `updated_at` by @agallou in https://github.com/wallabag/wallabag/pull/5659
- Add support to download webp image locally by @j0k3r in https://github.com/wallabag/wallabag/pull/5687
- Update readme and docker development env by @Kdecherf in https://github.com/wallabag/wallabag/pull/5662
- Add action to assign a search as a tag to each result by @nicosomb in https://github.com/wallabag/wallabag/pull/5381
- Drop PHP prior to 7.4 by @yguedidi in https://github.com/wallabag/wallabag/pull/5791
### Deprecated features
- Deprecate Baggy theme by @j0k3r in https://github.com/wallabag/wallabag/pull/5742
- Deprecate mobi export by @Kdecherf in https://github.com/wallabag/wallabag/pull/5775
### API
- Add new endpoint for API: config by @nicosomb in https://github.com/wallabag/wallabag/pull/5673
### Technical stuff
- Fix test with `usinenouvelle.com` being flaky these times by @j0k3r in https://github.com/wallabag/wallabag/pull/5686
- Replace `iconv()` calls with Transliterator by @Kdecherf in https://github.com/wallabag/wallabag/pull/5680
- Composer 2.3 isn't compatible with wallabag by @j0k3r in https://github.com/wallabag/wallabag/pull/5708
- CI workaround for PHP < 7.4 & MySQL 8 by @j0k3r in https://github.com/wallabag/wallabag/pull/5729
- Set permissions for GitHub actions by @naveensrinivasan in https://github.com/wallabag/wallabag/pull/5732
- Included githubactions in the dependabot config by @naveensrinivasan in https://github.com/wallabag/wallabag/pull/5737
- Remove bundle inheritance by @yguedidi in https://github.com/wallabag/wallabag/pull/5746
- Fix SQLite database location by @yguedidi in https://github.com/wallabag/wallabag/pull/5771
- Disable XDebug in test make recipe by @yguedidi in https://github.com/wallabag/wallabag/pull/5770
- Exclude local phpunit.xml by @yguedidi in https://github.com/wallabag/wallabag/pull/5757
- Upgrade PHP dependencies by @yguedidi in https://github.com/wallabag/wallabag/pull/5778
### Translations
- Enabled greek translation by @nicosomb in https://github.com/wallabag/wallabag/pull/5656
- Translations update from Hosted Weblate by @weblate see https://github.com/wallabag/wallabag/pulls?q=is%3Apr+author%3Aweblate+milestone%3A2.5.0+is%3Amerged
### Fixes
- Fix tagging rule match when user has a custom reading speed by @j0k3r in https://github.com/wallabag/wallabag/pull/5646
- Feat/home entries updated by @Simounet in https://github.com/wallabag/wallabag/pull/5664
- Fix row and card style regressions by @Simounet in https://github.com/wallabag/wallabag/pull/5676
- Fix epub language by @j0k3r in https://github.com/wallabag/wallabag/pull/5647
- material: improve mass buttons style, mostly for smartphone screens by @Kdecherf in https://github.com/wallabag/wallabag/pull/5695
- Fix composer version in docker dev configuration by @nicosomb in https://github.com/wallabag/wallabag/pull/5715
- Use site with subdomain as tagging rule example by @jonas-hagen in https://github.com/wallabag/wallabag/pull/5744
- Fix PHP Docker image by @yguedidi in https://github.com/wallabag/wallabag/pull/5772
## [2.4.3](https://github.com/wallabag/wallabag/tree/2.4.3)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.4.2...2.4.3)

View File

@ -1,3 +1,3 @@
wallabag is mainly developed by [Nicolas Lœuillet](https://github.com/nicosomb), [@j0k3r](https://github.com/j0k3r) and [@tcitworld](https://github.com/tcitworld) under the MIT License.
wallabag is mainly developed by [Nicolas Lœuillet](https://github.com/nicosomb), [@j0k3r](https://github.com/j0k3r), [@tcitworld](https://github.com/tcitworld) and [@Kdecherf](https://github.com/Kdecherf) under the MIT License.
Thank you [to others contributors](https://github.com/wallabag/wallabag/graphs/contributors).

View File

@ -46,7 +46,7 @@ fixtures: ## Load fixtures into database
php bin/console doctrine:fixtures:load --no-interaction --env=test
test: prepare fixtures ## Launch wallabag testsuite
bin/simple-phpunit -v
XDEBUG_MODE=off bin/simple-phpunit -v
release: ## Create a package. Need a VERSION parameter (eg: `make release VERSION=master`).
ifndef VERSION

View File

@ -1,20 +1,32 @@
<img src="https://raw.githubusercontent.com/wallabag/logo/master/_default/typo-horizontal/png/sm/logo-typo-horizontal-black-no-bg-no-border-sm.png" align="right" />
# wallabag
![CI](https://github.com/wallabag/wallabag/workflows/CI/badge.svg)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/wallabag/wallabag/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/wallabag/wallabag/?branch=master)
[![Gitter](https://badges.gitter.im/gitterHQ/gitter.svg)](https://gitter.im/wallabag/wallabag)
[![Donation Status](https://img.shields.io/liberapay/goal/wallabag.svg?logo=liberapay)](https://liberapay.com/wallabag/donate)
[![Translation status](https://hosted.weblate.org/widgets/wallabag/-/svg-badge.svg)](https://hosted.weblate.org/engage/wallabag/?utm_source=widget)
![License](https://img.shields.io/github/license/wallabag/wallabag)
# What is wallabag?
wallabag is a self-hostable PHP application allowing you to not miss any content anymore.
Click, save and read it when you can. It extracts content so that you can read it when you have time.
wallabag is a web application allowing you to save web pages for later reading.
Click, save and read it when you want. It extracts content so that you won't be distracted by pop-ups and cie.
More information on our website: [wallabag.org](https://wallabag.org).
You can install it on your own server, or you can create an account on [wallabag.it](https://wallabag.it).
If you do not have your own server, consider [the wallabag.it hosting solution](https://wallabag.it).
![wallabag](./.github/images/screenshot.png)
* Website: [wallabag.org](https://wallabag.org)
* Android app: [wallabag/android-app](https://github.com/wallabag/android-app)
* iOS app: [wallabag/ios-app](https://github.com/wallabag/ios-app)
* Browser extension: [wallabag/wallabagger](https://github.com/wallabag/wallabagger)
## Documentation
The documentation is available at https://doc.wallabag.org.
You can contribute to it through its dedicated repository, available here: https://github.com/wallabag/doc.
## Installation
# Install wallabag
Please read [the documentation to see the wallabag requirements](https://doc.wallabag.org/en/admin/installation/requirements.html).
Then you can install wallabag by executing the following commands:
@ -26,16 +38,24 @@ cd wallabag && make install
Now, [configure a virtual host](https://doc.wallabag.org/en/admin/installation/virtualhosts.html) to use your wallabag.
# Run on YunoHost
[![Install Wallabag with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=wallabag2)
### Other methods
Wallabag app for [YunoHost](https://yunohost.org). See [here](https://github.com/YunoHost-Apps/wallabag2_ynh)
Refer to the [installation documentation](https://doc.wallabag.org/en/admin/installation/installation.html) for other installation methods.
# Translate wallabag
## Translation
[wallabag](https://hosted.weblate.org/projects/wallabag/) is being translated using [Weblate](https://weblate.org/), a web tool designed to ease translating for both developers and translators. Feel free to help us [translate wallabag](https://hosted.weblate.org/projects/wallabag/)!
This project uses [Weblate](https://weblate.org/) for translation.
# License
Feel free to help us [translating wallabag](https://hosted.weblate.org/projects/wallabag/).
## Contributing
To learn more about developing wallabag, please refer to the [contribution guide](./.github/CONTRIBUTING.md).
Content extraction relies on [Graby](https://github.com/j0k3r/graby), [php-readability](https://github.com/j0k3r/php-readability) and [ftr-site-config](https://github.com/fivefilters/ftr-site-config).
## License
Copyright © 2013-current Nicolas Lœuillet <nicolas@loeuillet.org>
This work is free. You can redistribute it and/or modify it under the
terms of the MIT License. See the COPYING file for more details.
terms of the MIT License. See the [COPYING.md](./COPYING.md) file for more details.

View File

@ -38,7 +38,7 @@ be locally specified in `composer.lock`:
```json
"config": {
"platform": {
"php": "7.1.3",
"php": "7.4.29",
"ext-something": "4.0"
}
}

View File

@ -3,7 +3,7 @@ download_pictures: Download pictures onto your server
carrot: Enable share to Carrot
diaspora_url: diaspora* URL, if the service is enabled
export_epub: Enable ePub export
export_mobi: Enable .mobi export
export_mobi: Enable .mobi export (deprecated, will be removed soon)
export_pdf: Enable PDF export
export_csv: Enable CSV export
export_json: Enable JSON export

View File

@ -3,7 +3,7 @@ download_pictures: Télécharger les images sur le serveur
carrot: Activer le partage vers Carrot
diaspora_url: URL de diaspora*, si le service est activé
export_epub: Activer l'export ePub
export_mobi: Activer l'export .mobi
export_mobi: Activer l'export .mobi (déprécié, sera supprimé prochainement)
export_pdf: Activer l'export PDF
export_csv: Activer l'export CSV
export_json: Activer l'export JSON

View File

@ -32,7 +32,7 @@ export_txt: Activar exportación TXT
export_json: Activar exportación JSON
export_csv: Activar exportación CSV
export_pdf: Activar exportación PDF
export_mobi: Activar exportación .mobi
export_mobi: Activar exportación .mobi (xa non se usa, vai ser eliminada)
export_epub: Activar exportación ePub
diaspora_url: URL de diaspora*, se o servizo está activo
carrot: Activar compartir en Carrot

View File

@ -3,7 +3,7 @@ download_pictures: 在你的服务器上缓存图片
carrot: 启用分享到 Carrot
diaspora_url: diaspora* 链接,如果该服务已被启用
export_epub: 启用 ePub 导出
export_mobi: 启用 .mobi 导出
export_mobi: 启用 .mobi 导出(已废弃,不久后将移除)
export_pdf: 启用 PDF 导出
export_csv: 启用 CSV 导出
export_json: 启用 JSON 导出

View File

@ -6,16 +6,6 @@ main {
#content {
padding: 0 0.5rem;
}
ul.row {
margin: 0.4rem 0 0;
padding: 0 0.75rem;
}
}
.data .card .card-body {
height: 19em;
overflow: hidden;
}
@mixin mixin-reading-time {
@ -37,6 +27,11 @@ main {
}
.card {
.card-content {
padding-bottom: 12px;
flex-grow: 1;
}
.card-content .card-title,
.card-reveal .card-title {
line-height: 22.8px;
@ -95,7 +90,7 @@ main {
}
.card-action {
padding: 10px 5px 10px 15px;
padding: 10px 10px 10px 15px;
ul.links {
margin: 0;
@ -112,8 +107,9 @@ main {
color: #fff;
}
ul.tools li a.tool {
margin-right: 5px !important;
.tool {
display: flex;
margin-right: 0 !important;
}
@include mixin-reading-time;
@ -134,6 +130,12 @@ main {
}
}
.card-body {
display: flex;
flex-grow: 1;
flex-direction: column;
}
a.original:not(.waves-effect) {
text-overflow: ellipsis;
white-space: nowrap;
@ -285,7 +287,7 @@ a.original:not(.waves-effect) {
flex-basis: 5em;
align-self: flex-end;
float: right;
max-width: 6em;
max-width: 8em;
}
.tags {
@ -311,3 +313,23 @@ a.original:not(.waves-effect) {
.settings .div_tabs {
padding-bottom: 15px;
}
.entries-row {
display: grid;
margin: 0.4rem 0 0;
padding: 0 0.75rem;
gap: 20px;
}
.entry-card {
display: flex;
margin: 0;
height: 100%;
flex-direction: column;
}
.tools {
display: flex;
gap: 10px;
}

View File

@ -3,7 +3,7 @@
* ========================================================================== */
.mass-buttons {
margin: 5px;
margin: 10px 5px 10px 20px;
#selectAll {
position: relative;
@ -17,12 +17,13 @@
button {
i {
font-size: 12px;
font-size: 15px;
}
height: 24px;
line-height: 24px;
padding: 0 0.5rem;
margin-right: 0.75rem;
}
}
@ -38,8 +39,13 @@
}
}
.entries {
list-style: none;
}
.collection {
margin: 15px 15px 0;
margin: 5px 15px 0;
padding: 0;
.collection-item {
padding: 7px;

View File

@ -2,6 +2,12 @@
Media queries
========================================================================== */
@media only screen and (min-width: 450px) {
.entries-row {
grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
}
}
@media only screen and (min-width: 992px) {
nav,
body:not(.entry):not(.login) main,
@ -180,15 +186,6 @@
}
}
@media screen and (max-width: 310px),
screen and (min-width: 601px) and (max-width: 660px),
screen and (min-width: 993px) and (max-width: 1050px),
screen and (min-width: 1201px) and (max-width: 1250px) {
.card .card-action .reading-time .card-created-at {
display: none;
}
}
@media only print {
body {
display: block;

View File

@ -248,6 +248,11 @@ old_sound_rabbit_mq:
exchange_options:
name: 'wallabag.import.pinboard'
type: topic
import_delicious:
connection: default
exchange_options:
name: 'wallabag.import.delicious'
type: topic
import_instapaper:
connection: default
exchange_options:
@ -315,6 +320,15 @@ old_sound_rabbit_mq:
name: 'wallabag.import.pinboard'
callback: wallabag_import.consumer.amqp.pinboard
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_delicious:
connection: default
exchange_options:
name: 'wallabag.import.delicious'
type: topic
queue_options:
name: 'wallabag.import.delicious'
callback: wallabag_import.consumer.amqp.delicious
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_wallabag_v1:
connection: default
exchange_options:

View File

@ -41,6 +41,18 @@ homepage:
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
fos_user_security_login:
path: /login
defaults:
_controller: Wallabag\UserBundle\Controller\SecurityController::loginAction
methods: [GET, POST]
fos_user_registration_register:
path: /register
defaults:
_controller: Wallabag\UserBundle\Controller\RegistrationController::registerAction
methods: [GET, POST]
fos_oauth_server_token:
resource: "@FOSOAuthServerBundle/Resources/config/routing/token.xml"

View File

@ -69,11 +69,11 @@ security:
- { path: ^/logout, roles: [IS_AUTHENTICATED_ANONYMOUSLY, IS_AUTHENTICATED_2FA_IN_PROGRESS] }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /(unread|starred|archive|all).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /(unread|starred|archive|annotated|all).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/locale, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /tags/(.*).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/feed, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /(unread|starred|archive).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY } # For backwards compatibility
- { path: /(unread|starred|archive|annotated).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY } # For backwards compatibility
- { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/settings, roles: ROLE_SUPER_ADMIN }
- { path: ^/annotations, roles: ROLE_USER }

View File

@ -1,6 +1,6 @@
parameters:
test_database_driver: pdo_mysql
test_database_host: localhost
test_database_host: 127.0.0.1
test_database_port: 3306
test_database_name: wallabag_test
test_database_user: root

View File

@ -1,5 +1,5 @@
wallabag_core:
version: 2.4.3
version: 2.5.0
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
languages:
en: 'English'
@ -22,6 +22,7 @@ wallabag_core:
uk: 'Українська'
hr: 'Hrvatski'
cs: 'Čeština'
el: 'Ελληνικά'
items_on_page: 12
theme: material
language: '%locale%'
@ -98,7 +99,7 @@ wallabag_core:
section: export
-
name: export_mobi
value: 1
value: 0
section: export
-
name: export_pdf

View File

@ -33,13 +33,15 @@
"issues": "https://github.com/wallabag/wallabag/issues"
},
"require": {
"php": ">=7.2.5",
"php": ">=7.4",
"composer": "< 2.3",
"ext-ctype": "*",
"ext-curl": "*",
"ext-dom": "*",
"ext-gd": "*",
"ext-hash": "*",
"ext-iconv": "*",
"ext-intl": "*",
"ext-json": "*",
"ext-mbstring": "*",
"ext-pcre": "*",
@ -95,7 +97,7 @@
"tecnickcom/tcpdf": "^6.3.0",
"twig/extensions": "^1.5",
"wallabag/php-mobi": "~1.0",
"wallabag/phpepub": "^4.0.7.2",
"wallabag/phpepub": "^4.0.10",
"willdurand/hateoas-bundle": "~2.1"
},
"require-dev": {
@ -162,7 +164,7 @@
"config": {
"bin-dir": "bin",
"platform": {
"php": "7.2.5"
"php": "7.4.29"
},
"sort-packages": true,
"allow-plugins": {

1188
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +1,64 @@
version: '2'
version: '3.8'
services:
nginx:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./docker/nginx/nginx.conf:/nginx.conf
- ./docker/logs/nginx:/var/log/nginx
- .:/var/www/html
links:
- php:php
command: nginx -c /nginx.conf
php:
build:
context: docker/php
args:
# Set here your timezone using one of this: https://php.net/manual/en/timezones.php
timezone: 'Europe/Monaco'
ports:
- "9000:9000"
# Use target 'rootless' if you run rootless Docker
target: default
volumes:
- .:/var/www/html
#links:
# - "postgres:rdbms"
# - "mariadb:rdbms"
# Volumes for data-related folders
- assets:/var/www/html/web/assets
- data:/var/www/html/data
- cache:/var/www/.cache
# Uncomment the following volume if you run rootless Docker
# A limitation blocks permissions on root docker, see
# https://github.com/moby/moby/issues/40881
# - type: tmpfs
# target: /var/www/html/var/cache
# Override third-party libraries for dev
# - ../graby-site-config:/var/www/html/vendor/j0k3r/graby-site-config
# - ../php-readability:/var/www/html/vendor/j0k3r/php-readability
# - ../graby:/var/www/html/vendor/j0k3r/graby
# - ../HTMLawed:/var/www/html/vendor/fossar/htmlawed
# - ../PHPePub:/var/www/html/vendor/wallabag/phpepub
# - ../guzzle-site-authenticator:/var/www/html/vendor/bdunogier/guzzle-site-authenticator
env_file:
# Copy docker/php/env.example to docker/php/env and customize
- ./docker/php/env
# Comment non-used DBMS lines
# If all DBMS are commented out, sqlite will be used as default
# - ./docker/postgres/env
# Uncomment the database engine you want, it will use sqlite if both are commented
# - ./docker/mariadb/env
# - ./docker/postgres/env
# Uncomment to enable Xdebug
# - ./docker/php/xdebug
ports:
- 8000:8000
# Uncomment to permit Xdebug remote session
# - 9000:9000
depends_on:
# - mariadb
# - postgres
- redis
# postgres:
# image: postgres:11-alpine
# ports:
# - "5432:5432"
# volumes:
# - ./docker/data/pgsql:/var/lib/postgresql/data
# env_file:
# - ./docker/postgres/env
# image: postgres:11-alpine
# volumes:
# - db-data:/var/lib/postgresql/data
# env_file:
# - ./docker/postgres/env
# healthcheck:
# test: ["CMD-SHELL", "pg_isready -q || exit 1"]
# interval: 10s
# timeout: 3s
# retries: 3
# mariadb:
# image: mariadb:10
# ports:
# - "3306:3306"
# volumes:
# - ./docker/data/mariadb:/var/lib/mysql
# - db-data:/var/lib/mysql
# env_file:
# - ./docker/mariadb/env
@ -56,6 +68,19 @@ services:
# - "15672:15672"
redis:
image: redis:4-alpine
ports:
- "6379:6379"
image: redis:6-alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
volumes:
db-data:
driver: local
assets:
driver: local
data:
driver: local
cache:
driver: local

View File

@ -2,9 +2,9 @@ MYSQL_ROOT_PASSWORD=wallaroot
MYSQL_USER=wallabag
MYSQL_PASSWORD=wallapass
MYSQL_DATABASE=wallabag
SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
SYMFONY__ENV__DATABASE_HOST=rdbms
SYMFONY__ENV__DATABASE_PORT=3306
SYMFONY__ENV__DATABASE_NAME=wallabag
SYMFONY__ENV__DATABASE_USER=wallabag
SYMFONY__ENV__DATABASE_PASSWORD=wallapass
DATABASE_DRIVER=pdo_mysql
DATABASE_HOST=mysql
DATABASE_PORT=3306
DATABASE_NAME=wallabag
DATABASE_USER=wallabag
DATABASE_PASSWORD=wallapass

View File

@ -1,89 +0,0 @@
user nginx;
worker_processes 1;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 15;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log off;
error_log off;
gzip on;
gzip_disable "msie6";
open_file_cache max=100;
upstream php-upstream {
server php:9000;
}
server {
#server_name domain.tld www.domain.tld;
root /var/www/html/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
# DEV
# This rule should only be placed on your development environment
# In production, don't include this and don't deploy app_dev.php or config.php
location ~ ^/(app_dev|config)\.php(/|$) {
fastcgi_pass php-upstream;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# When you are using symlinks to link the document root to the
# current version of your application, you should pass the real
# application path instead of the path to the symlink to PHP
# FPM.
# Otherwise, PHP's OPcache may not properly detect changes to
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
# PROD
location ~ ^/app\.php(/|$) {
fastcgi_pass php-upstream;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# When you are using symlinks to link the document root to the
# current version of your application, you should pass the real
# application path instead of the path to the symlink to PHP
# FPM.
# Otherwise, PHP's OPcache may not properly detect changes to
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this
internal;
}
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}
}
daemon off;

View File

@ -1,8 +1,19 @@
FROM php:7.2-fpm
FROM php:7.4-fpm AS rootless
# Default timezone. To change it, use the argument in the docker-compose.yml file
ARG timezone='Europe/Paris'
ARG memorylimit='512M'
ARG DEBIAN_FRONTEND=noninteractive
ARG NODE_VERSION=14
RUN apt-get update \
&& apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release \
openssl \
software-properties-common
RUN curl 'https://deb.nodesource.com/gpgkey/nodesource.gpg.key' | apt-key add - \
&& echo "deb https://deb.nodesource.com/node_${NODE_VERSION}.x $(lsb_release -cs) main" > /etc/apt/sources.list.d/nodesource.list
RUN apt-get update && apt-get install -y \
libmcrypt-dev \
@ -11,30 +22,77 @@ RUN apt-get update && apt-get install -y \
libxml2-dev \
libpng-dev \
libjpeg-dev \
libwebp-dev \
libsqlite3-dev \
imagemagick \
libmagickwand-dev \
libtidy-dev \
git
RUN docker-php-ext-install \
iconv \
mbstring \
libonig-dev \
libzip-dev \
libfreetype6-dev \
zlib1g-dev \
git \
build-essential \
nodejs
RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp
RUN docker-php-ext-install -j "$(nproc)" \
bcmath \
gd \
gettext \
iconv \
intl \
mbstring \
opcache \
pdo \
pdo_mysql \
pdo_pgsql \
pdo_sqlite \
sockets \
tidy \
bcmath \
zip
RUN printf "\n" | pecl install imagick && docker-php-ext-enable imagick
RUN pecl install redis; \
pecl install imagick; \
pecl install xdebug; \
docker-php-ext-enable \
redis \
imagick \
xdebug \
;
RUN echo "date.timezone="$timezone > /usr/local/etc/php/conf.d/date_timezone.ini
RUN echo "memory_limit ="$memorylimit > /usr/local/etc/php/conf.d/memory_limit.ini
RUN npm install -g yarn
RUN usermod -u 1000 www-data
RUN curl -L -o /usr/local/bin/envsubst https://github.com/a8m/envsubst/releases/download/v1.1.0/envsubst-`uname -s`-`uname -m`; \
chmod +x /usr/local/bin/envsubst
CMD ["php-fpm"]
COPY --from=composer:2.2.12 /usr/bin/composer /usr/local/bin/composer
COPY entrypoint.sh /entrypoint.sh
COPY config/ /opt/wallabag/config/
RUN mkdir -p \
/var/www/html/app/config/ \
/var/www/html/var/cache \
/var/www/html/web/assets \
/var/www/html/data \
/var/www/html/data/db \
/var/www/.cache
ENTRYPOINT ["/entrypoint.sh"]
CMD ["php", "bin/console", "--env=dev", "server:run", "0.0.0.0:8000"]
FROM rootless AS default
ARG USER_UID=1000
ARG USER_GID=1000
RUN groupmod -g 1000 www-data ; \
usermod -u ${USER_UID} -g www-data www-data ; \
touch /usr/local/etc/php/conf.d/wallabag-php.ini \
/var/www/.yarnrc ; \
chown -R www-data: /var/www/html \
/usr/local/etc/php/conf.d/wallabag-php.ini \
/var/www/.cache \
/var/www/.yarnrc
USER www-data

View File

@ -0,0 +1,62 @@
parameters:
database_driver: ${DATABASE_DRIVER:-pdo_sqlite}
database_driver_class: ${DATABASE_DRIVER_CLASS:-~}
database_host: ${DATABASE_HOST:-127.0.0.1}
database_port: ${DATABASE_PORT:-~}
database_name: ${DATABASE_NAME:-symfony}
database_user: ${DATABASE_USER:-root}
database_password: ${DATABASE_PASSWORD:-~}
database_path: ${DATABASE_PATH:-"%kernel.root_dir%/data/db/wallabag.sqlite"}
database_table_prefix: wallabag_
database_socket: null
database_charset: ${DATABASE_CHARSET:-utf8}
domain_name: ${DOMAIN_NAME:-https://www.example.com}
server_name: ${SERVER_NAME:-"Your wallabag instance"}
mailer_transport: ${MAILER_TRANSPORT:-smtp}
mailer_user: ${MAILER_USER:-~}
mailer_password: ${MAILER_PASSWORD:-~}
mailer_host: ${MAILER_HOST:-127.0.0.1}
mailer_port: ${MAILER_PORT:-25}
mailer_encryption: ${MAILER_ENCRYPTION:-~}
mailer_auth_mode: ${MAILER_AUTH_MODE:-~}
locale: ${LOCALE:-en}
# A secret key that's used to generate certain security-related tokens
secret: ${SECRET:-~}
# two factor stuff
twofactor_auth: ${TWOFACTOR_AUTH:-true}
twofactor_sender: ${TWOFACTOR_SENDER:-no-reply@wallabag.org}
# fosuser stuff
fosuser_registration: ${FOSUSER_REGISTRATION:-true}
fosuser_confirmation: ${FOSUSER_CONFIRMATION:-true}
fos_oauth_server_access_token_lifetime: 3600
fos_oauth_server_refresh_token_lifetime: 1209600
from_email: ${FROM_EMAIL:-wallabag@example.com}
rss_limit: 50
# RabbitMQ processing
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
rabbitmq_prefetch_count: 10
# Redis processing
redis_scheme: ${REDIS_SCHEME:-tcp}
redis_host: ${REDIS_HOST:-redis}
redis_port: ${REDIS_PORT:-6379}
redis_path: ${REDIS_PATH:-~}
redis_password: ${REDIS_PASSWORD:-~}
# Sentry
sentry_dsn: ${SENTRY_DSN:-~}
session_handler: ${SESSION_HANDLER:-session.handler.native_file}

View File

@ -0,0 +1,10 @@
memory_limit = ${PHP_MEMORY_LIMIT:-512M}
max_execution_time = ${PHP_MAX_EXECUTION_TIME:-60}
date.time = ${PHP_TIMEZONE:-Europe/Paris}
session.save_handler = ${PHP_SESSION_HANDLER:-files}
session.save_path = "${PHP_SESSION_SAVE_PATH:-}"
upload_max_filesize = 10M

6
docker/php/entrypoint.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
envsubst < /opt/wallabag/config/wallabag-php.ini > /usr/local/etc/php/conf.d/wallabag-php.ini
envsubst < /opt/wallabag/config/parameters.yml > /var/www/html/app/config/parameters.yml
exec "$@"

View File

@ -1,6 +0,0 @@
SYMFONY__ENV__DATABASE_DRIVER=pdo_sqlite
SYMFONY__ENV__DATABASE_HOST=127.0.0.1
SYMFONY__ENV__DATABASE_PORT=~
SYMFONY__ENV__DATABASE_NAME=symfony
SYMFONY__ENV__DATABASE_USER=root
SYMFONY__ENV__DATABASE_PASSWORD=~

13
docker/php/env.example Normal file
View File

@ -0,0 +1,13 @@
DATABASE_DRIVER=pdo_sqlite
DATABASE_HOST=127.0.0.1
DATABASE_PORT=~
DATABASE_NAME=symfony
DATABASE_USER=root
DATABASE_PASSWORD=~
DATABASE_PATH="%kernel.project_dir%/data/db/wallabag.sqlite"
DOMAIN_NAME=http://localhost:8000
SECRET=ch4n63m31fy0uc4n
PHP_SESSION_SAVE_PATH=tcp://redis:6379?database=2
PHP_SESSION_HANDLER=redis
SESSION_HANDLER=~
TRUSTED_PROXIES=0.0.0.0/0

2
docker/php/xdebug Normal file
View File

@ -0,0 +1,2 @@
XDEBUG_MODE=debug
XDEBUG_TRIGGER=yes

View File

@ -1,9 +1,10 @@
POSTGRES_USER=wallabag
POSTGRES_PASSWORD=wallapass
POSTGRES_DB=wallabag
SYMFONY__ENV__DATABASE_HOST=rdbms
SYMFONY__ENV__DATABASE_PORT=5432
SYMFONY__ENV__DATABASE_NAME=wallabag
SYMFONY__ENV__DATABASE_USER=wallabag
SYMFONY__ENV__DATABASE_PASSWORD=wallapass
SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql
DATABASE_HOST=postgres
DATABASE_PORT=5432
DATABASE_NAME=wallabag
DATABASE_USER=wallabag
DATABASE_PASSWORD=wallapass
DATABASE_DRIVER=pdo_pgsql
DATABASE_PATH=null

View File

@ -36,48 +36,48 @@
"url": "https://github.com/wallabag/wallabag/issues"
},
"devDependencies": {
"@babel/core": "^7.17.2",
"@babel/core": "^7.17.10",
"@babel/eslint-parser": "^7.17.0",
"@babel/preset-env": "^7.16.11",
"autoprefixer": "^10.4.2",
"babel-loader": "^8.2.3",
"css-loader": "^6.6.0",
"eslint": "^8.9.0",
"@babel/preset-env": "^7.17.10",
"autoprefixer": "^10.4.7",
"babel-loader": "^8.2.5",
"css-loader": "^6.7.1",
"eslint": "^8.15.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-import": "^2.26.0",
"eslint-webpack-plugin": "^3.1.1",
"file-loader": "^6.2.0",
"lato-font": "^3.0.0",
"mini-css-extract-plugin": "^2.5.3",
"mini-css-extract-plugin": "^2.6.0",
"node-sass": "^7.0.1",
"postcss": "^8.4.6",
"postcss": "^8.4.13",
"postcss-loader": "^6.2.1",
"postcss-scss": "^4.0.3",
"sass": "^1.49.7",
"sass-loader": "^12.4.0",
"postcss-scss": "^4.0.4",
"sass": "^1.51.0",
"sass-loader": "^12.6.0",
"style-loader": "^3.3.1",
"stylelint": "^14.5.0",
"stylelint": "^14.8.2",
"stylelint-config-standard": "^25.0.0",
"stylelint-scss": "^4.1.0",
"stylelint-webpack-plugin": "^3.1.1",
"stylelint-scss": "^4.2.0",
"stylelint-webpack-plugin": "^3.2.0",
"terser-webpack-plugin": "^5.3.1",
"url-loader": "^4.1.1",
"webpack": "^5.68.0",
"webpack": "^5.72.1",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.7.4",
"webpack-manifest-plugin": "^4.1.1",
"webpack-dev-server": "^4.9.0",
"webpack-manifest-plugin": "^5.0.0",
"webpack-merge": "^5.7.3"
},
"dependencies": {
"annotator": "wallabag/annotator#master",
"clipboard": "^2.0.10",
"clipboard": "^2.0.11",
"hammerjs": "^2.0.8",
"highlight.js": "^11.4.0",
"highlight.js": "^11.5.1",
"icomoon-free-npm": "^0.0.0",
"jquery": "^3.6.0",
"jquery.cookie": "^1.4.1",
"jr-qrcode": "^1.0.7",
"material-design-icons-iconfont": "^6.1.1",
"material-design-icons-iconfont": "^6.7.0",
"materialize-css": "^0.98.1",
"mathjax": "^3.1.2",
"mousetrap": "^1.6.0",

View File

@ -0,0 +1,32 @@
<?php
namespace Wallabag\ApiBundle\Controller;
use JMS\Serializer\SerializationContext;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Component\HttpFoundation\JsonResponse;
class ConfigRestController extends WallabagRestController
{
/**
* Retrieve configuration for current user.
*
* @ApiDoc()
*
* @return JsonResponse
*/
public function getConfigAction()
{
$this->validateAuthentication();
$json = $this->get('jms_serializer')->serialize(
$this->getUser()->getConfig(),
'json',
SerializationContext::create()->setGroups(['config_api'])
);
return (new JsonResponse())
->setJson($json)
->setStatusCode(JsonResponse::HTTP_OK);
}
}

View File

@ -32,3 +32,8 @@ user:
type: rest
resource: "WallabagApiBundle:UserRest"
name_prefix: api_
config:
type: rest
resource: "WallabagApiBundle:ConfigRest"
name_prefix: api_

View File

@ -41,7 +41,7 @@ class TagAllCommand extends ContainerAwareCommand
$entries = $tagger->tagAllForUser($user);
$io->text('Persist entries... ');
$io->text('Persist ' . \count($entries) . ' entries... ');
$em = $this->getDoctrine()->getManager();
foreach ($entries as $entry) {

View File

@ -43,6 +43,16 @@ class ConfigController extends Controller
$configForm->handleRequest($request);
if ($configForm->isSubmitted() && $configForm->isValid()) {
// force theme to material to avoid using baggy
if ('baggy' === $config->getTheme()) {
$config->setTheme('material');
$this->addFlash(
'notice',
'Baggy is deprecated, forced to Material theme.'
);
}
$em->persist($config);
$em->flush();

View File

@ -277,12 +277,26 @@ class EntryController extends Controller
return $this->showEntries('untagged', $request, $page);
}
/**
* Shows entries with annotations for current user.
*
* @param int $page
*
* @Route("/annotated/list/{page}", name="annotated", defaults={"page" = "1"})
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function showWithAnnotationsEntriesAction(Request $request, $page)
{
return $this->showEntries('annotated', $request, $page);
}
/**
* Shows random entry depending on the given type.
*
* @param string $type
*
* @Route("/{type}/random", name="random_entry", requirements={"type": "unread|starred|archive|untagged|all"})
* @Route("/{type}/random", name="random_entry", requirements={"type": "unread|starred|archive|untagged|annotated|all"})
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
@ -517,6 +531,20 @@ class EntryController extends Controller
);
}
/**
* List the entries with the same domain as the current one.
*
* @param int $page
*
* @Route("/domain/{id}/{page}", requirements={"id" = ".+"}, defaults={"page" = 1}, name="same_domain")
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getSameDomainEntries(Request $request, $page = 1)
{
return $this->showEntries('same-domain', $request, $page);
}
/**
* Global method to retrieve entries depending on the given type
* It returns the response to be send.
@ -549,10 +577,16 @@ class EntryController extends Controller
$qb = $repository->getBuilderForArchiveByUser($this->getUser()->getId());
$formOptions['filter_archived'] = true;
break;
case 'annotated':
$qb = $repository->getBuilderForAnnotationsByUser($this->getUser()->getId());
break;
case 'unread':
$qb = $repository->getBuilderForUnreadByUser($this->getUser()->getId());
$formOptions['filter_unread'] = true;
break;
case 'same-domain':
$qb = $repository->getBuilderForSameDomainByUser($this->getUser()->getId(), $request->get('id'));
break;
case 'all':
$qb = $repository->getBuilderForAllByUser($this->getUser()->getId());
break;

View File

@ -47,7 +47,7 @@ class ExportController extends Controller
*
* @Route("/export/{category}.{format}", name="export_entries", requirements={
* "format": "epub|mobi|pdf|json|xml|txt|csv",
* "category": "all|unread|starred|archive|tag_entries|untagged|search"
* "category": "all|unread|starred|archive|tag_entries|untagged|search|annotated|same_domain"
* })
*
* @return \Symfony\Component\HttpFoundation\Response
@ -80,6 +80,13 @@ class ExportController extends Controller
->getResult();
$title = 'Search ' . $searchTerm;
} elseif ('annotated' === $category) {
$entries = $repository->getBuilderForAnnotationsByUser(
$this->getUser()->getId()
)->getQuery()
->getResult();
$title = 'With annotations';
} else {
$entries = $repository
->$methodBuilder($this->getUser()->getId())

View File

@ -8,7 +8,9 @@ use Pagerfanta\Exception\OutOfRangeCurrentPageException;
use Pagerfanta\Pagerfanta;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Wallabag\CoreBundle\Entity\Tag;
@ -88,8 +90,19 @@ class FeedController extends Controller
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function showTagsFeedAction(User $user, Tag $tag, $page)
public function showTagsFeedAction(Request $request, User $user, Tag $tag, $page)
{
$sort = $request->query->get('sort', 'created');
$sorts = [
'created' => 'createdAt',
'updated' => 'updatedAt',
];
if (!isset($sorts[$sort])) {
throw new BadRequestHttpException(sprintf('Sort "%s" is not available.', $sort));
}
$url = $this->generateUrl(
'tag_feed',
[
@ -102,7 +115,8 @@ class FeedController extends Controller
$entriesByTag = $this->get('wallabag_core.entry_repository')->findAllByTagId(
$user->getId(),
$tag->getId()
$tag->getId(),
$sorts[$sort]
);
$pagerAdapter = new ArrayAdapter($entriesByTag);
@ -137,11 +151,28 @@ class FeedController extends Controller
'domainName' => $this->getParameter('domain_name'),
'version' => $this->getParameter('wallabag_core.version'),
'tag' => $tag->getSlug(),
'updated' => $this->prepareFeedUpdatedDate($entries, $sort),
],
new Response('', 200, ['Content-Type' => 'application/atom+xml'])
);
}
private function prepareFeedUpdatedDate(Pagerfanta $entries, $sort = 'created')
{
$currentPageResults = $entries->getCurrentPageResults();
if (isset($currentPageResults[0])) {
$firstEntry = $currentPageResults[0];
if ('created' === $sort) {
return $firstEntry->getCreatedAt();
}
return $firstEntry->getUpdatedAt();
}
return null;
}
/**
* Global method to retrieve entries depending on the given type
* It returns the response to be send.
@ -202,6 +233,7 @@ class FeedController extends Controller
'user' => $user->getUsername(),
'domainName' => $this->getParameter('domain_name'),
'version' => $this->getParameter('wallabag_core.version'),
'updated' => $this->prepareFeedUpdatedDate($entries),
],
new Response('', 200, ['Content-Type' => 'application/atom+xml'])
);

View File

@ -2,6 +2,7 @@
namespace Wallabag\CoreBundle\Controller;
use Doctrine\ORM\QueryBuilder;
use Pagerfanta\Adapter\ArrayAdapter;
use Pagerfanta\Exception\OutOfRangeCurrentPageException;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
@ -190,4 +191,35 @@ class TagController extends Controller
return $this->redirect($redirectUrl);
}
/**
* Tag search results with the current search term.
*
* @Route("/tag/search/{filter}", name="tag_this_search")
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function tagThisSearchAction($filter, Request $request)
{
$currentRoute = $request->query->has('currentRoute') ? $request->query->get('currentRoute') : '';
/** @var QueryBuilder $qb */
$qb = $this->get('wallabag_core.entry_repository')->getBuilderForSearchByUser($this->getUser()->getId(), $filter, $currentRoute);
$em = $this->getDoctrine()->getManager();
$entries = $qb->getQuery()->getResult();
foreach ($entries as $entry) {
$this->get('wallabag_core.tags_assigner')->assignTagsToEntry(
$entry,
$filter
);
$em->persist($entry);
}
$em->flush();
return $this->redirect($this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'), '', true));
}
}

View File

@ -45,7 +45,7 @@ class ConfigFixtures extends Fixture implements DependentFixtureInterface
$emptyConfig = new Config($this->getReference('empty-user'));
$emptyConfig->setTheme('material');
$emptyConfig->setItemsPerPage(10);
$emptyConfig->setReadingSpeed(200);
$emptyConfig->setReadingSpeed(100);
$emptyConfig->setLanguage('en');
$emptyConfig->setPocketConsumerKey(null);
$emptyConfig->setActionMarkAsRead(0);

View File

@ -43,6 +43,20 @@ class TaggingRuleFixtures extends Fixture implements DependentFixtureInterface
$manager->persist($tr4);
$tr5 = new TaggingRule();
$tr5->setRule('readingTime <= 5');
$tr5->setTags(['shortread']);
$tr5->setConfig($this->getReference('empty-config'));
$manager->persist($tr5);
$tr6 = new TaggingRule();
$tr6->setRule('readingTime > 5');
$tr6->setTags(['longread']);
$tr6->setConfig($this->getReference('empty-config'));
$manager->persist($tr6);
$manager->flush();
}

View File

@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
use Wallabag\UserBundle\Entity\User;
@ -29,6 +30,8 @@ class Config
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*
* @Groups({"config_api"})
*/
private $id;
@ -50,6 +53,8 @@ class Config
* maxMessage = "validator.item_per_page_too_high"
* )
* @ORM\Column(name="items_per_page", type="integer", nullable=false)
*
* @Groups({"config_api"})
*/
private $itemsPerPage;
@ -58,6 +63,8 @@ class Config
*
* @Assert\NotBlank()
* @ORM\Column(name="language", type="string", nullable=false)
*
* @Groups({"config_api"})
*/
private $language;
@ -65,6 +72,8 @@ class Config
* @var string
*
* @ORM\Column(name="feed_token", type="string", nullable=true)
*
* @Groups({"config_api"})
*/
private $feedToken;
@ -77,6 +86,8 @@ class Config
* max = 100000,
* maxMessage = "validator.feed_limit_too_high"
* )
*
* @Groups({"config_api"})
*/
private $feedLimit;
@ -84,6 +95,8 @@ class Config
* @var float
*
* @ORM\Column(name="reading_speed", type="float", nullable=true)
*
* @Groups({"config_api"})
*/
private $readingSpeed;
@ -98,6 +111,8 @@ class Config
* @var int
*
* @ORM\Column(name="action_mark_as_read", type="integer", nullable=true, options={"default" = 0})
*
* @Groups({"config_api"})
*/
private $actionMarkAsRead;
@ -105,6 +120,8 @@ class Config
* @var int
*
* @ORM\Column(name="list_mode", type="integer", nullable=true)
*
* @Groups({"config_api"})
*/
private $listMode;

View File

@ -24,7 +24,13 @@ class ConfigType extends AbstractType
$this->themes = array_combine(
$themes,
array_map(function ($s) {
return ucwords(strtolower(str_replace('-', ' ', $s)));
$cleanTheme = ucwords(strtolower(str_replace('-', ' ', $s)));
if ('Baggy' === $cleanTheme) {
$cleanTheme = 'Baggy (DEPRECATED)';
}
return $cleanTheme;
}, $themes)
);

View File

@ -93,7 +93,7 @@ class EntryFilterType extends AbstractType
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
$value = $values['value'];
if (\strlen($value) <= 2 || empty($value)) {
return;
return false;
}
$expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->lower($filterQuery->getExpr()->literal('%' . $value . '%')));
@ -105,7 +105,7 @@ class EntryFilterType extends AbstractType
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
$value = $values['value'];
if (false === \array_key_exists($value, Response::$statusTexts)) {
return;
return false;
}
$paramName = sprintf('%s', str_replace('.', '_', $field));
@ -129,7 +129,7 @@ class EntryFilterType extends AbstractType
'data' => $options['filter_unread'],
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
if (false === $values['value']) {
return;
return false;
}
$expression = $filterQuery->getExpr()->eq('e.isArchived', 'false');
@ -137,10 +137,22 @@ class EntryFilterType extends AbstractType
return $filterQuery->createCondition($expression);
},
])
->add('isAnnotated', CheckboxFilterType::class, [
'label' => 'entry.filters.annotated_label',
'data' => $options['filter_annotated'],
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
if (false === $values['value']) {
return false;
}
$qb = $filterQuery->getQueryBuilder();
$qb->innerJoin('e.annotations', 'a');
},
])
->add('previewPicture', CheckboxFilterType::class, [
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
if (false === $values['value']) {
return;
return false;
}
$expression = $filterQuery->getExpr()->isNotNull($field);
@ -152,7 +164,7 @@ class EntryFilterType extends AbstractType
->add('isPublic', CheckboxFilterType::class, [
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
if (false === $values['value']) {
return;
return false;
}
// is_public isn't a real field
@ -183,6 +195,7 @@ class EntryFilterType extends AbstractType
'filter_archived' => false,
'filter_starred' => false,
'filter_unread' => false,
'filter_annotated' => false,
]);
}
}

View File

@ -236,7 +236,9 @@ class ContentProxy
return $rawText;
}
return iconv('UTF-8', 'UTF-8//IGNORE', $rawText);
mb_substitute_character('none');
return mb_convert_encoding($rawText, 'UTF-8', 'UTF-8');
}
/**

View File

@ -188,6 +188,10 @@ class DownloadImages
imagesavealpha($im, true);
imagepng($im, $localPath, ceil(self::REGENERATE_PICTURES_QUALITY / 100 * 9));
$this->logger->debug('DownloadImages: Re-creating png');
break;
case 'webp':
imagewebp($im, $localPath, self::REGENERATE_PICTURES_QUALITY);
$this->logger->debug('DownloadImages: Re-creating webp');
}
imagedestroy($im);
@ -333,6 +337,7 @@ class DownloadImages
'jpeg' => "\xFF\xD8\xFF",
'gif' => 'GIF',
'png' => "\x89\x50\x4e\x47\x0d\x0a",
'webp' => "\x52\x49\x46\x46",
];
$bytes = substr((string) $res->getBody(), 0, 8);
@ -346,7 +351,7 @@ class DownloadImages
$this->logger->debug('DownloadImages: Checking extension (alternative)', ['ext' => $ext]);
}
if (!\in_array($ext, ['jpeg', 'jpg', 'gif', 'png'], true)) {
if (!\in_array($ext, ['jpeg', 'jpg', 'gif', 'png', 'webp'], true)) {
$this->logger->error('DownloadImages: Processed image with not allowed extension. Skipping: ' . $imagePath);
return false;

View File

@ -161,8 +161,8 @@ class EntriesExport
*/
$book->setTitle($this->title);
// Not needed, but included for the example, Language is mandatory, but EPub defaults to "en". Use RFC3066 Language codes, such as "en", "da", "fr" etc.
$book->setLanguage($this->language);
// EPub specification requires BCP47-compliant languages, thus we replace _ with -
$book->setLanguage(str_replace('_', '-', $this->language));
$book->setDescription('Some articles saved on my wallabag');
$book->setAuthor($this->author, $this->author);
@ -527,6 +527,8 @@ class EntriesExport
*/
private function getSanitizedFilename()
{
return preg_replace('/[^A-Za-z0-9\- \']/', '', iconv('utf-8', 'us-ascii//TRANSLIT', $this->title));
$transliterator = \Transliterator::createFromRules(':: Any-Latin; :: Latin-ASCII; :: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;', \Transliterator::FORWARD);
return preg_replace('/[^A-Za-z0-9\- \']/', '', $transliterator->transliterate($this->title));
}
}

View File

@ -35,8 +35,10 @@ class RuleBasedTagger
{
$rules = $this->getRulesForUser($entry->getUser());
$clonedEntry = $this->fixEntry($entry);
foreach ($rules as $rule) {
if (!$this->rulerz->satisfies($entry, $rule->getRule())) {
if (!$this->rulerz->satisfies($clonedEntry, $rule->getRule())) {
continue;
}
@ -61,14 +63,22 @@ class RuleBasedTagger
public function tagAllForUser(User $user)
{
$rules = $this->getRulesForUser($user);
$entries = [];
$entriesToUpdate = [];
$tagsCache = [];
foreach ($rules as $rule) {
$qb = $this->entryRepository->getBuilderForAllByUser($user->getId());
$entries = $this->rulerz->filter($qb, $rule->getRule());
$entries = $this->entryRepository
->getBuilderForAllByUser($user->getId())
->getQuery()
->getResult();
foreach ($entries as $entry) {
$clonedEntry = $this->fixEntry($entry);
foreach ($rules as $rule) {
if (!$this->rulerz->satisfies($clonedEntry, $rule->getRule())) {
continue;
}
foreach ($entries as $entry) {
foreach ($rule->getTags() as $label) {
// avoid new tag duplicate by manually caching them
if (!isset($tagsCache[$label])) {
@ -78,11 +88,13 @@ class RuleBasedTagger
$tag = $tagsCache[$label];
$entry->addTag($tag);
$entriesToUpdate[] = $entry;
}
}
}
return $entries;
return $entriesToUpdate;
}
/**
@ -114,4 +126,15 @@ class RuleBasedTagger
{
return $user->getConfig()->getTaggingRules();
}
/**
* Update reading time on the fly to match the proper words per minute from the user.
*/
private function fixEntry(Entry $entry)
{
$clonedEntry = clone $entry;
$clonedEntry->setReadingTime($entry->getReadingTime() / $entry->getUser()->getConfig()->getReadingSpeed() * 200);
return $clonedEntry;
}
}

View File

@ -39,7 +39,34 @@ class EntryRepository extends EntityRepository
return $this
->getSortedQueryBuilderByUser($userId)
->andWhere('e.isArchived = false')
;
;
}
/**
* Retrieves entries with the same domain.
*
* @param int $userId
* @param int $entryId
*
* @return QueryBuilder
*/
public function getBuilderForSameDomainByUser($userId, $entryId)
{
$queryBuilder = $this->createQueryBuilder('e');
return $this
->getSortedQueryBuilderByUser($userId)
->andWhere('e.id <> :entryId')->setParameter('entryId', $entryId)
->andWhere(
$queryBuilder->expr()->in(
'e.domainName',
$this
->createQueryBuilder('e2')
->select('e2.domainName')
->where('e2.id = :entryId')->setParameter('entryId', $entryId)
->getDQL()
)
);
}
/**
@ -115,6 +142,21 @@ class EntryRepository extends EntityRepository
return $this->sortQueryBuilder($this->getRawBuilderForUntaggedByUser($userId));
}
/**
* Retrieve entries with annotations for a user.
*
* @param int $userId
*
* @return QueryBuilder
*/
public function getBuilderForAnnotationsByUser($userId)
{
return $this
->getSortedQueryBuilderByUser($userId)
->innerJoin('e.annotations', 'a')
;
}
/**
* Retrieve untagged entries for a user.
*
@ -343,9 +385,9 @@ class EntryRepository extends EntityRepository
*
* @return array
*/
public function findAllByTagId($userId, $tagId)
public function findAllByTagId($userId, $tagId, $sort = 'createdAt')
{
return $this->getSortedQueryBuilderByUser($userId)
return $this->getSortedQueryBuilderByUser($userId, $sort)
->innerJoin('e.tags', 't')
->andWhere('t.id = :tagId')->setParameter('tagId', $tagId)
->getQuery()
@ -552,6 +594,10 @@ class EntryRepository extends EntityRepository
$qb->leftJoin('e.tags', 't');
$qb->andWhere('t.id is null');
break;
case 'annotated':
$qb->leftJoin('e.annotations', 'a');
$qb->andWhere('a.id is not null');
break;
}
$ids = $qb->getQuery()->getArrayResult();

View File

@ -163,7 +163,7 @@ config:
meaning: Význam
variables_available_description: 'Pro vytvoření pravidel štítkování mohou být použity následující proměnné a operátory:'
variables_available_title: Které proměnné a operátory mohu pro psaní pravidel použít?
how_to_use_them_description: 'Předpokládejme, že chcete označit nové položky štítkem jako je « <i>krátké čtení</i> », pokud je doba čtení kratší než 3 minuty.<br />V takovém případě byste měli do pole <i>Pravidlo</i> zadat « readingTime &lt;= 3 » a do pole <i>Štítky</i> zadat « <i>krátké čtení</i> ».<br />Několik štítků současně lze přidat jejich oddělením čárkou: « <i>krátké čtení, musím přečíst</i> »<br />Složitá pravidla lze zapsat pomocí předdefinovaných operátorů: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » pak označit štítkem jako « <i>dlouhé čtení, GitHub</i> »'
how_to_use_them_description: 'Předpokládejme, že chcete označit nové položky štítkem jako je « <i>krátké čtení</i> », pokud je doba čtení kratší než 3 minuty.<br />V takovém případě byste měli do pole <i>Pravidlo</i> zadat « readingTime &lt;= 3 » a do pole <i>Štítky</i> zadat « <i>krátké čtení</i> ».<br />Několik štítků současně lze přidat jejich oddělením čárkou: « <i>krátké čtení, musím přečíst</i> »<br />Složitá pravidla lze zapsat pomocí předdefinovaných operátorů: if « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » pak označit štítkem jako « <i>dlouhé čtení, php</i> »'
how_to_use_them_title: Jak je použiji?
tagging_rules_definition_description: Jsou to pravidla používaná programem wallabag k automatickému označování nových položek štítkem. <br />Pokaždé, když je přidána nová položky, všechna pravidla štítkování budou použita k přidání štítků, které jste nakonfigurovali, čímž vám ušetří potíže s ručním označováním vašich položek.
tagging_rules_definition_title: Co znamenají „pravidla štítkování“?

View File

@ -150,7 +150,7 @@ config:
tagging_rules_definition_title: Was bedeuten die „Tagging-Regeln“?
tagging_rules_definition_description: Dies sind Regeln von wallabag, um neu hinzugefügte Einträge automatisch zu taggen.<br />Jedes Mal, wenn ein neuer Eintrag hinzugefügt wird, werden die Tagging-Regeln angewandt. Dies erleichtert dir die Arbeit, deine Einträge manuell zu kategorisieren.
how_to_use_them_title: Wie nutze ich sie?
how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als „<i>schnell lesbar</i>“ markiert, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Fall solltest du „readingTime &lt;= 3“ in das Feld <i>Regel</i> und „<i>schnell lesbar</i>“ in das Feld <i>Tags</i> schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Komma getrennt werden: „<i>schnell lesbar, interessant</i>“.<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: wenn „<i>readingTime &gt;= 5 AND domainName = "github.com"</i>“ dann tagge als „<i>länger lesen, GitHub</i>“'
how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als „<i>schnell lesbar</i>“ markiert, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Fall solltest du „readingTime &lt;= 3“ in das Feld <i>Regel</i> und „<i>schnell lesbar</i>“ in das Feld <i>Tags</i> schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Komma getrennt werden: „<i>schnell lesbar, interessant</i>“.<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: wenn „<i>readingTime &gt;= 5 AND domainName = "www.php.net"</i>“ dann tagge als „<i>länger lesen, php</i>“'
variables_available_title: Welche Variablen und Operatoren kann ich benutzen, um Regeln zu schreiben?
variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:'
meaning: Bedeutung

View File

@ -19,6 +19,7 @@ menu:
starred: Starred
archive: Archive
all_articles: All entries
with_annotations: With annotations
config: Config
tags: Tags
internal_settings: Internal Settings
@ -157,7 +158,7 @@ config:
tagging_rules_definition_title: What does “tagging rules” mean?
tagging_rules_definition_description: They are rules used by wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble of manually classifying your entries.
how_to_use_them_title: How do I use them?
how_to_use_them_description: 'Let us assume you want to tag new entries as « <i>short reading</i> » when the reading time is under 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them with a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, GitHub </i> »'
how_to_use_them_description: 'Let us assume you want to tag new entries as « <i>short reading</i> » when the reading time is under 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them with a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » then tag as « <i>long reading, php</i> »'
variables_available_title: Which variables and operators can I use to write rules?
variables_available_description: 'The following variables and operators can be used to create tagging rules:'
meaning: Meaning
@ -220,10 +221,12 @@ entry:
starred: Starred entries
archived: Archived entries
filtered: Filtered entries
with_annotations: Entries with annotations
filtered_tags: 'Filtered by tags:'
filtered_search: 'Filtered by search:'
untagged: Untagged entries
all: All entries
same_domain: Same domain
list:
number_on_the_page: '{0} There are no entries.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
reading_time: estimated reading time
@ -237,12 +240,15 @@ entry:
toogle_as_star: Toggle starred
delete: Delete
export_title: Export
show_same_domain: Show articles with the same domain
assign_search_tag: Assign this search as a tag to each result
filters:
title: Filters
status_label: Status
archived_label: Archived
starred_label: Starred
unread_label: Unread
annotated_label: Annotated
preview_picture_label: Has a preview picture
preview_picture_help: Preview picture
is_public_label: Has a public link
@ -480,12 +486,12 @@ import:
description: Pocket import isn't configured.
admin_message: You need to define %keyurls%a pocket_consumer_key%keyurle%.
user_message: Your server admin needs to define an API Key for Pocket.
authorize_message: You can import your data from your Pocket account. You just have to click on the below button and authorize the application to connect to getpocket.com.
authorize_message: You can import your data from your Pocket account. You just have to click on the button below and authorize the application to connect to getpocket.com.
connect_to_pocket: Connect to Pocket and import data
wallabag_v1:
page_title: Import > Wallabag v1
description: This importer will import all your wallabag v1 articles. On your config page, click on "JSON export" in the "Export your wallabag data" section. You will have a "wallabag-export-1-xxxx-xx-xx.json" file.
how_to: Please select your wallabag export and click on the below button to upload and import it.
how_to: Please select your wallabag export and click on the button below to upload and import it.
wallabag_v2:
page_title: Import > Wallabag v2
description: This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.
@ -495,7 +501,7 @@ import:
readability:
page_title: Import > Readability
description: This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).
how_to: Please select your Readability export and click on the below button to upload and import it.
how_to: Please select your Readability export and click on the button below to upload and import it.
worker:
enabled: 'Import is made asynchronously. Once the import task is started, an external worker will handle jobs one at a time. The current service is:'
download_images_warning: You enabled downloading images for your articles. Combined with classic import it can take ages to proceed (or maybe failed). We <strong>strongly recommend</strong> to enable asynchronous import to avoid errors.
@ -510,11 +516,15 @@ import:
instapaper:
page_title: Import > Instapaper
description: This importer will import all your Instapaper articles. On the settings (https://www.instapaper.com/user) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like "instapaper-export.csv").
how_to: Please select your Instapaper export and click on the below button to upload and import it.
how_to: Please select your Instapaper export and click on the button below to upload and import it.
pinboard:
page_title: Import > Pinboard
description: This importer will import all your Pinboard articles. On the backup (https://pinboard.in/settings/backup) page, click on "JSON" in the "Bookmarks" section. A JSON file will be downloaded (like "pinboard_export").
how_to: Please select your Pinboard export and click on the below button to upload and import it.
how_to: Please select your Pinboard export and click on the button below to upload and import it.
delicious:
page_title: Import > del.icio.us
description: This importer will import all your Delicious bookmarks. Since 2021, you can export again your data from it using the export page (https://del.icio.us/export). Choose the "JSON" format and download it (like "delicious_export.2021.02.06_21.10.json").
how_to: Please select your Delicious export and click on the button below to upload and import it.
developer:
page_title: API clients management
welcome_message: Welcome to the wallabag API

View File

@ -157,7 +157,7 @@ config:
tagging_rules_definition_title: '¿Qué significa «reglas de etiquetado»?'
tagging_rules_definition_description: 'Son las reglas usadas por wallabag para etiquetar automáticamente los nuevos artículos.<br />Cada vez que un artículo es añadido, todas las reglas de etiquetado automático serán usadas para etiquetarlo, ayudándote a clasificar automáticamente tus artículos.'
how_to_use_them_title: '¿Cómo se utilizan?'
how_to_use_them_description: 'Supongamos que quiere etiquetar los artículos nuevos como « <i>lectura corta</i> » cuando el tiempo de lectura sea menos de 3 minutos.<br /> En este caso, debe poner « readingTime &lt;= 3 » en el campo <i>Regla</i> y « <i>lectura corta</i> » en el campo <i>Etiquetas</i>.<br />Se pueden añadir varias etiquetas al mismo tiempo separadas por comas: « <i>lectura corta, lectura obligada</i> »<br />Se pueden escribir reglas complejas utilizando los operadores predefinidos: si « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » entonces etiqueta como « <i>lectura larga, GitHub </i> »'
how_to_use_them_description: 'Supongamos que quiere etiquetar los artículos nuevos como « <i>lectura corta</i> » cuando el tiempo de lectura sea menos de 3 minutos.<br /> En este caso, debe poner « readingTime &lt;= 3 » en el campo <i>Regla</i> y « <i>lectura corta</i> » en el campo <i>Etiquetas</i>.<br />Se pueden añadir varias etiquetas al mismo tiempo separadas por comas: « <i>lectura corta, lectura obligada</i> »<br />Se pueden escribir reglas complejas utilizando los operadores predefinidos: si « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » entonces etiqueta como « <i>lectura larga, php</i> »'
variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?'
variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear reglas de etiquetado:'
meaning: 'Significado'

View File

@ -32,6 +32,7 @@ menu:
site_credentials: اعتبارنامه‌های وب‌گاه
users_management: مدیریت کاربران
developer: مدیریت کارخواه‌های API
quickstart: "Quickstart"
top:
add_new_entry: افزودن مقالهٔ تازه
search: جستجو

View File

@ -19,6 +19,7 @@ menu:
starred: Favoris
archive: Lus
all_articles: Tous les articles
with_annotations: Avec annotations
config: Configuration
tags: Étiquettes
internal_settings: Configuration interne
@ -157,7 +158,7 @@ config:
tagging_rules_definition_title: Que signifient les règles d'étiquetage automatiques ?
tagging_rules_definition_description: Ce sont des règles utilisées par wallabag pour classer automatiquement vos nouveaux articles.<br />À chaque fois quun nouvel article est ajouté, toutes les règles d'étiquetage automatiques seront utilisées afin dajouter les tags que vous avez configurés, vous épargnant ainsi leffort de classifier vos articles manuellement.
how_to_use_them_title: Comment les utiliser ?
how_to_use_them_description: 'Imaginons que voulez attribuer aux nouveaux articles l''étiquette « <i>lecture courte</i> » lorsque le temps de lecture est inférieur à 3 minutes.<br />Dans ce cas, vous devriez mettre « readingTime &lt;= 3 » dans le champ <i>Règle</i> et « <i>lecture courte</i> » dans le champ <i>Tag</i>.<br />Plusieurs tags peuvent être ajoutés simultanément en les séparant par des virgules : « <i>lecture courte, à lire</i> »<br />Des règles complexes peuvent être créées en utilisant des opérateurs prédéfinis: si « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » alors attribuer les étiquettes « <i>lecture longue, GitHub</i> »'
how_to_use_them_description: 'Imaginons que voulez attribuer aux nouveaux articles l''étiquette « <i>lecture courte</i> » lorsque le temps de lecture est inférieur à 3 minutes.<br />Dans ce cas, vous devriez mettre « readingTime &lt;= 3 » dans le champ <i>Règle</i> et « <i>lecture courte</i> » dans le champ <i>Tag</i>.<br />Plusieurs tags peuvent être ajoutés simultanément en les séparant par des virgules : « <i>lecture courte, à lire</i> »<br />Des règles complexes peuvent être créées en utilisant des opérateurs prédéfinis: si « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » alors attribuer les étiquettes « <i>lecture longue, php</i> »'
variables_available_title: Quelles variables et opérateurs puis-je utiliser pour écrire des règles ?
variables_available_description: 'Les variables et opérateurs suivants peuvent être utilisés pour écrire des règles d''étiquetage automatiques :'
meaning: Signification
@ -220,6 +221,7 @@ entry:
starred: Articles favoris
archived: Articles lus
filtered: Articles filtrés
with_annotations: Articles avec annotations
filtered_tags: 'Articles filtrés par étiquettes :'
filtered_search: 'Articles filtrés par recherche :'
untagged: Article sans étiquette
@ -243,6 +245,7 @@ entry:
archived_label: Lus
starred_label: Favoris
unread_label: Non lus
annotated_label: Annotés
preview_picture_label: A une photo
preview_picture_help: Photo
is_public_label: A un lien public

View File

@ -159,6 +159,7 @@ entry:
archived_label: Arquivado
status_label: Estado
title: Filtros
annotated_label: Anotado
list:
export_title: Exportar
delete: Eliminar
@ -172,6 +173,8 @@ entry:
reading_time_minutes: 'tempo estimado de lectura: %readingTime% min'
reading_time: tempo estimado de lectura
number_on_the_page: '{0} Non hai entradas.|{1} Só hai unha entrada.|]1,Inf[ Hai %count% entradas.'
show_same_domain: Mostrar artigos do mesmo dominio
assign_search_tag: Asignar esta busca como etiqueta a cada resultado
page_titles:
all: Todas as entradas
untagged: Entradas sen etiqueta
@ -181,6 +184,8 @@ entry:
archived: Artigos arquivados
starred: Artigos con estrela
unread: Artigos sen ler
with_annotations: Entradas con anotacións
same_domain: O mesmo dominio
default_title: Título da entrada
config:
form_ignore_origin_rules:
@ -203,7 +208,7 @@ config:
title: PMF
form_rules:
faq:
how_to_use_them_description: 'Demos por feito que queres etiquetar as novas entradas con « <i>lectura rápida</i> » cando o tempo de lectura non supera os 3 minutos.<br />Neste caso, tes que poñer « TempodeLectura &lt;= 3 » no campo da <i>Regra</i> e « <i>lectura rápida</i> » no campo da <i>Etiqueta</i> .<br />Podes engadir varias etiquetas ó mesmo tempo separándoas cunha vírgula: « <i>lectura rápida, teño que ler</i> »<br />Pódense establecer regras complexas usando os operadores predefinidos: se o « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » entón etiquetar como « <i>lectura longa, GitHub </i> »'
how_to_use_them_description: 'Demos por feito que queres etiquetar as novas entradas con « <i>lectura rápida</i> » cando o tempo de lectura non supera os 3 minutos.<br />Neste caso, tes que poñer « TempodeLectura &lt;= 3 » no campo da <i>Regra</i> e « <i>lectura rápida</i> » no campo da <i>Etiqueta</i> .<br />Podes engadir varias etiquetas ó mesmo tempo separándoas cunha vírgula: « <i>lectura rápida, teño que ler</i> »<br />Pódense establecer regras complexas usando os operadores predefinidos: se o « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » entón etiquetar como « <i>lectura longa, php</i> »'
operator_description:
notmatches: 'Comproba que o <i>obxecto</i> non contén a <i>busca</i> (non dif. maiúsculas).<br />Exemplo: <code>título non contén "saúde"</code>'
matches: 'Comproba que un <i>obxecto</i> concorda coa <i>busca</i> (dif. maius.-minus.).<br />Exemplo: <code>título contén "saúde"</code>'
@ -312,7 +317,7 @@ config:
table_method: Método
googleTwoFactor_label: Usando app OTP (usa unha app como andOTP, FreeOTP, Authy ou Google Authenticator, para obter o código único)
emailTwoFactor_label: Utilizando email (recibirás código por email)
login_label: Conexión (non se pode cambiar
login_label: Identificador (non se pode cambiar)
email_label: Email
name_label: Nome
two_factor_description: Se activas o segundo factor de autenticación recibirás un email cun código en cada nova conexión que aínda non verificases.
@ -382,6 +387,7 @@ menu:
archive: Arquivo
starred: Con estrela
unread: Sen ler
with_annotations: Con notas
security:
register:
go_to_account: Vai á túa conta
@ -391,11 +397,11 @@ security:
login:
cancel: Cancelar
password: Contrasinal
username: Nome de usuaria
register: Abre unha conta
submit: Conectar
username: Identificador
register: Crea unha conta
submit: Acceder
forgot_password: Esqueceches o contrasinal?
keep_logged_in: Manterme conectada
keep_logged_in: Manter a sesión
page_title: Benvida a wallabag!
import:
wallabag_v2:
@ -449,6 +455,10 @@ import:
elcurator:
description: Este importador traerá todos os teus ficheiros de elCurator. Vai ós axustes na túa conta elCurator e após exporta o teu contido. Obterás un ficheiro JSON.
page_title: Importar > elCurator
delicious:
page_title: Importar > del.icio.us
how_to: Elixe a exportación de Delicious e preme no botón inferior para subilo e importalo.
description: Este importador traerá tódolos teus marcadores Delicious. Desde 2021, podes exportar outra vez os teus datos usando a páxina de exportación (https://del.icio.us/export). Elixe o formato "JSON" e descárgao (de tipo "delicious_export.2021.02.06_21.10.json").
export:
unknown: Descoñecido
footer_template: <div style="text-align:center;"><p>Producido por wallabag con %method%</p><p>Abre <a href="https://github.com/wallabag/wallabag/issues">un issue</a> se tes problemas para visualizar este E-Book no teu dispositivo.</p></div>
@ -530,7 +540,7 @@ developer:
paragraph_7: Esta chamada devolverá todas as entradas do teu usuario.
paragraph_6: 'O access_token é útil para chamar ao punto de acceso da API. Por exemplo:'
paragraph_5: 'A API responderá con algo semellante a:'
paragraph_4: 'Agora, crea o token (substitúe client_id, client_secret, username e password cos valores axeitados):'
paragraph_4: 'Agora, crea o token (substitúe client_id, client_secret, identificador e contrasinal cos valores axeitados):'
paragraph_3: Para crear este token, tes que <a href="%link%">crear un novo cliente</a>.
paragraph_2: Precisas un token para comunicarte entre a túa app de terceiros e a API de wallabag.
paragraph_1: As seguintes ordes fan uso da <a href="https://github.com/jkbrzt/httpie">biblioteca HTTPie</a>. Comproba que está instalada no teu sistema antes de utilizala.
@ -660,7 +670,7 @@ site_credential:
save: Gardar
password_label: Contrasinal
host_label: Servidor (subdominio.exemplo.org, .exemplo.org, etc.)
username_label: Conectar
username_label: Identificador
list:
create_new_one: Crear unha nova credencial
no: Non
@ -673,7 +683,7 @@ site_credential:
page_title: Xestión das credenciais do sitio
user:
search:
placeholder: Filtrar por nome de usuaria ou email
placeholder: Filtrar por identificador ou email
form:
back_to_list: Volver á lista
delete_confirm: Tes a certeza?
@ -681,14 +691,14 @@ user:
save: Gardar
twofactor_google_label: Segundo factor de autenticación por app OTP
twofactor_email_label: Segundo factor de autenticación por email
last_login_label: Última conexión
last_login_label: Último acceso
enabled_label: Activado
email_label: Email
plain_password_label: ????
repeat_new_password_label: Repetir o novo contrasinal
password_label: Contrasinal
name_label: Nome
username_label: Nome de usuaria
username_label: Identificador
list:
create_new_one: Crear nova usuaria
no: Non

View File

@ -176,7 +176,7 @@ config:
title: ČPP
meaning: Značenje
variables_available_title: Koje varijable i operateri mogu koristiti za pisanje pravila?
how_to_use_them_description: 'Pretpostavimo da želiš označiti nove zapise kao <i>kratko čitanje</i> kad je vrijeme čitanja manje od 3 minute.<br />U tom slučaju, postavi „readingTime &lt;= 3” u polju <i>Pravilo</i> i <i>kratko čitanje</i> u polju <i>Oznake</i>.<br />Moguće je dodati više oznaka istovremeno, odvajajući ih zarezom: „<i>kratko čitanje, moram čitati</i>”<br />Složena pravila mogu se napisati pomoću unaprijed definiranih operatora: ako „<i>readingTime &gt;= 5 AND domainName = "github.com"</i>”, onda označi kao „<i>dugo čitanje, GitHub </i>”'
how_to_use_them_description: 'Pretpostavimo da želiš označiti nove zapise kao <i>kratko čitanje</i> kad je vrijeme čitanja manje od 3 minute.<br />U tom slučaju, postavi „readingTime &lt;= 3” u polju <i>Pravilo</i> i <i>kratko čitanje</i> u polju <i>Oznake</i>.<br />Moguće je dodati više oznaka istovremeno, odvajajući ih zarezom: „<i>kratko čitanje, moram čitati</i>”<br />Složena pravila mogu se napisati pomoću unaprijed definiranih operatora: ako „<i>readingTime &gt;= 5 AND domainName = "www.php.net"</i>”, onda označi kao „<i>dugo čitanje, php</i>”'
delete_rule_label: ukloni
edit_rule_label: uredi
if_label: ako

View File

@ -129,7 +129,7 @@ config:
tagging_rules_definition_title: A „címkézési szabályok” mit jelent?
tagging_rules_definition_description: Ezek olyan szabályok amiket a Wallabag használ arra, hogy automatikusan felcímkézze az új bejegyzéseket.<br />Minden egyes alkalommal, amikor egy újabb bejegyzés hozzáadásra kerül, minden címkézési szabály fel lesz használva a beállított címkék hozzáadására, így mentve meg attól a problémától, hogy kézzel osztályozza a bejegyzéseit.
how_to_use_them_title: Hogyan használhatom ezeket?
how_to_use_them_description: 'Tételezzük fel, hogy szeretné az új bejegyzéseket úgy címkézni mint « <i>rövid olvasnivaló</i> », ha az elolvasási idejük 3 perc alatt van.<br />Ebben az esetben ezt írja be a <i>Szabály</i> mezőbe: « readingTime &lt;= 3 », a <i>Címkék</i> mezőbe pedig: « <i>rövid olvasnivaló</i> ».<br />Több címke is hozzáadható egyszerre, ha vesszővel elválasztja őket: « <i>rövid olvasnivaló, el kell olvasni</i> »<br />Összetett szabályok írhatók előre definiált operátorok használatával: ha « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » akkor címkézd meg mint « <i>hosszú olvasnivaló, GitHub</i> »'
how_to_use_them_description: 'Tételezzük fel, hogy szeretné az új bejegyzéseket úgy címkézni mint « <i>rövid olvasnivaló</i> », ha az elolvasási idejük 3 perc alatt van.<br />Ebben az esetben ezt írja be a <i>Szabály</i> mezőbe: « readingTime &lt;= 3 », a <i>Címkék</i> mezőbe pedig: « <i>rövid olvasnivaló</i> ».<br />Több címke is hozzáadható egyszerre, ha vesszővel elválasztja őket: « <i>rövid olvasnivaló, el kell olvasni</i> »<br />Összetett szabályok írhatók előre definiált operátorok használatával: ha « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » akkor címkézd meg mint « <i>hosszú olvasnivaló, php</i> »'
variables_available_title: Milyen változókat és operátorokat használhatok a szabályok írásához?
variables_available_description: 'A következő változók és operátorok használhatók címkézési szabályok létrehozásához:'
meaning: Jelentés

View File

@ -1,3 +1,10 @@
security:
login:
page_title: Selamat datang di wallabag!
keep_logged_in: Biarkan saya tetap masuk
forgot_password: Lupa password?
submit: Masuk
register: Daftar
username: Nama pengguna
password: Password
cancel: Batal

View File

@ -140,7 +140,7 @@ config:
tagging_rules_definition_title: Cosa significa «regole di etichettatura»?
tagging_rules_definition_description: Sono regole utilizzate da wallabag per etichettare automaticamente i contenuti.<br />Ogni volta che viene aggiunto un contenuto, tutte le regole di etichettatura vengono utilizzate per aggiungere le etichette configurate, risparmiandoti il lavoro di classificare i contenuti manualmente.
how_to_use_them_title: Come si usano?
how_to_use_them_description: 'Diciamo che vuoi etichettare un contenuto come « <i>lettura veloce</i> » quando il tempo di lettura è inferiore ai 3 minuti.<br />In questo case, devi mettere « readingTime &lt;= 3 » nel campo <i>Regola</i> e « <i>lettura veloce</i> » nel campo <i>Etichette</i>.<br />Molte etichette si possono aggiungere contemporanemente separandole con una virgola: « <i>lettura veloce, da leggere</i> »<br />Regole complesse possono essere scritte utilizzando gli operatori predefiniti: se « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » allora etichetta « <i>lettura lunga, GitHub </i> »'
how_to_use_them_description: 'Diciamo che vuoi etichettare un contenuto come « <i>lettura veloce</i> » quando il tempo di lettura è inferiore ai 3 minuti.<br />In questo case, devi mettere « readingTime &lt;= 3 » nel campo <i>Regola</i> e « <i>lettura veloce</i> » nel campo <i>Etichette</i>.<br />Molte etichette si possono aggiungere contemporanemente separandole con una virgola: « <i>lettura veloce, da leggere</i> »<br />Regole complesse possono essere scritte utilizzando gli operatori predefiniti: se « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » allora etichetta « <i>lettura lunga, php</i> »'
variables_available_title: Quali operatori e variabili posso utilizzare per scrivere delle regole?
variables_available_description: 'I seguenti operatori e variabili posso essere utilizzati per scrivere regole di etichettatura:'
meaning: Significato

View File

@ -165,7 +165,7 @@ config:
notmatches: <i>対象</i>が<i>検索</i>と一致しないことをテストする(大文字小文字の区別なし)。<br />例:<code>title notmatches "football"</code>
matches: <i>対象</i>が<i>検索</i>と一致するかテストする(大文字小文字の区別なし)。<br />例:<code>title matches "football"</code>
tagging_rules_definition_description: wallabag ではルールを使用することで新しい記事へ自動的にタグ付けする事ができます。<br />新しい記事が追加されるたびに、あなたが設定したすべてのタグ付けルールを使用してタグが追加されるので、記事を手動で分類する手間が省けます。
how_to_use_them_description: 'あなたは読了時間が3分以下の時に新しい記事へ « <i>短い文章</i> » のタグ付けをしたいとします。<br />この場合、<i>ルール</i>に « readingTime &lt;= 3 »と<i>タグ</i>に « <i>短い文章</i> » を設定します。<br />コンマで区切ることにより複数のタグを追加することができます: « <i>短い文章, 必読</i> »<br />演算子を使用することにより複雑なルールを書くことができます: もし « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> »ならばタグ付け « <i>長い文章, GitHub </i> »'
how_to_use_them_description: 'あなたは読了時間が3分以下の時に新しい記事へ « <i>短い文章</i> » のタグ付けをしたいとします。<br />この場合、<i>ルール</i>に « readingTime &lt;= 3 »と<i>タグ</i>に « <i>短い文章</i> » を設定します。<br />コンマで区切ることにより複数のタグを追加することができます: « <i>短い文章, 必読</i> »<br />演算子を使用することにより複雑なルールを書くことができます: もし « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> »ならばタグ付け « <i>長い文章, php</i> »'
delete_rule_label: 削除
export: エクスポート
import_submit: インポート

View File

@ -400,7 +400,7 @@ config:
title: 문서 제목
label: 변수
tagging_rules_definition_description: wallabag 에서 자동으로 새 문서에 태그를 지정하는 데 사용하는 규칙입니다. <br /> 태그 지정 규칙이 새 문서가 추가 될 때마다 태그를 구성하는 데 사용되므로, 수동으로 분류하는 수고를 덜 수 있습니다.
how_to_use_them_description: '읽기 시간이 3 분 미만인 경우 «<i> 짧은 읽기 </i>» 와 같은 새 기사에 태그를 지정한다고 가정합니다. <br />이 경우 <i> 규칙</i> 을 입력해야합니다. <i>태그</i> 필드에 « readingTime &lt;= 3 » 을 입력하고 « <i>짧은 읽기</i>» 를 입력하십시오. <br /> 여러 태그를 쉼표로구분하여 한 번에 추가 할 수 있습니다: « <i> 짧은 읽기, 반드시 읽기</i> » <br /> 사전 정의 된 연산자를 사용하여 복잡한 규칙을 작성할 수 있습니다: 만약 « <i>readingTime &gt;= 5 AND domainName = "github .com"</i> » 다음으로 태그 «<i> 긴 읽기, GitHub </i>»'
how_to_use_them_description: '읽기 시간이 3 분 미만인 경우 «<i> 짧은 읽기 </i>» 와 같은 새 기사에 태그를 지정한다고 가정합니다. <br />이 경우 <i> 규칙</i> 을 입력해야합니다. <i>태그</i> 필드에 « readingTime &lt;= 3 » 을 입력하고 « <i>짧은 읽기</i>» 를 입력하십시오. <br /> 여러 태그를 쉼표로구분하여 한 번에 추가 할 수 있습니다: « <i> 짧은 읽기, 반드시 읽기</i> » <br /> 사전 정의 된 연산자를 사용하여 복잡한 규칙을 작성할 수 있습니다: 만약 « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » 다음으로 태그 «<i> 긴 읽기, php</i>»'
operator_description:
and: 하나의 규칙 그리고 다른 규칙
or: 하나의 규칙 또는 다른 규칙

View File

@ -102,7 +102,7 @@ config:
how_to_use_them_title: Hoe gebruik is ze?
tagging_rules_definition_title: Wat betekend "label regels"?
title: FAQ
how_to_use_them_description: 'Laten we aannemen dat u nieuwe vermeldingen wilt labelen als « <i>korte lezing</i> » wanneer de leestijd minder dan 3 minuten bedraagt.<br />In dat geval moet u « readingTime &lt;= 3 » in het <i>Regelveld</i> en « <i>korte lezing</i> » in het <i>Labels</i> veld.<br />Meerdere labels kunnen tegelijkertijd worden toegevoegd door ze te scheiden met een komma:« <i>korte lezing, belangrijk</i> »<br />Complexe regels kunnen worden geschreven met behulp van vooraf gedefinieerde operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » label dan als« <i>lange lezing, GitHub </i> »'
how_to_use_them_description: 'Laten we aannemen dat u nieuwe vermeldingen wilt labelen als « <i>korte lezing</i> » wanneer de leestijd minder dan 3 minuten bedraagt.<br />In dat geval moet u « readingTime &lt;= 3 » in het <i>Regelveld</i> en « <i>korte lezing</i> » in het <i>Labels</i> veld.<br />Meerdere labels kunnen tegelijkertijd worden toegevoegd door ze te scheiden met een komma:« <i>korte lezing, belangrijk</i> »<br />Complexe regels kunnen worden geschreven met behulp van vooraf gedefinieerde operators: if « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » label dan als« <i>lange lezing, php</i> »'
tags_label: Labels
rule_label: Regel
edit_rule_label: wijzig

View File

@ -136,7 +136,7 @@ config:
tagging_rules_definition_title: Qué significa las règlas d'etiquetas automaticas?
tagging_rules_definition_description: Son de règlas utilizadas per wallabag 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 &lt;= 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 n'emplegant d'operators predefinits:se « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » alara atribuir las etiquetas « <i>lectura longa, github </i> »
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 &lt;= 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 n'emplegant d'operators predefinits:se « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » alara atribuir las etiquetas « <i>lectura longa, php</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

View File

@ -150,7 +150,7 @@ config:
tagging_rules_definition_title: Co oznaczają « reguły tagowania » ?
tagging_rules_definition_description: Istnieją reguły używane przez wallabag służące do automatycznego tagowania nowych wpisów.<br />Za każdym razem kiedy dodasz nowy wpis, zostaną użyte wszystkie skonfigurowane przez ciebie reguły. Dzięki temu unikniesz konieczności ręcznego ich klasyfikowania.
how_to_use_them_title: Jak ich użyć?
how_to_use_them_description: 'Załóżmy, że chcesz otagować nowe wpisy jako « <i>krótki tekst</i> » jeżeli czas czytania wynosi mniej niż 3 minuty.<br />W tym przypadku powinieneś umieścić « czasCzytania &lt;= 3 » w polu <i>Reguła</i> i « <i>krótki tekst</i> » w polu <i>Tags</i> .<br />Wiele tagów może zostać dodanych jednocześnie rozdzielając je przecinkami: « <i>do szybkiego przeczytania, koniecznie przeczytać</i> »<br />Kompleksowe reguły mogą być napisane przy użyciu operatorów: jeżeli « <i>czasCzytania &gt;= 5 I nazwaDomeny = "github.com"</i> » wtedy otaguj jako « <i>dłuższy tekst, GitHub </i> »'
how_to_use_them_description: 'Załóżmy, że chcesz otagować nowe wpisy jako « <i>krótki tekst</i> » jeżeli czas czytania wynosi mniej niż 3 minuty.<br />W tym przypadku powinieneś umieścić « czasCzytania &lt;= 3 » w polu <i>Reguła</i> i « <i>krótki tekst</i> » w polu <i>Tags</i> .<br />Wiele tagów może zostać dodanych jednocześnie rozdzielając je przecinkami: « <i>do szybkiego przeczytania, koniecznie przeczytać</i> »<br />Kompleksowe reguły mogą być napisane przy użyciu operatorów: jeżeli « <i>czasCzytania &gt;= 5 I nazwaDomeny = "www.php.net"</i> » wtedy otaguj jako « <i>dłuższy tekst, php</i> »'
variables_available_title: Jakich zmiennych i operatorów mogę użyć przy pisaniu reguł?
variables_available_description: 'Następujące zmienne i operatory mogą być użyte przy tworzeniu reguł tagowania:'
meaning: Znaczenie

View File

@ -24,17 +24,23 @@ menu:
internal_settings: 'Configurações Internas'
import: 'Importar'
howto: 'How to'
logout: 'Sair'
logout: 'Encerrar sessão'
about: 'Sobre'
search: 'Pesquisa'
save_link: 'Salvar um link'
back_to_unread: 'Voltar para os artigos não lidos'
users_management: 'Gestão de Utilizadores'
theme_toggle_light: Tema claro
theme_toggle_dark: Tema escuro
theme_toggle_auto: Tema automático
developer: Gestão de clientes da API
top:
add_new_entry: 'Adicionar uma nova entrada'
search: 'Pesquisa'
filter_entries: 'Filtrar entradas'
export: 'Exportar'
random_entry: Saltar para uma entrada aleatória dessa lista
account: Conta
search_form:
input_label: 'Digite aqui sua pesquisa'
footer:
@ -49,12 +55,15 @@ config:
tab_menu:
settings: 'Configurações'
rss: 'RSS'
user_info: 'Informação do Utilizador'
user_info: 'Informação do utilizador'
password: 'Palavra-passe'
rules: 'Regras de tags'
new_user: 'Adicionar um utilizador'
ignore_origin: Ignorar regras da origem
reset: Área de reinicialização
feed: Feeds
form:
save: 'Salvar'
save: 'Guardar'
form_settings:
theme_label: 'Tema'
items_per_page_label: 'Itens por página'
@ -67,6 +76,8 @@ config:
300_word: 'Posso ler ~300 palavras por minuto'
400_word: 'Posso ler ~400 palavras por minuto'
pocket_consumer_key_label: 'Chave do consumidor do Pocket para importar conteúdo'
help_theme: o wallabag é personalizável. Pode escolher o tema que pretender aqui.
help_pocket_consumer_key: Necessário para importar do Pocket. Pode criá-lo na sua conta do Pocket.
form_rss:
description: 'Feeds RSS providos pelo wallabag permitem que você leia seus artigos salvos em seu leitor de RSS favorito. Você precisa gerar um token primeiro.'
token_label: 'Token RSS'
@ -100,7 +111,7 @@ config:
tagging_rules_definition_title: 'O que as « regras de tags » significam?'
tagging_rules_definition_description: 'São regras usadas pelo Wallabag para automaticamente adicionar tags em novos artigos.<br />Cada vez que um novo artigo é adicionado, todas as regras de tags podem ser usadas para adicionar as tags que você configurou, ajudando-o com o problema de classificar manualmente seus artigos.'
how_to_use_them_title: 'Como eu as utilizo?'
how_to_use_them_description: 'Vamos dizer que você deseja adicionar a tag « <i>leitura rápida</i> » quando o tempo de leitura for menor que 3 minutos.<br />Neste caso, você deve « readingTime &lt;= 3 » no campo <i>Regra</i> e « <i>leitura rápida</i> » no campo <i>Tags</i>.<br />Diversas tags podem ser adicionadas simultâneamente separando-as com vírgula: « <i>leitura rápida, precisa ser lido</i> »<br />Regras complexas podem ser escritas usando os seguintes operadores pré-definidos: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » então adicione a tag « <i>leitura longa, github </i> »'
how_to_use_them_description: 'Vamos dizer que você deseja adicionar a tag « <i>leitura rápida</i> » quando o tempo de leitura for menor que 3 minutos.<br />Neste caso, você deve « readingTime &lt;= 3 » no campo <i>Regra</i> e « <i>leitura rápida</i> » no campo <i>Tags</i>.<br />Diversas tags podem ser adicionadas simultâneamente separando-as com vírgula: « <i>leitura rápida, precisa ser lido</i> »<br />Regras complexas podem ser escritas usando os seguintes operadores pré-definidos: if « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » então adicione a tag « <i>leitura longa, php</i> »'
variables_available_title: 'Quais variáveis e operadores eu posso usar para escrever regras?'
variables_available_description: 'As seguintes variáveis e operadores podem ser usados para criar regras de tags:'
meaning: ''
@ -126,6 +137,10 @@ config:
or: 'Uma regra OU outra'
and: 'Uma regra E outra'
matches: 'Testa que um <i>assunto</i> corresponde a uma <i>pesquisa</i> (maiúscula ou minúscula).<br />Exemplo: <code>título corresponde a "futebol"</code>'
form_feed:
feed_link:
all: Todos
feed_limit: Número de itens no feed
entry:
default_title: 'Título da entrada'
page_titles:

View File

@ -150,7 +150,7 @@ config:
tagging_rules_definition_title: 'Что значит "правила тегирования"?'
tagging_rules_definition_description: 'Правила, по которым wallabag автоматически добавит теги для новых записей.<br />Каждый раз, при добавлении новых записей, будут проставляться теги к записям, согласно настроенным правилам тегирования, это избавит Вас от необходимости проставлять теги для каждой записи вручную.'
how_to_use_them_title: 'Как мне их использовать?'
how_to_use_them_description: 'Предположим, вы хотите пометить новые записи как "<i>короткая</i>", когда на чтение уйдет меньше 3 минут.<br />В этом случае, установите " readingTime &lt;= 3 " в поле <i>Правила</i> и "<i>короткая</i>" в поле <i>Теги</i>.<br />Несколько тегов могут добавляться одновременно, разделяя их запятой: "<i>короткая, прочитать обязательно</i>" <br />Сложные правила могут быть записаны с использованием предопределенных операторов: если "<i>readingTime &gt;= 5 AND domainName = \"github.com\"</i> " тогда тег будет "<i>долго читать, GitHub </i>"'
how_to_use_them_description: 'Предположим, вы хотите пометить новые записи как "<i>короткая</i>", когда на чтение уйдет меньше 3 минут.<br />В этом случае, установите " readingTime &lt;= 3 " в поле <i>Правила</i> и "<i>короткая</i>" в поле <i>Теги</i>.<br />Несколько тегов могут добавляться одновременно, разделяя их запятой: "<i>короткая, прочитать обязательно</i>" <br />Сложные правила могут быть записаны с использованием предопределенных операторов: если "<i>readingTime &gt;= 5 AND domainName = \"www.php.net\"</i> " тогда тег будет "<i>долго читать, php</i>"'
variables_available_title: 'Какие переменные и операторы я могу использовать для написания правил?'
variables_available_description: 'Следующие переменные и операторы могут использоваться для создания правил тегов:'
meaning: 'Смысл'

View File

@ -124,7 +124,7 @@ config:
tagging_rules_definition_title: 'ข้อบังคับการแท็กคืออะไร?'
tagging_rules_definition_description: 'การใช้ข้อบังคับโดย Wallabag ไปแท็กรายการใหม่อัตโนมัติ <br />แต่ละช่วงรายการใหม่จะเป็นการเพิ่ม, การแท็กข้อบังคับทั้งหมดจะใช้การเพิ่มแท็กที่คุณกำหนดค่า, ดังนั้นการบันทึกของคุณจะเป็นปัญหาในการจัดหมวดหมู่ของรายการของคุณ'
how_to_use_them_title: 'ฉันจะใช้ได้อย่างไร?'
how_to_use_them_description: 'การสมมติที่คุณต้องการแท็กรายการใหม่ไปยัง « <i>การอ่านแบบสั้น</i> » เมื่ออ่านในช่วง 3 นาที <br />ในกรณีนี้, คุณควรใส่ « readingTime &lt;= 3 » ภายใน <i>ข้อบังคับ</i> ของพื่นที่และ « <i>การอ่านแบบสั้น</i> » ภายใน <i>แท็ก</i> ของพื้นที่<br />ในหลายแท็กสามารถเพิ่มได้พร้อมกันโดยแบ่งกับ comma: « <i>การอ่านแบบสั้น, ต้องอ่าน</i> »<br />ข้อบังคับที่ซับซ้อนสามารถเขียนโดยการใช้การดำเนินการที่กำหนดไว้ก่อน: ถ้า « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » ดังนั้นแท็กไปยัง « <i>การอ่านแบบยาว, github </i> »'
how_to_use_them_description: 'การสมมติที่คุณต้องการแท็กรายการใหม่ไปยัง « <i>การอ่านแบบสั้น</i> » เมื่ออ่านในช่วง 3 นาที <br />ในกรณีนี้, คุณควรใส่ « readingTime &lt;= 3 » ภายใน <i>ข้อบังคับ</i> ของพื่นที่และ « <i>การอ่านแบบสั้น</i> » ภายใน <i>แท็ก</i> ของพื้นที่<br />ในหลายแท็กสามารถเพิ่มได้พร้อมกันโดยแบ่งกับ comma: « <i>การอ่านแบบสั้น, ต้องอ่าน</i> »<br />ข้อบังคับที่ซับซ้อนสามารถเขียนโดยการใช้การดำเนินการที่กำหนดไว้ก่อน: ถ้า « <i>readingTime &gt;= 5 AND domainName = "www.php.net"</i> » ดังนั้นแท็กไปยัง « <i>การอ่านแบบยาว, php</i> »'
variables_available_title: 'ตัวแปรและตัวดำเนินการสามารถให้ใช้การเขียนข้อบังคับได้ที่ไหน?'
variables_available_description: 'การติดตามตัวแปรและตัวดำเนินการสามารถใช้การสร้างข้อบังคับแท็ก:'
meaning: 'ความหมาย'

View File

@ -164,7 +164,7 @@ config:
matches: '<i>konu</i>nun <i>arama</i> kriterine (büyük küçük harf duyarsız) eşleştiğini test eder.<br />Örnek: <code>title matches "futbol"</code>'
notmatches: '<i>konu</i>nun <i>arama</i> kriterine (büyük küçük harf duyarsız) eşleşmediğini test eder.<br />Örnek: <code>title nonmatches "futbol"</code>'
tagging_rules_definition_description: Bunlar wallabag'in yeni makaleleri otomatik olarak etiketleyebilmesi için tanımlanmış kurallardır.<br />Her yeni makale eklendiğinde, ayarladığınız tüm etiket kuralları kullanılarak makaleniz etiketlenecektir. Bu sayede her bir makaleyi tek tek etiketlemekle uğraşmanız gerekmeyecek.
how_to_use_them_description: 'Örneğin, 3 dakikadan kısa okuma süresi olan yeni makaleleri « <i>kısa okumalar</i>» etiketi ile etiketlemek istiyorsunuz diyelim.<br />Bu durumda, <i>Kural</i> alanına « readingTime &lt; = 3 » değeri, ve de <i>Etiketler</i> alanına da <i>kısa okumalar</i> değerini girmelisiniz.<br /> Eğer birden fazla etiket tanımlamak istiyorsanız arasına virgül koyabilirsiniz: « <i>kısa okumalar, mutlaka oku</i> »<br />Daha kompleks kurallar önden tanımlanmış operatörlerle girilebilir: Eğer « <i> readingTime &gt; = AND domainName = "github.com"</i> » ise, o zaman « <i>uzun okumalar, GitHub</i> » gibi girebilirsiniz'
how_to_use_them_description: 'Örneğin, 3 dakikadan kısa okuma süresi olan yeni makaleleri « <i>kısa okumalar</i>» etiketi ile etiketlemek istiyorsunuz diyelim.<br />Bu durumda, <i>Kural</i> alanına « readingTime &lt; = 3 » değeri, ve de <i>Etiketler</i> alanına da <i>kısa okumalar</i> değerini girmelisiniz.<br /> Eğer birden fazla etiket tanımlamak istiyorsanız arasına virgül koyabilirsiniz: « <i>kısa okumalar, mutlaka oku</i> »<br />Daha kompleks kurallar önden tanımlanmış operatörlerle girilebilir: Eğer « <i> readingTime &gt; = AND domainName = "www.php.net"</i> » ise, o zaman « <i>uzun okumalar, php</i> » gibi girebilirsiniz'
if_label: eğer
then_tag_as_label: ise, şu şekilde etiketle
delete_rule_label: sil

View File

@ -37,6 +37,7 @@ menu:
theme_toggle_auto: 自动根据系统设置应用主题
theme_toggle_dark: 深色主题
theme_toggle_light: 浅色主题
with_annotations: 带注释
top:
add_new_entry: '添加新项目'
search: '搜索'
@ -160,7 +161,7 @@ config:
tagging_rules_definition_title: '“标签规则”是什么意思?'
tagging_rules_definition_description: '它们是 wallabag 用来给新项目自动打上标签的规则。<br />每当一个新项目被添加进来,所有标签规则都会作用于这个项目,为它打上你配置好的标签,免去你手动分类的麻烦。'
how_to_use_them_title: '我该怎么使用它们?'
how_to_use_them_description: '假设你想要将一个阅读时间短于 3 分钟的新项目标记为“ <i>短阅读</i> ”。<br /> 你应该在 <i>规则</i> 区域输入“readingTime &lt;= 3”并在 <i>标签</i> 区域输入“<i>短阅读</i>”。<br /> 可以同时添加数个标签,只需要用半角逗号来隔开它们,如:“<i>短阅读, 必读</i>”<br /> 可以使用预定义的操作符来编写复杂的规则,如:如果“ <i>readingTime &gt;= 5 AND domainName ="github.com"</i>”则标记为“<i>长阅读, github</i>”'
how_to_use_them_description: '假设你想要将一个阅读时间短于 3 分钟的新项目标记为“ <i>短阅读</i> ”。<br /> 你应该在 <i>规则</i> 区域输入“readingTime &lt;= 3”并在 <i>标签</i> 区域输入“<i>短阅读</i>”。<br /> 可以同时添加数个标签,只需要用半角逗号来隔开它们,如:“<i>短阅读, 必读</i>”<br /> 可以使用预定义的操作符来编写复杂的规则,如:如果“ <i>readingTime &gt;= 5 AND domainName ="www.php.net"</i>”则标记为“<i>长阅读, php</i>”'
variables_available_title: '我可以使用哪些变量和操作符来编写规则?'
variables_available_description: '可以使用以下变量和操作符来编写标签规则:'
meaning: '含义'
@ -240,6 +241,8 @@ entry:
filtered_search: '根据搜索筛选:'
untagged: '无标签项目'
all: '所有项目'
with_annotations: 带注释的条目
same_domain: 同一域名
list:
number_on_the_page: '{0} 没有对应项目。|{1} 有 1 个项目。|]1,Inf[ 有 %count% 个项目。'
reading_time: '预计阅读时间'
@ -253,6 +256,8 @@ entry:
toogle_as_star: '添加到收藏'
delete: '删除'
export_title: '导出'
assign_search_tag: 将此搜索作为标签分配给每个结果
show_same_domain: 显示同一域名的文章
filters:
title: '筛选器'
status_label: '状态'
@ -277,6 +282,7 @@ entry:
action:
clear: '清除'
filter: '筛选'
annotated_label: 已注释
view:
left_menu:
back_to_top: '返回顶部'
@ -534,6 +540,10 @@ import:
page_title: "导入 > Pinboard"
description: '这个导入器会导入你 Pinboard 账户中的所有内容。 在 backup 页面https://pinboard.in/settings/backup点击 "Bookmarks" 一栏下的 "JSON"。你将会下载得到一个 JSON 文件(比如"pinboard_export")。'
how_to: '请选择你的 Pinboard 导出文件并点击下方按钮来上传和导入它。'
delicious:
how_to: 请选择你的 Delicious 导出,点击下面的按钮上传并导入。
page_title: 导入 > del.icio.us
description: 此导入器将导入你所有的 Delicious 书签。 自 2021 年起,你可以使用导出页面 (https://del.icio.us/export) 再次从中导出数据。 选择“JSON”格式并下载如“delicious_export.2021.02.06_21.10.json”
developer:
page_title: 'API 客户端管理'
welcome_message: '欢迎来到 wallabag API'

View File

@ -105,7 +105,7 @@
<a href="javascript: void(null);" id="download-form-close" class="close-button--popup close-button">&times;</a>
<ul>
{% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">EPUB</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">MOBI</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">MOBI (deprecated)</a></li>{% endif %}
{% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'pdf', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">PDF</a></li>{% endif %}
{% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'json', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">JSON</a></li>{% endif %}
{% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'csv', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">CSV</a></li>{% endif %}

View File

@ -36,7 +36,7 @@
{% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" rel="noopener" title="carrot"><span>Carrot</span></a></li>{% endif %}
{% if craue_setting('show_printlink') %}<li><a title="{{ 'entry.view.left_menu.print'|trans }}" class="tool icon icon-print" href="javascript: window.print();"><span>{{ 'entry.view.left_menu.print'|trans }}</span></a></li>{% endif %}
{% if craue_setting('export_epub') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'epub' }) }}" title="Generate ePub file">EPUB</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'mobi' }) }}" title="Generate Mobi file">MOBI</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'mobi' }) }}" title="Generate Mobi file">MOBI (deprecated)</a></li>{% endif %}
{% if craue_setting('export_pdf') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'pdf' }) }}" title="Generate PDF file">PDF</a></li>{% endif %}
<li><a href="mailto:siteconfig@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.label'|trans }}" class="tool bad-display icon icon-delete"><span>{{ 'entry.view.left_menu.problem.label'|trans }}</span></a></li>
</ul>

View File

@ -57,6 +57,11 @@
{% endblock %}
{% block messages %}
<div style="margin-top: 10px; color: #e01a15; border-left: 20px #e01a15 solid; padding-left: 10px; border-bottom: 6px #e01a15 solid; border-bottom-left-radius: 10px;">
<h3>⚠️ You are using the Baggy theme which is now deprecated.</h3>
<p>It will be removed in the next version. You can use the Material theme by <a href="{{ path('config') }}">updating the theme config</a>.</p>
</div>
{% for flashMessage in app.session.flashbag.get('notice') %}
<div class="messages success">
<a href="#" class="closeMessage">×</a>

View File

@ -12,6 +12,10 @@
{{ 'entry.page_titles.filtered_tags'|trans }} {{ filter }}
{% elseif currentRoute == 'untagged' %}
{{ 'entry.page_titles.untagged'|trans }}
{% elseif currentRoute == 'same_domain' %}
{{ 'entry.page_titles.same_domain'|trans }}
{% elseif currentRoute == 'annotated' %}
{{ 'entry.page_titles.with_annotations'|trans }}
{% else %}
{{ 'entry.page_titles.unread'|trans }}
{% endif %}

View File

@ -11,8 +11,8 @@
<title>wallabag — {{type}} {{ tag }} feed</title>
<subtitle type="html">Atom feed for entries tagged with {{ tag }}</subtitle>
{% endif %}
{% if entries | length > 0 %}
<updated>{{ (entries | first).createdAt | date('c') }}</updated> {# Indicates the last time the feed was modified in a significant way. #}
{% if updated %}
<updated>{{ updated | date('c') }}</updated> {# Indicates the last time the feed was modified in a significant way. #}
{% endif %}
<link rel="self" type="application/atom+xml" href="{{ app.request.uri }}"/>
{% if entries.hasPreviousPage %}

View File

@ -9,9 +9,16 @@
<ul class="tools right">
<li>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
<a title="{{ 'entry.list.delete'|trans }}" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}"><i class="material-icons">delete</i></a>
<a title="{{ 'entry.list.show_same_domain'|trans }}" class="tool grey-text" href="{{ path('same_domain', { 'id': entry.id }) }}" data-action="same_domain" data-entry-id="{{ entry.id }}"><i class="material-icons">language</i></a>
</li>
<li>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}" data-action="archived" data-entry-id="{{ entry.id }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a>
</li>
<li>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', { 'id': entry.id }) }}" data-action="star" data-entry-id="{{ entry.id }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
</li>
<li>
<a title="{{ 'entry.list.delete'|trans }}" data-action-confirm="{{ 'entry.confirm.delete'|trans }}" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}" data-action="delete" data-entry-id="{{ entry.id }}"><i class="material-icons">delete</i></a>
</li>
</ul>
</div>

View File

@ -1,4 +1,4 @@
<div class="card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
<div class="card entry-card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
<div class="card-body">
<div class="card-fullimage">
<ul class="card-entry-labels">

View File

@ -9,6 +9,7 @@
{% include "@WallabagCore/themes/material/Entry/Card/_content.html.twig" with {'entry': entry, 'withMetadata': true, 'subClass': 'metadata'} only %}
<ul class="tools-list hide-on-small-only">
<li>
<a title="{{ 'entry.list.show_same_domain'|trans }}" class="tool grey-text" href="{{ path('same_domain', { 'id': entry.id }) }}"><i class="material-icons">language</i></a>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
<a title="{{ 'entry.list.delete'|trans }}" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}"><i class="material-icons">delete</i></a>

View File

@ -1,4 +1,4 @@
<div class="card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
<div class="card entry-card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
<div class="card-body">
<div class="card-image waves-effect waves-block waves-light">
<ul class="card-entry-labels">

View File

@ -34,14 +34,14 @@
{% include "@WallabagCore/themes/common/Entry/_feed_link.html.twig" %}
{% endif %}
</div>
{% if currentRoute == 'search' %}<div><a href="{{ path('tag_this_search', {'filter': searchTerm, 'currentRoute': app.request.get('currentRoute') }) }}" title="{{ 'entry.list.assign_search_tag'|trans }}">{{ 'entry.list.assign_search_tag'|trans }}</a></div>{% endif %}
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
{% endif %}
</div>
<ul class="{% if listMode == 1 %}collection{% else %}row data{% endif %}">
<li class="mass-buttons">
{% if listMode == 1 %}
<div class="mass-buttons">
{% if entries.count > 0 and listMode == 1 %}
<span>
<input id="selectAll" type="checkbox" data-toggle="[data-js='entry-checkbox']" data-js="checkboxes-toggle" />&nbsp;
@ -53,10 +53,13 @@
<button class="btn cyan darken-1" type="submit" name="delete" onclick="return confirm('{{ 'entry.confirm.delete_entries'|trans|escape('js') }}')" title="{{ 'entry.list.delete'|trans }}"><i class="material-icons">delete</i></button>
</span>
{% endif %}
</li>
</div>
{% endif %}
<ol class="entries {% if listMode == 1 %}collection{% else %}row entries-row data{% endif %}">
{% for entry in entries %}
<li id="entry-{{ entry.id|e }}" class="entry col {% if listMode == 0 %}l3 m6{% else %}collection-item{% endif %} s12">
<li id="entry-{{ entry.id|e }}" class="{% if listMode != 0 %}col collection-item{% endif %} s12" data-entry-id="{{ entry.id|e }}" data-test="entry">
{% if listMode == 1 %}
{% include "@WallabagCore/themes/material/Entry/_card_list.html.twig" with {'entry': entry, 'currentRoute': currentRoute, 'routes': entriesWithArchivedClassRoutes} only %}
{% elseif not entry.previewPicture is null and entry.mimetype starts with 'image/' %}
@ -66,7 +69,7 @@
{% endif %}
</li>
{% endfor %}
</ul>
</ol>
</form>
{% if entries.getNbPages > 1 %}
@ -89,7 +92,7 @@
<h4 class="center">{{ 'entry.list.export_title'|trans }}</h4>
<ul>
{% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'epub', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">EPUB</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">MOBI</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'mobi', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">MOBI (deprecated)</a></li>{% endif %}
{% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'pdf', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">PDF</a></li>{% endif %}
{% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'json', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">JSON</a></li>{% endif %}
{% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', { 'category': currentRoute, 'format': 'csv', 'tag' : currentTag, 'search_entry[term]' : exportSearchTerm, 'currentRoute' : previousRoute }) }}">CSV</a></li>{% endif %}
@ -131,6 +134,11 @@
{{ form_label(form.isUnread) }}
</div>
<div class="input-field col s12 with-checkbox">
{{ form_widget(form.isAnnotated) }}
{{ form_label(form.isAnnotated) }}
</div>
<div class="col s12">
<label>{{ 'entry.filters.preview_picture_help'|trans }}</label>
</div>

View File

@ -231,7 +231,7 @@
<div class="collapsible-body">
<ul>
{% if craue_setting('export_epub') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'epub' }) }}" title="Generate ePub file">EPUB</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'mobi' }) }}" title="Generate Mobi file">MOBI</a></li>{% endif %}
{% if craue_setting('export_mobi') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'mobi' }) }}" title="Generate Mobi file">MOBI (deprecated)</a></li>{% endif %}
{% if craue_setting('export_pdf') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'pdf' }) }}" title="Generate PDF file">PDF</a></li>{% endif %}
{% if craue_setting('export_csv') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'csv' }) }}" title="Generate CSV file">CSV</a></li>{% endif %}
{% if craue_setting('export_json') %}<li><a href="{{ path('export_entry', { 'id': entry.id, 'format': 'json' }) }}" title="Generate JSON file">JSON</a></li>{% endif %}

View File

@ -40,6 +40,8 @@
{% set activeRoute = null %}
{% if currentRoute == 'all' or currentRouteFromQueryParams == 'all' %}
{% set activeRoute = 'all' %}
{% elseif currentRoute == 'annotated' or currentRouteFromQueryParams == 'annotated' %}
{% set activeRoute = 'annotated' %}
{% elseif currentRoute == 'archive' or currentRouteFromQueryParams == 'archive' %}
{% set activeRoute = 'archive' %}
{% elseif currentRoute == 'starred' or currentRouteFromQueryParams == 'starred' %}
@ -59,6 +61,9 @@
<li class="bold {% if activeRoute == 'archive' %}active{% endif %}">
<a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }} <span class="numberItems grey-text">{{ count_entries('archive') }}</span></a>
</li>
<li class="bold {% if activeRoute == 'annotated' %}active{% endif %}">
<a class="waves-effect" href="{{ path('annotated') }}">{{ 'menu.left.with_annotations'|trans }} <span class="numberItems grey-text">{{ count_entries('annotated') }}</span></a>
</li>
<li class="bold {% if activeRoute == 'all' %}active{% endif %}">
<a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }} <span class="numberItems grey-text">{{ count_entries('all') }}</span></a>
</li>

View File

@ -95,6 +95,9 @@ class WallabagExtension extends AbstractExtension implements GlobalsInterface
case 'unread':
$qb = $this->entryRepository->getBuilderForUnreadByUser($user->getId());
break;
case 'annotated':
$qb = $this->entryRepository->getBuilderForAnnotationsByUser($user->getId());
break;
case 'all':
$qb = $this->entryRepository->getBuilderForAllByUser($user->getId());
break;

Some files were not shown because too many files have changed in this diff Show More