forked from wallabag/wallabag
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4c212ca7d9 |
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@ -1,5 +1,3 @@
|
|||||||
:warning: If your issue is about an error during fetching a link, please read: http://doc.wallabag.org/en/master/user/errors_during_fetching.html#how-can-i-help-to-fix-that
|
|
||||||
|
|
||||||
### Issue details
|
### Issue details
|
||||||
|
|
||||||
Please provide issue details here.
|
Please provide issue details here.
|
||||||
|
|||||||
@ -62,7 +62,7 @@ before_script:
|
|||||||
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
|
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- if [[ $ASSETS = build ]]; then source ~/.nvm/nvm.sh && nvm install 6.7; fi;
|
- if [[ $ASSETS = build ]]; then source ~/.nvm/nvm.sh && nvm install 5.0; fi;
|
||||||
- if [[ $ASSETS = build ]]; then npm install -g npm@latest; fi;
|
- if [[ $ASSETS = build ]]; then npm install -g npm@latest; fi;
|
||||||
- if [[ $ASSETS = build ]]; then npm install; fi;
|
- if [[ $ASSETS = build ]]; then npm install; fi;
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ before_install:
|
|||||||
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
|
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- travis_wait composer update --no-interaction --no-progress
|
- travis_wait bash composer update --no-interaction --no-progress
|
||||||
- ant prepare-$DB
|
- ant prepare-$DB
|
||||||
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then phpunit -v ; fi;
|
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then phpunit -v ; fi;
|
||||||
- if [[ $CS_FIXER = run ]]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
|
- if [[ $CS_FIXER = run ]]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
|
||||||
|
|||||||
1064
CHANGELOG.md
1064
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
18
Gruntfile.js
18
Gruntfile.js
@ -10,6 +10,10 @@ module.exports = function (grunt) {
|
|||||||
postcss: {
|
postcss: {
|
||||||
material: {
|
material: {
|
||||||
options: {
|
options: {
|
||||||
|
map: {
|
||||||
|
inline: false,
|
||||||
|
},
|
||||||
|
|
||||||
processors: [
|
processors: [
|
||||||
require('pixrem')(),
|
require('pixrem')(),
|
||||||
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
||||||
@ -21,6 +25,10 @@ module.exports = function (grunt) {
|
|||||||
},
|
},
|
||||||
baggy: {
|
baggy: {
|
||||||
options: {
|
options: {
|
||||||
|
map: {
|
||||||
|
inline: false,
|
||||||
|
},
|
||||||
|
|
||||||
processors: [
|
processors: [
|
||||||
require('pixrem')(),
|
require('pixrem')(),
|
||||||
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
||||||
@ -87,13 +95,19 @@ module.exports = function (grunt) {
|
|||||||
files: {
|
files: {
|
||||||
'<%= releaseDir %>/themes/material/js/material.min.js':
|
'<%= releaseDir %>/themes/material/js/material.min.js':
|
||||||
['<%= buildDir %>/material.browser.js'],
|
['<%= buildDir %>/material.browser.js'],
|
||||||
}
|
},
|
||||||
|
options: {
|
||||||
|
sourceMap: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
baggy: {
|
baggy: {
|
||||||
files: {
|
files: {
|
||||||
'<%= releaseDir %>/themes/baggy/js/baggy.min.js':
|
'<%= releaseDir %>/themes/baggy/js/baggy.min.js':
|
||||||
['<%= buildDir %>/baggy.browser.js'],
|
['<%= buildDir %>/baggy.browser.js'],
|
||||||
}
|
},
|
||||||
|
options: {
|
||||||
|
sourceMap: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
copy: {
|
copy: {
|
||||||
|
|||||||
46
Makefile
46
Makefile
@ -1,46 +0,0 @@
|
|||||||
TMP_FOLDER=/tmp
|
|
||||||
RELEASE_FOLDER=wllbg-release
|
|
||||||
|
|
||||||
ifndef ENV
|
|
||||||
ENV=prod
|
|
||||||
endif
|
|
||||||
|
|
||||||
help: ## Display this help menu
|
|
||||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
||||||
|
|
||||||
clean: ## Clear the application cache
|
|
||||||
@rm -rf var/cache/*
|
|
||||||
|
|
||||||
install: ## Install wallabag with the latest version
|
|
||||||
@sh scripts/install.sh $(ENV)
|
|
||||||
|
|
||||||
update: ## Update the wallabag installation to the latest version
|
|
||||||
@sh scripts/update.sh $(ENV)
|
|
||||||
|
|
||||||
dev: ## Install the latest dev version
|
|
||||||
@sh scripts/dev.sh
|
|
||||||
|
|
||||||
run: ## Run the wallabag built-in server
|
|
||||||
@php bin/console server:run --env=$(ENV)
|
|
||||||
|
|
||||||
build: ## Run grunt
|
|
||||||
@grunt
|
|
||||||
|
|
||||||
test: ## Launch wallabag testsuite
|
|
||||||
@if [ ! -d "vendor/phpunit" ]; then composer install; fi
|
|
||||||
@ant prepare && vendor/phpunit/phpunit/phpunit -v
|
|
||||||
|
|
||||||
release: ## Create a package. Need a VERSION parameter (eg: `make release VERSION=master`).
|
|
||||||
ifndef VERSION
|
|
||||||
$(error VERSION is not set)
|
|
||||||
endif
|
|
||||||
@sh scripts/release.sh $(VERSION) $(TMP_FOLDER) $(RELEASE_FOLDER) $(ENV)
|
|
||||||
|
|
||||||
travis: ## Make some stuff for Travis-CI
|
|
||||||
|
|
||||||
deploy: ## Deploy wallabag
|
|
||||||
@bundle exec cap staging deploy
|
|
||||||
|
|
||||||
.PHONY: help clean install update build test release travis deploy
|
|
||||||
|
|
||||||
.DEFAULT_GOAL := install
|
|
||||||
17
README.md
17
README.md
@ -6,22 +6,23 @@
|
|||||||
wallabag is a self hostable application allowing you to not miss any content anymore.
|
wallabag is a self hostable 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.
|
Click, save and read it when you can. It extracts content so that you can read it when you have time.
|
||||||
|
|
||||||
More information on our website: [wallabag.org](https://wallabag.org).
|
More informations on our website: [wallabag.org](https://wallabag.org)
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
# Install wallabag
|
# Install wallabag
|
||||||
Please read [the documentation to see the wallabag requirements](http://doc.wallabag.org/en/master/user/installation.html#requirements).
|
|
||||||
|
|
||||||
|
If you don't have it yet, please [install composer](https://getcomposer.org/download/) or be sure to use Composer 1.2 (`composer selfupdate` can help you about that). Read [our documentation](http://doc.wallabag.org) to have more information about installation.
|
||||||
Then you can install wallabag by executing the following commands:
|
Then you can install wallabag by executing the following commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/wallabag/wallabag.git
|
git clone https://github.com/wallabag/wallabag.git
|
||||||
cd wallabag && make install
|
cd wallabag
|
||||||
make run
|
git checkout 2.1.1
|
||||||
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
|
php bin/console wallabag:install --env=prod
|
||||||
|
php bin/console server:run --env=prod
|
||||||
```
|
```
|
||||||
|
|
||||||
# License
|
## License
|
||||||
Copyright © 2013-2016 Nicolas Lœuillet <nicolas@loeuillet.org>
|
Copyright © 2013-2016 Nicolas Lœuillet <nicolas@loeuillet.org>
|
||||||
This work is free. You can redistribute it and/or modify it under the
|
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 file for more details.
|
||||||
|
|||||||
@ -1,45 +1,47 @@
|
|||||||
## Definition
|
## Definition
|
||||||
|
|
||||||
A release is mostly a git tag of http://github.com/wallabag/wallabag, following [semantic versioning](http://semver.org).
|
A release is mostly a git tag of http://github.com/wallabag/wallabag, following [semantic versioning](http://semver.org).
|
||||||
|
The last release at the time of writing is 2.0.0-alpha.2, from the v2 branch.
|
||||||
|
|
||||||
### Steps to release
|
### Steps to release
|
||||||
|
|
||||||
During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE`.
|
During this documentation, we assume the release is `release-2.0.0-beta.1`.
|
||||||
|
|
||||||
#### Files to edit
|
#### Files to edit
|
||||||
|
|
||||||
- `app/config/config.yml` (`wallabag_core.version`)
|
- `app/config/config.yml` (`wallabag_core.version`)
|
||||||
- `CHANGELOG.md` (by using this command `github_changelog_generator --no-compare-link --header-label="# Changelog" --no-issues --no-pr-wo-labels --since-tag="1.9.2"`. [github-changelog-generator is available here](https://github.com/skywinder/github-changelog-generator))
|
- `README.md` (`composer create-project` command)
|
||||||
|
- `docs/en/user/installation.rst` and its translations (`composer create-project` command)
|
||||||
|
|
||||||
#### Create release on GitHub
|
#### Create release on GitHub
|
||||||
|
|
||||||
- Run these commands to create the tag:
|
- Run these commands to create the tag:
|
||||||
|
|
||||||
```
|
```
|
||||||
git checkout master
|
git checkout v2
|
||||||
git pull origin master
|
git pull origin v2
|
||||||
git checkout -b release-$LAST_WALLABAG_RELEASE
|
git checkout -b release-2.0.0-beta.1
|
||||||
SYMFONY_ENV=prod composer up --no-dev
|
SYMFONY_ENV=prod composer up --no-dev
|
||||||
git add --force composer.lock
|
git add --force composer.lock
|
||||||
git commit -m "Release wallabag $LAST_WALLABAG_RELEASE"
|
git add README.md
|
||||||
git push origin release-$LAST_WALLABAG_RELEASE
|
git commit -m "Release wallabag 2.0.0-beta.1"
|
||||||
|
git push origin release-2.0.0-beta.1
|
||||||
```
|
```
|
||||||
|
|
||||||
- Create a new pull request with this title `DON'T MERGE Release wallabag $LAST_WALLABAG_RELEASE`. This pull request is used to launch builds on Travis-CI.
|
- Create a new pull request with this title `DON'T MERGE Release wallabag 2.0.0-beta.1`. This pull request is used to launch builds on Travis-CI.
|
||||||
- Run these command to create the package:
|
- Run these commands to create the package:
|
||||||
|
|
||||||
```
|
```
|
||||||
make release master /tmp wllbg-release prod
|
git clone git@github.com:wallabag/wallabag.git -b release-2.0.0-beta.1 release-2.0.0-beta.1
|
||||||
|
SYMFONY_ENV=prod composer up -d=release-2.0.0-beta.1 --no-dev
|
||||||
|
tar czf wallabag-release-2.0.0-beta.1.tar.gz --exclude="var/*" --exclude=".git" release-2.0.0-beta.1
|
||||||
```
|
```
|
||||||
|
|
||||||
- [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new). You have to upload on this page the package.
|
- [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new). You have to upload on this page the package.
|
||||||
- Delete the `release-$LAST_WALLABAG_RELEASE` branch and close the pull request (**DO NOT MERGE IT**).
|
- Delete the `release-2.0.0-beta.1` branch and close the pull request (**DO NOT MERGE IT**).
|
||||||
- Update the URL shortener (used on `wllbg.org` to generate links like `http://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`)
|
- Update the URL shortener (used on `wllbg.org` to generate links like `http://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`)
|
||||||
- Update [the downloads page](https://github.com/wallabag/wallabag.org/blob/master/content/pages/download.md) on the website (MD5 sum, release date)
|
- Update [the downloads page](https://github.com/wallabag/wallabag.org/blob/master/content/pages/download.md) on the website (MD5 sum, release date)
|
||||||
- Update Dockerfile https://github.com/wallabag/docker (and create a new tag)
|
- Drink a beer!
|
||||||
- Update wallabag.org website (downloads, releases and new blog post)
|
|
||||||
- Put the next patch version suffixed with `-dev` in `app/config/config.yml` (`wallabag_core.version`)
|
|
||||||
- Drink a :beer:!
|
|
||||||
|
|
||||||
### `composer.lock`
|
### `composer.lock`
|
||||||
A release tag must contain a `composer.lock` file. It sets which dependencies were available at the time a release was done,
|
A release tag must contain a `composer.lock` file. It sets which dependencies were available at the time a release was done,
|
||||||
|
|||||||
@ -29,13 +29,8 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
|||||||
*/
|
*/
|
||||||
public function up(Schema $schema)
|
public function up(Schema $schema)
|
||||||
{
|
{
|
||||||
if ($this->connection->getDatabasePlatform()->getName() == 'postgresql') {
|
$this->addSql('ALTER TABLE `'.$this->getTable('entry').'` ADD `uuid` LONGTEXT DEFAULT NULL');
|
||||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid UUID DEFAULT NULL');
|
$this->addSql("INSERT INTO `".$this->getTable('craue_config_setting')."` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry')");
|
||||||
} else {
|
|
||||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid LONGTEXT DEFAULT NULL');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('share_public', '1', 'entry')");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,7 +40,7 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
|||||||
{
|
{
|
||||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
|
||||||
|
|
||||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" DROP uuid');
|
$this->addSql('ALTER TABLE `'.$this->getTable('entry').'` DROP `uuid`');
|
||||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'share_public'");
|
$this->addSql("DELETE FROM `".$this->getTable('craue_config_setting')."` WHERE `name` = 'share_public'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,15 +29,10 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
|||||||
*/
|
*/
|
||||||
public function up(Schema $schema)
|
public function up(Schema $schema)
|
||||||
{
|
{
|
||||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
if ($this->connection->getDatabasePlatform()->getName() == 'sqlite') {
|
||||||
case 'sqlite':
|
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
|
||||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
|
} else {
|
||||||
break;
|
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
|
||||||
case 'mysql':
|
|
||||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
|
|
||||||
break;
|
|
||||||
case 'postgresql':
|
|
||||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name text DEFAULT NULL');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,8 +29,8 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
|||||||
*/
|
*/
|
||||||
public function up(Schema $schema)
|
public function up(Schema $schema)
|
||||||
{
|
{
|
||||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_redis\', \'0\', \'import\')');
|
$this->addSql('INSERT INTO `'.$this->getTable('craue_config_setting').'` (`name`, `value`, `section`) VALUES (\'import_with_redis\', \'0\', \'import\')');
|
||||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_rabbitmq\', \'0\', \'import\')');
|
$this->addSql('INSERT INTO `'.$this->getTable('craue_config_setting').'` (`name`, `value`, `section`) VALUES (\'import_with_rabbitmq\', \'0\', \'import\')');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -29,8 +29,8 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
|||||||
*/
|
*/
|
||||||
public function up(Schema $schema)
|
public function up(Schema $schema)
|
||||||
{
|
{
|
||||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" ADD pocket_consumer_key VARCHAR(255) DEFAULT NULL');
|
$this->addSql('ALTER TABLE '.$this->getTable('config').' ADD pocket_consumer_key VARCHAR(255) DEFAULT NULL');
|
||||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'pocket_consumer_key';");
|
$this->addSql("DELETE FROM `".$this->getTable('craue_config_setting')."` WHERE `name` = 'pocket_consumer_key';");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,7 +40,7 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
|||||||
{
|
{
|
||||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||||
|
|
||||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" DROP pocket_consumer_key');
|
$this->addSql('ALTER TABLE `'.$this->getTable('config').'` DROP pocket_consumer_key');
|
||||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('pocket_consumer_key', NULL, 'import')");
|
$this->addSql("INSERT INTO `".$this->getTable('craue_config_setting')."` (`name`, `value`, `section`) VALUES ('pocket_consumer_key', NULL, 'import')");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,14 +2,14 @@ download_pictures: Bilder auf den Server herunterladen
|
|||||||
carrot: Teilen zu Carrot aktivieren
|
carrot: Teilen zu Carrot aktivieren
|
||||||
diaspora_url: Diaspora-URL, sofern der Service aktiviert ist
|
diaspora_url: Diaspora-URL, sofern der Service aktiviert ist
|
||||||
export_epub: ePUB-Export aktivieren
|
export_epub: ePUB-Export aktivieren
|
||||||
export_mobi: mobi-Export aktivieren
|
export_mobi: .mobi-Export aktivieren
|
||||||
export_pdf: PDF-Export aktivieren
|
export_pdf: PDF-Export aktivieren
|
||||||
export_csv: CSV-Export aktivieren
|
export_csv: CSV-Export aktivieren
|
||||||
export_json: JSON-Export aktivieren
|
export_json: JSON-Export aktivieren
|
||||||
export_txt: TXT-Export aktivieren
|
export_txt: TXT-Export aktivieren
|
||||||
export_xml: XML-Export aktivieren
|
export_xml: XML-Export aktivieren
|
||||||
import_with_rabbitmq: Aktiviere RabbitMQ, um Artikel asynchron zu importieren
|
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||||
import_with_redis: Aktiviere Redis, um Artikel asynchron zu importieren
|
# import_with_redis: Enable Redis to import data asynchronously
|
||||||
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
|
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
|
||||||
share_diaspora: Teilen zu Diaspora aktiveren
|
share_diaspora: Teilen zu Diaspora aktiveren
|
||||||
share_mail: Teilen via E-Mail aktiveren
|
share_mail: Teilen via E-Mail aktiveren
|
||||||
@ -28,4 +28,4 @@ piwik_site_id: ID deiner Webseite in Piwik
|
|||||||
piwik_enabled: Piwik aktivieren
|
piwik_enabled: Piwik aktivieren
|
||||||
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
|
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
|
||||||
demo_mode_username: "Test-Benutzer"
|
demo_mode_username: "Test-Benutzer"
|
||||||
share_public: Erlaube eine öffentliche URL für Einträge
|
# share_public: Allow public url for entries
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||||
|
|
||||||
{% block title %}{{ 'menu.left.internal_settings'|trans }}{% endblock %}
|
{% block title %}{% trans %}internal settings{% endtrans %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -13,7 +13,7 @@
|
|||||||
<div class="div_tabs col s12">
|
<div class="div_tabs col s12">
|
||||||
<ul class="tabs">
|
<ul class="tabs">
|
||||||
{% for section in sections | craue_sortSections %}
|
{% for section in sections | craue_sortSections %}
|
||||||
<li class="tab col s12 m6 l3"><a href="#set-{{ section }}">{{ section | trans({}, 'CraueConfigBundle') }}</a></li>
|
<li class="tab col s3"><a href="#set-{{ section }}">{{ section | trans({}, 'CraueConfigBundle') }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -383,11 +383,9 @@ footer a {
|
|||||||
max-height: 2em;
|
max-height: 2em;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-entry-tags li,
|
.card-entry-tags li {
|
||||||
.card-entry-tags span {
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
padding: 5px 12px;
|
padding: 5px 12px;
|
||||||
@ -396,19 +394,9 @@ footer a {
|
|||||||
max-height: 2em;
|
max-height: 2em;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
|
||||||
|
|
||||||
.card-entry-tags a,
|
|
||||||
.card-entry-labels a {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: normal;
|
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-panel-add-tag {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-entries + .results {
|
.list-entries + .results {
|
||||||
margin-bottom: 2em;
|
margin-bottom: 2em;
|
||||||
}
|
}
|
||||||
@ -521,7 +509,6 @@ img.preview {
|
|||||||
color: #666;
|
color: #666;
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
margin-top: 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry h2 a::first-letter {
|
.entry h2 a::first-letter {
|
||||||
@ -1034,7 +1021,6 @@ blockquote {
|
|||||||
|
|
||||||
#article_toolbar li {
|
#article_toolbar li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 3px auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#article_toolbar a {
|
#article_toolbar a {
|
||||||
@ -1192,14 +1178,6 @@ pre code {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-height: 770px) {
|
|
||||||
.menu.users,
|
|
||||||
.menu.internal,
|
|
||||||
.menu.developer {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 500px) {
|
@media screen and (max-width: 500px) {
|
||||||
.entry {
|
.entry {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@ -360,10 +360,6 @@ span.numberItems {
|
|||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav ul a:hover {
|
|
||||||
background-color: initial;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
* 3 = Filters slider
|
* 3 = Filters slider
|
||||||
* ========================================================================== */
|
* ========================================================================== */
|
||||||
@ -418,10 +414,9 @@ main ul.row {
|
|||||||
max-width: 50%;
|
max-width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card .card-entry-labels li,
|
.card .card-entry-labels li {
|
||||||
.card-tag-labels li {
|
|
||||||
margin: 10px 10px 10px auto;
|
margin: 10px 10px 10px auto;
|
||||||
padding: 5px 12px 5px 16px !important;
|
padding: 5px 12px 5px 16px;
|
||||||
background-color: rgba(0, 151, 167, 0.85);
|
background-color: rgba(0, 151, 167, 0.85);
|
||||||
border-radius: 0 3px 3px 0;
|
border-radius: 0 3px 3px 0;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -450,16 +445,6 @@ main ul.row {
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-entry-tags a,
|
|
||||||
.card-entry-labels a,
|
|
||||||
.card-tag-labels a,
|
|
||||||
.card-entry-labels-hidden a,
|
|
||||||
#list .chip a {
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: normal;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card .card-content .estimatedTime {
|
.card .card-content .estimatedTime {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
@ -526,7 +511,7 @@ main ul.row {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#article > header > h1 {
|
#article > header > h1 {
|
||||||
font-size: 1.6em;
|
font-size: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.reader-mode {
|
.reader-mode {
|
||||||
@ -607,18 +592,6 @@ main ul.row {
|
|||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
#article {
|
|
||||||
padding: 15px;
|
|
||||||
max-width: 35em;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#article > header > h1 {
|
|
||||||
font-size: 1.33em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.reader-mode {
|
.reader-mode {
|
||||||
width: 240px !important;
|
width: 240px !important;
|
||||||
}
|
}
|
||||||
@ -776,7 +749,3 @@ div.settings div.file-field div {
|
|||||||
.input-field label.active {
|
.input-field label.active {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav .input-field input {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|||||||
@ -30,7 +30,7 @@ framework:
|
|||||||
assets: ~
|
assets: ~
|
||||||
|
|
||||||
wallabag_core:
|
wallabag_core:
|
||||||
version: 2.1.2
|
version: 2.1.1
|
||||||
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
|
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
|
||||||
languages:
|
languages:
|
||||||
en: 'English'
|
en: 'English'
|
||||||
@ -46,7 +46,7 @@ wallabag_core:
|
|||||||
it: 'Italiano'
|
it: 'Italiano'
|
||||||
items_on_page: 12
|
items_on_page: 12
|
||||||
theme: material
|
theme: material
|
||||||
language: '%locale%'
|
language: en
|
||||||
rss_limit: 50
|
rss_limit: 50
|
||||||
reading_speed: 1
|
reading_speed: 1
|
||||||
cache_lifetime: 10
|
cache_lifetime: 10
|
||||||
@ -77,7 +77,6 @@ doctrine:
|
|||||||
password: "%database_password%"
|
password: "%database_password%"
|
||||||
charset: UTF8
|
charset: UTF8
|
||||||
path: "%database_path%"
|
path: "%database_path%"
|
||||||
unix_socket: "%database_socket%"
|
|
||||||
server_version: 5.6
|
server_version: 5.6
|
||||||
|
|
||||||
orm:
|
orm:
|
||||||
|
|||||||
@ -18,7 +18,6 @@ parameters:
|
|||||||
database_password: ~
|
database_password: ~
|
||||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
||||||
database_table_prefix: wallabag_
|
database_table_prefix: wallabag_
|
||||||
database_socket: null
|
|
||||||
|
|
||||||
mailer_transport: smtp
|
mailer_transport: smtp
|
||||||
mailer_host: 127.0.0.1
|
mailer_host: 127.0.0.1
|
||||||
@ -49,7 +48,5 @@ parameters:
|
|||||||
rabbitmq_password: guest
|
rabbitmq_password: guest
|
||||||
|
|
||||||
# Redis processing
|
# Redis processing
|
||||||
redis_scheme: tcp
|
|
||||||
redis_host: localhost
|
redis_host: localhost
|
||||||
redis_port: 6379
|
redis_port: 6379
|
||||||
redis_path: null
|
|
||||||
|
|||||||
@ -12,11 +12,6 @@ wallabag_user:
|
|||||||
type: annotation
|
type: annotation
|
||||||
prefix: /users
|
prefix: /users
|
||||||
|
|
||||||
wallabag_api:
|
|
||||||
resource: "@WallabagApiBundle/Controller/"
|
|
||||||
type: annotation
|
|
||||||
prefix: /
|
|
||||||
|
|
||||||
wallabag_api:
|
wallabag_api:
|
||||||
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
||||||
prefix: /
|
prefix: /
|
||||||
|
|||||||
@ -63,11 +63,12 @@
|
|||||||
"willdurand/hateoas-bundle": "~1.0",
|
"willdurand/hateoas-bundle": "~1.0",
|
||||||
"htmlawed/htmlawed": "~1.1.19",
|
"htmlawed/htmlawed": "~1.1.19",
|
||||||
"liip/theme-bundle": "~1.1",
|
"liip/theme-bundle": "~1.1",
|
||||||
|
"pagerfanta/pagerfanta": "~1.0.3",
|
||||||
"lexik/form-filter-bundle": "~5.0",
|
"lexik/form-filter-bundle": "~5.0",
|
||||||
"j0k3r/graby": "~1.0",
|
"j0k3r/graby": "~1.0",
|
||||||
"friendsofsymfony/user-bundle": "dev-master#e168ed64629d034cb9cbbffb9d4350f62ef04fab as 2.0.x-dev",
|
"friendsofsymfony/user-bundle": "~2.0@dev",
|
||||||
"friendsofsymfony/oauth-server-bundle": "^1.5",
|
"friendsofsymfony/oauth-server-bundle": "^1.5",
|
||||||
"stof/doctrine-extensions-bundle": "^1.2",
|
"stof/doctrine-extensions-bundle": "^1.2@dev",
|
||||||
"scheb/two-factor-bundle": "~2.0",
|
"scheb/two-factor-bundle": "~2.0",
|
||||||
"grandt/phpepub": "~4.0",
|
"grandt/phpepub": "~4.0",
|
||||||
"wallabag/php-mobi": "~1.0.0",
|
"wallabag/php-mobi": "~1.0.0",
|
||||||
@ -80,6 +81,7 @@
|
|||||||
"lexik/maintenance-bundle": "~2.1",
|
"lexik/maintenance-bundle": "~2.1",
|
||||||
"ocramius/proxy-manager": "1.*",
|
"ocramius/proxy-manager": "1.*",
|
||||||
"white-october/pagerfanta-bundle": "^1.0",
|
"white-october/pagerfanta-bundle": "^1.0",
|
||||||
|
"mouf/nodejs-installer": "~1.0",
|
||||||
"php-amqplib/rabbitmq-bundle": "^1.8",
|
"php-amqplib/rabbitmq-bundle": "^1.8",
|
||||||
"predis/predis": "^1.0",
|
"predis/predis": "^1.0",
|
||||||
"javibravo/simpleue": "^1.0"
|
"javibravo/simpleue": "^1.0"
|
||||||
@ -98,7 +100,8 @@
|
|||||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
||||||
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
|
||||||
],
|
],
|
||||||
"post-install-cmd": [
|
"post-install-cmd": [
|
||||||
"@post-cmd"
|
"@post-cmd"
|
||||||
|
|||||||
201
composer.lock
generated
201
composer.lock
generated
@ -4,8 +4,8 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"hash": "444a0b89984367e9a2e0d926bee6fea0",
|
"hash": "314f1a5917ce2b23cd70c26a3d9ca574",
|
||||||
"content-hash": "55c24170389887c15cc6a2b0b0f826be",
|
"content-hash": "2dd96d10d695a834202552ae84aabdd1",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "behat/transliterator",
|
"name": "behat/transliterator",
|
||||||
@ -1227,33 +1227,31 @@
|
|||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/FriendsOfSymfony/FOSUserBundle.git",
|
"url": "https://github.com/FriendsOfSymfony/FOSUserBundle.git",
|
||||||
"reference": "e168ed64629d034cb9cbbffb9d4350f62ef04fab"
|
"reference": "47e4de9d8b6fed521729fb38107d9413863fe4ce"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/e168ed64629d034cb9cbbffb9d4350f62ef04fab",
|
"url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/47e4de9d8b6fed521729fb38107d9413863fe4ce",
|
||||||
"reference": "e168ed64629d034cb9cbbffb9d4350f62ef04fab",
|
"reference": "47e4de9d8b6fed521729fb38107d9413863fe4ce",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^5.3.9 || ^7.0",
|
"php": "^5.3.9 || ^7.0",
|
||||||
"symfony/form": "^2.7 || ^3.0",
|
"symfony/form": "^2.3 || ^3.0",
|
||||||
"symfony/framework-bundle": "^2.7 || ^3.0",
|
"symfony/framework-bundle": "^2.3 || ^3.0",
|
||||||
"symfony/security-bundle": "^2.7 || ^3.0",
|
"symfony/security-bundle": "^2.3 || ^3.0",
|
||||||
"symfony/twig-bundle": "^2.7 || ^3.0"
|
"symfony/twig-bundle": "^2.3 || ^3.0"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"symfony/doctrine-bridge": "<2.7"
|
"symfony/doctrine-bridge": "<2.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/doctrine-bundle": "^1.3",
|
"doctrine/doctrine-bundle": "^1.3",
|
||||||
"friendsofphp/php-cs-fixer": "^1.11",
|
|
||||||
"phpunit/phpunit": "~4.8|~5.0",
|
|
||||||
"swiftmailer/swiftmailer": "^4.3 || ^5.0",
|
"swiftmailer/swiftmailer": "^4.3 || ^5.0",
|
||||||
"symfony/console": "^2.7 || ^3.0",
|
"symfony/console": "^2.3 || ^3.0",
|
||||||
"symfony/phpunit-bridge": "^2.7 || ^3.0",
|
"symfony/phpunit-bridge": "^2.7 || ^3.0",
|
||||||
"symfony/validator": "^2.7 || ^3.0",
|
"symfony/validator": "^2.3 || ^3.0",
|
||||||
"symfony/yaml": "^2.7 || ^3.0",
|
"symfony/yaml": "^2.3 || ^3.0",
|
||||||
"willdurand/propel-typehintable-behavior": "^1.0"
|
"willdurand/propel-typehintable-behavior": "^1.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
@ -1296,20 +1294,20 @@
|
|||||||
"keywords": [
|
"keywords": [
|
||||||
"User management"
|
"User management"
|
||||||
],
|
],
|
||||||
"time": "2016-10-10 11:13:54"
|
"time": "2016-10-03 14:55:29"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "gedmo/doctrine-extensions",
|
"name": "gedmo/doctrine-extensions",
|
||||||
"version": "v2.4.24",
|
"version": "v2.4.23",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Atlantic18/DoctrineExtensions.git",
|
"url": "https://github.com/Atlantic18/DoctrineExtensions.git",
|
||||||
"reference": "a7f7243a19f79a99ac83a3570444d8795f665eef"
|
"reference": "c2f308fab900090c6c0f5b6f72f34a37b4dd2d84"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/a7f7243a19f79a99ac83a3570444d8795f665eef",
|
"url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/c2f308fab900090c6c0f5b6f72f34a37b4dd2d84",
|
||||||
"reference": "a7f7243a19f79a99ac83a3570444d8795f665eef",
|
"reference": "c2f308fab900090c6c0f5b6f72f34a37b4dd2d84",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -1375,7 +1373,7 @@
|
|||||||
"tree",
|
"tree",
|
||||||
"uploadable"
|
"uploadable"
|
||||||
],
|
],
|
||||||
"time": "2016-10-11 18:03:37"
|
"time": "2016-09-22 13:45:22"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "grandt/binstring",
|
"name": "grandt/binstring",
|
||||||
@ -3492,22 +3490,21 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "liip/theme-bundle",
|
"name": "liip/theme-bundle",
|
||||||
"version": "1.4.1",
|
"version": "1.4.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/liip/LiipThemeBundle.git",
|
"url": "https://github.com/liip/LiipThemeBundle.git",
|
||||||
"reference": "b1797a8f2ab7662f63013ef8ec0e7fe329eebc92"
|
"reference": "ae4f0f1b045689bed9150d5bd32d2f7f2f98b905"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/liip/LiipThemeBundle/zipball/b1797a8f2ab7662f63013ef8ec0e7fe329eebc92",
|
"url": "https://api.github.com/repos/liip/LiipThemeBundle/zipball/ae4f0f1b045689bed9150d5bd32d2f7f2f98b905",
|
||||||
"reference": "b1797a8f2ab7662f63013ef8ec0e7fe329eebc92",
|
"reference": "ae4f0f1b045689bed9150d5bd32d2f7f2f98b905",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^5.3.9|^7.0",
|
"php": "^5.3.9|^7.0",
|
||||||
"psr/log": "~1.0",
|
"psr/log": "~1.0",
|
||||||
"symfony/finder": "~2.3|~3.0",
|
|
||||||
"symfony/framework-bundle": "~2.3|~3.0"
|
"symfony/framework-bundle": "~2.3|~3.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
@ -3516,7 +3513,6 @@
|
|||||||
"phpunit/phpunit": "~4.5@stable",
|
"phpunit/phpunit": "~4.5@stable",
|
||||||
"symfony/console": "~2.3|~3.0",
|
"symfony/console": "~2.3|~3.0",
|
||||||
"symfony/expression-language": "~2.6|~3.0",
|
"symfony/expression-language": "~2.6|~3.0",
|
||||||
"symfony/templating": "~2.3|~3.0",
|
|
||||||
"twig/twig": "~1.4|~2.0@dev"
|
"twig/twig": "~1.4|~2.0@dev"
|
||||||
},
|
},
|
||||||
"type": "symfony-bundle",
|
"type": "symfony-bundle",
|
||||||
@ -3549,7 +3545,7 @@
|
|||||||
"themes",
|
"themes",
|
||||||
"theming"
|
"theming"
|
||||||
],
|
],
|
||||||
"time": "2016-10-05 08:53:44"
|
"time": "2015-12-05 09:33:29"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mgargano/simplehtmldom",
|
"name": "mgargano/simplehtmldom",
|
||||||
@ -3758,6 +3754,62 @@
|
|||||||
],
|
],
|
||||||
"time": "2016-07-29 03:23:52"
|
"time": "2016-07-29 03:23:52"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "mouf/nodejs-installer",
|
||||||
|
"version": "v1.0.10",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/thecodingmachine/nodejs-installer.git",
|
||||||
|
"reference": "bc598de486bb450e684221a3abcbfd6017dfca35"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/thecodingmachine/nodejs-installer/zipball/bc598de486bb450e684221a3abcbfd6017dfca35",
|
||||||
|
"reference": "bc598de486bb450e684221a3abcbfd6017dfca35",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer-plugin-api": "^1.0.0",
|
||||||
|
"ext-openssl": "*",
|
||||||
|
"php": ">=5.3.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"composer/composer": "*"
|
||||||
|
},
|
||||||
|
"type": "composer-plugin",
|
||||||
|
"extra": {
|
||||||
|
"class": [
|
||||||
|
"Mouf\\NodeJsInstaller\\NodeJsPlugin"
|
||||||
|
],
|
||||||
|
"mouf": {
|
||||||
|
"logo": "node-js.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Mouf\\NodeJsInstaller\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "David Négrier",
|
||||||
|
"email": "d.negrier@thecodingmachine.com",
|
||||||
|
"homepage": "http://mouf-php.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "An installer package that let's you install NodeJS and NPM as a Composer dependency.",
|
||||||
|
"homepage": "http://mouf-php.com/packages/mouf/nodejs-installer",
|
||||||
|
"keywords": [
|
||||||
|
"installer",
|
||||||
|
"nodejs",
|
||||||
|
"npm"
|
||||||
|
],
|
||||||
|
"time": "2016-01-05 14:00:57"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "neitanod/forceutf8",
|
"name": "neitanod/forceutf8",
|
||||||
"version": "v2.0",
|
"version": "v2.0",
|
||||||
@ -4504,16 +4556,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/log",
|
"name": "psr/log",
|
||||||
"version": "1.0.2",
|
"version": "1.0.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/log.git",
|
"url": "https://github.com/php-fig/log.git",
|
||||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
|
"reference": "5277094ed527a1c4477177d102fe4c53551953e0"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
"url": "https://api.github.com/repos/php-fig/log/zipball/5277094ed527a1c4477177d102fe4c53551953e0",
|
||||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
"reference": "5277094ed527a1c4477177d102fe4c53551953e0",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -4547,7 +4599,7 @@
|
|||||||
"psr",
|
"psr",
|
||||||
"psr-3"
|
"psr-3"
|
||||||
],
|
],
|
||||||
"time": "2016-10-10 12:19:37"
|
"time": "2016-09-19 16:02:08"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "react/promise",
|
"name": "react/promise",
|
||||||
@ -4649,21 +4701,21 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sensio/distribution-bundle",
|
"name": "sensio/distribution-bundle",
|
||||||
"version": "v5.0.13",
|
"version": "v5.0.12",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
|
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
|
||||||
"reference": "7bc47dcfdbde6d567e1a834577d1c04ddb970281"
|
"reference": "b6dcd04595e4db95ead22ddea58c397864e00c32"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/7bc47dcfdbde6d567e1a834577d1c04ddb970281",
|
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/b6dcd04595e4db95ead22ddea58c397864e00c32",
|
||||||
"reference": "7bc47dcfdbde6d567e1a834577d1c04ddb970281",
|
"reference": "b6dcd04595e4db95ead22ddea58c397864e00c32",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.3.9",
|
"php": ">=5.3.9",
|
||||||
"sensiolabs/security-checker": "~3.0|~4.0",
|
"sensiolabs/security-checker": "~3.0",
|
||||||
"symfony/class-loader": "~2.3|~3.0",
|
"symfony/class-loader": "~2.3|~3.0",
|
||||||
"symfony/config": "~2.3|~3.0",
|
"symfony/config": "~2.3|~3.0",
|
||||||
"symfony/dependency-injection": "~2.3|~3.0",
|
"symfony/dependency-injection": "~2.3|~3.0",
|
||||||
@ -4697,7 +4749,7 @@
|
|||||||
"configuration",
|
"configuration",
|
||||||
"distribution"
|
"distribution"
|
||||||
],
|
],
|
||||||
"time": "2016-10-08 18:50:33"
|
"time": "2016-09-14 20:25:12"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sensio/framework-extra-bundle",
|
"name": "sensio/framework-extra-bundle",
|
||||||
@ -4763,20 +4815,20 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sensiolabs/security-checker",
|
"name": "sensiolabs/security-checker",
|
||||||
"version": "v4.0.0",
|
"version": "v3.0.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sensiolabs/security-checker.git",
|
"url": "https://github.com/sensiolabs/security-checker.git",
|
||||||
"reference": "116027b57b568ed61b7b1c80eeb4f6ee9e8c599c"
|
"reference": "21696b0daa731064c23cfb694c60a2584a7b6e93"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/116027b57b568ed61b7b1c80eeb4f6ee9e8c599c",
|
"url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/21696b0daa731064c23cfb694c60a2584a7b6e93",
|
||||||
"reference": "116027b57b568ed61b7b1c80eeb4f6ee9e8c599c",
|
"reference": "21696b0daa731064c23cfb694c60a2584a7b6e93",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"symfony/console": "~2.7|~3.0"
|
"symfony/console": "~2.0|~3.0"
|
||||||
},
|
},
|
||||||
"bin": [
|
"bin": [
|
||||||
"security-checker"
|
"security-checker"
|
||||||
@ -4784,7 +4836,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "4.0-dev"
|
"dev-master": "3.0-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -4803,7 +4855,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "A security checker for your composer.lock",
|
"description": "A security checker for your composer.lock",
|
||||||
"time": "2016-09-23 18:09:57"
|
"time": "2015-11-07 08:07:40"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "simplepie/simplepie",
|
"name": "simplepie/simplepie",
|
||||||
@ -5771,16 +5823,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/twig",
|
"name": "twig/twig",
|
||||||
"version": "v1.26.1",
|
"version": "v1.26.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/twigphp/Twig.git",
|
"url": "https://github.com/twigphp/Twig.git",
|
||||||
"reference": "a09d8ee17ac1cfea29ed60c83960ad685c6a898d"
|
"reference": "81c2b5fd36581370c7731387f05dcdb577050513"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a09d8ee17ac1cfea29ed60c83960ad685c6a898d",
|
"url": "https://api.github.com/repos/twigphp/Twig/zipball/81c2b5fd36581370c7731387f05dcdb577050513",
|
||||||
"reference": "a09d8ee17ac1cfea29ed60c83960ad685c6a898d",
|
"reference": "81c2b5fd36581370c7731387f05dcdb577050513",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -5828,7 +5880,7 @@
|
|||||||
"keywords": [
|
"keywords": [
|
||||||
"templating"
|
"templating"
|
||||||
],
|
],
|
||||||
"time": "2016-10-05 18:57:41"
|
"time": "2016-10-02 16:19:13"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "wallabag/php-mobi",
|
"name": "wallabag/php-mobi",
|
||||||
@ -6035,7 +6087,7 @@
|
|||||||
],
|
],
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "William Durand",
|
"name": "William DURAND",
|
||||||
"email": "william.durand1@gmail.com"
|
"email": "william.durand1@gmail.com"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -6956,16 +7008,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit",
|
"name": "phpunit/phpunit",
|
||||||
"version": "5.6.1",
|
"version": "5.5.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||||
"reference": "60c32c5b5e79c2248001efa2560f831da11cc2d7"
|
"reference": "146e0fe0bb7f44d1cefade0c93e86fe0b206dd79"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/60c32c5b5e79c2248001efa2560f831da11cc2d7",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/146e0fe0bb7f44d1cefade0c93e86fe0b206dd79",
|
||||||
"reference": "60c32c5b5e79c2248001efa2560f831da11cc2d7",
|
"reference": "146e0fe0bb7f44d1cefade0c93e86fe0b206dd79",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -6999,6 +7051,7 @@
|
|||||||
"ext-pdo": "*"
|
"ext-pdo": "*"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
|
"ext-tidy": "*",
|
||||||
"ext-xdebug": "*",
|
"ext-xdebug": "*",
|
||||||
"phpunit/php-invoker": "~1.1"
|
"phpunit/php-invoker": "~1.1"
|
||||||
},
|
},
|
||||||
@ -7008,7 +7061,7 @@
|
|||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "5.6.x-dev"
|
"dev-master": "5.5.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@ -7034,20 +7087,20 @@
|
|||||||
"testing",
|
"testing",
|
||||||
"xunit"
|
"xunit"
|
||||||
],
|
],
|
||||||
"time": "2016-10-07 13:03:26"
|
"time": "2016-10-03 07:48:45"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/phpunit-mock-objects",
|
"name": "phpunit/phpunit-mock-objects",
|
||||||
"version": "3.4.0",
|
"version": "3.3.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
||||||
"reference": "238d7a2723bce689c79eeac9c7d5e1d623bb9dc2"
|
"reference": "03500345483e1e17b52e2e4d34a89c9408ab2902"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/238d7a2723bce689c79eeac9c7d5e1d623bb9dc2",
|
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/03500345483e1e17b52e2e4d34a89c9408ab2902",
|
||||||
"reference": "238d7a2723bce689c79eeac9c7d5e1d623bb9dc2",
|
"reference": "03500345483e1e17b52e2e4d34a89c9408ab2902",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -7093,7 +7146,7 @@
|
|||||||
"mock",
|
"mock",
|
||||||
"xunit"
|
"xunit"
|
||||||
],
|
],
|
||||||
"time": "2016-10-09 07:01:45"
|
"time": "2016-10-04 11:03:26"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/code-unit-reverse-lookup",
|
"name": "sebastian/code-unit-reverse-lookup",
|
||||||
@ -7610,16 +7663,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sensio/generator-bundle",
|
"name": "sensio/generator-bundle",
|
||||||
"version": "v3.0.11",
|
"version": "v3.0.8",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
|
"url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
|
||||||
"reference": "b9be7f1b3b2e8bcfc1debefc901b71da923a5e5c"
|
"reference": "3c20d16512f37d2be159eca0411b99a141b90fa4"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/b9be7f1b3b2e8bcfc1debefc901b71da923a5e5c",
|
"url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/3c20d16512f37d2be159eca0411b99a141b90fa4",
|
||||||
"reference": "b9be7f1b3b2e8bcfc1debefc901b71da923a5e5c",
|
"reference": "3c20d16512f37d2be159eca0411b99a141b90fa4",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@ -7658,7 +7711,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "This bundle generates code for you",
|
"description": "This bundle generates code for you",
|
||||||
"time": "2016-10-10 14:17:42"
|
"time": "2016-09-06 01:30:19"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/phpunit-bridge",
|
"name": "symfony/phpunit-bridge",
|
||||||
@ -7766,17 +7819,11 @@
|
|||||||
"time": "2016-08-09 15:02:57"
|
"time": "2016-08-09 15:02:57"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"aliases": [
|
"aliases": [],
|
||||||
{
|
|
||||||
"alias": "2.0.x-dev",
|
|
||||||
"alias_normalized": "2.0.9999999.9999999-dev",
|
|
||||||
"version": "9999999-dev",
|
|
||||||
"package": "friendsofsymfony/user-bundle"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"stability-flags": {
|
"stability-flags": {
|
||||||
"friendsofsymfony/user-bundle": 20
|
"friendsofsymfony/user-bundle": 20,
|
||||||
|
"stof/doctrine-extensions-bundle": 20
|
||||||
},
|
},
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
|
|||||||
@ -11,7 +11,7 @@ Um den Wartungsmodus zu aktivieren, führe folgendes Kommando aus:
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
bin/console lexik:maintenance:lock -e=prod --no-interaction
|
bin/console lexik:maintenance:lock --no-interaction
|
||||||
|
|
||||||
Du kannst deine IP Adresse in ``app/config/config.yml`` setzen, wenn du Zugriff zu wallabag haben willst, auch wenn der Wartungsmodus aktiv ist. Zum Beispiel:
|
Du kannst deine IP Adresse in ``app/config/config.yml`` setzen, wenn du Zugriff zu wallabag haben willst, auch wenn der Wartungsmodus aktiv ist. Zum Beispiel:
|
||||||
|
|
||||||
@ -29,4 +29,4 @@ Um den Wartungsmodus zu deaktivieren, führe dieses Kommando aus:
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
bin/console lexik:maintenance:unlock -e=prod
|
bin/console lexik:maintenance:unlock
|
||||||
|
|||||||
@ -46,10 +46,6 @@ Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzuricht
|
|||||||
rabbitmq_user: guest
|
rabbitmq_user: guest
|
||||||
rabbitmq_password: guest
|
rabbitmq_password: guest
|
||||||
|
|
||||||
Enable RabbitMQ in wallabag
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
In internal settings, in the **Import** section, enable RabbitMQ (with the value 1).
|
|
||||||
|
|
||||||
Starte den RabbitMQ Consumer
|
Starte den RabbitMQ Consumer
|
||||||
----------------------------
|
----------------------------
|
||||||
@ -59,23 +55,23 @@ Abhängig von welchem Service du importieren möchtest, solltest du einen Cron J
|
|||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
# for Pocket import
|
# for Pocket import
|
||||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
bin/console rabbitmq:consumer import_pocket -w
|
||||||
|
|
||||||
# for Readability import
|
# for Readability import
|
||||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
bin/console rabbitmq:consumer import_readability -w
|
||||||
|
|
||||||
# for Instapaper import
|
# for Instapaper import
|
||||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
bin/console rabbitmq:consumer import_instapaper -w
|
||||||
|
|
||||||
# for wallabag v1 import
|
# for wallabag v1 import
|
||||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
bin/console rabbitmq:consumer import_wallabag_v1 -w
|
||||||
|
|
||||||
# for wallabag v2 import
|
# for wallabag v2 import
|
||||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
bin/console rabbitmq:consumer import_wallabag_v2 -w
|
||||||
|
|
||||||
# for Firefox import
|
# for Firefox import
|
||||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
bin/console rabbitmq:consumer import_firefox -w
|
||||||
|
|
||||||
# for Chrome import
|
# for Chrome import
|
||||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
bin/console rabbitmq:consumer import_chrome -w
|
||||||
|
|
||||||
|
|||||||
@ -35,10 +35,6 @@ Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzuricht
|
|||||||
redis_host: localhost
|
redis_host: localhost
|
||||||
redis_port: 6379
|
redis_port: 6379
|
||||||
|
|
||||||
Enable Redis in wallabag
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
In internal settings, in the **Import** section, enable Redis (with the value 1).
|
|
||||||
|
|
||||||
Starte den Redis Consumer
|
Starte den Redis Consumer
|
||||||
-------------------------
|
-------------------------
|
||||||
@ -48,28 +44,28 @@ Abhängig von welchem Service du importieren möchtest, solltest du einen Cron J
|
|||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
# for Pocket import
|
# for Pocket import
|
||||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
bin/console wallabag:import:redis-worker pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||||
|
|
||||||
# for Readability import
|
# for Readability import
|
||||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||||
|
|
||||||
# for Instapaper import
|
# for Instapaper import
|
||||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||||
|
|
||||||
# for wallabag v1 import
|
# for wallabag v1 import
|
||||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||||
|
|
||||||
# for wallabag v2 import
|
# for wallabag v2 import
|
||||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||||
|
|
||||||
# for Firefox import
|
# for Firefox import
|
||||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||||
|
|
||||||
# for Chrome import
|
# for Chrome import
|
||||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||||
|
|
||||||
Wenn du den Import nur für ein paar Nachrichten und nicht für alle starten willst, kannst du die Nummer (im folgenden Beispiel 12) angeben. Der Redis Worker wird dann nach der 12. Nachricht stoppen:
|
Wenn du den Import nur für ein paar Nachrichten und nicht für alle starten willst, kannst du die Nummer (im folgenden Beispiel 12) angeben. Der Redis Worker wird dann nach der 12. Nachricht stoppen:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
Testsuite
|
|
||||||
=========
|
|
||||||
|
|
||||||
To ensure wallabag development quality, we wrote tests with `PHPUnit <https://phpunit.de>`_.
|
|
||||||
|
|
||||||
If you contribute to the project (by translating the application, by fixing bugs or by adding a new feature), please write your own tests.
|
|
||||||
|
|
||||||
To launch wallabag testsuite, you need to install `ant <http://ant.apache.org>`_.
|
|
||||||
|
|
||||||
Then, execute this command ``make test``.
|
|
||||||
@ -30,8 +30,8 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
|||||||
|
|
||||||
user/faq
|
user/faq
|
||||||
user/installation
|
user/installation
|
||||||
user/upgrade-2.0.x-2.1.1
|
user/upgrade-2.0.x-2.1.y
|
||||||
user/upgrade-2.0.x-2.1.1
|
user/upgrade-2.0.x-2.0.y
|
||||||
user/migration
|
user/migration
|
||||||
user/import
|
user/import
|
||||||
user/create_account
|
user/create_account
|
||||||
@ -44,7 +44,6 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
|||||||
user/filters
|
user/filters
|
||||||
user/tags
|
user/tags
|
||||||
user/android
|
user/android
|
||||||
user/parameters
|
|
||||||
|
|
||||||
.. _dev-docs:
|
.. _dev-docs:
|
||||||
|
|
||||||
|
|||||||
@ -102,7 +102,7 @@ Wenn *readingTime >= 5 AND domainName = "github.com"*, dann tagge als *lange zu
|
|||||||
Welche Variablen und Operatoren kann ich zum Regeln schreiben nutzen?
|
Welche Variablen und Operatoren kann ich zum Regeln schreiben nutzen?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen (sei vorsichtig, denn bei einigen Werten musst du Anführungszeichen hinzufügen, z.B. ``language = "de"``):
|
Die folgenden Variabel und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:
|
||||||
|
|
||||||
=========== ============================================== ======== ==========
|
=========== ============================================== ======== ==========
|
||||||
Variable Bedeutung Operator Bedeutung
|
Variable Bedeutung Operator Bedeutung
|
||||||
|
|||||||
@ -6,20 +6,6 @@ Voraussetzungen
|
|||||||
|
|
||||||
wallabag ist kompatibel mit PHP >= 5.5, inkl. PHP 7.
|
wallabag ist kompatibel mit PHP >= 5.5, inkl. PHP 7.
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
To install wallabag easily, we create a ``Makefile``, so you need to have the ``make`` tool.
|
|
||||||
|
|
||||||
wallabag nutzt eine große Anzahl an Bibliotheken, um zu funktionieren. Diese Bibliotheken müssen mit einem Tool namens Composer installiert werden. Du musst es installieren sofern du es bisher noch nicht gemacht hast.
|
|
||||||
|
|
||||||
Composer installieren:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
curl -s http://getcomposer.org/installer | php
|
|
||||||
|
|
||||||
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
|
|
||||||
|
|
||||||
Du benötigst die folgenden Extensions damit wallabag funktioniert. Einige von diesen sind vielleicht schon in deiner Version von PHP aktiviert, somit musst du eventuell
|
Du benötigst die folgenden Extensions damit wallabag funktioniert. Einige von diesen sind vielleicht schon in deiner Version von PHP aktiviert, somit musst du eventuell
|
||||||
nicht alle folgenden Pakete installieren.
|
nicht alle folgenden Pakete installieren.
|
||||||
|
|
||||||
@ -53,20 +39,33 @@ Installation
|
|||||||
Auf einem dedizierten Webserver (empfohlener Weg)
|
Auf einem dedizierten Webserver (empfohlener Weg)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
wallabag nutzt eine große Anzahl an Bibliotheken, um zu funktionieren. Diese Bibliotheken müssen mit einem Tool namens Composer installiert werden. Du musst es installieren sofern du es bisher noch nicht gemacht hast.
|
||||||
|
|
||||||
|
Composer installieren:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
curl -s http://getcomposer.org/installer | php
|
||||||
|
|
||||||
|
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
|
||||||
|
|
||||||
Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
|
Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
git clone https://github.com/wallabag/wallabag.git
|
git clone https://github.com/wallabag/wallabag.git
|
||||||
cd wallabag && make install
|
cd wallabag
|
||||||
|
git checkout 2.1.1 --force
|
||||||
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
|
php bin/console wallabag:install --env=prod
|
||||||
|
|
||||||
Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
|
Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
make run
|
php bin/console server:run --env=prod
|
||||||
|
|
||||||
und wallabag unter http://deineserverip:8000 erreichen.
|
Und wallabag unter http://deineserverip:8000 erreichen
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
@ -88,18 +87,18 @@ Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacke
|
|||||||
|
|
||||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
(md5 hash: ``6c33520e29cc754b687f9cee0398dede``)
|
||||||
|
|
||||||
Jetzt lies die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
|
Jetzt lese die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
|
||||||
Wenn du die Datenbankkonfiguration eingestellt hast, MySQL oder PostgreSQL zu nutzen, musst du einen Nutzer über das folgende Kommando erstellen ``php bin/console wallabag:install --env=prod``.
|
Wenn du die Datenbankkonfiguration eingestellt hast, MySQL oder PostgreSQL zu nutzen, musst du einen Nutzer über das folgende Kommando erstellen ``php bin/console wallabag:install --env=prod``.
|
||||||
|
|
||||||
Installation mit Docker
|
Installation mit Docker
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------
|
||||||
|
|
||||||
Wir stellen ein Docker Image zu Verfügung, um wallabag einfach zu installieren. Schaue in unser Repository in unserem `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__, um mehr Informationen zu erhalten.
|
Wir stellen ein Docker Image zu Verfügung, um wallabag einfach zu installieren. Schaue in unser Repository in unserem `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__, um mehr Informationen zu erhalten.
|
||||||
|
|
||||||
Kommando, um den Container zu starten
|
Kommando, um den Container zu starten
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
@ -109,7 +108,7 @@ Virtualhosts
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
Konfiguration von Apache
|
Konfiguration von Apache
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren und du willst PHP als Apache Modul nutzen, dann ist hier ein vhost für wallabag:
|
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren und du willst PHP als Apache Modul nutzen, dann ist hier ein vhost für wallabag:
|
||||||
|
|
||||||
@ -191,14 +190,15 @@ Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installie
|
|||||||
access_log /var/log/nginx/wallabag_access.log;
|
access_log /var/log/nginx/wallabag_access.log;
|
||||||
}
|
}
|
||||||
|
|
||||||
Nach dem Neuladen oder Neustarten von nginx solltest du nun wallabag unter http://domain.tld erreichen.
|
Nach dem neuladen oder neustarten von nginx, solltest du nun wallabag unter http://domain.tld erreichen.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
|
When you want to import large file into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
||||||
Wenn du eine große Datei in wallabag importieren willst, solltest du diese Zeile zu deiner nginx Konfiguration hinzufügen ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
Wenn du eine große Datei in wallabag importieren willst, solltest du diese Zeile zu deiner nginx Konfiguration hinzufügen ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
||||||
|
|
||||||
Konfiguration von lighttpd
|
Konfiguration von lighttpd
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag (bearbeite deine ``lighttpd.conf`` und füge die Konfiguration dort ein):
|
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag (bearbeite deine ``lighttpd.conf`` und füge die Konfiguration dort ein):
|
||||||
|
|
||||||
|
|||||||
@ -1,50 +0,0 @@
|
|||||||
Was bedeuten die Parameter?
|
|
||||||
===========================
|
|
||||||
.. csv-table:: Datenbankparameter
|
|
||||||
:header: "Name", "Standardwert", "Beschreibung"
|
|
||||||
|
|
||||||
"database_driver", "pdo_sqlite", "Sollte pdo_sqlite oder pdo_mysql oder pdo_pgsql sein"
|
|
||||||
"database_host", "127.0.0.1", "Hostadresse deiner Datenbank (normalerweise localhost oder 127.0.0.1)"
|
|
||||||
"database_port", "~", "Port deiner Datenbank (Du kannst ``~`` stehen lassen, um den Standardport zu nutzen)"
|
|
||||||
"database_name", "symfony", "Benenne deine Datenbank"
|
|
||||||
"database_user", "root", "Benutzer, der Schreibrecht in der Datenbank hat"
|
|
||||||
"database_password", "~", "Passwort des Benutzers"
|
|
||||||
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "nur für SQLite, definiere, wo die Datenbankdatei abgelegt werden soll. Lass den Parameter leer für andere Datenbanktypen."
|
|
||||||
"database_table_prefix", "wallabag_", "alle wallabag Tabellen erhalten diesen Präfix im Namen. Du kannst einen ``_`` dafür im Präfix nutzen, um das zu verdeutlichen."
|
|
||||||
"database_socket", "null", "Wenn deine Datenbank einen Socket statt TCP nutzt, schreibe hier den Pfad zum Socket hin (andere Verbindungsparameter werden dann ignoriert."
|
|
||||||
|
|
||||||
.. csv-table:: Konfiguration, um mit wallabag E-Mails senden zu können
|
|
||||||
:header: "Name", "Standardwert", "Beschreibung"
|
|
||||||
|
|
||||||
"mailer_transport", "smtp", "Die exakte Transportmethode, um E-Mails zuzustellen. Gültige Werte sind: smtp, gmail, mail, sendmail, null (was das Mailen deaktivert)"
|
|
||||||
"mailer_host", "127.0.0.1", "Der Host, zu dem sich verbunden wird, wenn SMTP als Transport genutzt wird."
|
|
||||||
"mailer_user", "~", "Der Benutzername, wenn SMTP als Transport genutzt wird."
|
|
||||||
"mailer_password", "~", "Das Passwort, wenn SMTP als Transport genutzt wird."
|
|
||||||
|
|
||||||
.. csv-table:: Andere wallabag Optionen
|
|
||||||
:header: "Name", "Standardwert", "Beschreibung"
|
|
||||||
|
|
||||||
"locale", "en", "Standardsprache deiner wallabag Instanz (wie z.B. en, fr, es, etc.)"
|
|
||||||
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "Dieser String sollte einzigartig für deine Applikation sein und er wird genutzt, um sicherheitsrelevanten Operationen mehr Entropie hinzuzufügen."
|
|
||||||
"twofactor_auth", "true", "true, um Zwei-Faktor-Authentifizierung zu aktivieren"
|
|
||||||
"twofactor_sender", "no-reply@wallabag.org", "E-Mail-Adresse des Senders der Mails mit dem Code für die Zwei-Faktor-Authentifizierung"
|
|
||||||
"fosuser_registration", "true", "true, um die Registrierung für jedermann zu aktivieren"
|
|
||||||
"fosuser_confirmation", "true", "true, um eine Bestätigungsmail für jede Registrierung zu senden"
|
|
||||||
"from_email", "no-reply@wallabag.org", "E-Mail-Adresse, die im Absenderfeld jeder Mail genutzt wird"
|
|
||||||
"rss_limit", "50", "Artikellimit für RSS Feeds"
|
|
||||||
|
|
||||||
.. csv-table:: RabbitMQ Konfiguration
|
|
||||||
:header: "Name", "Standardwert", "Beschreibung"
|
|
||||||
|
|
||||||
"rabbitmq_host", "localhost", "Host deines RabbitMQ"
|
|
||||||
"rabbitmq_port", "5672", "Port deines RabbitMQ"
|
|
||||||
"rabbitmq_user", "guest", "Benutzer, der die Queue lesen kann"
|
|
||||||
"rabbitmq_password", "guest", "Passwort dieses Benutzers"
|
|
||||||
|
|
||||||
.. csv-table:: Redis Konfiguration
|
|
||||||
:header: "Name", "Standardwert", "Beschreibung"
|
|
||||||
|
|
||||||
"redis_scheme", "tcp", "Bestimmt das Protokoll, dass genutzt wird, um mit Redis zu kommunizieren. Gültige Werte sind: tcp, unix, http"
|
|
||||||
"redis_host", "localhost", "IP oder Hostname des Zielservers (ignoriert bei Unix Schema)"
|
|
||||||
"redis_port", "6379", "TCP/IP Port des Zielservers (ignoriert bei Unix Schema)"
|
|
||||||
"redis_path", "null", "Pfad zur Unix Domain Socket Datei, wenn Redis Unix Domain Sockets nutzt"
|
|
||||||
@ -1,17 +1,17 @@
|
|||||||
Wallabag von 2.1.x auf 2.1.y updaten
|
Wallabag updaten 2.0.x -> 2.1.x
|
||||||
====================================
|
===============================
|
||||||
|
|
||||||
Update auf einem dedizierten Webserver
|
Update auf einem dedizierten Webserver
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag Installation auf die neueste Version upzudaten, führe die folgenden Kommandos in deinem wallabag Ordner aus (ersetze ``2.1.2`` mit der neuesten Releasenummer):
|
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag Installation auf die neueste Version upzudaten, führe die folgenden Kommandos in deinem wallabag Ordner aus (ersetze ``2.0.8`` mit der neuesten Releasenummer):
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
rm -rf var/cache/*
|
rm -rf var/cache/*
|
||||||
git fetch origin
|
git fetch origin
|
||||||
git fetch --tags
|
git fetch --tags
|
||||||
git checkout 2.1.2 --force
|
git checkout 2.0.8
|
||||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
php bin/console cache:clear --env=prod
|
php bin/console cache:clear --env=prod
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Lade das neueste Release von wallabag herunter:
|
|||||||
|
|
||||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
(md5 Hashsumme von 2.1.1: ``9584a3b60a2b2a4de87f536548caac93``)
|
(md5 hash: ``4f84c725d1d6e3345eae0a406115e5ff``)
|
||||||
|
|
||||||
Entpacke das Archiv in deinen wallabag Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
|
Entpacke das Archiv in deinen wallabag Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
|
||||||
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
Wallabag von 2.0.x auf 2.1.1 updaten
|
Wallabag updaten
|
||||||
====================================
|
================
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
Wenn du den Import von Pocket durch das Hinzufügen des Consumer Key in den internen Einstellungen konfiguriert hast, fertige bitte ein Backup deines Keys an, bevor du auf das neue Release migrierst: Du wirst den Key nach dem Update in der Konfiguration erneut eintragen müssen.
|
Wenn du den Import von Pocket durch das Hinzufügen des Consumer Key in den internen Einstellungen konfiguriert hast, fertige bitte ein Backup deines Keys an, bevor du auf das neue Release migrierst: Du wirst den Key nach dem Update in der Konfiguration erneut eintragen müssen.
|
||||||
@ -30,43 +30,23 @@ Lade das neueste Release von wallabag herunter:
|
|||||||
|
|
||||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
(2.1.1 md5 Hashsumme: ``9584a3b60a2b2a4de87f536548caac93``)
|
(md5 hash: ``6c33520e29cc754b687f9cee0398dede``)
|
||||||
|
|
||||||
Entpacke das Archiv in deinen wallabag-Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
|
Entpacke das Archiv in deinen wallabag-Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
|
||||||
|
|
||||||
Bitte beachte, dass wir in dieser Version neue Parameter hinzugefügt haben. Du musst die Datei ``app/config/parameters.yml`` bearbeiten und die folgenden Zeilen hinzufügen (ersetze die Werte mit deiner Konfiguration):
|
Bitte beachte, dass wir in dieser Version neue Parameter hinzugefügt haben. Du musst die Datei ``app/config/parameters.yml`` bearbeiten und die folgenden Zeilen hinzufügen (ersetze die Werte mit deiner Konfiguration):
|
||||||
|
|
||||||
.. code-block:: yml
|
.. code-block:: bash
|
||||||
|
|
||||||
parameters:
|
# RabbitMQ processing
|
||||||
database_driver: pdo_sqlite
|
rabbitmq_host: localhost
|
||||||
database_host: 127.0.0.1
|
rabbitmq_port: 5672
|
||||||
database_port: null
|
rabbitmq_user: guest
|
||||||
database_name: symfony
|
rabbitmq_password: guest
|
||||||
database_user: root
|
|
||||||
database_password: null
|
|
||||||
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
|
|
||||||
database_table_prefix: wallabag_
|
|
||||||
mailer_transport: smtp
|
|
||||||
mailer_host: 127.0.0.1
|
|
||||||
mailer_user: null
|
|
||||||
mailer_password: null
|
|
||||||
locale: en
|
|
||||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
|
||||||
twofactor_auth: true
|
|
||||||
twofactor_sender: no-reply@wallabag.org
|
|
||||||
fosuser_registration: true
|
|
||||||
fosuser_confirmation: true
|
|
||||||
from_email: no-reply@wallabag.org
|
|
||||||
rss_limit: 50
|
|
||||||
rabbitmq_host: localhost
|
|
||||||
rabbitmq_port: 5672
|
|
||||||
rabbitmq_user: guest
|
|
||||||
rabbitmq_password: guest
|
|
||||||
redis_host: localhost
|
|
||||||
redis_port: 6379
|
|
||||||
|
|
||||||
Du kannst `hier eine Dokumentation über die Parameter finden <http://doc.wallabag.org/en/master/user/parameters.html>`_.
|
# Redis processing
|
||||||
|
redis_host: localhost
|
||||||
|
redis_port: 6379
|
||||||
|
|
||||||
Wenn du SQLite nutzt, musst auch das ``data/`` Verzeichnis in die neue Installation kopieren.
|
Wenn du SQLite nutzt, musst auch das ``data/`` Verzeichnis in die neue Installation kopieren.
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ Requirements
|
|||||||
|
|
||||||
* wallabag freshly (or not) installed on http://localhost:8000
|
* wallabag freshly (or not) installed on http://localhost:8000
|
||||||
* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget.
|
* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget.
|
||||||
* all the API methods are documented here http://localhost:8000/api/doc (on your instance) and `on our example instance <http://v2.wallabag.org/api/doc>`_
|
* all the API methods are documented here http://localhost:8000/api/doc
|
||||||
|
|
||||||
Creating a new API client
|
Creating a new API client
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|||||||
@ -11,7 +11,7 @@ To enable maintenance mode, execute this command:
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
bin/console lexik:maintenance:lock --no-interaction -e=prod
|
bin/console lexik:maintenance:lock --no-interaction
|
||||||
|
|
||||||
You can set your IP address in ``app/config/config.yml`` if you want to access to wallabag even if maintenance mode is enabled. For example:
|
You can set your IP address in ``app/config/config.yml`` if you want to access to wallabag even if maintenance mode is enabled. For example:
|
||||||
|
|
||||||
@ -29,4 +29,4 @@ To disable maintenance mode, execute this command:
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
bin/console lexik:maintenance:unlock -e=prod
|
bin/console lexik:maintenance:unlock
|
||||||
|
|||||||
@ -46,10 +46,6 @@ Edit your ``parameters.yml`` file to edit RabbitMQ configuration. The default on
|
|||||||
rabbitmq_user: guest
|
rabbitmq_user: guest
|
||||||
rabbitmq_password: guest
|
rabbitmq_password: guest
|
||||||
|
|
||||||
Enable RabbitMQ in wallabag
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
In internal settings, in the **Import** section, enable RabbitMQ (with the value 1).
|
|
||||||
|
|
||||||
Launch RabbitMQ consumer
|
Launch RabbitMQ consumer
|
||||||
------------------------
|
------------------------
|
||||||
@ -59,22 +55,22 @@ Depending on which service you want to import from you need to enable one (or ma
|
|||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
# for Pocket import
|
# for Pocket import
|
||||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
bin/console rabbitmq:consumer import_pocket -w
|
||||||
|
|
||||||
# for Readability import
|
# for Readability import
|
||||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
bin/console rabbitmq:consumer import_readability -w
|
||||||
|
|
||||||
# for Instapaper import
|
# for Instapaper import
|
||||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
bin/console rabbitmq:consumer import_instapaper -w
|
||||||
|
|
||||||
# for wallabag v1 import
|
# for wallabag v1 import
|
||||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
bin/console rabbitmq:consumer import_wallabag_v1 -w
|
||||||
|
|
||||||
# for wallabag v2 import
|
# for wallabag v2 import
|
||||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
bin/console rabbitmq:consumer import_wallabag_v2 -w
|
||||||
|
|
||||||
# for Firefox import
|
# for Firefox import
|
||||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
bin/console rabbitmq:consumer import_firefox -w
|
||||||
|
|
||||||
# for Chrome import
|
# for Chrome import
|
||||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
bin/console rabbitmq:consumer import_chrome -w
|
||||||
|
|||||||
@ -35,10 +35,6 @@ Edit your ``parameters.yml`` file to edit Redis configuration. The default one s
|
|||||||
redis_host: localhost
|
redis_host: localhost
|
||||||
redis_port: 6379
|
redis_port: 6379
|
||||||
|
|
||||||
Enable Redis in wallabag
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
In internal settings, in the **Import** section, enable Redis (with the value 1).
|
|
||||||
|
|
||||||
Launch Redis consumer
|
Launch Redis consumer
|
||||||
---------------------
|
---------------------
|
||||||
@ -48,28 +44,28 @@ Depending on which service you want to import from you need to enable one (or ma
|
|||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
# for Pocket import
|
# for Pocket import
|
||||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
bin/console wallabag:import:redis-worker pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||||
|
|
||||||
# for Readability import
|
# for Readability import
|
||||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||||
|
|
||||||
# for Instapaper import
|
# for Instapaper import
|
||||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||||
|
|
||||||
# for wallabag v1 import
|
# for wallabag v1 import
|
||||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||||
|
|
||||||
# for wallabag v2 import
|
# for wallabag v2 import
|
||||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||||
|
|
||||||
# for Firefox import
|
# for Firefox import
|
||||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||||
|
|
||||||
# for Chrome import
|
# for Chrome import
|
||||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||||
|
|
||||||
If you want to launch the import only for some messages and not all, you can specify this number (here 12) and the worker will stop right after the 12th message :
|
If you want to launch the import only for some messages and not all, you can specify this number (here 12) and the worker will stop right after the 12th message :
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
Testsuite
|
|
||||||
=========
|
|
||||||
|
|
||||||
To ensure wallabag development quality, we wrote tests with `PHPUnit <https://phpunit.de>`_.
|
|
||||||
|
|
||||||
If you contribute to the project (by translating the application, by fixing bugs or by adding a new feature), please write your own tests.
|
|
||||||
|
|
||||||
To launch wallabag testsuite, you need to install `ant <http://ant.apache.org>`_.
|
|
||||||
|
|
||||||
Then, execute this command ``make test``.
|
|
||||||
@ -30,8 +30,8 @@ The documentation is available in other languages:
|
|||||||
|
|
||||||
user/faq
|
user/faq
|
||||||
user/installation
|
user/installation
|
||||||
user/upgrade-2.0.x-2.1.1
|
user/upgrade-2.0.x-2.1.y
|
||||||
user/upgrade-2.1.x-2.1.y
|
user/upgrade-2.0.x-2.0.y
|
||||||
user/migration
|
user/migration
|
||||||
user/import
|
user/import
|
||||||
user/create_account
|
user/create_account
|
||||||
@ -45,7 +45,6 @@ The documentation is available in other languages:
|
|||||||
user/filters
|
user/filters
|
||||||
user/tags
|
user/tags
|
||||||
user/android
|
user/android
|
||||||
user/parameters
|
|
||||||
|
|
||||||
.. _dev-docs:
|
.. _dev-docs:
|
||||||
|
|
||||||
|
|||||||
@ -29,13 +29,13 @@ Fill in your wallabag data. You need to enter your wallabag address. It is impor
|
|||||||
:alt: Filled in settings
|
:alt: Filled in settings
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
After you have filled in your data, push the button Connection test and wait for the test to finish.
|
After you have filled in your data, push the button Connection test and wait for the test to finish.
|
||||||
|
|
||||||
.. image:: ../../img/user/android_configuration_connection_test.en.png
|
.. image:: ../../img/user/android_configuration_connection_test.en.png
|
||||||
:alt: Connection test with your wallabag data
|
:alt: Connection test with your wallabag data
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
The connection test should finish with success. If not, you need to fix this first until you proceed.
|
The connection test shall finish with success. If not, you need to fix this first until you proceed.
|
||||||
|
|
||||||
.. image:: ../../img/user/android_configuration_connection_test_success.en.png
|
.. image:: ../../img/user/android_configuration_connection_test_success.en.png
|
||||||
:alt: Connection test successful
|
:alt: Connection test successful
|
||||||
@ -65,16 +65,16 @@ After hitting the save button, you get the following screen. The app proposes to
|
|||||||
:alt: Settings saved the first time
|
:alt: Settings saved the first time
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
Finally after the synchronisation finished successfully, you are presented to the list of unread articles.
|
Finally after the syncronisation finished successfully, you are presented the list of unread articles.
|
||||||
|
|
||||||
.. image:: ../../img/user/android_unread_feed_synced.en.png
|
.. image:: ../../img/user/android_unread_feed_synced.en.png
|
||||||
:alt: Filled article list cause feeds successfully synchronized
|
:alt: Filled article list cause feeds successfully syncronized
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Known limitations
|
Known limitations
|
||||||
-----------------
|
----
|
||||||
|
|
||||||
2FA
|
2FA
|
||||||
~~~
|
~~~
|
||||||
@ -85,7 +85,7 @@ Currently the does not support two-factor authentication. You should disable tha
|
|||||||
Limited amount of articles with wallabag v2
|
Limited amount of articles with wallabag v2
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
In your wallabag web instance you can configure how many items are part of the RSS feed. This option did not exist in wallabag v1, where all articles were part of the feed. So if you set the amount of articles being displayed greater than the number of items being content of your RSS feed, you will only see the number of items in your RSS feed.
|
In your wallabag web instance you can configure how many items are part of the RSS feed. This option did not exist in wallabag v1, where all articles were part of the feed. So if you set the amount of articles being displayed greater than the number of items being content of your RSS feed, you will only see the number of items in your RSS feed.
|
||||||
|
|
||||||
|
|
||||||
SSL/TLS encryption
|
SSL/TLS encryption
|
||||||
|
|||||||
@ -100,7 +100,7 @@ if *« readingTime >= 5 AND domainName = "github.com" »* then tag as *« long r
|
|||||||
Which variables and operators can I use to write rules?
|
Which variables and operators can I use to write rules?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The following variables and operators can be used to create tagging rules (be careful, for some values, you need to add quotes, for example ``language = "en"``):
|
The following variables and operators can be used to create tagging rules:
|
||||||
|
|
||||||
=========== ============================================== ======== ==========
|
=========== ============================================== ======== ==========
|
||||||
Variable Meaning Operator Meaning
|
Variable Meaning Operator Meaning
|
||||||
|
|||||||
@ -12,21 +12,9 @@ There may be several reasons:
|
|||||||
How can I help to fix that?
|
How can I help to fix that?
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
You can `sending us an email with the article's URL <mailto:hello@wallabag.org>`_.
|
- `by sending us an email with the article's URL <mailto:hello@wallabag.org>`_
|
||||||
|
- by trying to fix this article by yourself :) by creating a file for the article.
|
||||||
Or you can also try to fix this problem by yourself (so we can be focused on improving wallabag internally instead of writing siteconfig :) ).
|
You can use `this tool <http://siteconfig.fivefilters.org/>`__.
|
||||||
|
|
||||||
You can try to see if it works here: `http://f43.me/feed/test <http://f43.me/feed/test>`_ (it uses almost the same system as wallabag to retrieve content).
|
|
||||||
|
|
||||||
If it works here and not on wallabag, it means there is something internally in wallabag that breaks the parser (hard to fix: please open an issue about it).
|
|
||||||
|
|
||||||
If it doesn't works, try to extract a site config using: `http://siteconfig.fivefilters.org/ <http://siteconfig.fivefilters.org/>`_ (select which part of the content is actually the content). You can `read this documentation before <http://help.fivefilters.org/customer/en/portal/articles/223153-site-patterns>`_.
|
|
||||||
|
|
||||||
You can test it on **f43.me** website: click on **Want to try a custom siteconfig?** and put the generated file from siteconfig.fivefilters.org.
|
|
||||||
|
|
||||||
Repeat until you have something ok.
|
|
||||||
|
|
||||||
Then you can submit a pull request to `https://github.com/fivefilters/ftr-site-config <https://github.com/fivefilters/ftr-site-config>`_ which is the global repo for siteconfig files.
|
|
||||||
|
|
||||||
How can I try to re-fetch this article?
|
How can I try to re-fetch this article?
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|||||||
@ -35,7 +35,7 @@ From Readability
|
|||||||
Export your Readability data
|
Export your Readability data
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
On the tools (`https://www.readability.com/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).
|
On the tools (`https://www.readability.com/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).
|
||||||
|
|
||||||
Import your data into wallabag 2.x
|
Import your data into wallabag 2.x
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -51,7 +51,7 @@ From Instapaper
|
|||||||
Export your Instapaper data
|
Export your Instapaper data
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
On the settings (`https://www.instapaper.com/user <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``).
|
On the settings (`https://www.instapaper.com/user<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``).
|
||||||
|
|
||||||
Import your data into wallabag 2.x
|
Import your data into wallabag 2.x
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@ -6,21 +6,7 @@ Requirements
|
|||||||
|
|
||||||
wallabag is compatible with PHP >= 5.5, including PHP 7.
|
wallabag is compatible with PHP >= 5.5, including PHP 7.
|
||||||
|
|
||||||
.. note::
|
You'll need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
|
||||||
|
|
||||||
To install wallabag easily, we provide a ``Makefile``, so you need to have the ``make`` tool.
|
|
||||||
|
|
||||||
wallabag uses a large number of PHP libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so and be sure to use the 1.2 version (if you already have Composer, run a ``composer selfupdate``).
|
|
||||||
|
|
||||||
Install Composer:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
curl -s http://getcomposer.org/installer | php
|
|
||||||
|
|
||||||
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__.
|
|
||||||
|
|
||||||
You'll also need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
|
|
||||||
|
|
||||||
- php-session
|
- php-session
|
||||||
- php-ctype
|
- php-ctype
|
||||||
@ -52,18 +38,31 @@ Installation
|
|||||||
On a dedicated web server (recommended way)
|
On a dedicated web server (recommended way)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
wallabag uses a large number of PHP libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so and be sure to use the 1.2 version (if you already have Composer, run a ``composer selfupdate``).
|
||||||
|
|
||||||
|
Install Composer:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
curl -s http://getcomposer.org/installer | php
|
||||||
|
|
||||||
|
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__.
|
||||||
|
|
||||||
To install wallabag itself, you must run the following commands:
|
To install wallabag itself, you must run the following commands:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
git clone https://github.com/wallabag/wallabag.git
|
git clone https://github.com/wallabag/wallabag.git
|
||||||
cd wallabag && make install
|
cd wallabag
|
||||||
|
git checkout 2.1.1 --force
|
||||||
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
|
php bin/console wallabag:install --env=prod
|
||||||
|
|
||||||
To start PHP's build-in server and test if everything did install correctly, you can do:
|
To start PHP's build-in server and test if everything did install correctly, you can do:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
make run
|
php bin/console server:run --env=prod
|
||||||
|
|
||||||
And access wallabag at http://yourserverip:8000
|
And access wallabag at http://yourserverip:8000
|
||||||
|
|
||||||
@ -87,18 +86,18 @@ Execute this command to download and extract the latest package:
|
|||||||
|
|
||||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
You will find the `md5 hash of the latest package on our website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
(md5 hash of the 2.1.0 package: ``6c33520e29cc754b687f9cee0398dede``)
|
||||||
|
|
||||||
Now, read the following documentation to create your virtual host, then access your wallabag.
|
Now, read the following documentation to create your virtual host, then access your wallabag.
|
||||||
If you changed the database configuration to use MySQL or PostgreSQL, you need to create a user via this command ``php bin/console wallabag:install --env=prod``.
|
If you changed the database configuration to use MySQL or PostgreSQL, you need to create a user via this command ``php bin/console wallabag:install --env=prod``.
|
||||||
|
|
||||||
Installation with Docker
|
Installation with Docker
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------
|
||||||
|
|
||||||
We provide you a Docker image to install wallabag easily. Have a look at our repository on `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ for more information.
|
We provide you a Docker image to install wallabag easily. Have a look to our repository on `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ to have more information.
|
||||||
|
|
||||||
Command to launch container
|
Command to launch container
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
@ -194,12 +193,12 @@ After reloading or restarting nginx, you should now be able to access wallabag a
|
|||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
|
|
||||||
When you want to import large files into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
When you want to import large file into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
||||||
|
|
||||||
Configuration on lighttpd
|
Configuration on lighttpd
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Assuming you install wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag (edit your ``lighttpd.conf`` file and paste this configuration into it):
|
Assuming you install wallabag in the /var/www/wallabag folder, here's the recipe for wallabag (edit your ``lighttpd.conf`` file and paste this configuration into it):
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -240,16 +239,16 @@ Rights access to the folders of the project
|
|||||||
Test environment
|
Test environment
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
When we just want to test wallabag, we just run the command ``make run`` to start our wallabag instance and everything will go smoothly because the user who started the project can access to the current folder naturally, without any problem.
|
When we just want to test wallabag, we just run the command ``php bin/console server:run --env=prod`` to start our wallabag instance and everything will go smoothly because the user who started the project can access to the current folder naturally, without any problem.
|
||||||
|
|
||||||
Production environment
|
Production environment
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
As soon as we use Apache or Nginx to access to our wallabag instance, and not from the command ``make run`` to start it, we should take care to grant the good rights on the good folders to keep safe all the folders of the project.
|
As soon as we use Apache or Nginx to access to our wallabag instance, and not from the command ``php bin/console server:run --env=prod`` to start it, we should take care to grant the good rights on the good folders to keep safe all the folders of the project.
|
||||||
|
|
||||||
To do so, the folder name, known as ``DocumentRoot`` (for apache) or ``root`` (for Nginx), has to be absolutely accessible by the Apache/Nginx user. Its name is generally ``www-data``, ``apache`` or ``nobody`` (depending on linux system used).
|
To do so, the folder name, known as ``DocumentRoot`` (for apache) or ``root`` (for Nginx), has to be absolutely accessible by the Apache/Nginx user. Its name is generally ``www-data``, ``apache`` or ``nobody`` (depending on linux system used).
|
||||||
|
|
||||||
So the folder ``/var/www/wallabag/web`` has to be accessible by this last one. But this may not be enough if we just care about this folder, because we could meet a blank page or get an error 500 when trying to access to the homepage of the project.
|
So the folder ``/var/www/wallabag/web`` has to be accessible by this last one. But this could be not enough if we just care about this folder, because we could meet a blank page or get an error 500 when trying to access to the homepage of the project.
|
||||||
|
|
||||||
This is due to the fact that we will need to grant the same rights access on the folder ``/var/www/wallabag/var`` like those we gave on the folder ``/var/www/wallabag/web``. Thus, we fix this problem with the following command:
|
This is due to the fact that we will need to grant the same rights access on the folder ``/var/www/wallabag/var`` like those we gave on the folder ``/var/www/wallabag/web``. Thus, we fix this problem with the following command:
|
||||||
|
|
||||||
|
|||||||
@ -1,50 +0,0 @@
|
|||||||
What is the meaning of the parameters?
|
|
||||||
======================================
|
|
||||||
.. csv-table:: Database parameters
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"database_driver", "pdo_sqlite", "Should be pdo_sqlite or pdo_mysql or pdo_pgsql"
|
|
||||||
"database_host", "127.0.0.1", "host of your database (usually localhost or 127.0.0.1)"
|
|
||||||
"database_port", "~", "port of your database (you can leave ``~`` to use the default one)"
|
|
||||||
"database_name", "symfony", "name of your database"
|
|
||||||
"database_user", "root", "user that can write to this database"
|
|
||||||
"database_password", "~", "password of that user"
|
|
||||||
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "only for SQLite, define where to put the database file. Leave it empty for other database"
|
|
||||||
"database_table_prefix", "wallabag_", "all wallabag's tables will be prefixed with that string. You can include a ``_`` for clarity"
|
|
||||||
"database_socket", "null", "If your database is using a socket instead of tcp, put the path of the socket (other connection parameters will then be ignored)"
|
|
||||||
|
|
||||||
.. csv-table:: Configuration to send emails from wallabag
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"mailer_transport", "smtp", "The exact transport method to use to deliver emails. Valid values are: smtp, gmail, mail, sendmail, null (which will disable the mailer)"
|
|
||||||
"mailer_host", "127.0.0.1", "The host to connect to when using smtp as the transport."
|
|
||||||
"mailer_user", "~", "The username when using smtp as the transport."
|
|
||||||
"mailer_password", "~", "The password when using smtp as the transport."
|
|
||||||
|
|
||||||
.. csv-table:: Other wallabag's option
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"locale", "en", "Default language of your wallabag instance (like en, fr, es, etc.)"
|
|
||||||
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "This is a string that should be unique to your application and it's commonly used to add more entropy to security related operations."
|
|
||||||
"twofactor_auth", "true", "true to enable Two factor authentication"
|
|
||||||
"twofactor_sender", "no-reply@wallabag.org", "email of the email sender to receive the two factor code"
|
|
||||||
"fosuser_registration", "true", "true to enable public registration"
|
|
||||||
"fosuser_confirmation", "true", "true to send a confirmation by email for each registration"
|
|
||||||
"from_email", "no-reply@wallabag.org", "email address used in From: field in each email"
|
|
||||||
"rss_limit", "50", "limit for RSS feeds"
|
|
||||||
|
|
||||||
.. csv-table:: RabbitMQ configuration
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"rabbitmq_host", "localhost", "Host of your RabbitMQ"
|
|
||||||
"rabbitmq_port", "5672", "Port of your RabbitMQ"
|
|
||||||
"rabbitmq_user", "guest", "User that can read queues"
|
|
||||||
"rabbitmq_password", "guest", "Password of that user"
|
|
||||||
|
|
||||||
.. csv-table:: Redis configuration
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"redis_scheme", "tcp", "Specifies the protocol used to communicate with an instance of Redis. Valid values are: tcp, unix, http"
|
|
||||||
"redis_host", "localhost", "IP or hostname of the target server (ignored for unix scheme)"
|
|
||||||
"redis_port", "6379", "TCP/IP port of the target server (ignored for unix scheme)"
|
|
||||||
"redis_path", "null", "Path of the UNIX domain socket file used when connecting to Redis using UNIX domain sockets"
|
|
||||||
@ -1,17 +1,17 @@
|
|||||||
Upgrading from 2.1.x to 2.1.y
|
Upgrade from 2.0.x to 2.0.y
|
||||||
=============================
|
===========================
|
||||||
|
|
||||||
Upgrade on a dedicated web server
|
Upgrade on a dedicated web server
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.1.2`` by the last release number):
|
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.0.8`` by the last release number):
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
rm -rf var/cache/*
|
rm -rf var/cache/*
|
||||||
git fetch origin
|
git fetch origin
|
||||||
git fetch --tags
|
git fetch --tags
|
||||||
git checkout 2.1.2 --force
|
git checkout 2.0.8
|
||||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
php bin/console cache:clear --env=prod
|
php bin/console cache:clear --env=prod
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Download the last release of wallabag:
|
|||||||
|
|
||||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
(md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``)
|
(md5 hash of the 2.0.8 package: ``4f84c725d1d6e3345eae0a406115e5ff``)
|
||||||
|
|
||||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||||
|
|
||||||
@ -1,84 +0,0 @@
|
|||||||
Upgrade from 2.0.x to 2.1.1
|
|
||||||
===========================
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade.
|
|
||||||
|
|
||||||
Upgrade on a dedicated web server
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
rm -rf var/cache/*
|
|
||||||
git fetch origin
|
|
||||||
git fetch --tags
|
|
||||||
git checkout 2.1.1 --force
|
|
||||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
|
||||||
php bin/console doctrine:migrations:migrate --env=prod
|
|
||||||
php bin/console cache:clear --env=prod
|
|
||||||
|
|
||||||
Upgrade on a shared hosting
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Backup your ``app/config/parameters.yml`` file.
|
|
||||||
|
|
||||||
Download the last release of wallabag:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
|
|
||||||
|
|
||||||
(md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``)
|
|
||||||
|
|
||||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
|
||||||
|
|
||||||
Please check that your ``app/config/parameters.yml`` contains all the required parameters. Here is a default ``parameters.yml`` file. If you don't know which parameter you need to set, please leave the default one.
|
|
||||||
|
|
||||||
.. code-block:: yml
|
|
||||||
|
|
||||||
parameters:
|
|
||||||
database_driver: pdo_sqlite
|
|
||||||
database_host: 127.0.0.1
|
|
||||||
database_port: null
|
|
||||||
database_name: symfony
|
|
||||||
database_user: root
|
|
||||||
database_password: null
|
|
||||||
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
|
|
||||||
database_table_prefix: wallabag_
|
|
||||||
mailer_transport: smtp
|
|
||||||
mailer_host: 127.0.0.1
|
|
||||||
mailer_user: null
|
|
||||||
mailer_password: null
|
|
||||||
locale: en
|
|
||||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
|
||||||
twofactor_auth: true
|
|
||||||
twofactor_sender: no-reply@wallabag.org
|
|
||||||
fosuser_registration: true
|
|
||||||
fosuser_confirmation: true
|
|
||||||
from_email: no-reply@wallabag.org
|
|
||||||
rss_limit: 50
|
|
||||||
rabbitmq_host: localhost
|
|
||||||
rabbitmq_port: 5672
|
|
||||||
rabbitmq_user: guest
|
|
||||||
rabbitmq_password: guest
|
|
||||||
redis_host: localhost
|
|
||||||
redis_port: 6379
|
|
||||||
|
|
||||||
You can find `here a documentation about parameters <http://doc.wallabag.org/en/master/user/parameters.html>`_.
|
|
||||||
|
|
||||||
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
|
|
||||||
|
|
||||||
Empty ``var/cache`` folder.
|
|
||||||
|
|
||||||
You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_`` and the database server is a MySQL one:
|
|
||||||
|
|
||||||
.. code-block:: sql
|
|
||||||
|
|
||||||
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
|
|
||||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
|
|
||||||
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
|
|
||||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
|
|
||||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
|
|
||||||
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
|
|
||||||
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
|
|
||||||
65
docs/en/user/upgrade-2.0.x-2.1.y.rst
Normal file
65
docs/en/user/upgrade-2.0.x-2.1.y.rst
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
Upgrading from 2.0.x to 2.1.y
|
||||||
|
=============================
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade.
|
||||||
|
|
||||||
|
Upgrade on a dedicated web server
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.1.1`` by the last release number):
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
rm -rf var/cache/*
|
||||||
|
git fetch origin
|
||||||
|
git fetch --tags
|
||||||
|
git checkout 2.1.1 --force
|
||||||
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
|
php bin/console doctrine:migrations:migrate --env=prod
|
||||||
|
php bin/console cache:clear --env=prod
|
||||||
|
|
||||||
|
Upgrade on a shared hosting
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Backup your ``app/config/parameters.yml`` file.
|
||||||
|
|
||||||
|
Download the last release of wallabag:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
|
(md5 hash of the 2.1.0 package: ``6c33520e29cc754b687f9cee0398dede``)
|
||||||
|
|
||||||
|
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||||
|
|
||||||
|
Please note that we added new parameters in this version. You have to edit ``app/config/parameters.yml`` by adding these lines (replace with your configuration) :
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
# RabbitMQ processing
|
||||||
|
rabbitmq_host: localhost
|
||||||
|
rabbitmq_port: 5672
|
||||||
|
rabbitmq_user: guest
|
||||||
|
rabbitmq_password: guest
|
||||||
|
|
||||||
|
# Redis processing
|
||||||
|
redis_host: localhost
|
||||||
|
redis_port: 6379
|
||||||
|
|
||||||
|
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
|
||||||
|
|
||||||
|
Empty ``var/cache`` folder.
|
||||||
|
|
||||||
|
You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_`` and the database server is a MySQL one:
|
||||||
|
|
||||||
|
.. code-block:: sql
|
||||||
|
|
||||||
|
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
|
||||||
|
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
|
||||||
|
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
|
||||||
|
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
|
||||||
|
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
|
||||||
|
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
|
||||||
|
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
|
||||||
@ -11,7 +11,7 @@ Pour activer le mode maintenance, exécutez cette commande :
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
bin/console lexik:maintenance:lock --no-interaction -e=prod
|
bin/console lexik:maintenance:lock --no-interaction
|
||||||
|
|
||||||
Vous pouvez spécifier votre adresse IP dans ``app/config/config.yml`` si vous souhaitez accéder à wallabag même si
|
Vous pouvez spécifier votre adresse IP dans ``app/config/config.yml`` si vous souhaitez accéder à wallabag même si
|
||||||
le mode maintenance est activé. Par exemple :
|
le mode maintenance est activé. Par exemple :
|
||||||
@ -30,4 +30,4 @@ Pour désactiver le mode maintenance, exécutez cette commande :
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
bin/console lexik:maintenance:unlock -e=prod
|
bin/console lexik:maintenance:unlock
|
||||||
|
|||||||
@ -46,10 +46,6 @@ Modifiez votre fichier ``parameters.yml`` pour éditer la configuration RabbitMQ
|
|||||||
rabbitmq_user: guest
|
rabbitmq_user: guest
|
||||||
rabbitmq_password: guest
|
rabbitmq_password: guest
|
||||||
|
|
||||||
Activer RabbitMQ dans wallabag
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
Dans les paramètres internes, section **Import**, activez RabbitMQ (avec la valeur 1).
|
|
||||||
|
|
||||||
Démarrer les clients RabbitMQ
|
Démarrer les clients RabbitMQ
|
||||||
-----------------------------
|
-----------------------------
|
||||||
@ -59,22 +55,22 @@ En fonction du service dont vous souhaitez importer vos données, vous devez act
|
|||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
# for Pocket import
|
# for Pocket import
|
||||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
bin/console rabbitmq:consumer import_pocket -w
|
||||||
|
|
||||||
# for Readability import
|
# for Readability import
|
||||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
bin/console rabbitmq:consumer import_readability -w
|
||||||
|
|
||||||
# for Instapaper import
|
# for Instapaper import
|
||||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
bin/console rabbitmq:consumer import_instapaper -w
|
||||||
|
|
||||||
# for wallabag v1 import
|
# for wallabag v1 import
|
||||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
bin/console rabbitmq:consumer import_wallabag_v1 -w
|
||||||
|
|
||||||
# for wallabag v2 import
|
# for wallabag v2 import
|
||||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
bin/console rabbitmq:consumer import_wallabag_v2 -w
|
||||||
|
|
||||||
# for Firefox import
|
# for Firefox import
|
||||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
bin/console rabbitmq:consumer import_firefox -w
|
||||||
|
|
||||||
# for Chrome import
|
# for Chrome import
|
||||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
bin/console rabbitmq:consumer import_chrome -w
|
||||||
|
|||||||
@ -35,10 +35,6 @@ Modifiez votre fichier ``parameters.yml`` pour éditer la configuration Redis. C
|
|||||||
redis_host: localhost
|
redis_host: localhost
|
||||||
redis_port: 6379
|
redis_port: 6379
|
||||||
|
|
||||||
Activer Redis dans wallabag
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Dans les paramètres internes, section **Import**, activez Redis (avec la valeur 1).
|
|
||||||
|
|
||||||
Démarrer les clients Redis
|
Démarrer les clients Redis
|
||||||
--------------------------
|
--------------------------
|
||||||
@ -48,28 +44,28 @@ En fonction du service dont vous souhaitez importer vos données, vous devez act
|
|||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
# for Pocket import
|
# for Pocket import
|
||||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
bin/console wallabag:import:redis-worker pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||||
|
|
||||||
# for Readability import
|
# for Readability import
|
||||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||||
|
|
||||||
# for Instapaper import
|
# for Instapaper import
|
||||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||||
|
|
||||||
# for wallabag v1 import
|
# for wallabag v1 import
|
||||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||||
|
|
||||||
# for wallabag v2 import
|
# for wallabag v2 import
|
||||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||||
|
|
||||||
# for Firefox import
|
# for Firefox import
|
||||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||||
|
|
||||||
# for Chrome import
|
# for Chrome import
|
||||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||||
|
|
||||||
Si vous souhaitez démarrer l'import pour quelques messages uniquement, vous pouvez spécifier cette valeur en paramètre (ici 12) et le client va s'arrêter après le 12ème message :
|
Si vous souhaitez démarrer l'import pour quelques messages uniquement, vous pouvez spécifier cette valeur en paramètre (ici 12) et le client va s'arrêter après le 12ème message :
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
Suite de tests
|
|
||||||
==============
|
|
||||||
|
|
||||||
Pour assurer la qualité du développement de wallabag, nous avons écrit des tests avec `PHPUnit <https://phpunit.de>`_.
|
|
||||||
|
|
||||||
Si vous contribuez au projet (en traduisant l'application, en corrigeant des bugs ou en ajoutant une nouvelle fonctionnalité), merci d'écrire vos propres tests.
|
|
||||||
|
|
||||||
Pour lancer la suite de tests de wallabag, vous devez installer `ant <http://ant.apache.org>`_.
|
|
||||||
|
|
||||||
Ensuite, exécutez la commande ``make test``.
|
|
||||||
@ -31,8 +31,8 @@ La documentation est disponible dans d'autres langues :
|
|||||||
|
|
||||||
user/faq
|
user/faq
|
||||||
user/installation
|
user/installation
|
||||||
user/upgrade-2.0.x-2.1.1
|
user/upgrade-2.0.x-2.1.y
|
||||||
user/upgrade-2.0.x-2.1.1
|
user/upgrade-2.0.x-2.0.y
|
||||||
user/migration
|
user/migration
|
||||||
user/import
|
user/import
|
||||||
user/create_account
|
user/create_account
|
||||||
@ -45,7 +45,6 @@ La documentation est disponible dans d'autres langues :
|
|||||||
user/share
|
user/share
|
||||||
user/filters
|
user/filters
|
||||||
user/tags
|
user/tags
|
||||||
user/parameters
|
|
||||||
|
|
||||||
.. _dev-docs:
|
.. _dev-docs:
|
||||||
|
|
||||||
|
|||||||
@ -102,7 +102,7 @@ if *« readingTime >= 5 AND domainName = "github.com" »* then tag as *« long r
|
|||||||
Quels variables et opérateurs puis-je utiliser pour écrire mes règles ?
|
Quels variables et opérateurs puis-je utiliser pour écrire mes règles ?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Les variables et opérateurs suivants peuvent être utilisés lors de la création de vos règles (attention, pour certaines valeurs, vous devez ajouter des guillemets, par exemple ``language = "en"``) :
|
Les variables et opérateurs suivants peuvent être utilisés lors de la création de vos règles :
|
||||||
|
|
||||||
=========== ============================================== ========== ==========
|
=========== ============================================== ========== ==========
|
||||||
Variable Sens Opérateur Sens
|
Variable Sens Opérateur Sens
|
||||||
|
|||||||
@ -12,21 +12,9 @@ Il peut y avoir plusieurs raisons :
|
|||||||
Comment puis-je aider pour réparer ça ?
|
Comment puis-je aider pour réparer ça ?
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
Vous pouvez `nous envoyer un email avec l'URL de l'article <mailto:hello@wallabag.org>`_.
|
- `en nous envoyant un email avec l'URL de l'article <mailto:hello@wallabag.org>`_
|
||||||
|
- en essayant de réparer cet article par vous-même :) en créant un fichier pour l'article.
|
||||||
Ou vous pouvez aussi essayer de résoudre ce problème vous même (comme ça, nous restons concentrés pour améliorer wallabag au lieu d'écrire ces fichiers de configuration :) ).
|
Vous pouvez utiliser `cet outil <http://siteconfig.fivefilters.org/>`__.
|
||||||
|
|
||||||
Vous pouvez essayer de voir si ça fonctionne ici : `http://f43.me/feed/test <http://f43.me/feed/test>`_ (ce site utilise principalement la même manière de fonctionner que wallabag pour récupérer les articles).
|
|
||||||
|
|
||||||
Si ça fonctionne ici et pas sur wallabag, c'est qu'il y a un souci avec wallabag qui casse le parser (difficile à résoudre : merci d'ouvrir un nouveau ticket à ce sujet).
|
|
||||||
|
|
||||||
Si ça ne fonctionne pas, vous pouvez essayer de créer un fichier de configuration en utilisant : `http://siteconfig.fivefilters.org/ <http://siteconfig.fivefilters.org/>`_ (sélectionnez les parties du contenu qui correspondent à ce que vous souhaitez garder). Vous pouvez `lire cette documentation avant <http://help.fivefilters.org/customer/en/portal/articles/223153-site-patterns>`_.
|
|
||||||
|
|
||||||
Vous pouvez tester ce fichier sur le site **f43.me** : cliquez sur **Want to try a custom siteconfig?** et insérez le fichier généré depuis siteconfig.fivefilters.org.
|
|
||||||
|
|
||||||
Répétez cette opération jusqu'à avoir quelque chose qui vous convienne.
|
|
||||||
|
|
||||||
Ensuite, vous pouvez créer une pull request ici `https://github.com/fivefilters/ftr-site-config <https://github.com/fivefilters/ftr-site-config>`_, qui est le projet principal pour stocker les fichiers de configuration.
|
|
||||||
|
|
||||||
Comment puis-je réessayer de récupérer le contenu ?
|
Comment puis-je réessayer de récupérer le contenu ?
|
||||||
---------------------------------------------------
|
---------------------------------------------------
|
||||||
|
|||||||
@ -36,7 +36,7 @@ Depuis Readability
|
|||||||
Exportez vos données de Readability
|
Exportez vos données de Readability
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Sur la page des outils (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), cliquez sur "Export your data" dans la section "Data Export". Vous allez recevoir un email avec un lien pour télécharger le json.
|
Sur la page des outils (`https://www.readability.com/tools/<https://www.readability.com/tools/>`_), cliquez sur "Export your data" dans la section "Data Export". Vous allez recevoir un email avec un lien pour télécharger le json.
|
||||||
|
|
||||||
Importez vos données dans wallabag 2.x
|
Importez vos données dans wallabag 2.x
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -52,7 +52,7 @@ Depuis Instapaper
|
|||||||
Exportez vos données de Instapaper
|
Exportez vos données de Instapaper
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Sur la page des paramètres (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera (``instapaper-export.csv``).
|
Sur la page des paramètres (`https://www.instapaper.com/user<https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera (``instapaper-export.csv``).
|
||||||
|
|
||||||
Importez vos données dans wallabag 2.x
|
Importez vos données dans wallabag 2.x
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@ -6,20 +6,6 @@ Pré-requis
|
|||||||
|
|
||||||
wallabag est compatible avec PHP >= 5.5, PHP 7 inclus.
|
wallabag est compatible avec PHP >= 5.5, PHP 7 inclus.
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Pour installer wallabag facilement, nous avons créé un ``Makefile``, vous avez donc besoin d'avoir installé l'outil ``make``.
|
|
||||||
|
|
||||||
wallabag utilise un grand nombre de bibliothèques PHP pour fonctionner. Ces bibliothèques doivent être installées à l'aide d'un outil nommé Composer. Vous devez l'installer si ce n'est déjà fait et vous assurer que vous utilisez bien la version 1.2 (si vous avez déjà Composer, faite un ``composer selfupdate``).
|
|
||||||
|
|
||||||
Installation de Composer :
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
curl -s http://getcomposer.org/installer | php
|
|
||||||
|
|
||||||
Vous pouvez trouver des instructions spécifiques `ici (en anglais) <https://getcomposer.org/doc/00-intro.md>`__.
|
|
||||||
|
|
||||||
Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de PHP, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
|
Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de PHP, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
|
||||||
|
|
||||||
- php-session
|
- php-session
|
||||||
@ -50,23 +36,36 @@ Installation
|
|||||||
Sur un serveur dédié (méthode conseillée)
|
Sur un serveur dédié (méthode conseillée)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
wallabag utilise un grand nombre de bibliothèques PHP pour fonctionner. Ces bibliothèques doivent être installées à l'aide d'un outil nommé Composer. Vous devez l'installer si ce n'est déjà fait et vous assurer que vous utilisez bien la version 1.2 (si vous avez déjà Composer, faite un ``composer selfupdate``).
|
||||||
|
|
||||||
|
Installation de Composer :
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
curl -s http://getcomposer.org/installer | php
|
||||||
|
|
||||||
|
Vous pouvez trouver des instructions spécifiques `ici (en anglais) <https://getcomposer.org/doc/00-intro.md>`__.
|
||||||
|
|
||||||
Pour installer wallabag, vous devez exécuter ces commandes :
|
Pour installer wallabag, vous devez exécuter ces commandes :
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
git clone https://github.com/wallabag/wallabag.git
|
git clone https://github.com/wallabag/wallabag.git
|
||||||
cd wallabag && make install
|
cd wallabag
|
||||||
|
git checkout 2.1.1 --force
|
||||||
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
|
php bin/console wallabag:install --env=prod
|
||||||
|
|
||||||
Pour démarrer le serveur interne à php et vérifier que tout s'est installé correctement, vous pouvez exécuter :
|
Pour démarrer le serveur interne à php et vérifier que tout s'est installé correctement, vous pouvez exécuter :
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
make run
|
php bin/console server:run --env=prod
|
||||||
|
|
||||||
Et accéder wallabag à l'adresse http://lipdevotreserveur:8000
|
Et accéder wallabag à l'adresse http://lipdevotreserveur:8000
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
Pour définir des paramètres via des variables d'environnement, vous pouvez les spécifier avec le préfixe ``SYMFONY__``. Par exemple, ``SYMFONY__DATABASE_DRIVER``. Vous pouvez lire la `documentation Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ pour en savoir plus.
|
Pour définir des paramètres via des variables d'environnement, vous pouvez les spécifier avec le préfixe ``SYMFONY__``. Par exemple, ``SYMFONY__DATABASE_DRIVER``. Vous pouvez lire `documentation Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ pour en savoir plus.
|
||||||
|
|
||||||
Sur un serveur mutualisé
|
Sur un serveur mutualisé
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -84,18 +83,18 @@ Exécutez cette commande pour télécharger et décompresser l'archive :
|
|||||||
|
|
||||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
Vous trouverez `le hash md5 du dernier package sur notre site <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
(hash md5 de l'archive 2.1.0 : ``6c33520e29cc754b687f9cee0398dede``)
|
||||||
|
|
||||||
Maintenant, lisez la documentation ci-dessous pour crééer un virtual host. Accédez ensuite à votre installation de wallabag.
|
Maintenant, lisez la documentation ci-dessous pour crééer un virtual host. Accédez ensuite à votre installation de wallabag.
|
||||||
Si vous avez changé la configuration pour modifier le type de stockage (MySQL ou PostgreSQL), vous devrez vous créer un utilisateur via la commande ``php bin/console wallabag:install --env=prod``.
|
Si vous avez changé la configuration pour modifier le type de stockage (MySQL ou PostgreSQL), vous devrez vous créer un utilisateur via la commande ``php bin/console wallabag:install --env=prod``.
|
||||||
|
|
||||||
Installation avec Docker
|
Installation avec Docker
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------
|
||||||
|
|
||||||
Nous vous proposons une image Docker pour installer wallabag facilement. Allez voir du côté de `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ pour plus d'informations.
|
Nous vous proposons une image Docker pour installer wallabag facilement. Allez voir du côté de `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ pour plus d'informations.
|
||||||
|
|
||||||
Commande pour démarrer le containeur
|
Commande pour démarrer le containeur
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
|
|||||||
@ -1,50 +0,0 @@
|
|||||||
À quoi servent les paramètres ?
|
|
||||||
===============================
|
|
||||||
.. csv-table:: Paramètres de base de données
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"database_driver", "pdo_sqlite", "Doit être pdo_sqlite ou pdo_mysql ou pdo_pgsql"
|
|
||||||
"database_host", "127.0.0.1", "Hôte de votre base de données (généralement localhost ou 127.0.0.1)"
|
|
||||||
"database_port", "~", "Port de votre base de données (vous pouvez laisser ``~`` pour utiliser celui par défaut)"
|
|
||||||
"database_name", "symfony", "Nom de votre base de données"
|
|
||||||
"database_user", "root", "Utilisateur de votre base de données"
|
|
||||||
"database_password", "~", "Mot de passe de cet utilisateur"
|
|
||||||
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "Uniquement pour SQLite. Chemin du fichier de base de données. Laissez vide pour les autres bases de données."
|
|
||||||
"database_table_prefix", "wallabag_", "Toutes les tables de wallabag seront préfixées par cette chaine. Vous pouvez ajouter un ``_`` pour plus de clarté"
|
|
||||||
"database_socket", "null", "Si votre base de données utilise un socket plutôt que tcp, spécifiez le chemin du socket (les autres paramètres de connexion seront alors ignorés)"
|
|
||||||
|
|
||||||
.. csv-table:: Configuration pour envoyer des emails depuis wallabag
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"mailer_transport", "smtp", "Méthode de transport exacte utilisée pour envoyer des emails. Les valeurs correctes sont : smtp, gmail, mail, sendmail, null (ce qui désactivera l'envoi des emails)"
|
|
||||||
"mailer_host", "127.0.0.1", "Hôte sur lequel se connecter quand on utilise smtp comme transport."
|
|
||||||
"mailer_user", "~", "Utilisateur smtp."
|
|
||||||
"mailer_password", "~", "Mot de passe de cet utilisateur."
|
|
||||||
|
|
||||||
.. csv-table:: Autres options de wallabag
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"locale", "en", "Langue par défaut de votre instance wallabag (comme en, fr, es, etc.)"
|
|
||||||
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "C'est une chaine qui doit être unique à votre application et qui est couramment utilisée pour ajouter plus d'entropie aux opérations relatives à la sécurité."
|
|
||||||
"twofactor_auth", "true", "true pour activer l'authentification à deux facteurs"
|
|
||||||
"twofactor_sender", "no-reply@wallabag.org", "Email de l'expéditeur du code de l'authentification à deux facteurs"
|
|
||||||
"fosuser_registration", "true", "true pour activer l'inscription publique"
|
|
||||||
"fosuser_confirmation", "true", "true pour envoyer un email de confirmation pour chaque création de compte"
|
|
||||||
"from_email", "no-reply@wallabag.org", "Email de l'expéditeur pour chaque email envoyé"
|
|
||||||
"rss_limit", "50", "Limite pour les flux RSS"
|
|
||||||
|
|
||||||
.. csv-table:: Configuration RabbitMQ
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"rabbitmq_host", "localhost", "Hôte de votre instance RabbitMQ"
|
|
||||||
"rabbitmq_port", "5672", "Port de votre instance RabbitMQ"
|
|
||||||
"rabbitmq_user", "guest", "Utilisateur de votre instance RabbitMQ"
|
|
||||||
"rabbitmq_password", "guest", "Mot de passe de cet utilisateur"
|
|
||||||
|
|
||||||
.. csv-table:: Configuration Redis
|
|
||||||
:header: "name", "default", "description"
|
|
||||||
|
|
||||||
"redis_scheme", "tcp", "Définit le protocole utilisé pour commuiquer avec l'instance Redis. Les valeurs correctes sont : tcp, unix, http"
|
|
||||||
"redis_host", "localhost", "IP ou hôte du serveur cible (ignoré pour un schéma unix)"
|
|
||||||
"redis_port", "6379", "Port TCP/IP du serveur cible (ignoré pour un schéma unix)"
|
|
||||||
"redis_path", "null", "Chemin du fichier de socket du domaine UNIX utilisé quand on se connecte à Redis en utilisant les sockets du domaine UNIX"
|
|
||||||
@ -1,17 +1,17 @@
|
|||||||
Mettre à jour de la 2.1.x à la 2.1.y
|
Mettre à jour de la 2.0.x à la 2.0.y
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
Mise à jour sur un serveur dédié
|
Mise à jour sur un serveur dédié
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.1.2`` par le numéro de la dernière version) :
|
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.0.8`` par le numéro de la dernière version) :
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
rm -rf var/cache/*
|
rm -rf var/cache/*
|
||||||
git fetch origin
|
git fetch origin
|
||||||
git fetch --tags
|
git fetch --tags
|
||||||
git checkout 2.1.2 --force
|
git checkout 2.0.8
|
||||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
php bin/console cache:clear --env=prod
|
php bin/console cache:clear --env=prod
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Téléchargez la dernière version de wallabag :
|
|||||||
|
|
||||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
(hash md5 de l'archive 2.1.1 : ``9584a3b60a2b2a4de87f536548caac93``)
|
(hash md5 de l'archive 2.0.8 : ``4f84c725d1d6e3345eae0a406115e5ff``)
|
||||||
|
|
||||||
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
|
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
Mettre à jour de la 2.0.x à la 2.1.1
|
Mettre à jour de la 2.0.x à la 2.1.y
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
@ -7,6 +7,8 @@ Avant cette migration, si vous aviez configuré l'import depuis Pocket en ajouta
|
|||||||
Mise à jour sur un serveur dédié
|
Mise à jour sur un serveur dédié
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
|
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.1.1`` par le numéro de la dernière version) :
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
rm -rf var/cache/*
|
rm -rf var/cache/*
|
||||||
@ -26,45 +28,25 @@ Téléchargez la dernière version de wallabag :
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
|
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||||
|
|
||||||
(hash md5 de l'archive 2.1.1 : ``9584a3b60a2b2a4de87f536548caac93``)
|
(hash md5 de l'archive 2.1.0 : ``6c33520e29cc754b687f9cee0398dede``)
|
||||||
|
|
||||||
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
|
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
|
||||||
|
|
||||||
Vérifiez que votre fichier ``app/config/parameters.yml`` contient tous les paramètres requis. Voici un fichier ``parameters.yml`` par défaut. Si vous ne savez pas quelle valeur mettre à un paramètre, laissez la valeur par défaut.
|
Nous avons ajouté de nouveaux paramètres dans cette nouvelle version. Vous devez donc éditer le fichier ``app/config/parameters.yml`` en ajoutant ces lignes (et en remplaçant par votre configuration) :
|
||||||
|
|
||||||
.. code-block:: yml
|
.. code-block:: bash
|
||||||
|
|
||||||
parameters:
|
# RabbitMQ processing
|
||||||
database_driver: pdo_sqlite
|
rabbitmq_host: localhost
|
||||||
database_host: 127.0.0.1
|
rabbitmq_port: 5672
|
||||||
database_port: null
|
rabbitmq_user: guest
|
||||||
database_name: symfony
|
rabbitmq_password: guest
|
||||||
database_user: root
|
|
||||||
database_password: null
|
|
||||||
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
|
|
||||||
database_table_prefix: wallabag_
|
|
||||||
mailer_transport: smtp
|
|
||||||
mailer_host: 127.0.0.1
|
|
||||||
mailer_user: null
|
|
||||||
mailer_password: null
|
|
||||||
locale: en
|
|
||||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
|
||||||
twofactor_auth: true
|
|
||||||
twofactor_sender: no-reply@wallabag.org
|
|
||||||
fosuser_registration: true
|
|
||||||
fosuser_confirmation: true
|
|
||||||
from_email: no-reply@wallabag.org
|
|
||||||
rss_limit: 50
|
|
||||||
rabbitmq_host: localhost
|
|
||||||
rabbitmq_port: 5672
|
|
||||||
rabbitmq_user: guest
|
|
||||||
rabbitmq_password: guest
|
|
||||||
redis_host: localhost
|
|
||||||
redis_port: 6379
|
|
||||||
|
|
||||||
Vous trouverez `ici une documentation détaillée concernant les paramètres <http://doc.wallabag.org/fr/master/user/parameters.html>`_.
|
# Redis processing
|
||||||
|
redis_host: localhost
|
||||||
|
redis_port: 6379
|
||||||
|
|
||||||
Si vous utilisez SQLite, vous devez également conserver le contenu du répertoire ``data/``.
|
Si vous utilisez SQLite, vous devez également conserver le contenu du répertoire ``data/``.
|
||||||
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
# You can execute this file to install wallabag dev environmnet
|
|
||||||
# eg: `sh install.sh prod`
|
|
||||||
|
|
||||||
composer install
|
|
||||||
php bin/console wallabag:install
|
|
||||||
php bin/console server:run
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
# You can execute this file to install wallabag
|
|
||||||
# eg: `sh install.sh prod`
|
|
||||||
|
|
||||||
ENV=$1
|
|
||||||
TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
|
|
||||||
|
|
||||||
git checkout $TAG
|
|
||||||
SYMFONY_ENV=$ENV composer install --no-dev -o --prefer-dist
|
|
||||||
php bin/console wallabag:install --env=$ENV
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
# You can execute this file to create a new package for wallabag
|
|
||||||
# eg: `sh release.sh master /tmp wllbg-release prod`
|
|
||||||
|
|
||||||
VERSION=$1
|
|
||||||
TMP_FOLDER=$2
|
|
||||||
RELEASE_FOLDER=$3
|
|
||||||
ENV=$4
|
|
||||||
|
|
||||||
rm -rf $TMP_FOLDER/$RELEASE_FOLDER
|
|
||||||
mkdir $TMP_FOLDER/$RELEASE_FOLDER
|
|
||||||
git clone git@github.com:wallabag/wallabag.git -b $VERSION $TMP_FOLDER/$RELEASE_FOLDER/$VERSION
|
|
||||||
cd $TMP_FOLDER/$RELEASE_FOLDER/$VERSION && SYMFONY_ENV=$ENV composer up -n --no-dev
|
|
||||||
cd $TMP_FOLDER/$RELEASE_FOLDER/$VERSION && php bin/console wallabag:install --env=$ENV
|
|
||||||
cd $TMP_FOLDER/$RELEASE_FOLDER && tar czf wallabag-$VERSION.tar.gz --exclude="var/cache/*" --exclude="var/logs/*" --exclude="var/sessions/*" --exclude=".git" $VERSION
|
|
||||||
echo "MD5 checksum of the package for wallabag $VERSION"
|
|
||||||
md5 $TMP_FOLDER/$RELEASE_FOLDER/wallabag-$VERSION.tar.gz
|
|
||||||
scp $TMP_FOLDER/$RELEASE_FOLDER/wallabag-$VERSION.tar.gz framasoft_bag@78.46.248.87:/var/www/framabag.org/web
|
|
||||||
rm -rf $TMP_FOLDER/$RELEASE_FOLDER
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
#! /usr/bin/env bash
|
|
||||||
# You can execute this file to update wallabag
|
|
||||||
# eg: `sh update.sh prod`
|
|
||||||
|
|
||||||
ENV=$1
|
|
||||||
TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
|
|
||||||
|
|
||||||
rm -rf var/cache/*
|
|
||||||
git fetch origin
|
|
||||||
git fetch --tags
|
|
||||||
git checkout $TAG --force
|
|
||||||
SYMFONY_ENV=$ENV composer install --no-dev -o --prefer-dist
|
|
||||||
php bin/console cache:clear --env=$ENV
|
|
||||||
@ -7,7 +7,6 @@ use JMS\Serializer\Annotation\ExclusionPolicy;
|
|||||||
use JMS\Serializer\Annotation\Exclude;
|
use JMS\Serializer\Annotation\Exclude;
|
||||||
use JMS\Serializer\Annotation\VirtualProperty;
|
use JMS\Serializer\Annotation\VirtualProperty;
|
||||||
use JMS\Serializer\Annotation\SerializedName;
|
use JMS\Serializer\Annotation\SerializedName;
|
||||||
use JMS\Serializer\Annotation\Groups;
|
|
||||||
use Wallabag\UserBundle\Entity\User;
|
use Wallabag\UserBundle\Entity\User;
|
||||||
use Wallabag\CoreBundle\Entity\Entry;
|
use Wallabag\CoreBundle\Entity\Entry;
|
||||||
|
|
||||||
@ -34,8 +33,6 @@ class Annotation
|
|||||||
* @var string
|
* @var string
|
||||||
*
|
*
|
||||||
* @ORM\Column(name="text", type="text")
|
* @ORM\Column(name="text", type="text")
|
||||||
*
|
|
||||||
* @Groups({"entries_for_user", "export_all"})
|
|
||||||
*/
|
*/
|
||||||
private $text;
|
private $text;
|
||||||
|
|
||||||
@ -57,8 +54,6 @@ class Annotation
|
|||||||
* @var string
|
* @var string
|
||||||
*
|
*
|
||||||
* @ORM\Column(name="quote", type="string")
|
* @ORM\Column(name="quote", type="string")
|
||||||
*
|
|
||||||
* @Groups({"entries_for_user", "export_all"})
|
|
||||||
*/
|
*/
|
||||||
private $quote;
|
private $quote;
|
||||||
|
|
||||||
@ -66,8 +61,6 @@ class Annotation
|
|||||||
* @var array
|
* @var array
|
||||||
*
|
*
|
||||||
* @ORM\Column(name="ranges", type="array")
|
* @ORM\Column(name="ranges", type="array")
|
||||||
*
|
|
||||||
* @Groups({"entries_for_user", "export_all"})
|
|
||||||
*/
|
*/
|
||||||
private $ranges;
|
private $ranges;
|
||||||
|
|
||||||
|
|||||||
@ -27,8 +27,7 @@ class WallabagRestController extends FOSRestController
|
|||||||
*
|
*
|
||||||
* @ApiDoc(
|
* @ApiDoc(
|
||||||
* parameters={
|
* parameters={
|
||||||
* {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"},
|
* {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"}
|
||||||
* {"name"="urls", "dataType"="string", "required"=false, "format"="An array of urls (?urls[]=http...&urls[]=http...)", "description"="Urls (as an array) to check if it exists"}
|
|
||||||
* }
|
* }
|
||||||
* )
|
* )
|
||||||
*
|
*
|
||||||
@ -38,29 +37,10 @@ class WallabagRestController extends FOSRestController
|
|||||||
{
|
{
|
||||||
$this->validateAuthentication();
|
$this->validateAuthentication();
|
||||||
|
|
||||||
$urls = $request->query->get('urls', []);
|
|
||||||
|
|
||||||
// handle multiple urls first
|
|
||||||
if (!empty($urls)) {
|
|
||||||
$results = [];
|
|
||||||
foreach ($urls as $url) {
|
|
||||||
$res = $this->getDoctrine()
|
|
||||||
->getRepository('WallabagCoreBundle:Entry')
|
|
||||||
->findByUrlAndUserId($url, $this->getUser()->getId());
|
|
||||||
|
|
||||||
$results[$url] = false === $res ? false : true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$json = $this->get('serializer')->serialize($results, 'json');
|
|
||||||
|
|
||||||
return (new JsonResponse())->setJson($json);
|
|
||||||
}
|
|
||||||
|
|
||||||
// let's see if it is a simple url?
|
|
||||||
$url = $request->query->get('url', '');
|
$url = $request->query->get('url', '');
|
||||||
|
|
||||||
if (empty($url)) {
|
if (empty($url)) {
|
||||||
throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$this->getUser()->getId());
|
throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$user->getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = $this->getDoctrine()
|
$res = $this->getDoctrine()
|
||||||
@ -387,7 +367,7 @@ class WallabagRestController extends FOSRestController
|
|||||||
|
|
||||||
$tags = $this->getDoctrine()
|
$tags = $this->getDoctrine()
|
||||||
->getRepository('WallabagCoreBundle:Tag')
|
->getRepository('WallabagCoreBundle:Tag')
|
||||||
->findAllTags($this->getUser()->getId());
|
->findAllTagsWithEntries($this->getUser()->getId());
|
||||||
|
|
||||||
$json = $this->get('serializer')->serialize($tags, 'json');
|
$json = $this->get('serializer')->serialize($tags, 'json');
|
||||||
|
|
||||||
@ -420,8 +400,6 @@ class WallabagRestController extends FOSRestController
|
|||||||
->getRepository('WallabagCoreBundle:Entry')
|
->getRepository('WallabagCoreBundle:Entry')
|
||||||
->removeTag($this->getUser()->getId(), $tag);
|
->removeTag($this->getUser()->getId(), $tag);
|
||||||
|
|
||||||
$this->cleanOrphanTag($tag);
|
|
||||||
|
|
||||||
$json = $this->get('serializer')->serialize($tag, 'json');
|
$json = $this->get('serializer')->serialize($tag, 'json');
|
||||||
|
|
||||||
return (new JsonResponse())->setJson($json);
|
return (new JsonResponse())->setJson($json);
|
||||||
@ -462,8 +440,6 @@ class WallabagRestController extends FOSRestController
|
|||||||
->getRepository('WallabagCoreBundle:Entry')
|
->getRepository('WallabagCoreBundle:Entry')
|
||||||
->removeTags($this->getUser()->getId(), $tags);
|
->removeTags($this->getUser()->getId(), $tags);
|
||||||
|
|
||||||
$this->cleanOrphanTag($tags);
|
|
||||||
|
|
||||||
$json = $this->get('serializer')->serialize($tags, 'json');
|
$json = $this->get('serializer')->serialize($tags, 'json');
|
||||||
|
|
||||||
return (new JsonResponse())->setJson($json);
|
return (new JsonResponse())->setJson($json);
|
||||||
@ -488,8 +464,6 @@ class WallabagRestController extends FOSRestController
|
|||||||
->getRepository('WallabagCoreBundle:Entry')
|
->getRepository('WallabagCoreBundle:Entry')
|
||||||
->removeTag($this->getUser()->getId(), $tag);
|
->removeTag($this->getUser()->getId(), $tag);
|
||||||
|
|
||||||
$this->cleanOrphanTag($tag);
|
|
||||||
|
|
||||||
$json = $this->get('serializer')->serialize($tag, 'json');
|
$json = $this->get('serializer')->serialize($tag, 'json');
|
||||||
|
|
||||||
return (new JsonResponse())->setJson($json);
|
return (new JsonResponse())->setJson($json);
|
||||||
@ -511,28 +485,6 @@ class WallabagRestController extends FOSRestController
|
|||||||
return (new JsonResponse())->setJson($json);
|
return (new JsonResponse())->setJson($json);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove orphan tag in case no entries are associated to it.
|
|
||||||
*
|
|
||||||
* @param Tag|array $tags
|
|
||||||
*/
|
|
||||||
private function cleanOrphanTag($tags)
|
|
||||||
{
|
|
||||||
if (!is_array($tags)) {
|
|
||||||
$tags = [$tags];
|
|
||||||
}
|
|
||||||
|
|
||||||
$em = $this->getDoctrine()->getManager();
|
|
||||||
|
|
||||||
foreach ($tags as $tag) {
|
|
||||||
if (count($tag->getEntries()) === 0) {
|
|
||||||
$em->remove($tag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$em->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate that the first id is equal to the second one.
|
* Validate that the first id is equal to the second one.
|
||||||
* If not, throw exception. It means a user try to access information from an other user.
|
* If not, throw exception. It means a user try to access information from an other user.
|
||||||
|
|||||||
@ -19,7 +19,7 @@ class AccessToken extends BaseAccessToken
|
|||||||
protected $id;
|
protected $id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Client", inversedBy="accessTokens")
|
* @ORM\ManyToOne(targetEntity="Client")
|
||||||
* @ORM\JoinColumn(nullable=false)
|
* @ORM\JoinColumn(nullable=false)
|
||||||
*/
|
*/
|
||||||
protected $client;
|
protected $client;
|
||||||
|
|||||||
@ -25,16 +25,6 @@ class Client extends BaseClient
|
|||||||
*/
|
*/
|
||||||
protected $name;
|
protected $name;
|
||||||
|
|
||||||
/**
|
|
||||||
* @ORM\OneToMany(targetEntity="RefreshToken", mappedBy="client", cascade={"remove"})
|
|
||||||
*/
|
|
||||||
protected $refreshTokens;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @ORM\OneToMany(targetEntity="AccessToken", mappedBy="client", cascade={"remove"})
|
|
||||||
*/
|
|
||||||
protected $accessTokens;
|
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|||||||
@ -19,7 +19,7 @@ class RefreshToken extends BaseRefreshToken
|
|||||||
protected $id;
|
protected $id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="Client", inversedBy="refreshTokens")
|
* @ORM\ManyToOne(targetEntity="Client")
|
||||||
* @ORM\JoinColumn(nullable=false)
|
* @ORM\JoinColumn(nullable=false)
|
||||||
*/
|
*/
|
||||||
protected $client;
|
protected $client;
|
||||||
|
|||||||
@ -9,7 +9,7 @@ use Symfony\Component\Console\Helper\Table;
|
|||||||
use Symfony\Component\Console\Input\ArrayInput;
|
use Symfony\Component\Console\Input\ArrayInput;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Symfony\Component\Console\Input\InputOption;
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
use Symfony\Component\Console\Output\BufferedOutput;
|
use Symfony\Component\Console\Output\NullOutput;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
use Symfony\Component\Console\Question\ConfirmationQuestion;
|
use Symfony\Component\Console\Question\ConfirmationQuestion;
|
||||||
use Symfony\Component\Console\Question\Question;
|
use Symfony\Component\Console\Question\Question;
|
||||||
@ -97,8 +97,7 @@ class InstallCommand extends ContainerAwareCommand
|
|||||||
try {
|
try {
|
||||||
$this->getContainer()->get('doctrine')->getManager()->getConnection()->connect();
|
$this->getContainer()->get('doctrine')->getManager()->getConnection()->connect();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
if (false === strpos($e->getMessage(), 'Unknown database')
|
if (false === strpos($e->getMessage(), 'Unknown database')) {
|
||||||
&& false === strpos($e->getMessage(), 'database "'.$this->getContainer()->getParameter('database_name').'" does not exist')) {
|
|
||||||
$fulfilled = false;
|
$fulfilled = false;
|
||||||
$status = '<error>ERROR!</error>';
|
$status = '<error>ERROR!</error>';
|
||||||
$help = 'Can\'t connect to the database: '.$e->getMessage();
|
$help = 'Can\'t connect to the database: '.$e->getMessage();
|
||||||
@ -421,18 +420,16 @@ class InstallCommand extends ContainerAwareCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->getApplication()->setAutoExit(false);
|
$this->getApplication()->setAutoExit(false);
|
||||||
|
$exitCode = $this->getApplication()->run(new ArrayInput($parameters), new NullOutput());
|
||||||
$output = new BufferedOutput();
|
|
||||||
$exitCode = $this->getApplication()->run(new ArrayInput($parameters), $output);
|
|
||||||
|
|
||||||
if (0 !== $exitCode) {
|
if (0 !== $exitCode) {
|
||||||
$this->getApplication()->setAutoExit(true);
|
$this->getApplication()->setAutoExit(true);
|
||||||
|
|
||||||
$this->defaultOutput->writeln('');
|
$errorMessage = sprintf('The command "%s" terminated with an error code: %u.', $command, $exitCode);
|
||||||
$this->defaultOutput->writeln('<error>The command "'.$command.'" generates some errors: </error>');
|
$this->defaultOutput->writeln("<error>$errorMessage</error>");
|
||||||
$this->defaultOutput->writeln($output->fetch());
|
$exception = new \Exception($errorMessage, $exitCode);
|
||||||
|
|
||||||
die();
|
throw $exception;
|
||||||
}
|
}
|
||||||
|
|
||||||
// PDO does not always close the connection after Doctrine commands.
|
// PDO does not always close the connection after Doctrine commands.
|
||||||
|
|||||||
@ -34,13 +34,10 @@ class TagAllCommand extends ContainerAwareCommand
|
|||||||
}
|
}
|
||||||
$tagger = $this->getContainer()->get('wallabag_core.rule_based_tagger');
|
$tagger = $this->getContainer()->get('wallabag_core.rule_based_tagger');
|
||||||
|
|
||||||
$output->write(sprintf('Tagging entries for user « <comment>%s</comment> »... ', $user->getUserName()));
|
$output->write(sprintf('Tagging entries for user « <info>%s</info> »... ', $user->getUserName()));
|
||||||
|
|
||||||
$entries = $tagger->tagAllForUser($user);
|
$entries = $tagger->tagAllForUser($user);
|
||||||
|
|
||||||
$output->writeln('<info>Done.</info>');
|
|
||||||
$output->write(sprintf('Persist entries ... ', $user->getUserName()));
|
|
||||||
|
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
foreach ($entries as $entry) {
|
foreach ($entries as $entry) {
|
||||||
$em->persist($entry);
|
$em->persist($entry);
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Wallabag\ApiBundle\Controller;
|
namespace Wallabag\CoreBundle\Controller;
|
||||||
|
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
use Wallabag\ApiBundle\Entity\Client;
|
use Wallabag\ApiBundle\Entity\Client;
|
||||||
use Wallabag\ApiBundle\Form\Type\ClientType;
|
use Wallabag\CoreBundle\Form\Type\ClientType;
|
||||||
|
|
||||||
class DeveloperController extends Controller
|
class DeveloperController extends Controller
|
||||||
{
|
{
|
||||||
@ -63,12 +63,10 @@ class TagController extends Controller
|
|||||||
$entry->removeTag($tag);
|
$entry->removeTag($tag);
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
if (count($tag->getEntries()) == 0) {
|
||||||
// remove orphan tag in case no entries are associated to it
|
|
||||||
if (count($tag->getEntries()) === 0) {
|
|
||||||
$em->remove($tag);
|
$em->remove($tag);
|
||||||
$em->flush();
|
|
||||||
}
|
}
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
$redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'));
|
$redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'));
|
||||||
|
|
||||||
@ -86,25 +84,10 @@ class TagController extends Controller
|
|||||||
{
|
{
|
||||||
$tags = $this->getDoctrine()
|
$tags = $this->getDoctrine()
|
||||||
->getRepository('WallabagCoreBundle:Tag')
|
->getRepository('WallabagCoreBundle:Tag')
|
||||||
->findAllTags($this->getUser()->getId());
|
->findAllTagsWithEntries($this->getUser()->getId());
|
||||||
|
|
||||||
$flatTags = [];
|
|
||||||
|
|
||||||
foreach ($tags as $key => $tag) {
|
|
||||||
$nbEntries = $this->getDoctrine()
|
|
||||||
->getRepository('WallabagCoreBundle:Entry')
|
|
||||||
->countAllEntriesByUserIdAndTagId($this->getUser()->getId(), $tag['id']);
|
|
||||||
|
|
||||||
$flatTags[] = [
|
|
||||||
'id' => $tag['id'],
|
|
||||||
'label' => $tag['label'],
|
|
||||||
'slug' => $tag['slug'],
|
|
||||||
'nbEntries' => $nbEntries,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->render('WallabagCoreBundle:Tag:tags.html.twig', [
|
return $this->render('WallabagCoreBundle:Tag:tags.html.twig', [
|
||||||
'tags' => $flatTags,
|
'tags' => $tags,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,9 +23,6 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
|
|||||||
$entry1->setContent('This is my content /o/');
|
$entry1->setContent('This is my content /o/');
|
||||||
$entry1->setLanguage('en');
|
$entry1->setLanguage('en');
|
||||||
|
|
||||||
$entry1->addTag($this->getReference('foo-tag'));
|
|
||||||
$entry1->addTag($this->getReference('baz-tag'));
|
|
||||||
|
|
||||||
$manager->persist($entry1);
|
$manager->persist($entry1);
|
||||||
|
|
||||||
$this->addReference('entry1', $entry1);
|
$this->addReference('entry1', $entry1);
|
||||||
@ -99,7 +96,6 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
|
|||||||
$entry6->setContent('This is my content /o/');
|
$entry6->setContent('This is my content /o/');
|
||||||
$entry6->setArchived(true);
|
$entry6->setArchived(true);
|
||||||
$entry6->setLanguage('de');
|
$entry6->setLanguage('de');
|
||||||
$entry6->addTag($this->getReference('bar-tag'));
|
|
||||||
|
|
||||||
$manager->persist($entry6);
|
$manager->persist($entry6);
|
||||||
|
|
||||||
|
|||||||
@ -196,6 +196,8 @@ class Entry
|
|||||||
* @ORM\JoinColumn(name="tag_id", referencedColumnName="id")
|
* @ORM\JoinColumn(name="tag_id", referencedColumnName="id")
|
||||||
* }
|
* }
|
||||||
* )
|
* )
|
||||||
|
*
|
||||||
|
* @Groups({"entries_for_user", "export_all"})
|
||||||
*/
|
*/
|
||||||
private $tags;
|
private $tags;
|
||||||
|
|
||||||
@ -539,21 +541,6 @@ class Entry
|
|||||||
return $this->tags;
|
return $this->tags;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @VirtualProperty
|
|
||||||
* @SerializedName("tags")
|
|
||||||
* @Groups({"entries_for_user", "export_all"})
|
|
||||||
*/
|
|
||||||
public function getSerializedTags()
|
|
||||||
{
|
|
||||||
$data = [];
|
|
||||||
foreach ($this->tags as $tag) {
|
|
||||||
$data[] = $tag->getLabel();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Tag $tag
|
* @param Tag $tag
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Wallabag\ApiBundle\Form\Type;
|
namespace Wallabag\CoreBundle\Form\Type;
|
||||||
|
|
||||||
use Symfony\Component\Form\AbstractType;
|
use Symfony\Component\Form\AbstractType;
|
||||||
use Symfony\Component\Form\CallbackTransformer;
|
use Symfony\Component\Form\CallbackTransformer;
|
||||||
@ -21,6 +21,7 @@ class EntriesExport
|
|||||||
private $entries = [];
|
private $entries = [];
|
||||||
private $authors = ['wallabag'];
|
private $authors = ['wallabag'];
|
||||||
private $language = '';
|
private $language = '';
|
||||||
|
private $tags = [];
|
||||||
private $footerTemplate = '<div style="text-align:center;">
|
private $footerTemplate = '<div style="text-align:center;">
|
||||||
<p>Produced by wallabag with %EXPORT_METHOD%</p>
|
<p>Produced by wallabag with %EXPORT_METHOD%</p>
|
||||||
<p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p>
|
<p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p>
|
||||||
@ -52,6 +53,10 @@ class EntriesExport
|
|||||||
|
|
||||||
$this->entries = $entries;
|
$this->entries = $entries;
|
||||||
|
|
||||||
|
foreach ($entries as $entry) {
|
||||||
|
$this->tags[] = $entry->getTags();
|
||||||
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,8 +159,8 @@ class EntriesExport
|
|||||||
|
|
||||||
// set tags as subjects
|
// set tags as subjects
|
||||||
foreach ($this->entries as $entry) {
|
foreach ($this->entries as $entry) {
|
||||||
foreach ($entry->getTags() as $tag) {
|
foreach ($this->tags as $tag) {
|
||||||
$book->setSubject($tag->getLabel());
|
$book->setSubject($tag['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// the reader in Kobo Devices doesn't likes special caracters
|
// the reader in Kobo Devices doesn't likes special caracters
|
||||||
@ -260,8 +265,8 @@ class EntriesExport
|
|||||||
* Adding actual entries
|
* Adding actual entries
|
||||||
*/
|
*/
|
||||||
foreach ($this->entries as $entry) {
|
foreach ($this->entries as $entry) {
|
||||||
foreach ($entry->getTags() as $tag) {
|
foreach ($this->tags as $tag) {
|
||||||
$pdf->SetKeywords($tag->getLabel());
|
$pdf->SetKeywords($tag['value']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->AddPage();
|
$pdf->AddPage();
|
||||||
|
|||||||
@ -55,7 +55,6 @@ class RuleBasedTagger
|
|||||||
{
|
{
|
||||||
$rules = $this->getRulesForUser($user);
|
$rules = $this->getRulesForUser($user);
|
||||||
$entries = [];
|
$entries = [];
|
||||||
$tagsCache = [];
|
|
||||||
|
|
||||||
foreach ($rules as $rule) {
|
foreach ($rules as $rule) {
|
||||||
$qb = $this->entryRepository->getBuilderForAllByUser($user->getId());
|
$qb = $this->entryRepository->getBuilderForAllByUser($user->getId());
|
||||||
@ -63,12 +62,7 @@ class RuleBasedTagger
|
|||||||
|
|
||||||
foreach ($entries as $entry) {
|
foreach ($entries as $entry) {
|
||||||
foreach ($rule->getTags() as $label) {
|
foreach ($rule->getTags() as $label) {
|
||||||
// avoid new tag duplicate by manually caching them
|
$tag = $this->getTag($label);
|
||||||
if (!isset($tagsCache[$label])) {
|
|
||||||
$tagsCache[$label] = $this->getTag($label);
|
|
||||||
}
|
|
||||||
|
|
||||||
$tag = $tagsCache[$label];
|
|
||||||
|
|
||||||
$entry->addTag($tag);
|
$entry->addTag($tag);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -309,24 +309,4 @@ class EntryRepository extends EntityRepository
|
|||||||
|
|
||||||
return $qb->getQuery()->getSingleScalarResult();
|
return $qb->getQuery()->getSingleScalarResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Count all entries for a tag and a user.
|
|
||||||
*
|
|
||||||
* @param int $userId
|
|
||||||
* @param int $tagId
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function countAllEntriesByUserIdAndTagId($userId, $tagId)
|
|
||||||
{
|
|
||||||
$qb = $this->createQueryBuilder('e')
|
|
||||||
->select('count(e.id)')
|
|
||||||
->leftJoin('e.tags', 't')
|
|
||||||
->where('e.user=:userId')->setParameter('userId', $userId)
|
|
||||||
->andWhere('t.id=:tagId')->setParameter('tagId', $tagId)
|
|
||||||
;
|
|
||||||
|
|
||||||
return $qb->getQuery()->getSingleScalarResult();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,23 +33,19 @@ class TagRepository extends EntityRepository
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find all tags per user.
|
* Find all tags with associated entries per user.
|
||||||
*
|
*
|
||||||
* @param int $userId
|
* @param int $userId
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function findAllTags($userId)
|
public function findAllTagsWithEntries($userId)
|
||||||
{
|
{
|
||||||
return $this->createQueryBuilder('t')
|
return $this->createQueryBuilder('t')
|
||||||
->select('t.slug', 't.label', 't.id')
|
|
||||||
->leftJoin('t.entries', 'e')
|
->leftJoin('t.entries', 'e')
|
||||||
->where('e.user = :userId')->setParameter('userId', $userId)
|
->where('e.user = :userId')->setParameter('userId', $userId)
|
||||||
->groupBy('t.slug')
|
|
||||||
->addGroupBy('t.label')
|
|
||||||
->addGroupBy('t.id')
|
|
||||||
->getQuery()
|
->getQuery()
|
||||||
->getArrayResult();
|
->getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -29,7 +29,7 @@ services:
|
|||||||
arguments:
|
arguments:
|
||||||
- "@doctrine"
|
- "@doctrine"
|
||||||
|
|
||||||
wallabag_core.subscriber.table_prefix:
|
wallabag_core.table_prefix_subscriber:
|
||||||
class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber
|
class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber
|
||||||
arguments:
|
arguments:
|
||||||
- "%database_table_prefix%"
|
- "%database_table_prefix%"
|
||||||
@ -119,10 +119,9 @@ services:
|
|||||||
class: Predis\Client
|
class: Predis\Client
|
||||||
arguments:
|
arguments:
|
||||||
-
|
-
|
||||||
scheme: '%redis_scheme%'
|
|
||||||
host: '%redis_host%'
|
host: '%redis_host%'
|
||||||
port: '%redis_port%'
|
port: '%redis_port%'
|
||||||
path: '%redis_path%'
|
schema: tcp
|
||||||
|
|
||||||
wallabag_core.exception_controller:
|
wallabag_core.exception_controller:
|
||||||
class: Wallabag\CoreBundle\Controller\ExceptionController
|
class: Wallabag\CoreBundle\Controller\ExceptionController
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: 'Vises artiklen forkert?'
|
description: 'Vises artiklen forkert?'
|
||||||
edit_title: 'Rediger titel'
|
edit_title: 'Rediger titel'
|
||||||
original_article: 'original'
|
original_article: 'original'
|
||||||
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
|
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
|
||||||
created_at: 'Oprettelsesdato'
|
created_at: 'Oprettelsesdato'
|
||||||
new:
|
new:
|
||||||
page_title: 'Gem ny artikel'
|
page_title: 'Gem ny artikel'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
# is_public_label: 'Public'
|
# is_public_label: 'Public'
|
||||||
save_label: 'Gem'
|
save_label: 'Gem'
|
||||||
public:
|
|
||||||
# shared_by_wallabag: "This article has been shared by <a href=%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'Om'
|
page_title: 'Om'
|
||||||
@ -464,7 +462,7 @@ flashes:
|
|||||||
# entry_saved_failed: 'Entry saved but fetching content failed'
|
# entry_saved_failed: 'Entry saved but fetching content failed'
|
||||||
# entry_updated: 'Entry updated'
|
# entry_updated: 'Entry updated'
|
||||||
# entry_reloaded: 'Entry reloaded'
|
# entry_reloaded: 'Entry reloaded'
|
||||||
# entry_reloaded_failed: 'Entry reloaded but fetching content failed'
|
# entry_reload_failed: 'Entry reloaded but fetching content failed'
|
||||||
entry_archived: 'Artikel arkiveret'
|
entry_archived: 'Artikel arkiveret'
|
||||||
entry_unarchived: 'Artikel ikke længere arkiveret'
|
entry_unarchived: 'Artikel ikke længere arkiveret'
|
||||||
entry_starred: 'Artikel markeret som favorit'
|
entry_starred: 'Artikel markeret som favorit'
|
||||||
|
|||||||
@ -11,8 +11,8 @@ security:
|
|||||||
resetting:
|
resetting:
|
||||||
description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts."
|
description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts."
|
||||||
register:
|
register:
|
||||||
page_title: 'Konto erstellen'
|
page_title: 'Account erstellen'
|
||||||
go_to_account: 'Gehe zu deinem Konto'
|
go_to_account: 'Gehe zu deinem Account'
|
||||||
|
|
||||||
menu:
|
menu:
|
||||||
left:
|
left:
|
||||||
@ -53,7 +53,7 @@ config:
|
|||||||
tab_menu:
|
tab_menu:
|
||||||
settings: 'Einstellungen'
|
settings: 'Einstellungen'
|
||||||
rss: 'RSS'
|
rss: 'RSS'
|
||||||
user_info: 'Benutzerinformation'
|
user_info: 'Benutzer-Information'
|
||||||
password: 'Kennwort'
|
password: 'Kennwort'
|
||||||
rules: 'Tagging-Regeln'
|
rules: 'Tagging-Regeln'
|
||||||
new_user: 'Benutzer hinzufügen'
|
new_user: 'Benutzer hinzufügen'
|
||||||
@ -73,18 +73,18 @@ config:
|
|||||||
pocket_consumer_key_label: Consumer-Key für Pocket, um Inhalte zu importieren
|
pocket_consumer_key_label: Consumer-Key für Pocket, um Inhalte zu importieren
|
||||||
form_rss:
|
form_rss:
|
||||||
description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.'
|
description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.'
|
||||||
token_label: 'RSS-Token'
|
token_label: 'RSS-token'
|
||||||
no_token: 'Kein Token'
|
no_token: 'Kein Token'
|
||||||
token_create: 'Token erstellen'
|
token_create: 'Token erstellen'
|
||||||
token_reset: 'Token zurücksetzen'
|
token_reset: 'Token zurücksetzen'
|
||||||
rss_links: 'RSS-Links'
|
rss_links: 'RSS-Links'
|
||||||
rss_link:
|
rss_link:
|
||||||
unread: 'Ungelesene'
|
unread: 'ungelesen'
|
||||||
starred: 'Favoriten'
|
starred: 'favoriten'
|
||||||
archive: 'Archivierte'
|
archive: 'archiv'
|
||||||
rss_limit: 'Anzahl der Einträge pro Feed'
|
rss_limit: 'Anzahl der Einträge im Feed'
|
||||||
form_user:
|
form_user:
|
||||||
two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertrauenswürdigen Verbindung"
|
two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertraulichen Verbindung"
|
||||||
name_label: 'Name'
|
name_label: 'Name'
|
||||||
email_label: 'E-Mail-Adresse'
|
email_label: 'E-Mail-Adresse'
|
||||||
twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung'
|
twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung'
|
||||||
@ -102,10 +102,10 @@ config:
|
|||||||
faq:
|
faq:
|
||||||
title: 'FAQ'
|
title: 'FAQ'
|
||||||
tagging_rules_definition_title: 'Was bedeuten die "Tagging-Regeln"?'
|
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.'
|
tagging_rules_definition_description: 'Dies sind Regeln von wallabag, um neu hinzugefügte Einträge autmatisch zu taggen.<br />Jedes Mal, wenn ein neuer Eintrag hinzufügt wird, werden die Tagging-Regeln angewandt. Dies erleichtert dir die Arbeit, deine Einträge manuell zu klassifizieren.'
|
||||||
how_to_use_them_title: 'Wie nutze ich sie?'
|
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>" taggen, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Fall solltest du "readingTime <= 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: if "<i>readingTime >= 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>" taggen, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Falle solltest du "readingTime <= 3" in das <i>Regel</i>-Feld und "<i>schnell lesbar</i>" in das <i>Tags</i>-Feld schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Kommata getrennt werden: "<i>schnell lesbar, interessant</i>"<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: if "<i>readingTime >= 5 AND domainName = "github.com"</i>" then tag as "<i>long reading, github </i>"'
|
||||||
variables_available_title: 'Welche Variablen und Operatoren kann ich benutzen, um Regeln zu schreiben?'
|
variables_available_title: 'Welche Variablen und Operatoren kann ich nutzen, um Regeln zu schreiben?'
|
||||||
variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:'
|
variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:'
|
||||||
meaning: 'Bedeutung'
|
meaning: 'Bedeutung'
|
||||||
variable_description:
|
variable_description:
|
||||||
@ -118,7 +118,7 @@ config:
|
|||||||
language: "Sprache des Eintrags"
|
language: "Sprache des Eintrags"
|
||||||
mimetype: "MIME-Typ des Eintrags"
|
mimetype: "MIME-Typ des Eintrags"
|
||||||
readingTime: "Die geschätzte Lesezeit in Minuten"
|
readingTime: "Die geschätzte Lesezeit in Minuten"
|
||||||
domainName: 'Der Domainname des Eintrags'
|
domainName: 'Der Domain-Name des Eintrags'
|
||||||
operator_description:
|
operator_description:
|
||||||
label: 'Operator'
|
label: 'Operator'
|
||||||
less_than: 'Weniger oder gleich als…'
|
less_than: 'Weniger oder gleich als…'
|
||||||
@ -129,7 +129,7 @@ config:
|
|||||||
not_equal_to: 'ungleich'
|
not_equal_to: 'ungleich'
|
||||||
or: 'Eine Regel ODER die andere'
|
or: 'Eine Regel ODER die andere'
|
||||||
and: 'Eine Regel UND eine andere'
|
and: 'Eine Regel UND eine andere'
|
||||||
matches: 'Testet, ob eine <i>Variable</i> auf eine <i>Suche</i> zutrifft (Groß- und Kleinschreibung wird nicht berücksichtigt).<br />Beispiel: <code>title matches "Fußball"</code>'
|
matches: 'Tests, ob eine <i>Variable</i> auf eine <i>Suche</i> zutrifft (Groß- und Kleinschreibung wird nicht berücksichtigt).<br />Beispiel: <code>title matches "Fußball"</code>'
|
||||||
|
|
||||||
entry:
|
entry:
|
||||||
page_titles:
|
page_titles:
|
||||||
@ -147,13 +147,13 @@ entry:
|
|||||||
number_of_tags: '{1}und ein anderer Tag|]1,Inf[und %count% andere Tags'
|
number_of_tags: '{1}und ein anderer Tag|]1,Inf[und %count% andere Tags'
|
||||||
reading_time_minutes_short: '%readingTime% min'
|
reading_time_minutes_short: '%readingTime% min'
|
||||||
reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min'
|
reading_time_less_one_minute_short: '<small class="inferieur"><</small> 1 min'
|
||||||
original_article: 'Original'
|
original_article: 'original'
|
||||||
toogle_as_read: 'Gelesen-Status ändern'
|
toogle_as_read: 'Gelesen-Status ändern'
|
||||||
toogle_as_star: 'Favoriten-Status ändern'
|
toogle_as_star: 'Favoriten-Status ändern'
|
||||||
delete: 'Löschen'
|
delete: 'Löschen'
|
||||||
export_title: 'Exportieren'
|
export_title: 'Exportieren'
|
||||||
filters:
|
filters:
|
||||||
title: 'Filter'
|
title: 'Filters'
|
||||||
status_label: 'Status'
|
status_label: 'Status'
|
||||||
archived_label: 'Archiviert'
|
archived_label: 'Archiviert'
|
||||||
starred_label: 'Favorisiert'
|
starred_label: 'Favorisiert'
|
||||||
@ -165,14 +165,14 @@ entry:
|
|||||||
label: 'Lesezeit in Minuten'
|
label: 'Lesezeit in Minuten'
|
||||||
from: 'von'
|
from: 'von'
|
||||||
to: 'bis'
|
to: 'bis'
|
||||||
domain_label: 'Domainname'
|
domain_label: 'Domain-Name'
|
||||||
created_at:
|
created_at:
|
||||||
label: 'Erstellungsdatum'
|
label: 'Erstellungsdatum'
|
||||||
from: 'von'
|
from: 'von'
|
||||||
to: 'bis'
|
to: 'bis'
|
||||||
action:
|
action:
|
||||||
clear: 'Zurücksetzen'
|
clear: 'Zurücksetzen'
|
||||||
filter: 'Filtern'
|
filter: 'Filter'
|
||||||
view:
|
view:
|
||||||
left_menu:
|
left_menu:
|
||||||
back_to_top: 'Nach oben'
|
back_to_top: 'Nach oben'
|
||||||
@ -180,7 +180,7 @@ entry:
|
|||||||
set_as_read: 'Als gelesen markieren'
|
set_as_read: 'Als gelesen markieren'
|
||||||
set_as_unread: 'Als ungelesen markieren'
|
set_as_unread: 'Als ungelesen markieren'
|
||||||
set_as_starred: 'Favorisieren'
|
set_as_starred: 'Favorisieren'
|
||||||
view_original_article: 'Originalartikel'
|
view_original_article: 'Original-Artikel'
|
||||||
re_fetch_content: 'Inhalt neu laden'
|
re_fetch_content: 'Inhalt neu laden'
|
||||||
delete: 'Löschen'
|
delete: 'Löschen'
|
||||||
add_a_tag: 'Tag hinzufügen'
|
add_a_tag: 'Tag hinzufügen'
|
||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: 'Erscheint dieser Artikel falsch?'
|
description: 'Erscheint dieser Artikel falsch?'
|
||||||
edit_title: 'Titel ändern'
|
edit_title: 'Titel ändern'
|
||||||
original_article: 'original'
|
original_article: 'original'
|
||||||
annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %count% Anmerkungen'
|
annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %nbAnnotations% Anmerkungen'
|
||||||
created_at: 'Erstellungsdatum'
|
created_at: 'Erstellungsdatum'
|
||||||
new:
|
new:
|
||||||
page_title: 'Neuen Artikel speichern'
|
page_title: 'Neuen Artikel speichern'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'URL'
|
url_label: 'URL'
|
||||||
is_public_label: 'Öffentlich'
|
is_public_label: 'Öffentlich'
|
||||||
save_label: 'Speichern'
|
save_label: 'Speichern'
|
||||||
public:
|
|
||||||
shared_by_wallabag: "Dieser Artikel wurde mittels <a href='%wallabag_instance%'>wallabag</a> geteilt"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'Über'
|
page_title: 'Über'
|
||||||
@ -218,7 +216,7 @@ about:
|
|||||||
getting_help: 'Hilfe bekommen'
|
getting_help: 'Hilfe bekommen'
|
||||||
helping: 'wallabag unterstützen'
|
helping: 'wallabag unterstützen'
|
||||||
contributors: 'Unterstützer'
|
contributors: 'Unterstützer'
|
||||||
third_party: 'Bibliotheken von Drittanbietern'
|
third_party: 'Third-party libraries'
|
||||||
who_behind_wallabag:
|
who_behind_wallabag:
|
||||||
developped_by: 'Entwickelt von'
|
developped_by: 'Entwickelt von'
|
||||||
website: 'Webseite'
|
website: 'Webseite'
|
||||||
@ -228,12 +226,12 @@ about:
|
|||||||
version: 'Version'
|
version: 'Version'
|
||||||
getting_help:
|
getting_help:
|
||||||
documentation: 'Dokumentation'
|
documentation: 'Dokumentation'
|
||||||
bug_reports: 'Fehlerberichte'
|
bug_reports: 'Bugs'
|
||||||
support: '<a href="https://support.wallabag.org">Auf unserer Support-Webseite</a> oder <a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>'
|
support: '<a href="https://support.wallabag.org">Auf unserer Support-Webseite</a> oder <a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>'
|
||||||
helping:
|
helping:
|
||||||
description: 'wallabag ist frei und Open Source. Du kannst uns helfen:'
|
description: 'wallabag ist kostenlos und Open-Source. Du kannst uns helfen:'
|
||||||
by_contributing: 'indem du zu dem Projekt beiträgst:'
|
by_contributing: 'indem du zu dem Projekt beiträgst:'
|
||||||
by_contributing_2: 'ein Ticket listet alle unsere Bedürfnisse:'
|
by_contributing_2: 'ein Issue listet alle unsere Bedürfnisse:'
|
||||||
by_paypal: 'via PayPal'
|
by_paypal: 'via PayPal'
|
||||||
contributors:
|
contributors:
|
||||||
description: 'Ein Dankeschön an die Unterstützer von wallabag'
|
description: 'Ein Dankeschön an die Unterstützer von wallabag'
|
||||||
@ -246,11 +244,11 @@ howto:
|
|||||||
page_title: 'How-To'
|
page_title: 'How-To'
|
||||||
page_description: 'Es gibt mehrere Möglichkeiten, einen Artikel zu speichern:'
|
page_description: 'Es gibt mehrere Möglichkeiten, einen Artikel zu speichern:'
|
||||||
top_menu:
|
top_menu:
|
||||||
browser_addons: 'Browser-Erweiterungen'
|
browser_addons: 'Browser-Addons'
|
||||||
mobile_apps: 'Apps'
|
mobile_apps: 'Apps'
|
||||||
bookmarklet: 'Lesezeichen'
|
bookmarklet: 'Bookmarklet'
|
||||||
form:
|
form:
|
||||||
description: 'Dank dieses Formulars'
|
description: 'Danke an dieses Formular'
|
||||||
browser_addons:
|
browser_addons:
|
||||||
firefox: 'Firefox-Erweiterung'
|
firefox: 'Firefox-Erweiterung'
|
||||||
chrome: 'Chrome-Erweiterung'
|
chrome: 'Chrome-Erweiterung'
|
||||||
@ -279,16 +277,16 @@ quickstart:
|
|||||||
admin:
|
admin:
|
||||||
title: 'Administration'
|
title: 'Administration'
|
||||||
description: 'Als Adminstrator hast du einige Privilegien. Du kannst:'
|
description: 'Als Adminstrator hast du einige Privilegien. Du kannst:'
|
||||||
new_user: 'Einen neuen Benutzer anlegen'
|
new_user: 'Einen neuen Nutzer anlegen'
|
||||||
analytics: 'das Tracking konfigurieren'
|
analytics: 'das Tracking konfigurieren'
|
||||||
sharing: 'Einige Parameter für das Teilen von Artikel setzen'
|
sharing: 'Einige Parameter für das Teilen von Artikel setzen'
|
||||||
export: 'Export-Einstellungen ändern'
|
export: 'Export-Einstellungen ändern'
|
||||||
import: 'Import-Einstellungen ändern'
|
import: 'Import-Einstellungen ändern'
|
||||||
first_steps:
|
first_steps:
|
||||||
title: 'Erste Schritte'
|
title: 'Erste Schritte'
|
||||||
description: "Jetzt ist wallabag gut konfiguriert, es ist Zeit, das Web zu archivieren. Du kannst auf das Plussymbol + oben rechts klicken, um einen Link hinzuzufügen"
|
description: "Jetzt ist wallabag gut konfiguriert, es ist Zeit das Web zu archivieren. Du kannst auf das Plussymbol + oben rechts klicken, um einen Link hinzuzufügen"
|
||||||
new_article: 'Speichere deinen ersten Artikel'
|
new_article: 'Speichere deinen ersten Artikel'
|
||||||
unread_articles: 'Und kategorisiere ihn!'
|
unread_articles: 'Und klassifiziere ihn!'
|
||||||
migrate:
|
migrate:
|
||||||
title: 'Von einem anderen Dienst migrieren'
|
title: 'Von einem anderen Dienst migrieren'
|
||||||
description: "Du nutzt einen anderen Dienst? Wir helfen dir, um deine Daten zu wallabag zu transportieren."
|
description: "Du nutzt einen anderen Dienst? Wir helfen dir, um deine Daten zu wallabag zu transportieren."
|
||||||
@ -321,7 +319,7 @@ tag:
|
|||||||
page_title: 'Tags'
|
page_title: 'Tags'
|
||||||
list:
|
list:
|
||||||
number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.'
|
number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.'
|
||||||
see_untagged_entries: 'Zeige nicht getaggte Einträge'
|
see_untagged_entries: 'Siehe nicht getaggte Einträge'
|
||||||
|
|
||||||
import:
|
import:
|
||||||
page_title: 'Importieren'
|
page_title: 'Importieren'
|
||||||
@ -338,14 +336,14 @@ import:
|
|||||||
description: "Dieser Importer wird all deine Pocket-Daten importieren. Pocket erlaubt es uns nicht, den Inhalt zu migrieren, daher wird der lesbare Inhalt erneut von wallabag heruntergeladen."
|
description: "Dieser Importer wird all deine Pocket-Daten importieren. Pocket erlaubt es uns nicht, den Inhalt zu migrieren, daher wird der lesbare Inhalt erneut von wallabag heruntergeladen."
|
||||||
config_missing:
|
config_missing:
|
||||||
description: "Pocket-Import ist nicht konfiguriert."
|
description: "Pocket-Import ist nicht konfiguriert."
|
||||||
admin_message: 'Du musst noch den %keyurls%pocket_consumer_key%keyurle% eintragen.'
|
admin_message: 'Du musst noch den %keyurls%a pocket_consumer_key%keyurle% definieren.'
|
||||||
user_message: 'Der Administrator des Servers muss noch einen API-Schlüssel für Pocket konfigurieren.'
|
user_message: 'Der Server-Administrator muss noch einen API-Key für Pocket konfigurieren.'
|
||||||
authorize_message: 'Du kannst deine Daten von deinem Pocket-Konto importieren. Dazu musst du nur den nachfolgenden Button klicken und die Anwendung authentifizieren, sich mit getpocket.com zu verbinden zu dürfen.'
|
authorize_message: 'Du kannst deine Daten von deinem Pocket-Account importieren. Dazu musst du nur den nachfolgenden Button klicken und die Anwendung authentifizieren, sich mit getpocket.com zu verbinden.'
|
||||||
connect_to_pocket: 'Mit Pocket verbinden und Daten importieren'
|
connect_to_pocket: 'Mit Pocket verbinden und Daten importieren'
|
||||||
wallabag_v1:
|
wallabag_v1:
|
||||||
page_title: 'Aus wallabag v1 importieren'
|
page_title: 'Aus wallabag v1 importieren'
|
||||||
description: 'Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke in der Konfigurationsseite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.'
|
description: 'Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke auf der Konfigurations-Seite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.'
|
||||||
how_to: 'Wähle die exportierte Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.'
|
how_to: 'Wähle die Export-Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.'
|
||||||
wallabag_v2:
|
wallabag_v2:
|
||||||
page_title: 'Aus wallabag v2 importieren'
|
page_title: 'Aus wallabag v2 importieren'
|
||||||
description: 'Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.'
|
description: 'Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.'
|
||||||
@ -357,11 +355,11 @@ import:
|
|||||||
enabled: "Der Import erfolgt asynchron. Sobald der Import gestartet ist, wird diese Aufgabe extern abgearbeitet. Der aktuelle Service dafür ist:"
|
enabled: "Der Import erfolgt asynchron. Sobald der Import gestartet ist, wird diese Aufgabe extern abgearbeitet. Der aktuelle Service dafür ist:"
|
||||||
firefox:
|
firefox:
|
||||||
page_title: 'Aus Firefox importieren'
|
page_title: 'Aus Firefox importieren'
|
||||||
description: "Dieser Import wird all deine Lesezeichen aus Firefox importieren. Gehe zu deinen Lesezeichen (Strg+Shift+O), dann auf \"Importen und Sichern\", wähle \"Sichern…\". Du erhälst eine .json Datei."
|
description: "Dieser Import wird all deine Firefox Lesezeichen importieren. Gehe zu deinen Lesezeichen (Strg+Shift+O), dann auf \"Importen und Sichern\", wähle \"Sichern…\". Du erhälst eine .json Datei."
|
||||||
how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen."
|
how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen."
|
||||||
chrome:
|
chrome:
|
||||||
page_title: 'Aus Chrome importieren'
|
page_title: 'Aus Chrome importieren'
|
||||||
description: "Dieser Import wird all deine Lesezeichen aus Chrome importieren. Der Pfad zu der Datei hängt von deinem Betriebssystem ab: <ul><li>In Linux gehst du zu dem <code>~/.config/chromium/Default/</code> Verzeichnis</li><li>In Windows sollte es unter <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code> sein</li><li>In OS X sollte es unter <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code> sein</li></ul>Wenn du dort angekommen bist, kopiere die Lesezeichendatei <code>Bookmarks</code> zu einem Ort, den du später wiederfindest.<em><br>Beachte falls du Chromium statt Chrome hast, dass du den zuvor genannten Pfad entsprechend anpasst.</em></p>"
|
description: "Dieser Import wird all deine Chrome Lesezeichen importieren. Der Pfad zu der Datei hängt von deinem Betriebssystem ab: <ul><li>In Linux gehst du zu dem <code>~/.config/chromium/Default/</code> Verzeichnis</li><li>In Windows sollte es unter <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code> sein</li><li>In OS X sollte es unter <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code> sein</li></ul>Wenn du dort angekommen bist, kopiere die Lesezeichendatei zu einem Ort, den du später wiederfindest.<em><br>Beachte falls du Chromium statt Chrome hast, dass du den zuvor genannten Pfad entsprechend anpasst.</em></p>"
|
||||||
how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen."
|
how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen."
|
||||||
instapaper:
|
instapaper:
|
||||||
page_title: 'Aus Instapaper importieren'
|
page_title: 'Aus Instapaper importieren'
|
||||||
@ -370,7 +368,7 @@ import:
|
|||||||
|
|
||||||
developer:
|
developer:
|
||||||
page_title: 'Entwickler'
|
page_title: 'Entwickler'
|
||||||
welcome_message: 'Willkomen zur wallabag API'
|
welcome_message: 'Willkomen zur wallabag-API'
|
||||||
documentation: 'Dokumentation'
|
documentation: 'Dokumentation'
|
||||||
how_to_first_app: 'Wie erstelle ich meine erste Anwendung'
|
how_to_first_app: 'Wie erstelle ich meine erste Anwendung'
|
||||||
full_documentation: 'Komplette API-Dokumentation einsehen'
|
full_documentation: 'Komplette API-Dokumentation einsehen'
|
||||||
@ -387,7 +385,7 @@ developer:
|
|||||||
no_client: 'Bisher kein Client.'
|
no_client: 'Bisher kein Client.'
|
||||||
remove:
|
remove:
|
||||||
warn_message_1: 'Du hast die Möglichkeit, diesen Client zu entfernen. DIESE AKTION IST NICHT WIDERRUFBAR!'
|
warn_message_1: 'Du hast die Möglichkeit, diesen Client zu entfernen. DIESE AKTION IST NICHT WIDERRUFBAR!'
|
||||||
warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Konto anzumelden."
|
warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Account anzumelden."
|
||||||
action: 'Client entfernen'
|
action: 'Client entfernen'
|
||||||
client:
|
client:
|
||||||
page_title: 'Entwickler > Neuer Client'
|
page_title: 'Entwickler > Neuer Client'
|
||||||
@ -450,7 +448,7 @@ flashes:
|
|||||||
notice:
|
notice:
|
||||||
config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.'
|
config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.'
|
||||||
password_updated: 'Kennwort aktualisiert'
|
password_updated: 'Kennwort aktualisiert'
|
||||||
password_not_updated_demo: "Im Testmodus kannst du das Kennwort nicht ändern."
|
password_not_updated_demo: "Im Test-Modus kannst du das Kennwort nicht ändern."
|
||||||
user_updated: 'Information aktualisiert'
|
user_updated: 'Information aktualisiert'
|
||||||
rss_updated: 'RSS-Informationen aktualisiert'
|
rss_updated: 'RSS-Informationen aktualisiert'
|
||||||
tagging_rules_updated: 'Tagging-Regeln aktualisiert'
|
tagging_rules_updated: 'Tagging-Regeln aktualisiert'
|
||||||
@ -464,12 +462,12 @@ flashes:
|
|||||||
entry_saved_failed: 'Eintrag gespeichert, aber das Abrufen des Inhalts ist fehlgeschlagen'
|
entry_saved_failed: 'Eintrag gespeichert, aber das Abrufen des Inhalts ist fehlgeschlagen'
|
||||||
entry_updated: 'Eintrag aktualisiert'
|
entry_updated: 'Eintrag aktualisiert'
|
||||||
entry_reloaded: 'Eintrag neugeladen'
|
entry_reloaded: 'Eintrag neugeladen'
|
||||||
entry_reloaded_failed: 'Eintrag neugeladen, aber das Abrufen des Inhalts ist fehlgeschlagen'
|
entry_reload_failed: 'Eintrag neugeladen, aber das Abrufen des Inhalts ist fehlgeschlagen'
|
||||||
entry_archived: 'Eintrag archiviert'
|
entry_archived: 'Artikel archiviert'
|
||||||
entry_unarchived: 'Eintrag dearchiviert'
|
entry_unarchived: 'Artikel dearchiviert'
|
||||||
entry_starred: 'Eintrag favorisiert'
|
entry_starred: 'Artikel favorisiert'
|
||||||
entry_unstarred: 'Eintrag defavorisiert'
|
entry_unstarred: 'Artikel defavorisiert'
|
||||||
entry_deleted: 'Eintrag gelöscht'
|
entry_deleted: 'Artikel gelöscht'
|
||||||
tag:
|
tag:
|
||||||
notice:
|
notice:
|
||||||
tag_added: 'Tag hinzugefügt'
|
tag_added: 'Tag hinzugefügt'
|
||||||
@ -477,8 +475,8 @@ flashes:
|
|||||||
notice:
|
notice:
|
||||||
failed: 'Import fehlgeschlagen, bitte erneut probieren.'
|
failed: 'Import fehlgeschlagen, bitte erneut probieren.'
|
||||||
failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.'
|
failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.'
|
||||||
summary: 'Importzusammenfassung: %imported% importiert, %skipped% bereits gespeichert.'
|
summary: 'Import-Zusammenfassung: %imported% importiert, %skipped% bereits gespeichert.'
|
||||||
summary_with_queue: 'Importzusammenfassung: %queued% eingereiht.'
|
summary_with_queue: 'Import-Zusammenfassung: %queued% eingereiht.'
|
||||||
error:
|
error:
|
||||||
redis_enabled_not_installed: 'Redis ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine Redis-Konfiguration.'
|
redis_enabled_not_installed: 'Redis ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine Redis-Konfiguration.'
|
||||||
rabbit_enabled_not_installed: 'RabbitMQ ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine RabbitMQ-Konfiguration.'
|
rabbit_enabled_not_installed: 'RabbitMQ ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine RabbitMQ-Konfiguration.'
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: 'Does this article appear wrong?'
|
description: 'Does this article appear wrong?'
|
||||||
edit_title: 'Edit title'
|
edit_title: 'Edit title'
|
||||||
original_article: 'original'
|
original_article: 'original'
|
||||||
annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
|
annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
|
||||||
created_at: 'Creation date'
|
created_at: 'Creation date'
|
||||||
new:
|
new:
|
||||||
page_title: 'Save new entry'
|
page_title: 'Save new entry'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
is_public_label: 'Public'
|
is_public_label: 'Public'
|
||||||
save_label: 'Save'
|
save_label: 'Save'
|
||||||
public:
|
|
||||||
shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'About'
|
page_title: 'About'
|
||||||
@ -361,7 +359,7 @@ import:
|
|||||||
how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched."
|
how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched."
|
||||||
chrome:
|
chrome:
|
||||||
page_title: 'Import > Chrome'
|
page_title: 'Import > Chrome'
|
||||||
description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the <code>Bookmarks</code> file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>"
|
description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>"
|
||||||
how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched."
|
how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched."
|
||||||
instapaper:
|
instapaper:
|
||||||
page_title: 'Import > Instapaper'
|
page_title: 'Import > Instapaper'
|
||||||
@ -463,7 +461,7 @@ flashes:
|
|||||||
entry_saved_failed: 'Entry saved but fetching content failed'
|
entry_saved_failed: 'Entry saved but fetching content failed'
|
||||||
entry_updated: 'Entry updated'
|
entry_updated: 'Entry updated'
|
||||||
entry_reloaded: 'Entry reloaded'
|
entry_reloaded: 'Entry reloaded'
|
||||||
entry_reloaded_failed: 'Entry reloaded but fetching content failed'
|
entry_reload_failed: 'Entry reloaded but fetching content failed'
|
||||||
entry_archived: 'Entry archived'
|
entry_archived: 'Entry archived'
|
||||||
entry_unarchived: 'Entry unarchived'
|
entry_unarchived: 'Entry unarchived'
|
||||||
entry_starred: 'Entry starred'
|
entry_starred: 'Entry starred'
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: '¿Este artículo no se muestra bien?'
|
description: '¿Este artículo no se muestra bien?'
|
||||||
edit_title: 'Modificar el título'
|
edit_title: 'Modificar el título'
|
||||||
original_article: 'original'
|
original_article: 'original'
|
||||||
annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %count% anotaciones'
|
annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %nbAnnotations% anotaciones'
|
||||||
created_at: 'Fecha de creación'
|
created_at: 'Fecha de creación'
|
||||||
new:
|
new:
|
||||||
page_title: 'Guardar un nuevo artículo'
|
page_title: 'Guardar un nuevo artículo'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
is_public_label: 'Es Público'
|
is_public_label: 'Es Público'
|
||||||
save_label: 'Guardar'
|
save_label: 'Guardar'
|
||||||
public:
|
|
||||||
# shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'Acerca de'
|
page_title: 'Acerca de'
|
||||||
@ -464,7 +462,7 @@ flashes:
|
|||||||
# entry_saved_failed: 'Entry saved but fetching content failed'
|
# entry_saved_failed: 'Entry saved but fetching content failed'
|
||||||
entry_updated: 'Entrada actualizada'
|
entry_updated: 'Entrada actualizada'
|
||||||
entry_reloaded: 'Entrada recargada'
|
entry_reloaded: 'Entrada recargada'
|
||||||
# entry_reloaded_failed: 'Entry reloaded but fetching content failed'
|
# entry_reload_failed: 'Entry reloaded but fetching content failed'
|
||||||
entry_archived: 'Artículo archivado'
|
entry_archived: 'Artículo archivado'
|
||||||
entry_unarchived: 'Artículo desarchivado'
|
entry_unarchived: 'Artículo desarchivado'
|
||||||
entry_starred: 'Artículo guardado en los favoritos'
|
entry_starred: 'Artículo guardado en los favoritos'
|
||||||
|
|||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'نشانی'
|
url_label: 'نشانی'
|
||||||
is_public_label: 'عمومی'
|
is_public_label: 'عمومی'
|
||||||
save_label: 'ذخیره'
|
save_label: 'ذخیره'
|
||||||
public:
|
|
||||||
# shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'درباره'
|
page_title: 'درباره'
|
||||||
@ -463,7 +461,7 @@ flashes:
|
|||||||
# entry_saved_failed: 'Entry saved but fetching content failed'
|
# entry_saved_failed: 'Entry saved but fetching content failed'
|
||||||
entry_updated: 'مقاله بهروز شد'
|
entry_updated: 'مقاله بهروز شد'
|
||||||
entry_reloaded: 'مقاله بهروز شد'
|
entry_reloaded: 'مقاله بهروز شد'
|
||||||
# entry_reloaded_failed: 'Entry reloaded but fetching content failed'
|
# entry_reload_failed: 'Entry reloaded but fetching content failed'
|
||||||
entry_archived: 'مقاله بایگانی شد'
|
entry_archived: 'مقاله بایگانی شد'
|
||||||
entry_unarchived: 'مقاله از بایگانی درآمد'
|
entry_unarchived: 'مقاله از بایگانی درآمد'
|
||||||
entry_starred: 'مقاله برگزیده شد'
|
entry_starred: 'مقاله برگزیده شد'
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: "Est-ce que cet article s'affiche mal ?"
|
description: "Est-ce que cet article s'affiche mal ?"
|
||||||
edit_title: 'Modifier le titre'
|
edit_title: 'Modifier le titre'
|
||||||
original_article: 'original'
|
original_article: 'original'
|
||||||
annotations_on_the_entry: '{0} Aucune annotation|{1} Une annotation|]1,Inf[ %count% annotations'
|
annotations_on_the_entry: '{0} Aucune annotation|{1} Une annotation|]1,Inf[ %nbAnnotations% annotations'
|
||||||
created_at: 'Date de création'
|
created_at: 'Date de création'
|
||||||
new:
|
new:
|
||||||
page_title: 'Sauvegarder un nouvel article'
|
page_title: 'Sauvegarder un nouvel article'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
is_public_label: 'Public'
|
is_public_label: 'Public'
|
||||||
save_label: 'Enregistrer'
|
save_label: 'Enregistrer'
|
||||||
public:
|
|
||||||
shared_by_wallabag: "Cet article a été partagé par <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'À propos'
|
page_title: 'À propos'
|
||||||
@ -464,7 +462,7 @@ flashes:
|
|||||||
entry_saved_failed: 'Article enregistré mais impossible de récupérer le contenu'
|
entry_saved_failed: 'Article enregistré mais impossible de récupérer le contenu'
|
||||||
entry_updated: 'Article mis à jour'
|
entry_updated: 'Article mis à jour'
|
||||||
entry_reloaded: 'Article rechargé'
|
entry_reloaded: 'Article rechargé'
|
||||||
entry_reloaded_failed: "Article mis à jour mais impossible de récupérer le contenu"
|
entry_reload_failed: "Article mis à jour mais impossible de récupérer le contenu"
|
||||||
entry_archived: 'Article marqué comme lu'
|
entry_archived: 'Article marqué comme lu'
|
||||||
entry_unarchived: 'Article marqué comme non lu'
|
entry_unarchived: 'Article marqué comme non lu'
|
||||||
entry_starred: 'Article ajouté dans les favoris'
|
entry_starred: 'Article ajouté dans les favoris'
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: 'Questo contenuto viene visualizzato male?'
|
description: 'Questo contenuto viene visualizzato male?'
|
||||||
edit_title: 'Modifica titolo'
|
edit_title: 'Modifica titolo'
|
||||||
original_article: 'originale'
|
original_article: 'originale'
|
||||||
annotations_on_the_entry: '{0} Nessuna annotazione|{1} Una annotazione|]1,Inf[ %count% annotazioni'
|
annotations_on_the_entry: '{0} Nessuna annotazione|{1} Una annotazione|]1,Inf[ %nbAnnotations% annotazioni'
|
||||||
created_at: 'Data di creazione'
|
created_at: 'Data di creazione'
|
||||||
new:
|
new:
|
||||||
page_title: 'Salva un nuovo contenuto'
|
page_title: 'Salva un nuovo contenuto'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
is_public_label: 'Pubblico'
|
is_public_label: 'Pubblico'
|
||||||
save_label: 'Salva'
|
save_label: 'Salva'
|
||||||
public:
|
|
||||||
# shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'About'
|
page_title: 'About'
|
||||||
@ -464,7 +462,7 @@ flashes:
|
|||||||
# entry_saved_failed: 'Entry saved but fetching content failed'
|
# entry_saved_failed: 'Entry saved but fetching content failed'
|
||||||
entry_updated: 'Contenuto aggiornato'
|
entry_updated: 'Contenuto aggiornato'
|
||||||
entry_reloaded: 'Contenuto ricaricato'
|
entry_reloaded: 'Contenuto ricaricato'
|
||||||
# entry_reloaded_failed: 'Entry reloaded but fetching content failed'
|
# entry_reload_failed: 'Entry reloaded but fetching content failed'
|
||||||
entry_archived: 'Contenuto archiviato'
|
entry_archived: 'Contenuto archiviato'
|
||||||
entry_unarchived: 'Contenuto dis-archiviato'
|
entry_unarchived: 'Contenuto dis-archiviato'
|
||||||
entry_starred: 'Contenuto segnato come preferito'
|
entry_starred: 'Contenuto segnato come preferito'
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: "Marca mal la presentacion d'aqueste article ?"
|
description: "Marca mal la presentacion d'aqueste article ?"
|
||||||
edit_title: 'Modificar lo títol'
|
edit_title: 'Modificar lo títol'
|
||||||
original_article: 'original'
|
original_article: 'original'
|
||||||
annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %count% anotacions"
|
annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %nbAnnotations% anotacions"
|
||||||
created_at: 'Data de creacion'
|
created_at: 'Data de creacion'
|
||||||
new:
|
new:
|
||||||
page_title: 'Enregistrar un novèl article'
|
page_title: 'Enregistrar un novèl article'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
is_public_label: 'Public'
|
is_public_label: 'Public'
|
||||||
save_label: 'Enregistrar'
|
save_label: 'Enregistrar'
|
||||||
public:
|
|
||||||
# shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'A prepaus'
|
page_title: 'A prepaus'
|
||||||
@ -464,7 +462,7 @@ flashes:
|
|||||||
entry_saved_failed: 'Article salvat mai fracàs de la recuperacion del contengut'
|
entry_saved_failed: 'Article salvat mai fracàs de la recuperacion del contengut'
|
||||||
entry_updated: 'Article mes a jorn'
|
entry_updated: 'Article mes a jorn'
|
||||||
entry_reloaded: 'Article recargat'
|
entry_reloaded: 'Article recargat'
|
||||||
entry_reloaded_failed: "L'article es estat cargat de nòu mai la recuperacion del contengut a fracassat"
|
entry_reload_failed: "L'article es estat cargat de nòu mai la recuperacion del contengut a fracassat"
|
||||||
entry_archived: 'Article marcat coma legit'
|
entry_archived: 'Article marcat coma legit'
|
||||||
entry_unarchived: 'Article marcat coma pas legit'
|
entry_unarchived: 'Article marcat coma pas legit'
|
||||||
entry_starred: 'Article apondut dins los favorits'
|
entry_starred: 'Article apondut dins los favorits'
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: 'Czy ten artykuł wygląda źle?'
|
description: 'Czy ten artykuł wygląda źle?'
|
||||||
edit_title: 'Edytuj tytuł'
|
edit_title: 'Edytuj tytuł'
|
||||||
original_article: 'oryginalny'
|
original_article: 'oryginalny'
|
||||||
annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %count% adnotacji'
|
annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %nbAnnotations% adnotacji'
|
||||||
created_at: 'Czas stworzenia'
|
created_at: 'Czas stworzenia'
|
||||||
new:
|
new:
|
||||||
page_title: 'Zapisz nowy wpis'
|
page_title: 'Zapisz nowy wpis'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Adres URL'
|
url_label: 'Adres URL'
|
||||||
is_public_label: 'Publiczny'
|
is_public_label: 'Publiczny'
|
||||||
save_label: 'Zapisz'
|
save_label: 'Zapisz'
|
||||||
public:
|
|
||||||
shared_by_wallabag: "Ten artykuł został udostępniony przez <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'O nas'
|
page_title: 'O nas'
|
||||||
@ -286,7 +284,7 @@ quickstart:
|
|||||||
import: 'Skonfigurować import'
|
import: 'Skonfigurować import'
|
||||||
first_steps:
|
first_steps:
|
||||||
title: 'Pierwsze kroki'
|
title: 'Pierwsze kroki'
|
||||||
description: "Teraz wallabag jest poprawnie skonfigurowany, więc czas zarchiwizować Internet. Klinknij w prawym górnym rogu na znak +, aby dodać link"
|
description: "Teraz wallabag jest poprawnie skonfigurowany, więc czas zarchiwizować Internet. Klinknij w prawym górnym rogu na znak +, aby dodać link"
|
||||||
new_article: 'Zapisz swój pierwszy artukuł'
|
new_article: 'Zapisz swój pierwszy artukuł'
|
||||||
unread_articles: 'I sklasyfikuj go!'
|
unread_articles: 'I sklasyfikuj go!'
|
||||||
migrate:
|
migrate:
|
||||||
@ -464,7 +462,7 @@ flashes:
|
|||||||
entry_saved_failed: 'Wpis zapisany, ale wystąpił bład pobierania treści'
|
entry_saved_failed: 'Wpis zapisany, ale wystąpił bład pobierania treści'
|
||||||
entry_updated: 'Wpis zaktualizowany'
|
entry_updated: 'Wpis zaktualizowany'
|
||||||
entry_reloaded: 'Wpis ponownie załadowany'
|
entry_reloaded: 'Wpis ponownie załadowany'
|
||||||
entry_reloaded_failed: 'Wpis ponownie załadowany, ale wystąpił bład pobierania treści'
|
entry_reload_failed: 'Wpis ponownie załadowany, ale wystąpił bład pobierania treści'
|
||||||
entry_archived: 'Wpis dodany do archiwum'
|
entry_archived: 'Wpis dodany do archiwum'
|
||||||
entry_unarchived: 'Wpis usunięty z archiwum'
|
entry_unarchived: 'Wpis usunięty z archiwum'
|
||||||
entry_starred: 'Wpis oznaczony gwiazdką'
|
entry_starred: 'Wpis oznaczony gwiazdką'
|
||||||
|
|||||||
@ -195,7 +195,7 @@ entry:
|
|||||||
description: 'Îți pare ciudat articolul?'
|
description: 'Îți pare ciudat articolul?'
|
||||||
edit_title: 'Editează titlul'
|
edit_title: 'Editează titlul'
|
||||||
original_article: 'original'
|
original_article: 'original'
|
||||||
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
|
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
|
||||||
created_at: 'Data creării'
|
created_at: 'Data creării'
|
||||||
new:
|
new:
|
||||||
page_title: 'Salvează un nou articol'
|
page_title: 'Salvează un nou articol'
|
||||||
@ -208,8 +208,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
# is_public_label: 'Public'
|
# is_public_label: 'Public'
|
||||||
save_label: 'Salvează'
|
save_label: 'Salvează'
|
||||||
public:
|
|
||||||
# shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'Despre'
|
page_title: 'Despre'
|
||||||
@ -464,7 +462,7 @@ flashes:
|
|||||||
# entry_saved_failed: 'Entry saved but fetching content failed'
|
# entry_saved_failed: 'Entry saved but fetching content failed'
|
||||||
# entry_updated: 'Entry updated'
|
# entry_updated: 'Entry updated'
|
||||||
# entry_reloaded: 'Entry reloaded'
|
# entry_reloaded: 'Entry reloaded'
|
||||||
# entry_reloaded_failed: 'Entry reloaded but fetching content failed'
|
# entry_reload_failed: 'Entry reloaded but fetching content failed'
|
||||||
entry_archived: 'Articol arhivat'
|
entry_archived: 'Articol arhivat'
|
||||||
entry_unarchived: 'Articol dezarhivat'
|
entry_unarchived: 'Articol dezarhivat'
|
||||||
entry_starred: 'Articol adăugat la favorite'
|
entry_starred: 'Articol adăugat la favorite'
|
||||||
|
|||||||
@ -194,7 +194,7 @@ entry:
|
|||||||
description: 'Bu makalede herhangi bir yanlışlık mı var?'
|
description: 'Bu makalede herhangi bir yanlışlık mı var?'
|
||||||
edit_title: 'Başlığı düzenle'
|
edit_title: 'Başlığı düzenle'
|
||||||
original_article: 'orijinal'
|
original_article: 'orijinal'
|
||||||
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
|
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
|
||||||
created_at: 'Oluşturulma tarihi'
|
created_at: 'Oluşturulma tarihi'
|
||||||
new:
|
new:
|
||||||
page_title: 'Yeni makaleyi kaydet'
|
page_title: 'Yeni makaleyi kaydet'
|
||||||
@ -207,8 +207,6 @@ entry:
|
|||||||
url_label: 'Url'
|
url_label: 'Url'
|
||||||
is_public_label: 'Herkes tarafından erişime açık olsun mu?'
|
is_public_label: 'Herkes tarafından erişime açık olsun mu?'
|
||||||
save_label: 'Kaydet'
|
save_label: 'Kaydet'
|
||||||
public:
|
|
||||||
# shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
|
|
||||||
|
|
||||||
about:
|
about:
|
||||||
page_title: 'Hakkımızda'
|
page_title: 'Hakkımızda'
|
||||||
@ -463,7 +461,7 @@ flashes:
|
|||||||
# entry_saved_failed: 'Entry saved but fetching content failed'
|
# entry_saved_failed: 'Entry saved but fetching content failed'
|
||||||
# entry_updated: 'Entry updated'
|
# entry_updated: 'Entry updated'
|
||||||
entry_reloaded: 'Makale içeriği yenilendi'
|
entry_reloaded: 'Makale içeriği yenilendi'
|
||||||
# entry_reloaded_failed: 'Entry reloaded but fetching content failed'
|
# entry_reload_failed: 'Entry reloaded but fetching content failed'
|
||||||
entry_archived: 'Makale arşivlendi'
|
entry_archived: 'Makale arşivlendi'
|
||||||
entry_unarchived: 'Makale arşivden çıkartıldı'
|
entry_unarchived: 'Makale arşivden çıkartıldı'
|
||||||
entry_starred: 'Makale favorilere eklendi'
|
entry_starred: 'Makale favorilere eklendi'
|
||||||
|
|||||||
@ -29,16 +29,16 @@
|
|||||||
<li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li>
|
<li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
{% if entry.previewPicture is null %}
|
{% if entry.previewPicture is null %}
|
||||||
|
<p>{{ entry.content|striptags|slice(0, 300) }}…</p>
|
||||||
<ul class="card-entry-tags">
|
<ul class="card-entry-tags">
|
||||||
{% for tag in entry.tags %}
|
{% for tag in entry.tags %}
|
||||||
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
|
<li>{{ tag.label }}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<p>{{ entry.content|striptags|slice(0, 300) }}…</p>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<ul class="card-entry-labels">
|
<ul class="card-entry-labels">
|
||||||
{% for tag in entry.tags | slice(0, 3) %}
|
{% for tag in entry.tags | slice(0, 3) %}
|
||||||
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
|
<li>{{ tag.label }}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" />
|
<img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" />
|
||||||
|
|||||||
@ -54,13 +54,12 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</i>
|
</i>
|
||||||
|
|
||||||
|
{% set nbAnnotations = entry.annotations | length %}
|
||||||
<span class="tool link"><i class="material-icons link">comment</i> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
|
<span class="tool link"><i class="material-icons link">comment</i> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
|
||||||
<aside class="tags">
|
<aside class="tags">
|
||||||
<div class="card-entry-tags">
|
|
||||||
{% for tag in entry.tags %}
|
{% for tag in entry.tags %}
|
||||||
<span class="label-outline"><i class="material-icons">label_outline</i> <a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}" class="nostyle"><i>✘</i></a></span>
|
<span class="label-outline"><i class="material-icons">label_outline</i> {{ tag.label }}</span> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"class="nostyle"><i>✘</i></a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
|
||||||
<div class="input-field nav-panel-add-tag" style="display: none">
|
<div class="input-field nav-panel-add-tag" style="display: none">
|
||||||
{{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }}
|
{{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
{% for tag in tags %}
|
{% for tag in tags %}
|
||||||
<li id="tag-{{ tag.id|e }}"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.nbEntries | length }})</a></li>
|
<li id="tag-{{ tag.id|e }}"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.entries.getValues | length }})</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
@ -23,12 +23,12 @@
|
|||||||
{% block menu %}
|
{% block menu %}
|
||||||
<button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button>
|
<button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button>
|
||||||
<ul id="links" class="links">
|
<ul id="links" class="links">
|
||||||
<li class="menu unread"><a href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a></li>
|
<li><a href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }}</a></li>
|
||||||
<li class="menu starred"><a href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a></li>
|
<li><a href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }}</a></li>
|
||||||
<li class="menu archive"><a href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a></li>
|
<li><a href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }}</a></li>
|
||||||
<li class="menu all"><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li>
|
<li><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li>
|
||||||
<li class="menu tag"><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li>
|
<li><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li>
|
||||||
<li class="menu new"><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li>
|
<li><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li>
|
||||||
<!--<li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
|
<!--<li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
|
||||||
<div id="search-form" class="messages info popup-form">
|
<div id="search-form" class="messages info popup-form">
|
||||||
<form method="get" action="index.php">
|
<form method="get" action="index.php">
|
||||||
@ -40,16 +40,16 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</li>-->
|
</li>-->
|
||||||
<li class="menu config"><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li>
|
<li><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li>
|
||||||
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
{% if is_granted('ROLE_SUPER_ADMIN') %}
|
||||||
<li class="menu users"><a href="{{ path('user_index') }}">{{ 'menu.left.users_management'|trans }}</a></li>
|
<li><a href="{{ path('user_index') }}">{{ 'menu.left.users_management'|trans }}</a></li>
|
||||||
<li class="menu internal"><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li>
|
<li><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="menu import"><a href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a></li>
|
<li><a href="{{ path('import') }}">{{ 'menu.left.import'|trans }}</a></li>
|
||||||
<li class="menu howto"><a href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a></li>
|
<li><a href="{{ path('howto') }}">{{ 'menu.left.howto'|trans }}</a></li>
|
||||||
<li class="menu developer"><a href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a></li>
|
<li><a href="{{ path('developer') }}">{{ 'menu.left.developer'|trans }}</a></li>
|
||||||
<li class="menu about"><a href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a></li>
|
<li><a href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans }}</a></li>
|
||||||
<li class="menu logout"><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a></li>
|
<li><a class="icon icon-power" href="{{ path('fos_user_security_logout') }}">{{ 'menu.left.logout'|trans }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@ -27,25 +27,11 @@
|
|||||||
width: 600px;
|
width: 600px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<meta property="og:title" content="{{ entry.title | raw }}" />
|
|
||||||
<meta property="og:type" content="article" />
|
|
||||||
<meta property="og:url" content="{{ app.request.uri }}" />
|
|
||||||
{% set picturePath = app.request.schemeAndHttpHost ~ asset('bundles/wallabagcore/themes/_global/img/logo-other_themes.png') %}
|
|
||||||
{% if entry.previewPicture is not null %}
|
|
||||||
{% set picturePath = entry.previewPicture %}
|
|
||||||
{% endif %}
|
|
||||||
<meta property="og:image" content="{{ picturePath }}" />
|
|
||||||
<meta name="twitter:card" content="summary" />
|
|
||||||
<meta name="twitter:image" content="{{ picturePath }}" />
|
|
||||||
<meta name="twitter:site" content="@wallabagapp" />
|
|
||||||
<meta name="twitter:title" content="{{ entry.title | raw }}" />
|
|
||||||
<meta name="twitter:description" content="{{ entry.title | raw }}" />
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<h1>{{ entry.title | raw }}</h1>
|
<h1>{{ entry.title | raw }}</h1>
|
||||||
<div><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">{{ entry.domainName|removeWww }}</a></div>
|
<span><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">{{ entry.domainName|removeWww }}</a></span>
|
||||||
<div>{{ "entry.public.shared_by_wallabag"|trans({'%wallabag_instance%': url('homepage')})|raw }}</div>
|
|
||||||
</header>
|
</header>
|
||||||
<article>
|
<article>
|
||||||
{{ entry.content | raw }}
|
{{ entry.content | raw }}
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
<a id="bookmarklet" ondragend="this.click();" href="javascript:(function(){var url=location.href||url;var wllbg=window.open('{{ url('bookmarklet') }}?url=' + encodeURI(url),'_blank');})();">bag it!</a>
|
<a id="bookmarklet" ondragend="this.click();" href="javascript:var url=location.href||url;var wllbg=window.open('{{ url('bookmarklet') }}?url=' + encodeURI(url),'_blank');wllbg.close();void(0);">bag it!</a>
|
||||||
|
|||||||
@ -11,11 +11,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="div_tabs col s12">
|
<div class="div_tabs col s12">
|
||||||
<ul class="tabs">
|
<ul class="tabs">
|
||||||
<li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'about.top_menu.who_behind_wallabag'|trans }}</a></li>
|
<li class="tab col s3"><a class="active" href="#set1">{{ 'about.top_menu.who_behind_wallabag'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set2">{{ 'about.top_menu.getting_help'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set2">{{ 'about.top_menu.getting_help'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set3">{{ 'about.top_menu.helping'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set3">{{ 'about.top_menu.helping'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set4">{{ 'about.top_menu.contributors'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set4">{{ 'about.top_menu.contributors'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set5">{{ 'about.top_menu.third_party'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set5">{{ 'about.top_menu.third_party'|trans }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -36,7 +36,6 @@
|
|||||||
<dt>{{ 'about.getting_help.documentation'|trans }}</dt>
|
<dt>{{ 'about.getting_help.documentation'|trans }}</dt>
|
||||||
<dd><a href="http://doc.wallabag.org/en/master/">english</a></dd>
|
<dd><a href="http://doc.wallabag.org/en/master/">english</a></dd>
|
||||||
<dd><a href="http://doc.wallabag.org/fr/master/">français</a></dd>
|
<dd><a href="http://doc.wallabag.org/fr/master/">français</a></dd>
|
||||||
<dd><a href="http://doc.wallabag.org/de/master/">deutsch</a></dd>
|
|
||||||
|
|
||||||
<dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
|
<dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
|
||||||
<dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
|
<dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
|
||||||
|
|||||||
@ -11,11 +11,11 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="div_tabs col s12">
|
<div class="div_tabs col s12">
|
||||||
<ul class="tabs">
|
<ul class="tabs">
|
||||||
<li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li>
|
<li class="tab col s3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li>
|
||||||
<li class="tab col s12 m6 l3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li>
|
<li class="tab col s3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
<div class="card-image waves-effect waves-block waves-light">
|
<div class="card-image waves-effect waves-block waves-light">
|
||||||
<ul class="card-entry-labels">
|
<ul class="card-entry-labels">
|
||||||
{% for tag in entry.tags | slice(0, 3) %}
|
{% for tag in entry.tags | slice(0, 3) %}
|
||||||
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
|
<li>{{ tag.label }}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div>
|
<div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div>
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p>
|
<p>{{ entry.content|striptags|slice(0, 300)|raw }}…</p>
|
||||||
<ul class="card-entry-labels-hidden">
|
<ul class="card-entry-labels-hidden">
|
||||||
{% for tag in entry.tags | slice(0, 2) %}
|
{% for tag in entry.tags | slice(0, 2) %}
|
||||||
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
|
<li>{{ tag.label }}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -68,7 +68,7 @@
|
|||||||
|
|
||||||
<ul class="card-entry-labels-hidden">
|
<ul class="card-entry-labels-hidden">
|
||||||
{% for tag in entry.tags %}
|
{% for tag in entry.tags %}
|
||||||
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
|
<li>{{ tag.label }}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<div class="card-action">
|
<div class="card-action">
|
||||||
<span class="bold">
|
<span class="bold">
|
||||||
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a>
|
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a>
|
||||||
</span>
|
</bold>
|
||||||
|
|
||||||
<ul class="tools right">
|
<ul class="tools right">
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@ -223,13 +223,12 @@
|
|||||||
</span>
|
</span>
|
||||||
<i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i><span class="link">{{ entry.createdAt|date('Y-m-d') }}</span>
|
<i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i><span class="link">{{ entry.createdAt|date('Y-m-d') }}</span>
|
||||||
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">
|
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">
|
||||||
<i class="material-icons link">link</i> <span class="link">{{ entry.domainName|removeWww }}</span>
|
<i class="material-icons link">link</i> <span class="link">{{ entry.domainName|removeWww }}</span></a>
|
||||||
</a>
|
<span class="tool"><i class="material-icons link">comment</i> <span class="link">{{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
|
||||||
<span class="tool"><i class="material-icons link">comment</i></span> <span class="link">{{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
|
|
||||||
<div id="list">
|
<div id="list">
|
||||||
{% for tag in entry.tags %}
|
{% for tag in entry.tags %}
|
||||||
<div class="chip">
|
<div class="chip">
|
||||||
<a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="material-icons">delete</i></a>
|
{{ tag.label }} <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="material-icons">delete</i></a>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -6,19 +6,12 @@
|
|||||||
<div class="results clearfix">
|
<div class="results clearfix">
|
||||||
<div class="nb-results left">{{ 'tag.list.number_on_the_page'|transchoice(tags|length) }}</div>
|
<div class="nb-results left">{{ 'tag.list.number_on_the_page'|transchoice(tags|length) }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
<ul class="row data">
|
||||||
<div class="row">
|
{% for tag in tags %}
|
||||||
<ul class="card-tag-labels">
|
<li id="tag-{{ tag.id|e }}" class="col l4 m6 s12"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.entries.getValues | length }})</a></li>
|
||||||
{% for tag in tags %}
|
{% endfor %}
|
||||||
<li title="{{tag.label}} ({{ tag.nbEntries }})" id="tag-{{ tag.id }}" class="col l2 m2 s2">
|
</ul>
|
||||||
<a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.nbEntries }})</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a>
|
<a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user