forked from wallabag/wallabag
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 76ee8a9ea5 |
@ -1,10 +0,0 @@
|
||||
{
|
||||
"extends": "airbnb-base",
|
||||
"parser": "babel-eslint",
|
||||
"env": {
|
||||
"browser": true
|
||||
},
|
||||
"rules": {
|
||||
"import/no-extraneous-dependencies": ["error", {"devDependencies": true, "optionalDependencies": true, "peerDependencies": true}]
|
||||
}
|
||||
}
|
||||
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
|
||||
|
||||
Please provide issue details here.
|
||||
|
||||
13
.gitignore
vendored
13
.gitignore
vendored
@ -21,10 +21,8 @@
|
||||
/vendor/
|
||||
|
||||
# Assets and user uploads
|
||||
web/uploads/
|
||||
!web/bundles
|
||||
web/bundles/*
|
||||
!web/bundles/wallabagcore
|
||||
/web/bundles/
|
||||
/web/uploads/
|
||||
|
||||
# Build
|
||||
/app/build
|
||||
@ -43,10 +41,3 @@ docker/data/
|
||||
|
||||
# To avoid crazy stuff on some PR, we must manually FORCE ADD IT on each new release
|
||||
composer.lock
|
||||
|
||||
# assets stuff
|
||||
node_modules/
|
||||
bin
|
||||
app/Resources/build/
|
||||
!/src/Wallabag/CoreBundle/Resources/public
|
||||
/src/Wallabag/CoreBundle/Resources/public/*
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
{
|
||||
"extends": "stylelint-config-standard"
|
||||
}
|
||||
48
.travis.yml
48
.travis.yml
@ -1,9 +1,5 @@
|
||||
language: php
|
||||
|
||||
services:
|
||||
- rabbitmq
|
||||
- redis
|
||||
|
||||
# faster builds on docker-container setup
|
||||
sudo: false
|
||||
|
||||
@ -19,9 +15,6 @@ cache:
|
||||
directories:
|
||||
- vendor
|
||||
- $HOME/.composer/cache
|
||||
- node_modules
|
||||
- $HOME/.cache/bower
|
||||
- $HOME/.npm
|
||||
|
||||
php:
|
||||
- 5.5
|
||||
@ -30,9 +23,6 @@ php:
|
||||
- 7.1
|
||||
- nightly
|
||||
|
||||
node_js:
|
||||
- "5"
|
||||
|
||||
env:
|
||||
- DB=mysql
|
||||
- DB=pgsql
|
||||
@ -41,10 +31,29 @@ env:
|
||||
matrix:
|
||||
fast_finish: true
|
||||
include:
|
||||
# driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
|
||||
- php: hhvm-3.12
|
||||
sudo: required
|
||||
dist: trusty
|
||||
group: edge
|
||||
env: DB=mysql
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- mysql-server-5.6
|
||||
- mysql-client-core-5.6
|
||||
- mysql-client-5.6
|
||||
services:
|
||||
- mysql
|
||||
- php: hhvm-3.12
|
||||
sudo: required
|
||||
dist: trusty
|
||||
group: edge
|
||||
env: DB=sqlite
|
||||
- php: 7.0
|
||||
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run ASSETS=build DB=sqlite
|
||||
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite
|
||||
allow_failures:
|
||||
- php: 7.1
|
||||
- php: hhvm-3.12
|
||||
- php: nightly
|
||||
|
||||
# exclude v1 branches
|
||||
@ -57,14 +66,8 @@ before_script:
|
||||
- if [[ ! $PHP = hhvm* ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
|
||||
# xdebug isn't enable for PHP 7.1
|
||||
- if [[ ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi
|
||||
- if [[ $PHP = 5.5 ]]; then composer require "phpunit/phpunit:4.*" --no-update; fi;
|
||||
- composer self-update --no-progress
|
||||
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
|
||||
|
||||
install:
|
||||
- if [[ $ASSETS = build ]]; then source ~/.nvm/nvm.sh && nvm install 6.7; fi;
|
||||
- if [[ $ASSETS = build ]]; then npm install -g npm@latest; fi;
|
||||
- if [[ $ASSETS = build ]]; then npm install; fi;
|
||||
- if [[ "$DB" = "pgsql" ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
|
||||
|
||||
before_install:
|
||||
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
|
||||
@ -72,7 +75,6 @@ before_install:
|
||||
script:
|
||||
- travis_wait composer update --no-interaction --no-progress
|
||||
- ant prepare-$DB
|
||||
- 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 [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
|
||||
- if [[ $ASSETS = build ]]; then ./node_modules/grunt-cli/bin/grunt tests; fi;
|
||||
- phpunit -v
|
||||
- if [ "$CS_FIXER" = "run" ]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
|
||||
- if [ "$VALIDATE_TRANSLATION_FILE" = "run" ]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
|
||||
|
||||
978
CHANGELOG.md
978
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
225
Gruntfile.js
225
Gruntfile.js
@ -1,225 +0,0 @@
|
||||
module.exports = function (grunt) {
|
||||
require('load-grunt-tasks')(grunt);
|
||||
|
||||
grunt.initConfig({
|
||||
appDir: 'app/Resources/static',
|
||||
buildDir: 'app/Resources/build',
|
||||
modulesDir: 'node_modules',
|
||||
releaseDir: 'web/bundles/wallabagcore',
|
||||
|
||||
postcss: {
|
||||
material: {
|
||||
options: {
|
||||
processors: [
|
||||
require('pixrem')(),
|
||||
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
||||
require('cssnano')(),
|
||||
],
|
||||
},
|
||||
src: '<%= buildDir %>/material.css',
|
||||
dest: '<%= releaseDir %>/themes/material/css/style.min.css',
|
||||
},
|
||||
baggy: {
|
||||
options: {
|
||||
processors: [
|
||||
require('pixrem')(),
|
||||
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
||||
require('cssnano')(),
|
||||
],
|
||||
},
|
||||
src: '<%= buildDir %>/baggy.css',
|
||||
dest: '<%= releaseDir %>/themes/baggy/css/style.min.css',
|
||||
},
|
||||
},
|
||||
concat: {
|
||||
options: {
|
||||
separator: ';',
|
||||
},
|
||||
cssMaterial: {
|
||||
src: [
|
||||
'node_modules/materialize-css/bin/materialize.css',
|
||||
'<%= appDir %>/themes/material/css/*.css',
|
||||
],
|
||||
dest: '<%= buildDir %>/material.css',
|
||||
},
|
||||
cssBaggy: {
|
||||
src: [
|
||||
'<%= appDir %>/themes/baggy/css/*.css',
|
||||
],
|
||||
dest: '<%= buildDir %>/baggy.css',
|
||||
},
|
||||
},
|
||||
browserify: {
|
||||
dist: {
|
||||
files: {
|
||||
'<%= buildDir %>/material.browser.js': ['<%= appDir %>/themes/material/js/init.js'],
|
||||
'<%= buildDir %>/baggy.browser.js': ['<%= appDir %>/themes/baggy/js/init.js']
|
||||
}
|
||||
},
|
||||
options: {
|
||||
sourceType: "module",
|
||||
transform: [
|
||||
["babelify", {
|
||||
presets: ["es2015"]
|
||||
}], ["browserify-shim", {
|
||||
"jquery": {
|
||||
"exports": "$"
|
||||
},
|
||||
"materialize": "materialize",
|
||||
"jquery-ui": {
|
||||
"depends": "jquery",
|
||||
"exports": null
|
||||
}
|
||||
}]
|
||||
],
|
||||
browserifyOptions: {
|
||||
browser: {
|
||||
"jQuery": "./node_modules/jquery/dist/jquery.js",
|
||||
"jquery.tinydot": "./node_modules/jquery.tinydot/src/jquery.tinydot.js",
|
||||
"jquery.ui": "./node_modules/jquery-ui-browserify/dist/jquery-ui.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
uglify: {
|
||||
material: {
|
||||
files: {
|
||||
'<%= releaseDir %>/themes/material/js/material.min.js':
|
||||
['<%= buildDir %>/material.browser.js'],
|
||||
}
|
||||
},
|
||||
baggy: {
|
||||
files: {
|
||||
'<%= releaseDir %>/themes/baggy/js/baggy.min.js':
|
||||
['<%= buildDir %>/baggy.browser.js'],
|
||||
}
|
||||
},
|
||||
},
|
||||
copy: {
|
||||
pickerjs: {
|
||||
expand: true,
|
||||
cwd: '<%= modulesDir %>/pickadate/lib',
|
||||
src: 'picker.js',
|
||||
dest: '<%= buildDir %>',
|
||||
},
|
||||
annotator: {
|
||||
expand: true,
|
||||
cwd: '<%= modulesDir %>/annotator/pkg',
|
||||
src: 'annotator.min.js',
|
||||
dest: '<%= buildDir %>/themes/_global/js/',
|
||||
},
|
||||
baggyfonts: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
cwd: '<%= modulesDir %>/icomoon-free-npm/Font',
|
||||
src: 'IcoMoon-Free.ttf',
|
||||
dest: '<%= releaseDir %>/themes/baggy/fonts/',
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
cwd: '<%= modulesDir %>/ptsans-npm-webfont/fonts',
|
||||
src: 'ptsansbold.woff',
|
||||
dest: '<%= releaseDir %>/themes/baggy/fonts/',
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/',
|
||||
src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'],
|
||||
dest: '<%= releaseDir %>/themes/baggy/fonts/',
|
||||
},
|
||||
],
|
||||
},
|
||||
materialfonts: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
overwrite: true,
|
||||
cwd: '<%= modulesDir %>/icomoon-free-npm/Font',
|
||||
src: 'IcoMoon-Free.ttf',
|
||||
dest: '<%= releaseDir %>/themes/material/fonts',
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
overwrite: true,
|
||||
cwd: '<%= modulesDir %>/roboto-fontface/fonts/Roboto',
|
||||
src: '*',
|
||||
dest: '<%= releaseDir %>/themes/material/font/roboto',
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
overwrite: true,
|
||||
cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/',
|
||||
src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'],
|
||||
dest: '<%= releaseDir %>/themes/material/fonts/',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
symlink: {
|
||||
pics: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
overwrite: true,
|
||||
cwd: '<%= appDir %>/themes/_global/',
|
||||
src: 'img',
|
||||
dest: '<%= releaseDir %>/themes/_global/',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
clean: {
|
||||
css: {
|
||||
src: ['<%= buildDir %>/**/*.css'],
|
||||
},
|
||||
js: {
|
||||
src: ['<%= buildDir %>/**/*.js', '<%= buildDir %>/**/*.map'],
|
||||
},
|
||||
all: {
|
||||
src: ['./<%= buildDir %>'],
|
||||
},
|
||||
release: {
|
||||
src: ['./<%= releaseDir %>/*'],
|
||||
}
|
||||
},
|
||||
eslint: {
|
||||
target: ['<%= appDir %>/themes/material/js/init.js', '<%= appDir %>/themes/baggy/js/init.js']
|
||||
},
|
||||
stylelint: {
|
||||
target: ['<%= appDir %>/themes/material/css/*.css', '<%= appDir %>/themes/baggy/css/*.css']
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
grunt.registerTask(
|
||||
'fonts',
|
||||
'Install fonts',
|
||||
['copy:baggyfonts', 'copy:materialfonts']
|
||||
);
|
||||
|
||||
grunt.registerTask(
|
||||
'js',
|
||||
'Build and install js files',
|
||||
['clean:js', 'copy:pickerjs', 'browserify', 'uglify']
|
||||
);
|
||||
|
||||
grunt.registerTask(
|
||||
'default',
|
||||
'Build and install everything',
|
||||
['clean', 'copy:pickerjs', 'concat', 'browserify', 'uglify', 'postcss', 'copy', 'symlink']
|
||||
);
|
||||
|
||||
grunt.registerTask(
|
||||
'css',
|
||||
'Compiles the stylesheets.',
|
||||
['clean:css', 'concat:cssMaterial', 'concat:cssBaggy', 'postcss']
|
||||
);
|
||||
|
||||
grunt.registerTask(
|
||||
'tests',
|
||||
'Test css and js style conformity',
|
||||
['eslint', 'stylelint', 'default']
|
||||
)
|
||||
};
|
||||
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.
|
||||
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
|
||||
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).
|
||||
Then you can install wallabag by executing the following commands:
|
||||
|
||||
```
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag && make install
|
||||
make run
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag
|
||||
git checkout 2.0.7
|
||||
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>
|
||||
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.
|
||||
|
||||
@ -1,45 +1,47 @@
|
||||
## Definition
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
- `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
|
||||
|
||||
- Run these commands to create the tag:
|
||||
|
||||
```
|
||||
git checkout master
|
||||
git pull origin master
|
||||
git checkout -b release-$LAST_WALLABAG_RELEASE
|
||||
SYMFONY_ENV=prod composer up --no-dev
|
||||
git add --force composer.lock
|
||||
git commit -m "Release wallabag $LAST_WALLABAG_RELEASE"
|
||||
git push origin release-$LAST_WALLABAG_RELEASE
|
||||
git checkout v2
|
||||
git pull origin v2
|
||||
git checkout -b release-2.0.0-beta.1
|
||||
SYMFONY_ENV=prod composer up --no-dev
|
||||
git add --force composer.lock
|
||||
git add README.md
|
||||
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.
|
||||
- Run these command to create the package:
|
||||
- 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 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.
|
||||
- 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 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)
|
||||
- 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:!
|
||||
- Drink a beer!
|
||||
|
||||
### `composer.lock`
|
||||
A release tag must contain a `composer.lock` file. It sets which dependencies were available at the time a release was done,
|
||||
|
||||
@ -13,6 +13,7 @@ class AppKernel extends Kernel
|
||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
||||
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
||||
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
|
||||
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
|
||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
||||
new FOS\RestBundle\FOSRestBundle(),
|
||||
@ -38,7 +39,6 @@ class AppKernel extends Kernel
|
||||
new Wallabag\UserBundle\WallabagUserBundle(),
|
||||
new Wallabag\ImportBundle\WallabagImportBundle(),
|
||||
new Wallabag\AnnotationBundle\WallabagAnnotationBundle(),
|
||||
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
|
||||
];
|
||||
|
||||
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
if ($this->connection->getDatabasePlatform()->getName() == 'postgresql') {
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid UUID DEFAULT NULL');
|
||||
} 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')");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$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("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'share_public'");
|
||||
}
|
||||
}
|
||||
@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
class Version20160812120952 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'sqlite':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
|
||||
break;
|
||||
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');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' DROP COLUMN name');
|
||||
}
|
||||
}
|
||||
@ -1,42 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
class Version20160911214952 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param 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_rabbitmq\', \'0\', \'import\')');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Application\Migrations;
|
||||
|
||||
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
class Version20160916201049 extends AbstractMigration implements ContainerAwareInterface
|
||||
{
|
||||
/**
|
||||
* @var ContainerInterface
|
||||
*/
|
||||
private $container;
|
||||
|
||||
public function setContainer(ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$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';");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Schema $schema
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$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("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('pocket_consumer_key', NULL, 'import')");
|
||||
}
|
||||
}
|
||||
@ -8,8 +8,7 @@ export_csv: Aktiver eksport til CSV
|
||||
export_json: Aktiver eksport til JSON
|
||||
export_txt: Aktiver eksport til TXT
|
||||
export_xml: Aktiver eksport til XML
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
pocket_consumer_key: Brugers nøgle til Pocket for at importere materialer (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: Shaarli-URL, hvis tjenesten er aktiv
|
||||
share_diaspora: Aktiver deling til Diaspora
|
||||
share_mail: Aktiver deling med email
|
||||
@ -28,4 +27,3 @@ piwik_site_id: ID for din side hos Piwik
|
||||
piwik_enabled: Aktiver Piwik
|
||||
demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)"
|
||||
demo_mode_username: "Demobruger"
|
||||
# share_public: Allow public url for entries
|
||||
|
||||
@ -2,14 +2,13 @@ download_pictures: Bilder auf den Server herunterladen
|
||||
carrot: Teilen zu Carrot aktivieren
|
||||
diaspora_url: Diaspora-URL, sofern der Service aktiviert ist
|
||||
export_epub: ePUB-Export aktivieren
|
||||
export_mobi: mobi-Export aktivieren
|
||||
export_mobi: .mobi-Export aktivieren
|
||||
export_pdf: PDF-Export aktivieren
|
||||
export_csv: CSV-Export aktivieren
|
||||
export_json: JSON-Export aktivieren
|
||||
export_txt: TXT-Export aktivieren
|
||||
export_xml: XML-Export aktivieren
|
||||
import_with_rabbitmq: Aktiviere RabbitMQ, um Artikel asynchron zu importieren
|
||||
import_with_redis: Aktiviere Redis, um Artikel asynchron zu importieren
|
||||
pocket_consumer_key: Consumer-Key für Pocket, um Inhalte zu importieren (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
|
||||
share_diaspora: Teilen zu Diaspora aktiveren
|
||||
share_mail: Teilen via E-Mail aktiveren
|
||||
@ -28,4 +27,3 @@ piwik_site_id: ID deiner Webseite in Piwik
|
||||
piwik_enabled: Piwik aktivieren
|
||||
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
|
||||
demo_mode_username: "Test-Benutzer"
|
||||
share_public: Erlaube eine öffentliche URL für Einträge
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: Enable CSV export
|
||||
export_json: Enable JSON export
|
||||
export_txt: Enable TXT export
|
||||
export_xml: Enable XML export
|
||||
import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
import_with_redis: Enable Redis to import data asynchronously
|
||||
pocket_consumer_key: Consumer key for Pocket to import contents (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: Shaarli URL, if the service is enabled
|
||||
share_diaspora: Enable share to Diaspora
|
||||
share_mail: Enable share by email
|
||||
@ -28,4 +27,3 @@ piwik_site_id: ID of your website in Piwik
|
||||
piwik_enabled: Enable Piwik
|
||||
demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
demo_mode_username: "Demo user"
|
||||
share_public: Allow public url for entries
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: Activar exportación a CSV
|
||||
export_json: Activar exportación a JSON
|
||||
export_txt: Activar exportación a TXT
|
||||
export_xml: Activar exportación a XML
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
pocket_consumer_key: Consumer key for Pocket to import contents (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: Shaarli URL, si el servicio está activado
|
||||
share_diaspora: Activar compartir con Diaspora
|
||||
share_mail: Activar compartir con email
|
||||
@ -28,4 +27,3 @@ piwik_site_id: ID de tu website de Piwik
|
||||
piwik_enabled: Activar Piwik
|
||||
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
|
||||
demo_mode_username: "Nombre de usuario demo"
|
||||
# share_public: Allow public url for entries
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: فعالسازی برونسپاری به CSV
|
||||
export_json: فعالسازی برونسپاری به JSON
|
||||
export_txt: فعالسازی برونسپاری به TXT
|
||||
export_xml: فعالسازی برونسپاری به XML
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
pocket_consumer_key: کلید کاربری Pocket برای درونریزی مطالب (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: نشانی Shaarli، اگر فعال بود
|
||||
share_diaspora: فعالسازی همرسانی به Diaspora
|
||||
share_mail: فعالسازی همرسانی با ایمیل
|
||||
@ -23,9 +22,3 @@ export: "برونسپاری"
|
||||
import: "درونریزی"
|
||||
misc: "غیره"
|
||||
modify_settings: "اعمال"
|
||||
# piwik_host: Host of your website in Piwik
|
||||
# piwik_site_id: ID of your website in Piwik
|
||||
# piwik_enabled: Enable Piwik
|
||||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
# demo_mode_username: "Demo user"
|
||||
# share_public: Allow public url for entries
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: Activer l'export CSV
|
||||
export_json: Activer l'export JSON
|
||||
export_txt: Activer l'export TXT
|
||||
export_xml: Activer l'export XML
|
||||
import_with_rabbitmq: Activer RabbitMQ pour gérer les imports de façon asynchrone
|
||||
import_with_redis: Activer Redis pour gérer les imports de façon asynchrone
|
||||
pocket_consumer_key: Clé d'authentification Pocket pour importer les données (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: URL de Shaarli, si le service Shaarli est activé
|
||||
share_diaspora: Activer le partage vers Diaspora
|
||||
share_mail: Activer le partage par email
|
||||
@ -28,4 +27,3 @@ piwik_site_id: ID de votre site dans Piwik
|
||||
piwik_enabled: Activer Piwik
|
||||
demo_mode_enabled: "Activer le mode démo ? (utiliser uniquement pour la démo publique de wallabag)"
|
||||
demo_mode_username: "Utilisateur de la démo"
|
||||
share_public: Autoriser une URL publique pour les articles
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: Abilita esportazione CSV
|
||||
export_json: Abilita esportazione JSON
|
||||
export_txt: Abilita esportazione TXT
|
||||
export_xml: Abilita esportazione XML
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
pocket_consumer_key: Consumer key per Pocket per importare i contenuti (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: Shaarli URL, se il servizio è abilitato
|
||||
share_diaspora: Abilita la condivisione con Diaspora
|
||||
share_mail: Abilita la condivisione per email
|
||||
@ -28,4 +27,3 @@ piwik_site_id: ID del tuo sito in Piwik
|
||||
piwik_enabled: Abilita Piwik
|
||||
demo_mode_enabled: "Abilita modalità demo ? (usato solo per la demo pubblica di wallabag)"
|
||||
demo_mode_username: "Utente Demo"
|
||||
# share_public: Allow public url for entries
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: Activar l'expòrt CSV
|
||||
export_json: Activar l'expòrt JSON
|
||||
export_txt: Activar l'expòrt TXT
|
||||
export_xml: Activar l'expòrt XML
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
pocket_consumer_key: Clau d'autentificacion Pocket per importar las donadas (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
|
||||
share_diaspora: Activar lo partatge cap a Diaspora
|
||||
share_mail: Activar lo partatge per corrièl
|
||||
@ -28,4 +27,3 @@ piwik_site_id: ID de vòstre site dins Piwik
|
||||
piwik_enabled: Activar Piwik
|
||||
demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
|
||||
demo_mode_username: "Utilizaire de la demostracion"
|
||||
# share_public: Allow public url for entries
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: Włącz eksport do CSV
|
||||
export_json: Włącz eksport do JSON
|
||||
export_txt: Włącz eksport do TXT
|
||||
export_xml: Włącz eksport do XML
|
||||
import_with_rabbitmq: Włącz RabbitMQ dla asynchronicznego importu danych
|
||||
import_with_redis: Włącz Redis dla asynchronicznego importu danych
|
||||
pocket_consumer_key: Klucz klienta Pocket do importu zawartości (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: Adress URL Shaarli, jeżeli usługa jest włączona
|
||||
share_diaspora: Włącz udostępnianie dla Diaspora
|
||||
share_mail: Włącz udostępnianie przez email
|
||||
@ -23,9 +22,3 @@ export: "eksport"
|
||||
import: "import"
|
||||
misc: "różne"
|
||||
modify_settings: "zatwierdz"
|
||||
piwik_host: Host twojej strony Piwik
|
||||
piwik_site_id: ID twojej strony Piwik
|
||||
piwik_enabled: Włacz Piwik
|
||||
demo_mode_enabled: "Włacz tryb demo? (używany wyłącznie dla publicznej demonstracji Wallabag)"
|
||||
demo_mode_username: "Użytkownik Demonstracyjny"
|
||||
share_public: Zezwalaj na publiczny adres url dla wpisow
|
||||
|
||||
@ -8,8 +8,7 @@ export_csv: Permite exportare CSV
|
||||
export_json: Permite exportare JSON
|
||||
export_txt: Permite exportare TXT
|
||||
export_xml: Permite exportare XML
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
pocket_consumer_key: Cheie consumator pentru importarea contentului din Pocket (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: Shaarli URL, dacă serviciul este permis
|
||||
share_diaspora: Permite share către Diaspora
|
||||
share_mail: Permite share prin email
|
||||
@ -23,9 +22,3 @@ export: "exportă"
|
||||
import: "importă"
|
||||
misc: "diverse"
|
||||
modify_settings: "aplică"
|
||||
# piwik_host: Host of your website in Piwik
|
||||
# piwik_site_id: ID of your website in Piwik
|
||||
# piwik_enabled: Enable Piwik
|
||||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
# demo_mode_username: "Demo user"
|
||||
# share_public: Allow public url for entries
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
# download_pictures: Download pictures on your server
|
||||
# carrot: Enable share to Carrot
|
||||
# diaspora_url: Diaspora URL, if the service is enabled
|
||||
# export_epub: Enable ePub export
|
||||
# export_mobi: Enable .mobi export
|
||||
# export_pdf: Enable PDF export
|
||||
# export_csv: Enable CSV export
|
||||
# export_json: Enable JSON export
|
||||
# export_txt: Enable TXT export
|
||||
# export_xml: Enable XML export
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
# shaarli_url: Shaarli URL, if the service is enabled
|
||||
# share_diaspora: Enable share to Diaspora
|
||||
# share_mail: Enable share by email
|
||||
# share_shaarli: Enable share to Shaarli
|
||||
# share_twitter: Enable share to Twitter
|
||||
# show_printlink: Display a link to print content
|
||||
# wallabag_support_url: Support URL for wallabag
|
||||
# wallabag_url: URL of *your* wallabag instance
|
||||
# entry: "article"
|
||||
# export: "export"
|
||||
# import: "import"
|
||||
# misc: "misc"
|
||||
# modify_settings: "apply"
|
||||
# piwik_host: Host of your website in Piwik
|
||||
# piwik_site_id: ID of your website in Piwik
|
||||
# piwik_enabled: Enable Piwik
|
||||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
# demo_mode_username: "Demo user"
|
||||
# share_public: Allow public url for entries
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||
|
||||
{% block title %}{{ 'menu.left.internal_settings'|trans }}{% endblock %}
|
||||
{% block title %}{% trans %}internal settings{% endtrans %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
@ -13,7 +13,7 @@
|
||||
<div class="div_tabs col s12">
|
||||
<ul class="tabs">
|
||||
{% 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 %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.1 KiB |
@ -1,6 +0,0 @@
|
||||
|
||||
top['bookmarklet-url@wallabag.org'] =
|
||||
'<!DOCTYPE html><html><head><title>bag it!</title>' +
|
||||
'<link rel="icon" href="tpl/img/favicon.ico" />' +
|
||||
'</head><body><script>window.onload=function(){window.setTimeout' +
|
||||
'(function(){history.back();},250);};</script></body></html>';
|
||||
@ -1,50 +0,0 @@
|
||||
const $ = require('jquery');
|
||||
|
||||
function supportsLocalStorage() {
|
||||
try {
|
||||
return 'localStorage' in window && window.localStorage !== null;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function savePercent(id, percent) {
|
||||
if (!supportsLocalStorage()) { return false; }
|
||||
localStorage[`wallabag.article.${id}.percent`] = percent;
|
||||
return true;
|
||||
}
|
||||
|
||||
function retrievePercent(id) {
|
||||
if (!supportsLocalStorage()) { return false; }
|
||||
|
||||
const bheight = $(document).height();
|
||||
const percent = localStorage[`wallabag.article.${id}.percent`];
|
||||
const scroll = bheight * percent;
|
||||
|
||||
$('html,body').animate({ scrollTop: scroll }, 'fast');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function initFilters() {
|
||||
// no display if filters not available
|
||||
if ($('div').is('#filters')) {
|
||||
$('#button_filters').show();
|
||||
$('.button-collapse-right').sideNav({ edge: 'right' });
|
||||
$('#clear_form_filters').on('click', () => {
|
||||
$('#filters input').val('');
|
||||
$('#filters :checked').removeAttr('checked');
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function initExport() {
|
||||
// no display if export not available
|
||||
if ($('div').is('#export')) {
|
||||
$('#button_export').show();
|
||||
$('.button-collapse-right').sideNav({ edge: 'right' });
|
||||
}
|
||||
}
|
||||
|
||||
export { savePercent, retrievePercent, initFilters, initExport };
|
||||
@ -1,6 +0,0 @@
|
||||
@font-face {
|
||||
font-family: "PT Sans";
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local("PT Sans Bold"), local("PTSans-Bold"), url("../fonts/ptsansbold.woff") format("woff");
|
||||
}
|
||||
@ -1,19 +0,0 @@
|
||||
.messages.error.install {
|
||||
border: 1px solid #c42608;
|
||||
color: #c00 !important;
|
||||
background: #fff0ef;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.messages.notice.install {
|
||||
border: 1px solid #ebcd41;
|
||||
color: #000;
|
||||
background: #fffcd3;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.messages.success.install {
|
||||
border: 1px solid #6dc70c;
|
||||
background: #e0fbcc !important;
|
||||
text-align: left;
|
||||
}
|
||||
@ -1,66 +0,0 @@
|
||||
@media print {
|
||||
/* ### Layout ### */
|
||||
|
||||
body {
|
||||
font-family: Serif;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 1cm;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
/* ### Content ### */
|
||||
|
||||
/* Hide useless blocks */
|
||||
body > header,
|
||||
#article_toolbar,
|
||||
#links,
|
||||
#sort,
|
||||
body > footer,
|
||||
.top_link,
|
||||
div.tools,
|
||||
header div,
|
||||
.messages,
|
||||
.entrie + .results,
|
||||
#article .mbm a,
|
||||
#article-informations {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
article {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Add URL after links */
|
||||
.vieworiginal a::after {
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
/* Add explanation after abbr */
|
||||
abbr[title]::after {
|
||||
content: " (" attr(title) ")";
|
||||
}
|
||||
|
||||
/* Change border on current pager item */
|
||||
.pagination span.current {
|
||||
border-style: dashed;
|
||||
}
|
||||
|
||||
#main {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
#article {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 307 KiB |
Binary file not shown.
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
function split(val) {
|
||||
return val.split(/,\s*/);
|
||||
}
|
||||
function extractLast(term) {
|
||||
return split(term).pop();
|
||||
}
|
||||
|
||||
export { split, extractLast };
|
||||
@ -1,314 +0,0 @@
|
||||
import { savePercent, retrievePercent } from '../../_global/js/tools';
|
||||
import { toggleSaveLinkForm } from './uiTools';
|
||||
|
||||
const $ = global.jquery = require('jquery');
|
||||
require('jquery.cookie');
|
||||
require('jquery-ui-browserify');
|
||||
const annotator = require('annotator');
|
||||
|
||||
|
||||
$.fn.ready(() => {
|
||||
const $listmode = $('#listmode');
|
||||
const $listentries = $('#list-entries');
|
||||
|
||||
/* ==========================================================================
|
||||
Menu
|
||||
========================================================================== */
|
||||
|
||||
$('#menu').click(() => {
|
||||
$('#links').toggleClass('menu--open');
|
||||
const content = $('#content');
|
||||
if (content.hasClass('opacity03')) {
|
||||
content.removeClass('opacity03');
|
||||
}
|
||||
});
|
||||
|
||||
/* ==========================================================================
|
||||
List mode or Table Mode
|
||||
========================================================================== */
|
||||
|
||||
$listmode.click(() => {
|
||||
if ($.cookie('listmode') === 1) {
|
||||
// Cookie
|
||||
$.removeCookie('listmode');
|
||||
|
||||
$listentries.removeClass('listmode');
|
||||
$listmode.removeClass('tablemode');
|
||||
$listmode.addClass('listmode');
|
||||
} else {
|
||||
// Cookie
|
||||
$.cookie('listmode', 1, { expires: 365 });
|
||||
|
||||
$listentries.addClass('listmode');
|
||||
$listmode.removeClass('listmode');
|
||||
$listmode.addClass('tablemode');
|
||||
}
|
||||
});
|
||||
|
||||
/* ==========================================================================
|
||||
Cookie listmode
|
||||
========================================================================== */
|
||||
|
||||
if ($.cookie('listmode') === 1) {
|
||||
$listentries.addClass('listmode');
|
||||
$listmode.removeClass('listmode');
|
||||
$listmode.addClass('tablemode');
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Add tag panel
|
||||
========================================================================== */
|
||||
|
||||
|
||||
$('#nav-btn-add-tag').on('click', () => {
|
||||
$('.nav-panel-add-tag').toggle(100);
|
||||
$('.nav-panel-menu').addClass('hidden');
|
||||
$('#tag_label').focus();
|
||||
return false;
|
||||
});
|
||||
|
||||
/**
|
||||
* Filters & Export
|
||||
*/
|
||||
// no display if filters not available
|
||||
if ($('div').is('#filters')) {
|
||||
$('#button_filters').show();
|
||||
$('#clear_form_filters').on('click', () => {
|
||||
$('#filters input').val('');
|
||||
$('#filters :checked').removeAttr('checked');
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Annotations & Remember position
|
||||
========================================================================== */
|
||||
|
||||
if ($('article').length) {
|
||||
const app = new annotator.App();
|
||||
|
||||
app.include(annotator.ui.main, {
|
||||
element: document.querySelector('article'),
|
||||
});
|
||||
|
||||
const x = JSON.parse($('#annotationroutes').html());
|
||||
app.include(annotator.storage.http, x);
|
||||
|
||||
app.start().then(() => {
|
||||
app.annotations.load({ entry: x.entryId });
|
||||
});
|
||||
|
||||
$(window).scroll(() => {
|
||||
const scrollTop = $(window).scrollTop();
|
||||
const docHeight = $(document).height();
|
||||
const scrollPercent = (scrollTop) / (docHeight);
|
||||
const scrollPercentRounded = Math.round(scrollPercent * 100) / 100;
|
||||
savePercent(x.entryId, scrollPercentRounded);
|
||||
});
|
||||
|
||||
retrievePercent(x.entryId);
|
||||
|
||||
$(window).resize(() => {
|
||||
retrievePercent(x.entryId);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Close window after adding entry if popup
|
||||
*/
|
||||
const currentUrl = window.location.href;
|
||||
if (currentUrl.match('&closewin=true')) {
|
||||
window.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tags autocomplete
|
||||
*/
|
||||
/**
|
||||
* Not working on v2
|
||||
*
|
||||
|
||||
$('#value').bind('keydown', (event) => {
|
||||
if (event.keyCode === $.ui.keyCode.TAB && $(this).data('ui-autocomplete').menu.active) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}).autocomplete({
|
||||
source: function source(request, response) {
|
||||
$.getJSON('./?view=tags', {
|
||||
term: extractLast(request.term),
|
||||
//id: $(':hidden#entry_id').val()
|
||||
}, response);
|
||||
},
|
||||
search: function search() {
|
||||
// custom minLength
|
||||
const term = extractLast(this.value);
|
||||
return term.length >= 1;
|
||||
},
|
||||
focus: function focus() {
|
||||
// prevent value inserted on focus
|
||||
return false;
|
||||
},
|
||||
select: function select(event, ui) {
|
||||
const terms = split(this.value);
|
||||
// remove the current input
|
||||
terms.pop();
|
||||
// add the selected item
|
||||
terms.push(ui.item.value);
|
||||
// add placeholder to get the comma-and-space at the end
|
||||
terms.push('');
|
||||
this.value = terms.join(', ');
|
||||
return false;
|
||||
},
|
||||
});
|
||||
*/
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Close the message box when the user clicks the close icon
|
||||
//---------------------------------------------------------------------------
|
||||
$('a.closeMessage').on('click', () => {
|
||||
$(this).parents('div.messages').slideUp(300, () => { $(this).remove(); });
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#search-form').hide();
|
||||
$('#bagit-form').hide();
|
||||
$('#filters').hide();
|
||||
$('#download-form').hide();
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Toggle the 'Search' popup in the sidebar
|
||||
//---------------------------------------------------------------------------
|
||||
function toggleSearch() {
|
||||
$('#search-form').toggle();
|
||||
$('#search').toggleClass('current');
|
||||
$('#search').toggleClass('active-current');
|
||||
$('#search-arrow').toggleClass('arrow-down');
|
||||
if ($('#search').hasClass('current')) {
|
||||
$('#content').addClass('opacity03');
|
||||
} else {
|
||||
$('#content').removeClass('opacity03');
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Toggle the 'Filter' popup on entries list
|
||||
//---------------------------------------------------------------------------
|
||||
function toggleFilter() {
|
||||
$('#filters').toggle();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Toggle the 'Download' popup on entries list
|
||||
//---------------------------------------------------------------------------
|
||||
function toggleDownload() {
|
||||
$('#download-form').toggle();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Toggle the 'Save a Link' popup in the sidebar
|
||||
//---------------------------------------------------------------------------
|
||||
function toggleBagit() {
|
||||
$('#bagit-form').toggle();
|
||||
$('#bagit').toggleClass('current');
|
||||
$('#bagit').toggleClass('active-current');
|
||||
$('#bagit-arrow').toggleClass('arrow-down');
|
||||
if ($('#bagit').hasClass('current')) {
|
||||
$('#content').addClass('opacity03');
|
||||
} else {
|
||||
$('#content').removeClass('opacity03');
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Close all #links popups in the sidebar
|
||||
//---------------------------------------------------------------------------
|
||||
function closePopups() {
|
||||
$('#links .messages').hide();
|
||||
$('#links > li > a').removeClass('active-current');
|
||||
$('#links > li > a').removeClass('current');
|
||||
$('[id$=-arrow]').removeClass('arrow-down');
|
||||
$('#content').removeClass('opacity03');
|
||||
}
|
||||
|
||||
$('#search').click(() => {
|
||||
closePopups();
|
||||
toggleSearch();
|
||||
$('#searchfield').focus();
|
||||
});
|
||||
|
||||
$('.filter-btn').click(() => {
|
||||
closePopups();
|
||||
toggleFilter();
|
||||
});
|
||||
|
||||
$('.download-btn').click(() => {
|
||||
closePopups();
|
||||
toggleDownload();
|
||||
});
|
||||
|
||||
$('#bagit').click(() => {
|
||||
closePopups();
|
||||
toggleBagit();
|
||||
$('#plainurl').focus();
|
||||
});
|
||||
|
||||
$('#search-form-close').click(() => {
|
||||
toggleSearch();
|
||||
});
|
||||
|
||||
$('#filter-form-close').click(() => {
|
||||
toggleFilter();
|
||||
});
|
||||
|
||||
$('#download-form-close').click(() => {
|
||||
toggleDownload();
|
||||
});
|
||||
|
||||
$('#bagit-form-close').click(() => {
|
||||
toggleBagit();
|
||||
});
|
||||
|
||||
const $bagitFormForm = $('#bagit-form-form');
|
||||
|
||||
/* ==========================================================================
|
||||
bag it link and close button
|
||||
========================================================================== */
|
||||
|
||||
// send 'bag it link' form request via ajax
|
||||
$bagitFormForm.submit((event) => {
|
||||
$('body').css('cursor', 'wait');
|
||||
$('#add-link-result').empty();
|
||||
|
||||
$.ajax({
|
||||
type: $bagitFormForm.attr('method'),
|
||||
url: $bagitFormForm.attr('action'),
|
||||
data: $bagitFormForm.serialize(),
|
||||
success: function success() {
|
||||
$('#add-link-result').html('Done!');
|
||||
$('#plainurl').val('');
|
||||
$('#plainurl').blur('');
|
||||
$('body').css('cursor', 'auto');
|
||||
},
|
||||
error: function error() {
|
||||
$('#add-link-result').html('Failed!');
|
||||
$('body').css('cursor', 'auto');
|
||||
},
|
||||
});
|
||||
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
/* ==========================================================================
|
||||
Process all links inside an article
|
||||
========================================================================== */
|
||||
|
||||
$('article a[href^="http"]').after(
|
||||
() => `<a href="${$(this).attr('href')}" class="add-to-wallabag-link-after" ` +
|
||||
'alt="add to wallabag" title="add to wallabag"></a>'
|
||||
);
|
||||
|
||||
$('.add-to-wallabag-link-after').click((event) => {
|
||||
toggleSaveLinkForm($(this).attr('href'), event);
|
||||
event.preventDefault();
|
||||
});
|
||||
});
|
||||
@ -1,35 +0,0 @@
|
||||
const $ = require('jquery');
|
||||
|
||||
function toggleSaveLinkForm(url, event) {
|
||||
$('#add-link-result').empty();
|
||||
|
||||
const $bagit = $('#bagit');
|
||||
const $bagitForm = $('#bagit-form');
|
||||
|
||||
$bagit.toggleClass('active-current');
|
||||
|
||||
// only if bag-it link is not presented on page
|
||||
if ($bagit.length === 0) {
|
||||
if (event !== 'undefined' && event) {
|
||||
$bagitForm.css({ position: 'absolute', top: event.pageY, left: event.pageX - 200 });
|
||||
} else {
|
||||
$bagitForm.css({ position: 'relative', top: 'auto', left: 'auto' });
|
||||
}
|
||||
}
|
||||
|
||||
const searchForm = $('#search-form');
|
||||
const plainUrl = $('#plainurl');
|
||||
if (searchForm.length !== 0) {
|
||||
$('#search').removeClass('current');
|
||||
$('#search-arrow').removeClass('arrow-down');
|
||||
searchForm.hide();
|
||||
}
|
||||
$bagitForm.toggle();
|
||||
$('#content').toggleClass('opacity03');
|
||||
if (url !== 'undefined' && url) {
|
||||
plainUrl.val(url);
|
||||
}
|
||||
plainUrl.focus();
|
||||
}
|
||||
|
||||
export { toggleSaveLinkForm };
|
||||
@ -1,782 +0,0 @@
|
||||
/* ==========================================================================
|
||||
Sommaire
|
||||
|
||||
0 = Common
|
||||
1 = Nav
|
||||
2 = Side-nav
|
||||
3 = Filters slider
|
||||
4 = Cards
|
||||
5 = Article
|
||||
6 = Media queries
|
||||
7 = Font
|
||||
8 = Others
|
||||
|
||||
========================================================================== */
|
||||
|
||||
/* ==========================================================================
|
||||
0 = Common
|
||||
========================================================================== */
|
||||
|
||||
@font-face {
|
||||
font-family: icomoon;
|
||||
src: url("../fonts/IcoMoon-Free.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(../fonts/MaterialIcons-Regular.eot);
|
||||
|
||||
/* For IE6-8 */
|
||||
src: local("Material Icons"), local("MaterialIcons-Regular"), url(../fonts/MaterialIcons-Regular.woff2) format("woff2"), url(../fonts/MaterialIcons-Regular.woff) format("woff"), url(../fonts/MaterialIcons-Regular.ttf) format("truetype");
|
||||
}
|
||||
|
||||
.material-icons {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px; /* Preferred icon size */
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Support for IE. */
|
||||
font-feature-settings: 'liga';
|
||||
}
|
||||
|
||||
[class^="icon-"]::before,
|
||||
[class*=" icon-"]::before {
|
||||
font-family: icomoon;
|
||||
speak: none;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
background-size: 24px;
|
||||
|
||||
/* Enable Ligatures ================ */
|
||||
letter-spacing: 0;
|
||||
-webkit-font-feature-settings: "liga";
|
||||
-moz-font-feature-settings: "liga=1";
|
||||
-moz-font-feature-settings: "liga";
|
||||
-ms-font-feature-settings: "liga" 1;
|
||||
-o-font-feature-settings: "liga";
|
||||
font-feature-settings: "liga";
|
||||
|
||||
/* Better Font Rendering =========== */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-image {
|
||||
background-size: 16px;
|
||||
background-repeat: no-repeat;
|
||||
padding-right: 1em !important;
|
||||
padding-left: 1em !important;
|
||||
}
|
||||
|
||||
.icon-eye::before {
|
||||
content: "\e9ce";
|
||||
}
|
||||
|
||||
.icon-no-eye::before {
|
||||
content: "\e9d1";
|
||||
}
|
||||
|
||||
.icon-calendar::before {
|
||||
content: "\e953";
|
||||
}
|
||||
|
||||
.icon-mail::before {
|
||||
content: "\ea86";
|
||||
}
|
||||
|
||||
.icon-time::before {
|
||||
content: "\e952";
|
||||
}
|
||||
|
||||
/* Carrot (http://carrot.org) */
|
||||
.icon-image--carrot {
|
||||
background-image: url("../../_global/img/icons/carrot-icon--black.png");
|
||||
}
|
||||
|
||||
/* Diaspora */
|
||||
.icon-image--diaspora {
|
||||
background-image: url("../../_global/img/icons/diaspora-icon--black.png");
|
||||
}
|
||||
|
||||
/* Shaarli */
|
||||
.icon-image--shaarli {
|
||||
background-image: url("../../_global/img/icons/shaarli.png");
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
flex-direction: column;
|
||||
background: #f0f0f0;
|
||||
}
|
||||
|
||||
body.login main {
|
||||
padding: 0;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
nav,
|
||||
main,
|
||||
footer {
|
||||
padding-left: 240px;
|
||||
}
|
||||
|
||||
main,
|
||||
#content,
|
||||
.valign-wrapper {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#main {
|
||||
flex: 1 0 auto;
|
||||
}
|
||||
|
||||
.results {
|
||||
height: 1em;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.results .nb-results,
|
||||
.results .pagination {
|
||||
margin: 15px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.pagination ul {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.pagination li {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
padding: 0 10px;
|
||||
height: 30px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pagination .disabled {
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
div.pagination ul .prev.disabled,
|
||||
div.pagination ul .next.disabled {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.pagination li.active span {
|
||||
padding: 0 10px;
|
||||
height: 30px;
|
||||
display: block;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.page-footer .footer-copyright p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.picker__date-display {
|
||||
display: none;
|
||||
}
|
||||
|
||||
footer.page-footer {
|
||||
margin-top: 10px;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
footer .row {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
1 = Nav
|
||||
========================================================================== */
|
||||
|
||||
nav input {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.nav-wrapper .button-collapse {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.nav-input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.nav-panels {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.nav-panel-buttom li {
|
||||
max-height: 64px;
|
||||
}
|
||||
|
||||
.nav-panels {
|
||||
transition: background 0.2s ease;
|
||||
}
|
||||
|
||||
.nav-panel-add .add,
|
||||
.nav-panel-search .search,
|
||||
.nav-panels .close {
|
||||
color: #444 !important;
|
||||
}
|
||||
|
||||
.nav-panels .action {
|
||||
padding-left: 0.75rem;
|
||||
font-size: 2.1rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.nav-panels .input-field input {
|
||||
display: block;
|
||||
line-height: inherit;
|
||||
padding-left: 4rem !important;
|
||||
width: calc(100% - 8rem);
|
||||
}
|
||||
|
||||
.nav-panels .input-field input:focus {
|
||||
background-color: #fff;
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add label {
|
||||
left: 1rem;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add .close {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 1rem;
|
||||
color: transparent;
|
||||
cursor: pointer;
|
||||
font-size: 2rem;
|
||||
transition: 0.3s color;
|
||||
}
|
||||
|
||||
#button_filters {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#button_export {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add,
|
||||
.input-field.nav-panel-add form {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
2 = Side-nav
|
||||
========================================================================== */
|
||||
|
||||
.side-nav.fixed a {
|
||||
font-size: 13px;
|
||||
line-height: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
.side-nav .collapsible-header,
|
||||
.side-nav.fixed .collapsible-header {
|
||||
height: 45px;
|
||||
line-height: 44px;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.bold > a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.side-nav > li.logo {
|
||||
line-height: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#main .logo a {
|
||||
height: 100pt;
|
||||
}
|
||||
|
||||
#main .logo img {
|
||||
height: 100pt;
|
||||
width: 100pt;
|
||||
}
|
||||
|
||||
#main .logo:hover {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.side-nav li {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.side-nav a {
|
||||
margin: 0 1rem;
|
||||
}
|
||||
|
||||
span.numberItems {
|
||||
float: right;
|
||||
}
|
||||
|
||||
nav ul a:hover {
|
||||
background-color: initial;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
* 3 = Filters slider
|
||||
* ========================================================================== */
|
||||
|
||||
#filters button {
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.side-nav.fixed.right-aligned {
|
||||
right: -250px;
|
||||
left: auto !important;
|
||||
overflow-y: visible;
|
||||
}
|
||||
|
||||
#filters div.with-checkbox {
|
||||
height: 3rem;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
4 = Cards
|
||||
========================================================================== */
|
||||
|
||||
main #content {
|
||||
padding: 0 0.5rem;
|
||||
}
|
||||
|
||||
main ul.row {
|
||||
padding: 0 0.75rem;
|
||||
}
|
||||
|
||||
.data .card .card-body {
|
||||
height: 22em;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.card .card-content .card-title {
|
||||
line-height: 32px;
|
||||
max-height: 64px;
|
||||
}
|
||||
|
||||
.card .card-content i.right,
|
||||
.card .card-reveal i.right {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.card .card-entry-labels {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
z-index: 90;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.card .card-entry-labels li,
|
||||
.card-tag-labels li {
|
||||
margin: 10px 10px 10px auto;
|
||||
padding: 5px 12px 5px 16px !important;
|
||||
background-color: rgba(0, 151, 167, 0.85);
|
||||
border-radius: 0 3px 3px 0;
|
||||
color: #fff;
|
||||
cursor: default;
|
||||
max-height: 2em;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.card .card-entry-labels-hidden {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.card .card-entry-labels-hidden li {
|
||||
display: inline-block;
|
||||
background-color: rgba(0, 151, 167, 0.85);
|
||||
margin: 0 5px;
|
||||
padding: 5px 12px;
|
||||
border-radius: 3px;
|
||||
color: #fff;
|
||||
max-height: 2em;
|
||||
max-width: calc(100% - 15px);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
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 {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card .card-action .original {
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.card .card-action ul.links {
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.card .card-action a {
|
||||
color: #fff;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.card .card-action a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.quickstart .card .card-action a,
|
||||
.quickstart .card .card-action a:hover {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.settings .div_tabs {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.card.sw {
|
||||
max-width: 370px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.card .card-image {
|
||||
height: 14em;
|
||||
}
|
||||
|
||||
.card .card-image .preview {
|
||||
height: 14em;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50%;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
5 = Article
|
||||
========================================================================== */
|
||||
|
||||
#article {
|
||||
font-size: 20px;
|
||||
margin: 0 auto;
|
||||
max-width: 40em;
|
||||
}
|
||||
|
||||
#article img,
|
||||
#article figure {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#article > header > h1 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
|
||||
.reader-mode {
|
||||
width: 95px !important;
|
||||
transition: width 0.2s ease;
|
||||
}
|
||||
|
||||
.reader-mode:hover {
|
||||
width: 240px !important;
|
||||
}
|
||||
|
||||
.reader-mode .collapsible-body {
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.reader-mode:hover .collapsible-body {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.reader-mode span {
|
||||
opacity: 0;
|
||||
transition: opacity 0.2s ease;
|
||||
}
|
||||
|
||||
.reader-mode:hover span {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.progress {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
margin: 0;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
#article aside .link {
|
||||
color: #000;
|
||||
font-size: 0.8em;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#article aside #list {
|
||||
float: right;
|
||||
margin: 0 15px 10px;
|
||||
}
|
||||
|
||||
#article aside .chip {
|
||||
background-color: rgba(0, 151, 167, 0.85);
|
||||
color: #fff;
|
||||
padding: 0 15px 0 10px;
|
||||
}
|
||||
|
||||
#article aside .chip i {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
6 = Media queries
|
||||
========================================================================== */
|
||||
|
||||
@media only screen and (max-width: 992px) {
|
||||
header,
|
||||
main,
|
||||
footer {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
nav,
|
||||
main,
|
||||
footer {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
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 {
|
||||
width: 240px !important;
|
||||
}
|
||||
|
||||
.reader-mode span {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
display: inline-block;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.tab {
|
||||
min-width: 100%;
|
||||
}
|
||||
|
||||
.indicator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.pagination li.prev,
|
||||
.pagination li.next {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 400px) {
|
||||
.nav-panel-buttom {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 993px) and (max-width: 1180px) {
|
||||
.row .col.l1 {
|
||||
width: 25%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l2 {
|
||||
width: 33.33333%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l3 {
|
||||
width: 41.66667%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l4 {
|
||||
width: 50%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l5 {
|
||||
width: 58.33333%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l6 {
|
||||
width: 66.66667%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l7 {
|
||||
width: 75%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l8 {
|
||||
width: 83.33333%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l9 {
|
||||
width: 91.66667%;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.row .col.l10 {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 350px) {
|
||||
.nb-results {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
7 = Font
|
||||
========================================================================== */
|
||||
|
||||
.icon-google-plus2::before {
|
||||
content: "\ea89";
|
||||
}
|
||||
|
||||
.icon-facebook2::before {
|
||||
content: "\ea8d";
|
||||
}
|
||||
|
||||
.icon-twitter::before {
|
||||
content: "\ea96";
|
||||
}
|
||||
|
||||
.icon-apple::before {
|
||||
content: "\eabf";
|
||||
}
|
||||
|
||||
.icon-android::before {
|
||||
content: "\eac1";
|
||||
}
|
||||
|
||||
.icon-chrome::before {
|
||||
content: "\eae5";
|
||||
}
|
||||
|
||||
.icon-firefox::before {
|
||||
content: "\eae6";
|
||||
}
|
||||
|
||||
.icon-link::before {
|
||||
content: "\e9cb";
|
||||
}
|
||||
|
||||
footer [class^="icon-"],
|
||||
footer [class*=" icon-"] {
|
||||
font-size: 2em;
|
||||
transition: text-shadow 0.2s ease;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
footer [class^="icon-"]:hover,
|
||||
footer [class*=" icon-"]:hover {
|
||||
text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
8 = Others
|
||||
========================================================================== */
|
||||
|
||||
/* force height on non-input field in the settings page */
|
||||
div.settings div.input-field div,
|
||||
div.settings div.input-field ul {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
/* but avoid to kill all file input */
|
||||
div.settings div.file-field div {
|
||||
margin-top: inherit;
|
||||
}
|
||||
|
||||
.input-field label.active {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
nav .input-field input {
|
||||
margin: 0;
|
||||
}
|
||||
@ -1,77 +0,0 @@
|
||||
@media print {
|
||||
/* ### Layout ### */
|
||||
|
||||
body {
|
||||
font-family: Serif;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 1cm;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
/* ### Content ### */
|
||||
|
||||
/* Hide useless blocks */
|
||||
body > header,
|
||||
#article_toolbar,
|
||||
#links,
|
||||
#sort,
|
||||
body > footer,
|
||||
.top_link,
|
||||
div.tools,
|
||||
header div,
|
||||
.messages,
|
||||
.entry + .results,
|
||||
#slide-out,
|
||||
.progress,
|
||||
.hide-on-large-only,
|
||||
#article > aside,
|
||||
#article .mbm a {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
main {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
|
||||
#article {
|
||||
margin: inherit !important;
|
||||
}
|
||||
|
||||
article {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Add URL after links */
|
||||
.vieworiginal a::after {
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
/* Add explanation after abbr */
|
||||
abbr[title]::after {
|
||||
content: " (" attr(title) ")";
|
||||
}
|
||||
|
||||
/* Change border on current pager item */
|
||||
.pagination span.current {
|
||||
border-style: dashed;
|
||||
}
|
||||
|
||||
#main {
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-left: 0;
|
||||
padding-right: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
#article {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
@ -1,99 +0,0 @@
|
||||
import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools';
|
||||
|
||||
const $ = require('jquery');
|
||||
|
||||
global.jQuery = $;
|
||||
require('materialize'); // eslint-disable-line
|
||||
const annotator = require('annotator');
|
||||
|
||||
$(document).ready(() => {
|
||||
// sideNav
|
||||
$('.button-collapse').sideNav();
|
||||
$('select').material_select();
|
||||
$('.collapsible').collapsible({
|
||||
accordion: false,
|
||||
});
|
||||
$('.datepicker').pickadate({
|
||||
selectMonths: true,
|
||||
selectYears: 15,
|
||||
formatSubmit: 'dd/mm/yyyy',
|
||||
hiddenName: true,
|
||||
format: 'dd/mm/yyyy',
|
||||
});
|
||||
initFilters();
|
||||
initExport();
|
||||
|
||||
$('#nav-btn-add-tag').on('click', () => {
|
||||
$('.nav-panel-add-tag').toggle(100);
|
||||
$('.nav-panel-menu').addClass('hidden');
|
||||
$('#tag_label').focus();
|
||||
return false;
|
||||
});
|
||||
$('#nav-btn-add').on('click', () => {
|
||||
$('.nav-panel-buttom').hide(100);
|
||||
$('.nav-panel-add').show(100);
|
||||
$('.nav-panels .action').hide(100);
|
||||
$('.nav-panel-menu').addClass('hidden');
|
||||
$('.nav-panels').css('background', 'white');
|
||||
$('#entry_url').focus();
|
||||
return false;
|
||||
});
|
||||
$('#nav-btn-search').on('click', () => {
|
||||
$('.nav-panel-buttom').hide(100);
|
||||
$('.nav-panel-search').show(100);
|
||||
$('.nav-panels .action').hide(100);
|
||||
$('.nav-panel-menu').addClass('hidden');
|
||||
$('.nav-panels').css('background', 'white');
|
||||
$('#searchfield').focus();
|
||||
return false;
|
||||
});
|
||||
$('.close').on('click', () => {
|
||||
$('.nav-panel-add').hide(100);
|
||||
$('.nav-panel-search').hide(100);
|
||||
$('.nav-panel-buttom').show(100);
|
||||
$('.nav-panels .action').show(100);
|
||||
$('.nav-panel-menu').removeClass('hidden');
|
||||
$('.nav-panels').css('background', 'transparent');
|
||||
return false;
|
||||
});
|
||||
$(window).scroll(() => {
|
||||
const s = $(window).scrollTop();
|
||||
const d = $(document).height();
|
||||
const c = $(window).height();
|
||||
const scrollPercent = (s / (d - c)) * 100;
|
||||
$('.progress .determinate').css('width', `${scrollPercent}%`);
|
||||
});
|
||||
|
||||
/* ==========================================================================
|
||||
Annotations & Remember position
|
||||
========================================================================== */
|
||||
|
||||
if ($('article').length) {
|
||||
const app = new annotator.App();
|
||||
const x = JSON.parse($('#annotationroutes').html());
|
||||
|
||||
app.include(annotator.ui.main, {
|
||||
element: document.querySelector('article'),
|
||||
});
|
||||
|
||||
app.include(annotator.storage.http, x);
|
||||
|
||||
app.start().then(() => {
|
||||
app.annotations.load({ entry: x.entryId });
|
||||
});
|
||||
|
||||
$(window).scroll(() => {
|
||||
const scrollTop = $(window).scrollTop();
|
||||
const docHeight = $(document).height();
|
||||
const scrollPercent = (scrollTop) / (docHeight);
|
||||
const scrollPercentRounded = Math.round(scrollPercent * 100) / 100;
|
||||
savePercent(x.entryId, scrollPercentRounded);
|
||||
});
|
||||
|
||||
retrievePercent(x.entryId);
|
||||
|
||||
$(window).resize(() => {
|
||||
retrievePercent(x.entryId);
|
||||
});
|
||||
}
|
||||
});
|
||||
0
app/Resources/views/.gitkeep
Normal file
0
app/Resources/views/.gitkeep
Normal file
@ -30,7 +30,7 @@ framework:
|
||||
assets: ~
|
||||
|
||||
wallabag_core:
|
||||
version: 2.1.2
|
||||
version: 2.0.7
|
||||
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
|
||||
languages:
|
||||
en: 'English'
|
||||
@ -46,16 +46,12 @@ wallabag_core:
|
||||
it: 'Italiano'
|
||||
items_on_page: 12
|
||||
theme: material
|
||||
language: '%locale%'
|
||||
language: en
|
||||
rss_limit: 50
|
||||
reading_speed: 1
|
||||
cache_lifetime: 10
|
||||
|
||||
wallabag_user:
|
||||
registration_enabled: "%fosuser_registration%"
|
||||
|
||||
wallabag_import:
|
||||
allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain', 'text/csv']
|
||||
allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain']
|
||||
resource_dir: "%kernel.root_dir%/../web/uploads/import"
|
||||
|
||||
# Twig Configuration
|
||||
@ -64,7 +60,19 @@ twig:
|
||||
strict_variables: "%kernel.debug%"
|
||||
form_themes:
|
||||
- "LexikFormFilterBundle:Form:form_div_layout.html.twig"
|
||||
exception_controller: wallabag_core.exception_controller:showAction
|
||||
|
||||
# Assetic Configuration
|
||||
assetic:
|
||||
debug: "%kernel.debug%"
|
||||
use_controller: false
|
||||
bundles: [ ]
|
||||
#java: /usr/bin/java
|
||||
filters:
|
||||
cssrewrite: ~
|
||||
#closure:
|
||||
# jar: "%kernel.root_dir%/Resources/java/compiler.jar"
|
||||
#yui_css:
|
||||
# jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
|
||||
|
||||
# Doctrine Configuration
|
||||
doctrine:
|
||||
@ -77,7 +85,6 @@ doctrine:
|
||||
password: "%database_password%"
|
||||
charset: UTF8
|
||||
path: "%database_path%"
|
||||
unix_socket: "%database_socket%"
|
||||
server_version: 5.6
|
||||
|
||||
orm:
|
||||
@ -217,106 +224,3 @@ lexik_maintenance:
|
||||
response:
|
||||
code: 503
|
||||
status: "wallabag Service Temporarily Unavailable"
|
||||
|
||||
old_sound_rabbit_mq:
|
||||
connections:
|
||||
default:
|
||||
host: "%rabbitmq_host%"
|
||||
port: "%rabbitmq_port%"
|
||||
user: "%rabbitmq_user%"
|
||||
password: "%rabbitmq_password%"
|
||||
vhost: /
|
||||
lazy: true
|
||||
producers:
|
||||
import_pocket:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket'
|
||||
type: topic
|
||||
import_readability:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.readability'
|
||||
type: topic
|
||||
import_instapaper:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
type: topic
|
||||
import_wallabag_v1:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v1'
|
||||
type: topic
|
||||
import_wallabag_v2:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v2'
|
||||
type: topic
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
type: topic
|
||||
import_chrome:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
type: topic
|
||||
consumers:
|
||||
import_pocket:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.pocket'
|
||||
callback: wallabag_import.consumer.amqp.pocket
|
||||
import_readability:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.readability'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.readability'
|
||||
callback: wallabag_import.consumer.amqp.readability
|
||||
import_instapaper:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
callback: wallabag_import.consumer.amqp.instapaper
|
||||
import_wallabag_v1:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v1'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.wallabag_v1'
|
||||
callback: wallabag_import.consumer.amqp.wallabag_v1
|
||||
import_wallabag_v2:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.wallabag_v2'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.wallabag_v2'
|
||||
callback: wallabag_import.consumer.amqp.wallabag_v2
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
callback: wallabag_import.consumer.amqp.firefox
|
||||
import_chrome:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
callback: wallabag_import.consumer.amqp.chrome
|
||||
|
||||
@ -35,16 +35,11 @@ monolog:
|
||||
VERBOSITY_DEBUG: DEBUG
|
||||
channels: [doctrine]
|
||||
|
||||
assetic:
|
||||
use_controller: true
|
||||
|
||||
swiftmailer:
|
||||
# see http://mailcatcher.me/
|
||||
transport: smtp
|
||||
host: 'localhost'
|
||||
port: 1025
|
||||
|
||||
# If you want to use cache for queries used in WallabagExtension
|
||||
# Uncomment the following lines
|
||||
#doctrine:
|
||||
# orm:
|
||||
# metadata_cache_driver: apcu
|
||||
# result_cache_driver: apcu
|
||||
# query_cache_driver: apcu
|
||||
|
||||
@ -18,7 +18,6 @@ parameters:
|
||||
database_password: ~
|
||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
||||
database_table_prefix: wallabag_
|
||||
database_socket: null
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
@ -35,21 +34,6 @@ parameters:
|
||||
twofactor_sender: no-reply@wallabag.org
|
||||
|
||||
# fosuser stuff
|
||||
fosuser_registration: true
|
||||
fosuser_confirmation: true
|
||||
|
||||
from_email: no-reply@wallabag.org
|
||||
|
||||
rss_limit: 50
|
||||
|
||||
# RabbitMQ processing
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
|
||||
# Redis processing
|
||||
redis_scheme: tcp
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
redis_path: null
|
||||
|
||||
@ -5,4 +5,4 @@ parameters:
|
||||
test_database_name: null
|
||||
test_database_user: null
|
||||
test_database_password: null
|
||||
test_database_path: '%kernel.root_dir%/../data/db/wallabag_test.sqlite'
|
||||
test_database_path: '%kernel.root_dir%/../data/db/wallabag_testYO.sqlite'
|
||||
|
||||
@ -7,16 +7,6 @@ wallabag_import:
|
||||
type: annotation
|
||||
prefix: /import
|
||||
|
||||
wallabag_user:
|
||||
resource: "@WallabagUserBundle/Controller/"
|
||||
type: annotation
|
||||
prefix: /users
|
||||
|
||||
wallabag_api:
|
||||
resource: "@WallabagApiBundle/Controller/"
|
||||
type: annotation
|
||||
prefix: /
|
||||
|
||||
wallabag_api:
|
||||
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
||||
prefix: /
|
||||
|
||||
@ -60,8 +60,6 @@ security:
|
||||
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: /(unread|starred|archive).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/settings, roles: ROLE_SUPER_ADMIN }
|
||||
- { path: ^/annotations, roles: ROLE_USER }
|
||||
- { path: ^/users, roles: ROLE_SUPER_ADMIN }
|
||||
- { path: ^/, roles: ROLE_USER }
|
||||
|
||||
@ -16,12 +16,6 @@ services:
|
||||
wallabag.twig_extension:
|
||||
class: Wallabag\CoreBundle\Twig\WallabagExtension
|
||||
public: false
|
||||
arguments:
|
||||
- "@wallabag_core.entry_repository"
|
||||
- "@wallabag_core.tag_repository"
|
||||
- "@security.token_storage"
|
||||
- "%wallabag_core.cache_lifetime%"
|
||||
- "@translator"
|
||||
tags:
|
||||
- { name: twig.extension }
|
||||
|
||||
|
||||
@ -5,4 +5,4 @@ parameters:
|
||||
test_database_name: ~
|
||||
test_database_user: ~
|
||||
test_database_password: ~
|
||||
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
|
||||
test_database_path: "%kernel.root_dir%/../data/db/wallabag_testHU.sqlite"
|
||||
|
||||
@ -22,6 +22,7 @@ echo '> Checking Symfony requirements:'.PHP_EOL.' ';
|
||||
|
||||
$messages = array();
|
||||
foreach ($symfonyRequirements->getRequirements() as $req) {
|
||||
/** @var $req Requirement */
|
||||
if ($helpText = get_error_message($req, $lineSize)) {
|
||||
echo_style('red', 'E');
|
||||
$messages['error'][] = $helpText;
|
||||
@ -120,14 +121,10 @@ function echo_block($style, $title, $message)
|
||||
|
||||
echo PHP_EOL.PHP_EOL;
|
||||
|
||||
echo_style($style, str_repeat(' ', $width));
|
||||
echo PHP_EOL;
|
||||
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT));
|
||||
echo PHP_EOL;
|
||||
echo_style($style, $message);
|
||||
echo PHP_EOL;
|
||||
echo_style($style, str_repeat(' ', $width));
|
||||
echo PHP_EOL;
|
||||
echo_style($style, str_repeat(' ', $width).PHP_EOL);
|
||||
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL);
|
||||
echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL);
|
||||
echo_style($style, str_repeat(' ', $width).PHP_EOL);
|
||||
}
|
||||
|
||||
function has_color_support()
|
||||
|
||||
@ -48,6 +48,7 @@
|
||||
"doctrine/doctrine-bundle": "^1.6",
|
||||
"doctrine/doctrine-cache-bundle": "^1.2",
|
||||
"twig/extensions": "~1.0",
|
||||
"symfony/assetic-bundle": "~2.3",
|
||||
"symfony/swiftmailer-bundle": "^2.3",
|
||||
"symfony/monolog-bundle": "^2.8",
|
||||
"sensio/distribution-bundle": "^5.0",
|
||||
@ -63,11 +64,12 @@
|
||||
"willdurand/hateoas-bundle": "~1.0",
|
||||
"htmlawed/htmlawed": "~1.1.19",
|
||||
"liip/theme-bundle": "~1.1",
|
||||
"pagerfanta/pagerfanta": "~1.0.3",
|
||||
"lexik/form-filter-bundle": "~5.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",
|
||||
"stof/doctrine-extensions-bundle": "^1.2",
|
||||
"stof/doctrine-extensions-bundle": "^1.2@dev",
|
||||
"scheb/two-factor-bundle": "~2.0",
|
||||
"grandt/phpepub": "~4.0",
|
||||
"wallabag/php-mobi": "~1.0.0",
|
||||
@ -79,26 +81,24 @@
|
||||
"mnapoli/piwik-twig-extension": "^1.0",
|
||||
"lexik/maintenance-bundle": "~2.1",
|
||||
"ocramius/proxy-manager": "1.*",
|
||||
"white-october/pagerfanta-bundle": "^1.0",
|
||||
"php-amqplib/rabbitmq-bundle": "^1.8",
|
||||
"predis/predis": "^1.0",
|
||||
"javibravo/simpleue": "^1.0"
|
||||
"white-october/pagerfanta-bundle": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-fixtures-bundle": "~2.2",
|
||||
"doctrine/data-fixtures": "~1.1.1",
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
"phpunit/phpunit": "~5.0",
|
||||
"phpunit/phpunit": "~4.4",
|
||||
"symfony/phpunit-bridge": "^3.0",
|
||||
"friendsofphp/php-cs-fixer": "~1.9",
|
||||
"m6web/redis-mock": "^2.0"
|
||||
"friendsofphp/php-cs-fixer": "~1.9"
|
||||
},
|
||||
"scripts": {
|
||||
"post-cmd": [
|
||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
"@post-cmd"
|
||||
@ -113,6 +113,7 @@
|
||||
"symfony-var-dir": "var",
|
||||
"symfony-web-dir": "web",
|
||||
"symfony-tests-dir": "tests",
|
||||
"symfony-assets-install": "relative",
|
||||
"incenteev-parameters": {
|
||||
"file": "app/config/parameters.yml"
|
||||
}
|
||||
|
||||
1067
composer.lock
generated
1067
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,6 @@ services:
|
||||
links:
|
||||
- php:php
|
||||
command: nginx -c /nginx.conf
|
||||
|
||||
php:
|
||||
build:
|
||||
context: docker/php
|
||||
@ -31,7 +30,6 @@ services:
|
||||
# If all DBMS are commented out, sqlite will be used as default
|
||||
# - ./docker/postgres/env
|
||||
# - ./docker/mariadb/env
|
||||
|
||||
#postgres:
|
||||
# image: postgres:9
|
||||
# ports:
|
||||
@ -40,7 +38,6 @@ services:
|
||||
# - ./docker/data/pgsql:/var/lib/postgresql/data
|
||||
# env_file:
|
||||
# - ./docker/postgres/env
|
||||
|
||||
#mariadb:
|
||||
# image: mariadb:10
|
||||
# ports:
|
||||
@ -49,13 +46,3 @@ services:
|
||||
# - ./docker/data/mariadb:/var/lib/mysql
|
||||
# env_file:
|
||||
# - ./docker/mariadb/env
|
||||
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
ports:
|
||||
- "15672:15672"
|
||||
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- "6379:6379"
|
||||
|
||||
@ -4,10 +4,9 @@ FROM php:fpm
|
||||
ARG timezone='Europe/Paris'
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libmcrypt-dev libicu-dev libpq-dev libxml2-dev libpng12-dev libjpeg-dev \
|
||||
&& /usr/local/bin/docker-php-ext-configure gd --with-jpeg-dir=/usr/include \
|
||||
libmcrypt-dev libicu-dev libpq-dev libxml2-dev \
|
||||
&& docker-php-ext-install \
|
||||
iconv mcrypt mbstring intl pdo pdo_mysql pdo_pgsql gd
|
||||
iconv mcrypt mbstring intl pdo pdo_mysql pdo_pgsql
|
||||
|
||||
RUN echo "date.timezone="$timezone > /usr/local/etc/php/conf.d/date_timezone.ini
|
||||
|
||||
|
||||
@ -1,55 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# wallabag documentation build configuration file, created by
|
||||
# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
extensions = []
|
||||
templates_path = ['_templates']
|
||||
source_suffix = '.rst'
|
||||
master_doc = 'index'
|
||||
project = u'wallabag-fr'
|
||||
copyright = u'2013-2016, Nicolas Lœuillet - MIT Licence'
|
||||
version = '2.1.0'
|
||||
release = version
|
||||
exclude_patterns = ['_build']
|
||||
pygments_style = 'sphinx'
|
||||
html_theme = 'default'
|
||||
html_static_path = ['_static']
|
||||
htmlhelp_basename = 'wallabagdedoc'
|
||||
|
||||
latex_elements = {
|
||||
}
|
||||
|
||||
latex_documents = [
|
||||
('index', 'wallabag-de.tex', u'wallabag Documentation',
|
||||
u'Nicolas Lœuillet', 'manual'),
|
||||
]
|
||||
|
||||
man_pages = [
|
||||
('index', 'wallabagde', u'wallabag Documentation',
|
||||
[u'Nicolas Lœuillet'], 1)
|
||||
]
|
||||
|
||||
texinfo_documents = [
|
||||
('index', 'wallabag', u'wallabag Documentation',
|
||||
u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
##### Guzzle sphinx theme
|
||||
|
||||
import guzzle_sphinx_theme
|
||||
html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
|
||||
html_theme_path = guzzle_sphinx_theme.html_theme_path()
|
||||
html_theme = 'guzzle_sphinx_theme'
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
html_sidebars = {
|
||||
'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
|
||||
}
|
||||
|
||||
# Register the theme as an extension to generate a sitemap.xml
|
||||
extensions.append("guzzle_sphinx_theme")
|
||||
@ -44,7 +44,7 @@ wallabag laufen lassen
|
||||
Eigenschaften mit den kommentierten zu ersetzen (mit Werten
|
||||
mit ``env.`` Präfix)
|
||||
#. ``composer install`` die Projektabhängigkeiten
|
||||
#. ``php bin/console wallabag:install``, um das Schema zu erstellen
|
||||
#. ``php app/console wallabag:install``, um das Schema zu erstellen
|
||||
#. ``docker-compose up`` um die Container laufen zu lassen
|
||||
#. Schließlich öffne http://localhost:8080/, um dein frisch
|
||||
installiertes wallabag zu finden.
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,81 +0,0 @@
|
||||
Installiere RabbitMQ für asynchrone Aufgaben
|
||||
============================================
|
||||
|
||||
Um asynchrone Aufgaben zu starten (nützlich z.B. für große Imports), können wir RabbitMQ nutzen.
|
||||
|
||||
Voraussetzungen
|
||||
---------------
|
||||
|
||||
Du musst RabbitMQ auf deinem Server installiert haben.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
|
||||
apt-key add rabbitmq-signing-key-public.asc
|
||||
apt-get update
|
||||
apt-get install rabbitmq-server
|
||||
|
||||
Konfiguration und Starten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
|
||||
rabbitmq-server -detached
|
||||
|
||||
RabbitMQ stoppen
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
rabbitmqctl stop
|
||||
|
||||
|
||||
Konfigure RabbitMQ in wallabag
|
||||
------------------------------
|
||||
|
||||
Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: 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
|
||||
----------------------------
|
||||
|
||||
Abhängig von welchem Service du importieren möchtest, solltest du einen Cron Job aktivieren (oder mehrere, wenn du viele unterstützen willst):
|
||||
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
||||
|
||||
# for Readability import
|
||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
||||
|
||||
# for Instapaper import
|
||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
||||
|
||||
# for Firefox import
|
||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
||||
|
||||
# for Chrome import
|
||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
||||
|
||||
@ -1,75 +0,0 @@
|
||||
Installiere Redis für asynchrone Aufgaben
|
||||
=========================================
|
||||
|
||||
Um asynchrone Aufgaben zu starten (nützlich z.B. für große Imports), können wir Redis nutzen.
|
||||
|
||||
Voraussetzungen
|
||||
---------------
|
||||
|
||||
Du musst Redis auf deinem Server installiert haben.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
apt-get install redis-server
|
||||
|
||||
Starten
|
||||
~~~~~~
|
||||
|
||||
Der Redis Service läuft eventuell schon direkt nach der Installation. Falls nicht kannst du ihn wie folgt starten:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
redis-server
|
||||
|
||||
|
||||
Konfigure Redis in wallabag
|
||||
---------------------------
|
||||
|
||||
Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
Enable Redis in wallabag
|
||||
------------------------
|
||||
|
||||
In internal settings, in the **Import** section, enable Redis (with the value 1).
|
||||
|
||||
Starte den Redis Consumer
|
||||
-------------------------
|
||||
|
||||
Abhängig von welchem Service du importieren möchtest, solltest du einen Cron Job aktivieren (oder mehrere, wenn du viele unterstützen willst):
|
||||
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
|
||||
# for Readability import
|
||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
|
||||
# for Instapaper import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
|
||||
# for Firefox import
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker -e=prod 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:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker -e=prod 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``.
|
||||
@ -17,11 +17,6 @@ Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organis
|
||||
* :ref:`user-docs`
|
||||
* :ref:`dev-docs`
|
||||
|
||||
Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
|
||||
* `Documentation in english <http://doc.wallabag.org/en/master/>`_
|
||||
* `Documentation en français <http://doc.wallabag.org/fr/master/>`_
|
||||
|
||||
.. _user-docs:
|
||||
|
||||
.. toctree::
|
||||
@ -30,8 +25,7 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
|
||||
user/faq
|
||||
user/installation
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade
|
||||
user/migration
|
||||
user/import
|
||||
user/create_account
|
||||
@ -44,7 +38,6 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
user/filters
|
||||
user/tags
|
||||
user/android
|
||||
user/parameters
|
||||
|
||||
.. _dev-docs:
|
||||
|
||||
@ -57,5 +50,3 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
developer/documentation
|
||||
developer/translate
|
||||
developer/maintenance
|
||||
developer/redis
|
||||
developer/rabbitmq
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
Sphinx>=1.3.0,<1.4.0
|
||||
guzzle_sphinx_theme>=0.7.0,<0.8.0
|
||||
@ -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?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
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
|
||||
|
||||
@ -12,7 +12,7 @@ Das kann verschiedene Ursachen haben:
|
||||
Wie kann ich helfen das zu beheben?
|
||||
-----------------------------------
|
||||
|
||||
- `indem du uns eine Mail mit der URL des Artikels sendest <mailto:hello@wallabag.org>`_
|
||||
- `indem du uns eine Mail mit der URL des Artikels sendest <mailto:hello\@wallabag.org>`_
|
||||
- indem du versuchst das Laden des Artikels durch Erstellen einer Datei für den Artikel
|
||||
selbst zu beheben
|
||||
Du kannst `dieses Tool <http://siteconfig.fivefilters.org/>`__ nutzen.
|
||||
|
||||
@ -6,20 +6,6 @@ Voraussetzungen
|
||||
|
||||
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
|
||||
nicht alle folgenden Pakete installieren.
|
||||
|
||||
@ -37,7 +23,6 @@ nicht alle folgenden Pakete installieren.
|
||||
- php-curl
|
||||
- php-gettext
|
||||
- php-tokenizer
|
||||
- php-bcmath
|
||||
|
||||
wallabag nutzt PDO, um sich mit der Datenbank zu verbinden, darum benötigst du eines der folgenden Komponenten:
|
||||
|
||||
@ -53,20 +38,33 @@ Installation
|
||||
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:
|
||||
|
||||
::
|
||||
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag && make install
|
||||
cd wallabag
|
||||
git checkout 2.0.7
|
||||
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:
|
||||
|
||||
::
|
||||
|
||||
make run
|
||||
php bin/console server:run --env=prod
|
||||
|
||||
und wallabag unter http://deineserverip:8000 erreichen.
|
||||
Und wallabag unter http://deineserverip:8000 erreichen
|
||||
|
||||
.. tip::
|
||||
|
||||
@ -88,18 +86,16 @@ 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
|
||||
|
||||
Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
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``.
|
||||
|
||||
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.
|
||||
|
||||
Kommando, um den Container zu starten
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -109,7 +105,7 @@ Virtualhosts
|
||||
------------
|
||||
|
||||
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:
|
||||
|
||||
@ -191,14 +187,15 @@ Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installie
|
||||
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::
|
||||
|
||||
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``.
|
||||
|
||||
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):
|
||||
|
||||
|
||||
@ -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,85 +0,0 @@
|
||||
Wallabag von 2.0.x auf 2.1.1 updaten
|
||||
====================================
|
||||
|
||||
.. 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.
|
||||
|
||||
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 zu aktualisieren, führe die folgenden Kommandos in deinem wallabag-Ordner aus (ersetze ``2.1.1`` mit der neuesten Releasenummer):
|
||||
|
||||
::
|
||||
|
||||
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
|
||||
|
||||
Update auf einem Shared Webhosting
|
||||
----------------------------------
|
||||
|
||||
Sichere deine ``app/config/parameters.yml`` Datei.
|
||||
|
||||
Lade das neueste Release von wallabag herunter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(2.1.1 md5 Hashsumme: ``9584a3b60a2b2a4de87f536548caac93``)
|
||||
|
||||
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):
|
||||
|
||||
.. 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
|
||||
|
||||
Du kannst `hier eine Dokumentation über die Parameter finden <http://doc.wallabag.org/en/master/user/parameters.html>`_.
|
||||
|
||||
Wenn du SQLite nutzt, musst auch das ``data/`` Verzeichnis in die neue Installation kopieren.
|
||||
|
||||
Leere den ``var/cache`` Ordner.
|
||||
|
||||
Du musst einige SQL-Abfragen ausführen, um die Datenbank zu aktualisieren. Wir nehmen in diesem Fall an, dass das Tabellenpräfix ``wallabag_`` ist und eine MySQL-Datenbank genutzt wird:
|
||||
|
||||
.. 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';
|
||||
@ -1,17 +1,16 @@
|
||||
Wallabag von 2.1.x auf 2.1.y updaten
|
||||
====================================
|
||||
Wallabag updaten
|
||||
================
|
||||
|
||||
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.3`` mit der neuesten Releasenummer):
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout 2.1.2 --force
|
||||
git checkout 2.0.3
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console cache:clear --env=prod
|
||||
|
||||
@ -26,8 +25,6 @@ Lade das neueste Release von wallabag herunter:
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(md5 Hashsumme von 2.1.1: ``9584a3b60a2b2a4de87f536548caac93``)
|
||||
|
||||
Entpacke das Archiv in deinen wallabag Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
|
||||
|
||||
Wenn du SQLite nutzt, musst auch das ``data/`` Verzeichnis in die neue Installation kopieren.
|
||||
@ -12,7 +12,7 @@ source_suffix = '.rst'
|
||||
master_doc = 'index'
|
||||
project = u'wallabag'
|
||||
copyright = u'2013-2016, Nicolas Lœuillet - MIT Licence'
|
||||
version = '2.1.0'
|
||||
version = '2.0.0'
|
||||
release = version
|
||||
exclude_patterns = ['_build']
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
@ -8,7 +8,7 @@ Requirements
|
||||
|
||||
* wallabag freshly (or not) installed on http://localhost:8000
|
||||
* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget.
|
||||
* all the API methods are documented here http://localhost:8000/api/doc (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
|
||||
-------------------------
|
||||
|
||||
@ -40,7 +40,7 @@ Run wallabag
|
||||
#. Edit ``app/config/parameters.yml`` to replace ``database_*``
|
||||
properties with commented ones (with values prefixed by ``env.``)
|
||||
#. ``composer install`` the project dependencies
|
||||
#. ``php bin/console wallabag:install`` to create the schema
|
||||
#. ``php app/console wallabag:install`` to create the schema
|
||||
#. ``docker-compose up`` to run the containers
|
||||
#. Finally, browse to http://localhost:8080/ to find your freshly
|
||||
installed wallabag.
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -29,4 +29,4 @@ To disable maintenance mode, execute this command:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
||||
bin/console lexik:maintenance:unlock
|
||||
|
||||
@ -1,80 +0,0 @@
|
||||
Install RabbitMQ for asynchronous tasks
|
||||
=======================================
|
||||
|
||||
In order to launch asynchronous tasks (useful for huge imports for example), we can use RabbitMQ.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
You need to have RabbitMQ installed on your server.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
|
||||
apt-key add rabbitmq-signing-key-public.asc
|
||||
apt-get update
|
||||
apt-get install rabbitmq-server
|
||||
|
||||
Configuration and launch
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
|
||||
rabbitmq-server -detached
|
||||
|
||||
Stop RabbitMQ
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
rabbitmqctl stop
|
||||
|
||||
|
||||
Configure RabbitMQ in wallabag
|
||||
------------------------------
|
||||
|
||||
Edit your ``parameters.yml`` file to edit RabbitMQ configuration. The default one should be ok:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
|
||||
Enable RabbitMQ in wallabag
|
||||
---------------------------
|
||||
|
||||
In internal settings, in the **Import** section, enable RabbitMQ (with the value 1).
|
||||
|
||||
Launch RabbitMQ consumer
|
||||
------------------------
|
||||
|
||||
Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
||||
|
||||
# for Readability import
|
||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
||||
|
||||
# for Instapaper import
|
||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
||||
|
||||
# for Firefox import
|
||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
||||
|
||||
# for Chrome import
|
||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
||||
@ -1,75 +0,0 @@
|
||||
Install Redis for asynchronous tasks
|
||||
====================================
|
||||
|
||||
In order to launch asynchronous tasks (useful for huge imports for example), we can use Redis.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
You need to have Redis installed on your server.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
apt-get install redis-server
|
||||
|
||||
Launch
|
||||
~~~~~~
|
||||
|
||||
The server might be already running after installing, if not you can launch it using:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
redis-server
|
||||
|
||||
|
||||
Configure Redis in wallabag
|
||||
---------------------------
|
||||
|
||||
Edit your ``parameters.yml`` file to edit Redis configuration. The default one should be ok:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
Enable Redis in wallabag
|
||||
------------------------
|
||||
|
||||
In internal settings, in the **Import** section, enable Redis (with the value 1).
|
||||
|
||||
Launch Redis consumer
|
||||
---------------------
|
||||
|
||||
Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
|
||||
# for Readability import
|
||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
|
||||
# for Instapaper import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
|
||||
# for Firefox import
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker -e=prod 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 :
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker -e=prod 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``.
|
||||
@ -17,11 +17,6 @@ The main documentation for this application is organized into a couple sections:
|
||||
* :ref:`user-docs`
|
||||
* :ref:`dev-docs`
|
||||
|
||||
The documentation is available in other languages:
|
||||
|
||||
* `Documentation en français <http://doc.wallabag.org/fr/master/>`_
|
||||
* `Deutsch Dokumentation <http://doc.wallabag.org/de/master/>`_
|
||||
|
||||
.. _user-docs:
|
||||
|
||||
.. toctree::
|
||||
@ -30,8 +25,7 @@ The documentation is available in other languages:
|
||||
|
||||
user/faq
|
||||
user/installation
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade-2.1.x-2.1.y
|
||||
user/upgrade
|
||||
user/migration
|
||||
user/import
|
||||
user/create_account
|
||||
@ -41,11 +35,9 @@ The documentation is available in other languages:
|
||||
user/errors_during_fetching
|
||||
user/annotations
|
||||
user/download_articles
|
||||
user/share
|
||||
user/filters
|
||||
user/tags
|
||||
user/android
|
||||
user/parameters
|
||||
|
||||
.. _dev-docs:
|
||||
|
||||
@ -58,5 +50,3 @@ The documentation is available in other languages:
|
||||
developer/documentation
|
||||
developer/translate
|
||||
developer/maintenance
|
||||
developer/redis
|
||||
developer/rabbitmq
|
||||
|
||||
@ -29,13 +29,13 @@ Fill in your wallabag data. You need to enter your wallabag address. It is impor
|
||||
:alt: Filled in settings
|
||||
: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
|
||||
:alt: Connection test with your wallabag data
|
||||
: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
|
||||
: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
|
||||
: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
|
||||
:alt: Filled article list cause feeds successfully synchronized
|
||||
:alt: Filled article list cause feeds successfully syncronized
|
||||
:align: center
|
||||
|
||||
|
||||
|
||||
Known limitations
|
||||
-----------------
|
||||
----
|
||||
|
||||
2FA
|
||||
~~~
|
||||
@ -85,7 +85,7 @@ Currently the does not support two-factor authentication. You should disable tha
|
||||
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
|
||||
|
||||
@ -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?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
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
|
||||
|
||||
@ -12,21 +12,9 @@ There may be several reasons:
|
||||
How can I help to fix that?
|
||||
---------------------------
|
||||
|
||||
You can `sending us an email with the article's URL <mailto:hello@wallabag.org>`_.
|
||||
|
||||
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 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.
|
||||
- `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.
|
||||
You can use `this tool <http://siteconfig.fivefilters.org/>`__.
|
||||
|
||||
How can I try to re-fetch this article?
|
||||
---------------------------------------
|
||||
|
||||
@ -23,43 +23,22 @@ Now, all is fine to migrate from Pocket.
|
||||
Import your data into wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Click on ``Import`` link in the menu, on ``Import contents`` in Pocket section
|
||||
Click on ``Import`` link in the menu, on ``Import contents`` in Pocket section
|
||||
and then on ``Connect to Pocket and import data``.
|
||||
|
||||
You need to authorize wallabag to interact with your Pocket account.
|
||||
Your data will be imported. Data import can be a demanding process for your server.
|
||||
|
||||
From Readability
|
||||
----------------
|
||||
|
||||
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).
|
||||
|
||||
Import your data into wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Click on ``Import`` link in the menu, on ``Import contents`` in Readability section
|
||||
and then select your json file and upload it.
|
||||
|
||||
Your data will be imported. Data import can be a demanding process for your server.
|
||||
Your data will be imported. Data import can be a demanding process for your server
|
||||
(we need to work on this import to improve it).
|
||||
|
||||
From Instapaper
|
||||
---------------
|
||||
|
||||
Export your Instapaper data
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*Feature not yet implemented in wallabag v2.*
|
||||
|
||||
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``).
|
||||
From Readability
|
||||
----------------
|
||||
|
||||
Import your data into wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Click on ``Import`` link in the menu, on ``Import contents`` in Instapaper section
|
||||
and then select your CSV file and upload it.
|
||||
|
||||
Your data will be imported. Data import can be a demanding process for your server.
|
||||
*Feature not yet implemented in wallabag v2.*
|
||||
|
||||
From HTML or JSON file
|
||||
----------------------
|
||||
|
||||
@ -6,21 +6,7 @@ Requirements
|
||||
|
||||
wallabag is compatible with PHP >= 5.5, including PHP 7.
|
||||
|
||||
.. note::
|
||||
|
||||
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.
|
||||
You'll need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
|
||||
|
||||
- php-session
|
||||
- php-ctype
|
||||
@ -36,7 +22,6 @@ You'll also need the following extensions for wallabag to work. Some of these ma
|
||||
- php-curl
|
||||
- php-gettext
|
||||
- php-tokenizer
|
||||
- php-bcmath
|
||||
|
||||
wallabag uses PDO to connect to the database, so you'll need one of the following:
|
||||
|
||||
@ -52,18 +37,31 @@ Installation
|
||||
On a dedicated web server (recommended way)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
wallabag uses a large number of 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:
|
||||
|
||||
::
|
||||
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag && make install
|
||||
cd wallabag
|
||||
git checkout 2.0.7
|
||||
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:
|
||||
|
||||
::
|
||||
|
||||
make run
|
||||
php bin/console server:run --env=prod
|
||||
|
||||
And access wallabag at http://yourserverip:8000
|
||||
|
||||
@ -87,18 +85,16 @@ Execute this command to download and extract the latest 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>`_.
|
||||
|
||||
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``.
|
||||
|
||||
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
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -194,12 +190,12 @@ After reloading or restarting nginx, you should now be able to access wallabag a
|
||||
|
||||
.. 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
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
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 +236,16 @@ Rights access to the folders of the project
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
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).
|
||||
|
||||
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:
|
||||
|
||||
|
||||
@ -24,6 +24,29 @@ After creating an user account on your new wallabag v2 instance, you must head o
|
||||
:alt: Import from wallabag v1
|
||||
:align: center
|
||||
|
||||
Import via command-line interface (CLI)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
|
||||
|
||||
::
|
||||
|
||||
bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
|
||||
|
||||
Please replace values:
|
||||
|
||||
* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
|
||||
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
|
||||
|
||||
You'll have this in return:
|
||||
|
||||
::
|
||||
|
||||
Start : 05-04-2016 11:36:07 ---
|
||||
403 imported
|
||||
0 already saved
|
||||
End : 05-04-2016 11:36:09 ---
|
||||
|
||||
From wallabag 2.x
|
||||
-----------------
|
||||
|
||||
@ -37,30 +60,3 @@ From your new wallabag instance, create your user account and click on the link
|
||||
|
||||
.. note::
|
||||
If you encounter issues during the export or the import, don't hesitate to `ask for support <https://www.wallabag.org/pages/support.html>`__.
|
||||
|
||||
Import via command-line interface (CLI)
|
||||
---------------------------------------
|
||||
|
||||
If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
|
||||
|
||||
::
|
||||
|
||||
bin/console wallabag:import 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
|
||||
|
||||
Please replace values:
|
||||
|
||||
* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
|
||||
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
|
||||
|
||||
If you want to mark all these entries as read, you can add the ``--markAsRead`` option.
|
||||
|
||||
To import a wallabag v2 file, you need to add the option ``--importer=v2``.
|
||||
|
||||
You'll have this in return:
|
||||
|
||||
::
|
||||
|
||||
Start : 05-04-2016 11:36:07 ---
|
||||
403 imported
|
||||
0 already saved
|
||||
End : 05-04-2016 11:36:09 ---
|
||||
|
||||
@ -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 +0,0 @@
|
||||
Share articles
|
||||
==============
|
||||
|
||||
When you're reading an article, you can share it. Just click on the share button:
|
||||
|
||||
.. image:: ../../img/user/share.png
|
||||
:alt: share article
|
||||
:align: center
|
||||
|
||||
Now, you can share the article:
|
||||
|
||||
- with a public URL (you'll have a light view of the article)
|
||||
- with a tweet
|
||||
- into your Shaarli
|
||||
- with a post in Diaspora*
|
||||
- to Carrot
|
||||
- with an email
|
||||
@ -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';
|
||||
@ -1,33 +1,30 @@
|
||||
Upgrading from 2.1.x to 2.1.y
|
||||
=============================
|
||||
Upgrade wallabag
|
||||
================
|
||||
|
||||
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.3`` by the last release number):
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout 2.1.2 --force
|
||||
git checkout 2.0.3
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console cache:clear --env=prod
|
||||
|
||||
Upgrade on a shared hosting
|
||||
Upgrade on a shared hosting
|
||||
---------------------------
|
||||
|
||||
Backup your ``app/config/parameters.yml`` file.
|
||||
|
||||
Download the last release of wallabag:
|
||||
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.1 package: ``9584a3b60a2b2a4de87f536548caac93``)
|
||||
|
||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||
|
||||
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
|
||||
@ -12,7 +12,7 @@ source_suffix = '.rst'
|
||||
master_doc = 'index'
|
||||
project = u'wallabag-fr'
|
||||
copyright = u'2013-2016, Nicolas Lœuillet - MIT Licence'
|
||||
version = '2.1.0'
|
||||
version = '2.0.0'
|
||||
release = version
|
||||
exclude_patterns = ['_build']
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
@ -39,7 +39,7 @@ Exécuter wallabag
|
||||
#. Editer ``app/config/parameters.yml`` pour remplacer les propriétés ``database_*``
|
||||
par les lignes commentées (celles avec des valeurs préfixées par ``env.``)
|
||||
#. ``composer install`` pour installer les dépendances
|
||||
#. ``php bin/console wallabag:install`` pour créer le schéma de la BDD
|
||||
#. ``php app/console wallabag:install`` pour créer le schéma de la BDD
|
||||
#. ``docker-compose up`` pour démarrer les conteneurs
|
||||
#. Enfin, se rendre sur http://localhost:8080/ pour accéder à une installation
|
||||
tout propre de wallabag.
|
||||
|
||||
@ -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
|
||||
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
|
||||
|
||||
@ -1,80 +0,0 @@
|
||||
Installer RabbitMQ pour des tâches asynchrones
|
||||
==============================================
|
||||
|
||||
Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser RabbitMQ.
|
||||
|
||||
Pré-requis
|
||||
----------
|
||||
|
||||
Vous devez installer RabbitMQ sur votre serveur.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
|
||||
apt-key add rabbitmq-signing-key-public.asc
|
||||
apt-get update
|
||||
apt-get install rabbitmq-server
|
||||
|
||||
Configuration et démarrage
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
|
||||
rabbitmq-server -detached
|
||||
|
||||
Arrêter RabbitMQ
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
rabbitmqctl stop
|
||||
|
||||
|
||||
Configurer RabbitMQ dans wallabag
|
||||
---------------------------------
|
||||
|
||||
Modifiez votre fichier ``parameters.yml`` pour éditer la configuration RabbitMQ. Celle par défaut devrait convenir :
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: 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
|
||||
-----------------------------
|
||||
|
||||
En fonction du service dont vous souhaitez importer vos données, vous devez activer un (ou plusieurs si vous souhaitez en supporter plusieurs) cron job :
|
||||
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
||||
|
||||
# for Readability import
|
||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
||||
|
||||
# for Instapaper import
|
||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
||||
|
||||
# for Firefox import
|
||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
||||
|
||||
# for Chrome import
|
||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
||||
@ -1,75 +0,0 @@
|
||||
Installer Redis pour des tâches asynchrones
|
||||
===========================================
|
||||
|
||||
Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser Redis.
|
||||
|
||||
Pré-requis
|
||||
----------
|
||||
|
||||
Vous devez installer Redis sur votre serveur.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. code:: bash
|
||||
|
||||
apt-get install redis-server
|
||||
|
||||
Démarrage
|
||||
~~~~~~~~~
|
||||
|
||||
Le serveur devrait déjà être démarré après l'installation. Si ce n'est pas le cas, vous pouvez le démarrer ainsi :
|
||||
|
||||
.. code:: bash
|
||||
|
||||
redis-server
|
||||
|
||||
|
||||
Configurer Redis dans wallabag
|
||||
-------------------------------
|
||||
|
||||
Modifiez votre fichier ``parameters.yml`` pour éditer la configuration Redis. Celle par défaut devrait convenir :
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
redis_host: localhost
|
||||
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
|
||||
--------------------------
|
||||
|
||||
En fonction du service dont vous souhaitez importer vos données, vous devez activer un (ou plusieurs si vous souhaitez en supporter plusieurs) cron job :
|
||||
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
|
||||
# for Readability import
|
||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
|
||||
# for Instapaper import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
|
||||
# for Firefox import
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker -e=prod 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 :
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker -e=prod 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``.
|
||||
@ -18,11 +18,6 @@ La documentation principale de cette application est découpée en plusieurs sec
|
||||
* :ref:`user-docs`
|
||||
* :ref:`dev-docs`
|
||||
|
||||
La documentation est disponible dans d'autres langues :
|
||||
|
||||
* `Documentation in english <http://doc.wallabag.org/en/master/>`_
|
||||
* `Deutsch Dokumentation <http://doc.wallabag.org/de/master/>`_
|
||||
|
||||
.. _user-docs:
|
||||
|
||||
.. toctree::
|
||||
@ -31,8 +26,7 @@ La documentation est disponible dans d'autres langues :
|
||||
|
||||
user/faq
|
||||
user/installation
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade
|
||||
user/migration
|
||||
user/import
|
||||
user/create_account
|
||||
@ -42,10 +36,8 @@ La documentation est disponible dans d'autres langues :
|
||||
user/errors_during_fetching
|
||||
user/annotations
|
||||
user/download_articles
|
||||
user/share
|
||||
user/filters
|
||||
user/tags
|
||||
user/parameters
|
||||
|
||||
.. _dev-docs:
|
||||
|
||||
@ -58,5 +50,3 @@ La documentation est disponible dans d'autres langues :
|
||||
developer/documentation
|
||||
developer/translate
|
||||
developer/maintenance
|
||||
developer/redis
|
||||
developer/rabbitmq
|
||||
|
||||
@ -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 ?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
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
|
||||
|
||||
@ -12,21 +12,9 @@ Il peut y avoir plusieurs raisons :
|
||||
Comment puis-je aider pour réparer ça ?
|
||||
---------------------------------------
|
||||
|
||||
Vous pouvez `nous envoyer un email avec l'URL de l'article <mailto:hello@wallabag.org>`_.
|
||||
|
||||
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 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.
|
||||
- `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.
|
||||
Vous pouvez utiliser `cet outil <http://siteconfig.fivefilters.org/>`__.
|
||||
|
||||
Comment puis-je réessayer de récupérer le contenu ?
|
||||
---------------------------------------------------
|
||||
|
||||
@ -28,40 +28,17 @@ la section Pocket puis sur ``Se connecter à Pocket et importer les données``.
|
||||
|
||||
Vous devez autoriser wallabag à se connecter à votre compte Pocket.
|
||||
Vos données vont être importées. L'import de données est une action qui peut être couteuse
|
||||
pour votre serveur.
|
||||
|
||||
Depuis 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.
|
||||
|
||||
Importez vos données dans wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Cliquez sur le lien ``Importer`` dans le menu, sur ``Importer les contenus`` dans
|
||||
la section Readability et ensuite sélectionnez votre fichier json pour l'uploader.
|
||||
|
||||
Vos données vont être importées. L'import de données est une action qui peut être couteuse pour votre serveur.
|
||||
pour votre serveur (nous devons encore travailler pour améliorer cet import).
|
||||
|
||||
Depuis Instapaper
|
||||
-----------------
|
||||
|
||||
Exportez vos données de Instapaper
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*Fonctionnalité pas encore implémentée dans wallabag v2.*
|
||||
|
||||
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
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Cliquez sur le lien ``Importer`` dans le menu, sur ``Importer les contenus`` dans
|
||||
la section Instapaper et ensuite sélectionnez votre fichier CSV pour l'uploader.
|
||||
|
||||
Vos données vont être importées. L'import de données est une action qui peut être couteuse pour votre serveur.
|
||||
Depuis Readability
|
||||
------------------
|
||||
|
||||
*Fonctionnalité pas encore implémentée dans wallabag v2.*
|
||||
|
||||
Depuis un fichier HTML ou JSON
|
||||
------------------------------
|
||||
|
||||
@ -6,20 +6,6 @@ Pré-requis
|
||||
|
||||
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.
|
||||
|
||||
- php-session
|
||||
@ -36,7 +22,6 @@ Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est
|
||||
- php-curl
|
||||
- php-gettext
|
||||
- php-tokenizer
|
||||
- php-bcmath
|
||||
|
||||
wallabag utilise PDO afin de se connecter à une base de données, donc vous aurez besoin d'une extension et d'un système de bases de données parmi :
|
||||
|
||||
@ -50,23 +35,36 @@ Installation
|
||||
Sur un serveur dédié (méthode conseillée)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Pour installer wallabag, vous devez exécuter ces commandes :
|
||||
wallabag utilise un grand nombre de bibliothèques 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 deux commandes :
|
||||
|
||||
::
|
||||
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag && make install
|
||||
cd wallabag
|
||||
git checkout 2.0.7
|
||||
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 :
|
||||
|
||||
::
|
||||
|
||||
make run
|
||||
php bin/console server:run --env=prod
|
||||
|
||||
Et accéder wallabag à l'adresse http://lipdevotreserveur:8000
|
||||
|
||||
.. 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é
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -84,18 +82,16 @@ 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
|
||||
|
||||
Vous trouverez `le hash md5 du dernier package sur notre site <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
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``.
|
||||
|
||||
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.
|
||||
|
||||
Commande pour démarrer le containeur
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user