1
0
mirror of https://github.com/moparisthebest/wallabag synced 2024-12-17 21:22:15 -05:00

Merge pull request #450 from wallabag/dev

1.5.0
This commit is contained in:
Nicolas Lœuillet 2014-02-13 19:49:25 +01:00
commit 5e98c2183a
88 changed files with 3288 additions and 203 deletions

View File

@ -1,10 +1,10 @@
# How contributing # How contributing
## You found a bug ## You found a bug
Please [open a new issue](https://github.com/wallabag/demo.wallabag.org/issues/new). Please [open a new issue](https://github.com/wallabag/wallabag/issues/new).
To fix the bug quickly, we need some infos: To fix the bug quickly, we need some infos:
* your demo.wallabag.org version (in ./index.php) * your wallabag version (in ./index.php)
* the link you want to save and which causes problem * the link you want to save and which causes problem
## You want to fix a bug or to add a feature ## You want to fix a bug or to add a feature

View File

@ -2,7 +2,7 @@ wallabag is based on :
* PHP Readability https://bitbucket.org/fivefilters/php-readability * PHP Readability https://bitbucket.org/fivefilters/php-readability
* Full Text RSS http://code.fivefilters.org/full-text-rss/src * Full Text RSS http://code.fivefilters.org/full-text-rss/src
* Encoding https://github.com/neitanod/forceutf8 * Encoding https://github.com/neitanod/forceutf8
* logo by Brightmix http://www.iconfinder.com/icondetails/43256/128/jeans_monotone_pocket_icon * logo by Maylis Agniel https://github.com/wallabag/logo
* icons http://icomoon.io * icons http://icomoon.io
* PHP Simple HTML DOM Parser (for Pocket import) http://simplehtmldom.sourceforge.net/ * PHP Simple HTML DOM Parser (for Pocket import) http://simplehtmldom.sourceforge.net/
* Session https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php * Session https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php

View File

@ -1,7 +1,7 @@
# what is wallabag ? # what is wallabag ?
wallabag is a self hostable application allowing you to not miss any content anymore. Click, save, read it when you can. It extracts content so that you can read it when you have time. wallabag is a self hostable application allowing you to not miss any content anymore. Click, save, read it when you can. It extracts content so that you can read it when you have time.
To test wallabag, a demo website is online : [demo.wallabag.org](http://demo.wallabag.org) (login poche, password poche). More informations on our website: [wallabag.org](http://wallabag.org)
## License ## License
Copyright © 2010-2013 Nicolas Lœuillet <nicolas@loeuillet.org> Copyright © 2010-2013 Nicolas Lœuillet <nicolas@loeuillet.org>

1
cache/.gitignore vendored
View File

@ -0,0 +1 @@
!.htaccess

2
cache/.htaccess vendored Normal file
View File

@ -0,0 +1,2 @@
Order deny,allow
Deny from all

2
db/.htaccess Normal file
View File

@ -0,0 +1,2 @@
Order deny,allow
Deny from all

View File

@ -31,9 +31,9 @@ class Session
public static $sessionName = ''; public static $sessionName = '';
// If the user does not access any page within this time, // If the user does not access any page within this time,
// his/her session is considered expired (3600 sec. = 1 hour) // his/her session is considered expired (3600 sec. = 1 hour)
public static $inactivityTimeout = 3600; public static $inactivityTimeout = 86400;
// Extra timeout for long sessions (if enabled) (82800 sec. = 23 hours) // Extra timeout for long sessions (if enabled) (82800 sec. = 23 hours)
public static $longSessionTimeout = 82800; public static $longSessionTimeout = 31536000;
// If you get disconnected often or if your IP address changes often. // If you get disconnected often or if your IP address changes often.
// Let you disable session cookie hijacking protection // Let you disable session cookie hijacking protection
public static $disableSessionProtection = false; public static $disableSessionProtection = false;

View File

@ -318,6 +318,12 @@ class Database {
$query = $this->executeQuery($sql_action, $params_action); $query = $this->executeQuery($sql_action, $params_action);
} }
public function archiveAll($user_id) {
$sql_action = "UPDATE entries SET is_read=? WHERE user_id=? AND is_read=?";
$params_action = array($user_id, 1, 0);
$query = $this->executeQuery($sql_action, $params_action);
}
public function getLastId($column = '') { public function getLastId($column = '') {
return $this->getHandle()->lastInsertId($column); return $this->getHandle()->lastInsertId($column);
} }

View File

@ -101,7 +101,7 @@ class Poche
$passTheme = TRUE; $passTheme = TRUE;
# Twig is an absolute requirement for Poche to function. Abort immediately if the Composer installer hasn't been run yet # Twig is an absolute requirement for Poche to function. Abort immediately if the Composer installer hasn't been run yet
if (! self::$canRenderTemplates) { if (! self::$canRenderTemplates) {
$this->notInstalledMessage[] = 'Twig does not seem to be installed. Please initialize the Composer installation to automatically fetch dependencies. Have a look at <a href="http://doc.wallabag.org/doku.php?id=users:begin:install">the documentation.</a>'; $this->notInstalledMessage[] = 'Twig does not seem to be installed. Please initialize the Composer installation to automatically fetch dependencies. You can also download <a href="http://wllbg.org/vendor">vendor.zip</a> and extract it in your wallabag folder.';
$passTheme = FALSE; $passTheme = FALSE;
} }
@ -228,10 +228,6 @@ class Poche
# filter for reading time # filter for reading time
$filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime'); $filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime');
$this->tpl->addFilter($filter); $this->tpl->addFilter($filter);
# filter for simple filenames in config view
$filter = new Twig_SimpleFilter('getPrettyFilename', function($string) { return str_replace(ROOT, '', $string); });
$this->tpl->addFilter($filter);
} }
private function install() private function install()
@ -438,6 +434,13 @@ class Poche
Tools::redirect(); Tools::redirect();
} }
break; break;
case 'archive_all' :
$this->store->archiveAll($this->user->getId());
Tools::logm('archive all links');
if (!$import) {
Tools::redirect();
}
break;
case 'add_tag' : case 'add_tag' :
$tags = explode(',', $_POST['value']); $tags = explode(',', $_POST['value']);
$entry_id = $_POST['entry_id']; $entry_id = $_POST['entry_id'];
@ -480,8 +483,8 @@ class Poche
switch ($view) switch ($view)
{ {
case 'config': case 'config':
$dev = $this->getPocheVersion('dev'); $dev = trim($this->getPocheVersion('dev'));
$prod = $this->getPocheVersion('prod'); $prod = trim($this->getPocheVersion('prod'));
$compare_dev = version_compare(POCHE, $dev); $compare_dev = version_compare(POCHE, $dev);
$compare_prod = version_compare(POCHE, $prod); $compare_prod = version_compare(POCHE, $prod);
$themes = $this->getInstalledThemes(); $themes = $this->getInstalledThemes();
@ -565,7 +568,8 @@ class Poche
if (count($entries) > 0) { if (count($entries) > 0) {
$this->pagination->set_total(count($entries)); $this->pagination->set_total(count($entries));
$page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&'); $page_links = str_replace(array('previous', 'next'), array(_('previous'), _('next')),
$this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&'));
$datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit()); $datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit());
$tpl_vars['entries'] = $datas; $tpl_vars['entries'] = $datas;
$tpl_vars['page_links'] = $page_links; $tpl_vars['page_links'] = $page_links;
@ -726,7 +730,7 @@ class Poche
$longlastingsession = isset($_POST['longlastingsession']); $longlastingsession = isset($_POST['longlastingsession']);
$passwordTest = ($isauthenticated) ? $user['password'] : Tools::encodeString($password . $login); $passwordTest = ($isauthenticated) ? $user['password'] : Tools::encodeString($password . $login);
Session::login($user['username'], $user['password'], $login, $passwordTest, $longlastingsession, array('poche_user' => new User($user))); Session::login($user['username'], $user['password'], $login, $passwordTest, $longlastingsession, array('poche_user' => new User($user)));
$this->messages->add('s', _('welcome to your poche')); $this->messages->add('s', _('welcome to your wallabag'));
Tools::logm('login successful'); Tools::logm('login successful');
Tools::redirect($referer); Tools::redirect($referer);
} }
@ -745,7 +749,6 @@ class Poche
{ {
$this->user = array(); $this->user = array();
Session::logout(); Session::logout();
$this->messages->add('s', _('see you soon!'));
Tools::logm('logout'); Tools::logm('logout');
Tools::redirect(); Tools::redirect();
} }
@ -1009,6 +1012,7 @@ class Poche
$token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20); $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
} }
$token = str_replace('+', '', $token);
$this->store->updateUserConfig($this->user->getId(), 'token', $token); $this->store->updateUserConfig($this->user->getId(), 'token', $token);
$currentConfig = $_SESSION['poche_user']->config; $currentConfig = $_SESSION['poche_user']->config;
$currentConfig['token'] = $token; $currentConfig['token'] = $token;
@ -1027,10 +1031,10 @@ class Poche
// Check the token // Check the token
$feed = new FeedWriter(RSS2); $feed = new FeedWriter(RSS2);
$feed->setTitle('poche - ' . $type . ' feed'); $feed->setTitle('wallabag — ' . $type . ' feed');
$feed->setLink(Tools::getPocheUrl()); $feed->setLink(Tools::getPocheUrl());
$feed->setChannelElement('updated', date(DATE_RSS , time())); $feed->setChannelElement('updated', date(DATE_RSS , time()));
$feed->setChannelElement('author', 'poche'); $feed->setChannelElement('author', 'wallabag');
if ($type == 'tag') { if ($type == 'tag') {
$entries = $this->store->retrieveEntriesByTag($tag_id); $entries = $this->store->retrieveEntriesByTag($tag_id);

View File

@ -44,7 +44,7 @@ define ('FLATTRABLE', '1');
define ('FLATTRED', '2'); define ('FLATTRED', '2');
define ('ABS_PATH', 'assets/'); define ('ABS_PATH', 'assets/');
define ('DEFAULT_THEME', 'default'); define ('DEFAULT_THEME', 'baggy');
define ('THEME', ROOT . '/themes'); define ('THEME', ROOT . '/themes');
define ('LOCALE', ROOT . '/locale'); define ('LOCALE', ROOT . '/locale');

View File

@ -8,7 +8,7 @@
* @license http://www.wtfpl.net/ see COPYING file * @license http://www.wtfpl.net/ see COPYING file
*/ */
define ('POCHE', '1.4.0'); define ('POCHE', '1.5.0');
require_once 'inc/poche/global.inc.php'; require_once 'inc/poche/global.inc.php';
session_start(); session_start();

Binary file not shown.

2
locale/.htaccess Normal file
View File

@ -0,0 +1,2 @@
Order deny,allow
Deny from all

Binary file not shown.

View File

@ -0,0 +1,428 @@
msgid ""
msgstr ""
"Project-Id-Version: wballabag\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-02-07 17:38+0300\n"
"PO-Revision-Date: 2014-02-07 17:43+0300\n"
"Last-Translator: Maryana <mariroz@mr.lviv.ua>\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-Language: Polish\n"
"X-Poedit-Country: POLAND\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-SearchPath-0: /home/mariroz/_DEV/web/wallabag/wallabag\n"
msgid "poche, a read it later open source system"
msgstr "poche, serwis odrocznego czytania open source"
msgid "login failed: user doesn't exist"
msgstr "logowanie nie udało się: użytkownik nie istnieje"
msgid "Return home"
msgstr "Wrocic do głównej"
msgid "Back to top"
msgstr "Wrócić na górę"
msgid "original"
msgstr "oryginal"
msgid "Mark as read"
msgstr "Zaznacz jako przeczytane"
msgid "Toggle mark as read"
msgstr "Przełącz jako przeczytane"
msgid "Favorite"
msgstr "Ulubiony"
msgid "Toggle favorite"
msgstr "Zaznacz jako ulubione"
msgid "Delete"
msgstr "Usuń"
msgid "Tweet"
msgstr "Tweet"
msgid "Email"
msgstr "Wyslij email"
msgid "shaarli"
msgstr "shaarli"
msgid "flattr"
msgstr "flattr"
msgid "Does this article appear wrong?"
msgstr "Czy ten artykuł wygląda nieprawidłowo?"
msgid "tags:"
msgstr "tegi:"
msgid "Edit tags"
msgstr "Redagowac tegi"
msgid "return home"
msgstr "wrócić do głównej"
msgid "powered by"
msgstr "zasilany przez"
msgid "debug mode is on so cache is off."
msgstr "tryb debugowania jest włączony, więc cash jest wyłączony."
msgid "your poche version:"
msgstr "twoja wersja poche:"
msgid "storage:"
msgstr "magazyn:"
msgid "favoris"
msgstr "ulubione"
msgid "archive"
msgstr "archiwum"
msgid "unread"
msgstr "nieprzeczytane"
msgid "by date asc"
msgstr "według daty rosnąco"
msgid "by date"
msgstr "wg daty"
msgid "by date desc"
msgstr "według daty spadająco"
msgid "by title asc"
msgstr "według tytułu rosnąco"
msgid "by title"
msgstr "wg tytułu"
msgid "by title desc"
msgstr "według tytułu malejąco"
msgid "No articles found."
msgstr "Nie znaleziono artykułów."
msgid "toggle favorite"
msgstr "przełączyc ulubione"
msgid "delete"
msgstr "usunąć"
msgid "estimated reading time:"
msgstr "szacowany czas odczytu:"
msgid "results"
msgstr "wyniki"
msgid "home"
msgstr "główna"
msgid "favorites"
msgstr "ulubione"
msgid "tags"
msgstr "tagi"
msgid "config"
msgstr "ustawienia"
msgid "logout"
msgstr "wyloguj"
msgid "Poching links"
msgstr "Zapisywanie linków"
msgid "There are several ways to poche a link:"
msgstr "Istnieje kilka sposobów aby zapisać link:"
msgid "read the documentation"
msgstr "zapoznać się z dokumentacją"
msgid "download the extension"
msgstr "pobrać rozszerzenie"
msgid "via F-Droid"
msgstr "przez F-Droid"
msgid " or "
msgstr "albo"
msgid "via Google Play"
msgstr "przez Google Play"
msgid "download the application"
msgstr "pobrać aplikację"
msgid "By filling this field"
msgstr "Poprzez wypełnienie tego pola"
msgid "poche it!"
msgstr "zapisać!"
msgid "Bookmarklet: drag & drop this link to your bookmarks bar"
msgstr "Bookmarklet: przeciągnij i upucs ten link na pasek zakladek"
msgid "Updating poche"
msgstr "Aktualizacja poche"
msgid "Installed version"
msgstr "Zainstalowana wersja "
msgid "Latest stable version"
msgstr "Najnowsza stabilna wersja"
msgid "A more recent stable version is available."
msgstr "Nowsza stabilna wersja jest dostępna."
msgid "You are up to date."
msgstr "Masz wszystko najnowsze."
msgid "latest dev version"
msgstr "najnowsza wersja dev"
msgid "a more recent development version is available."
msgstr "Nowsza wersja rozwojowa jest dostępna."
msgid "you are up to date."
msgstr "masz wszystko najnowsze."
msgid "Feeds"
msgstr "Kanały (feeds)"
msgid "Your feed token is currently empty and must first be generated to enable feeds. Click <a href='?feed&amp;action=generate'>here to generate it</a>."
msgstr "Twój znak kanału jest pusty i musi najpierw zostac wygenerowany. Kliknij <a href='?feed&action=generate'>tu dla jego generacji</a>."
msgid "Unread feed"
msgstr "Kanał nieprzeczytanego"
msgid "Favorites feed"
msgstr "Kanał ulubionego"
msgid "Archive feed"
msgstr "Kanał archiwum"
msgid "Your token:"
msgstr "Twój znak (token): "
msgid "Your user id:"
msgstr "Twój id użytkownika (user id):"
msgid "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>."
msgstr "Mozna zgenerowac nowy znak: kliknij <a href='?feed&amp;action=generate'>zgenerowac!</a>."
msgid "Change your theme"
msgstr "Zmienic motyw"
msgid "Theme:"
msgstr "Motyw:"
msgid "Update"
msgstr "Aktualizacja"
msgid "Change your language"
msgstr "Zmienić język"
msgid "Language:"
msgstr "Język:"
msgid "Change your password"
msgstr "Zmień hasło"
msgid "New password:"
msgstr "Nowe hasło:"
msgid "Password"
msgstr "Hasło"
msgid "Repeat your new password:"
msgstr "Powtórz hasło jeszcze raz:"
msgid "Import"
msgstr "Import"
msgid "Please execute the import script locally as it can take a very long time."
msgstr "Proszę wykonać skrypt import lokalnie, gdyż moze to trwać bardzo długo."
msgid "More info in the official docs:"
msgstr "Więcej informacji w oficjalnej dokumentacji:"
msgid "Import from Pocket"
msgstr "Іmport z Pocket'a"
#, php-format
msgid "(you must have a %s file on your server)"
msgstr "(musisz mieć plik %s na serwerze)"
msgid "Import from Readability"
msgstr "Import z Readability"
msgid "Import from Instapaper"
msgstr "Import z Instapaper"
msgid "Import from poche"
msgstr "Import z poche"
msgid "Export your poche data"
msgstr "Eksportowac dane poche"
msgid "Click here"
msgstr "Kliknij tu"
msgid "to download your database."
msgstr "aby pobrac bazę danych."
msgid "to export your poche data."
msgstr "aby eksportować dane poche."
msgid "Tag"
msgstr "Teg"
msgid "No link available here!"
msgstr "Brak dostępnych linków!"
msgid "toggle mark as read"
msgstr "przełączyć znak jako przeczytane"
msgid "You can enter multiple tags, separated by commas."
msgstr "Mozna wprowadzić wiele tagów rozdzielajac je przecinkami."
msgid "return to article"
msgstr "wrócić do artykułu"
msgid "plop"
msgstr "plop"
msgid "You can <a href='wallabag_compatibility_test.php'>check your configuration here</a>."
msgstr "Można <a href='wallabag_compatibility_test.php'>sprawdzić swoją konfigurację tu</a>."
msgid "installation"
msgstr "instalacja"
msgid "install your wallabag"
msgstr "zainstalować wallabag"
msgid "wallabag is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://doc.wallabag.org/'>read the documentation on wallabag website</a>."
msgstr "wallabag nie jest jeszcze zainstalowany. Proszę wypełnić poniższy formularz, aby go zainstalowac. Nie wahaj się <a href='http://doc.wallabag.org/'>zapoznac się z dokumentacja na stronie wallabag</a>."
msgid "Login"
msgstr "Login"
msgid "Repeat your password"
msgstr "Powtórz hasło"
msgid "Install"
msgstr "Instalowac"
msgid "login to your wallabag"
msgstr "zalogować się do swojego wallabag"
msgid "Login to wallabag"
msgstr "Zalogować się do wallabag"
msgid "you are in demo mode, some features may be disabled."
msgstr "jesteś w trybie demo, niektóre funkcje mogą być niedostępne."
msgid "Username"
msgstr "Imię użytkownika"
msgid "Stay signed in"
msgstr "Pozostań zalogowany"
msgid "(Do not check on public computers)"
msgstr "(Nie sprawdzaj na publicznych komputerach"
msgid "Untitled"
msgstr "Bez nazwy"
msgid "the link has been added successfully"
msgstr "link pozostał pomyślnie dodany"
msgid "error during insertion : the link wasn't added"
msgstr "błąd podczas wprowadzania: link nie zostal dodany"
msgid "the link has been deleted successfully"
msgstr "link zostal pomyślnie usunięty"
msgid "the link wasn't deleted"
msgstr "link nie został usunięty"
msgid "previous"
msgstr "poprzednia"
msgid "next"
msgstr "następna"
msgid "in demo mode, you can't update your password"
msgstr "w trybie demo, nie można zmieniać hasła"
msgid "your password has been updated"
msgstr "twoje hasło zmienione"
msgid "the two fields have to be filled & the password must be the same in the two fields"
msgstr "oba pola muszą być wypełnione i hasła muszę być takie same w obu polach"
msgid "still using the \""
msgstr "nadal w użyciu \""
msgid "that theme does not seem to be installed"
msgstr "wydaje się że motyw nie był zainstalowany"
msgid "you have changed your theme preferences"
msgstr "ustawienia motywu zostałe zmienione"
msgid "that language does not seem to be installed"
msgstr "wydaje się że język nie był zainstalowany"
msgid "you have changed your language preferences"
msgstr "ustawienia języka zostałe zmienione"
msgid "login failed: you have to fill all fields"
msgstr "logowanie nie powiodlo się: musisz wypełnić wszystkie pola"
msgid "welcome to your poche"
msgstr "witamy w poche"
msgid "login failed: bad login or password"
msgstr "logowanie nie powiodlo się: zly login lub hasło"
msgid "see you soon!"
msgstr "do zobaczenia wkrótce!"
msgid "import from instapaper completed"
msgstr "import з instapaper'a zakończony"
msgid "import from pocket completed"
msgstr "import z pocket'a zakończony"
msgid "import from Readability completed. "
msgstr "import z Readability zakończony. "
msgid "import from Poche completed. "
msgstr "import z Poche zakończony. "
msgid "Unknown import provider."
msgstr "Nieznany dostawca importu."
msgid "Incomplete inc/poche/define.inc.php file, please define \""
msgstr "Niekompletny plik inc/poche/define.inc.php, proszę definiować \""
msgid "Could not find required \""
msgstr "Nie znaleziono potrzebnego \""
msgid "Uh, there is a problem while generating feeds."
msgstr "Uh, jest problem podczas generowania kanałów (feeds)."
msgid "Oops, it seems you don't have PHP 5."
msgstr "Oops, wygląda ze u was niema PHP 5."

BIN
locale/ru_RU.utf8/LC_MESSAGES/ru_RU.utf8.mo Normal file → Executable file

Binary file not shown.

498
locale/ru_RU.utf8/LC_MESSAGES/ru_RU.utf8.po Normal file → Executable file
View File

@ -1,123 +1,86 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"POT-Creation-Date: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-02-07 12:40+0300\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n" "Last-Translator: Maryana <mariroz@mr.lviv.ua>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n" "X-Generator: Poedit 1.5.4\n"
"X-Poedit-Language: Russian\n"
"X-Poedit-Country: RUSSIA\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-SearchPath-0: /home/mariroz/_DEV/web/wallabag/wallabag\n"
msgid "config" msgid "poche, a read it later open source system"
msgstr "настройки" msgstr "poche, сервис отложенного чтения с открытым исходным кодом"
msgid "Poching a link" msgid "login failed: user doesn't exist"
msgstr "Сохраняю ссылку" msgstr "войти не удалось: пользователь не существует"
msgid "read the documentation" msgid "Return home"
msgstr "читать инструкцию" msgstr "На главную"
msgid "by filling this field" msgid "Back to top"
msgstr "заполнением этого поля" msgstr "Наверх"
msgid "poche it!" msgid "original"
msgstr "Прикарманить!" msgstr "источник"
msgid "Updating poche" msgid "Mark as read"
msgstr "Обновляю poche" msgstr "Отметить как прочитанное"
msgid "your version" msgid "Toggle mark as read"
msgstr "Ваша версия" msgstr "Изменить отметку 'прочитано'"
msgid "latest stable version" msgid "Favorite"
msgstr "крайняя стабильная версия" msgstr "Избранное"
msgid "a more recent stable version is available." msgid "Toggle favorite"
msgstr "есть более новая стабильная версия." msgstr "Изменить метку избранного"
msgid "you are up to date." msgid "Delete"
msgstr "у Вас всё самое новое." msgstr "Удалить"
msgid "latest dev version" msgid "Tweet"
msgstr "крайняя версия разработчиков" msgstr "Твитнуть"
msgid "a more recent development version is available." msgid "Email"
msgstr "есть более свежая версия разработчиков." msgstr "Отправить по почте"
msgid "Change your password" msgid "shaarli"
msgstr "Смени пароль" msgstr "shaarli"
msgid "New password:" msgid "flattr"
msgstr "Новый пароль:" msgstr "проспонсировать"
msgid "Password" msgid "Does this article appear wrong?"
msgstr "Пароль" msgstr "Статья выглядит криво?"
msgid "Repeat your new password:" msgid "tags:"
msgstr "Ещё раз новый пароль:" msgstr "теги:"
msgid "Update" msgid "Edit tags"
msgstr "Обновить" msgstr "Редактировать теги"
msgid "Import" msgid "return home"
msgstr "Импортировать" msgstr "на главную"
msgid "Please execute the import script locally, it can take a very long time." msgid "powered by"
msgstr "" msgstr "при поддержке"
"Выполните сценарий импорта локально - он может занять слишком много времени."
msgid "More info in the official doc:" msgid "debug mode is on so cache is off."
msgstr "Больше сведений в официальной документации:" msgstr "включён режим отладки - кеш выключен."
msgid "import from Pocket" msgid "your poche version:"
msgstr "импортировать из Pocket" msgstr "ваша версия poche:"
msgid "import from Readability" msgid "storage:"
msgstr "импортировать из Readability" msgstr "хранилище:"
msgid "import from Instapaper"
msgstr "импортировать из Instapaper"
msgid "Export your poche data"
msgstr "Экспортировать данные poche"
msgid "Click here"
msgstr "Кликни сюда"
msgid "to export your poche data."
msgstr "чтобы экспортировать твои записи из poche."
msgid "back to home"
msgstr "домой"
msgid "installation"
msgstr "установка"
msgid "install your poche"
msgstr "установить твой poche"
msgid ""
"poche is still not installed. Please fill the below form to install it. "
"Don't hesitate to <a href='http://doc.inthepoche.com'>read the documentation "
"on poche website</a>."
msgstr ""
"poche всё ещё не установлен. Надо заполнить форму ниже, чтобы установить "
"его. Неплохо также <a href='http://doc.inthepoche.com'>прочесть документацию "
"на сайте poche</a>."
msgid "Login"
msgstr "Регистрационное имя"
msgid "Repeat your password"
msgstr "Повтори пароль"
msgid "Install"
msgstr "Установить"
msgid "back to top"
msgstr "наверх"
msgid "favoris" msgid "favoris"
msgstr "избранное" msgstr "избранное"
@ -126,7 +89,7 @@ msgid "archive"
msgstr "архив" msgstr "архив"
msgid "unread" msgid "unread"
msgstr "нечитанное" msgstr "непрочитанное"
msgid "by date asc" msgid "by date asc"
msgstr "по дате, сперва старые" msgstr "по дате, сперва старые"
@ -146,83 +109,336 @@ msgstr "по заголовку"
msgid "by title desc" msgid "by title desc"
msgstr "по заголовку (обратный)" msgstr "по заголовку (обратный)"
msgid "No link available here!" msgid "No articles found."
msgstr "Здесь нет линка!" msgstr "Статей не найдено."
msgid "toggle mark as read"
msgstr "изменить отметку 'прочитано'"
msgid "toggle favorite" msgid "toggle favorite"
msgstr "изменить избранность" msgstr "изменить метку избранного"
msgid "delete" msgid "delete"
msgstr "удалить" msgstr "удалить"
msgid "original" msgid "estimated reading time:"
msgstr "исходный" msgstr "ориентировочное время чтения:"
msgid "results" msgid "results"
msgstr "найдено" msgstr "найдено"
msgid "tweet"
msgstr "твитнуть"
msgid "email"
msgstr "отправить по почте"
msgid "shaarli"
msgstr "Шаарли"
msgid "flattr"
msgstr "проспонсировать"
msgid "this article appears wrong?"
msgstr "статья выглядит криво?"
msgid "create an issue"
msgstr "оповестить об ошибке"
msgid "or"
msgstr "или"
msgid "contact us by mail"
msgstr "связаться по почте"
msgid "plop"
msgstr "plop"
msgid "home" msgid "home"
msgstr "домой" msgstr "главная"
msgid "favorites" msgid "favorites"
msgstr "избранное" msgstr "избранное"
msgid "tags"
msgstr "теги"
msgid "config"
msgstr "настройки"
msgid "logout" msgid "logout"
msgstr "выйти" msgstr "выход"
msgid "powered by" msgid "Poching links"
msgstr "на основе" msgstr "Сохранение ссылок"
msgid "debug mode is on so cache is off." msgid "There are several ways to poche a link:"
msgstr "включён режим отладки - кеш выключен." msgstr "Существует несколько способов сохранить ссылку:"
msgid "your poche version:" msgid "read the documentation"
msgstr "Ваша версия poche:" msgstr "читать инструкцию"
msgid "storage:" msgid "download the extension"
msgstr "хранилище:" msgstr "скачать расширение"
msgid "login to your poche" msgid "via F-Droid"
msgstr "войти в свой poche" msgstr "с F-Droid"
msgid " or "
msgstr "или"
msgid "via Google Play"
msgstr "с Google Play"
msgid "download the application"
msgstr "скачать приложение"
msgid "By filling this field"
msgstr "Заполнением этого поля"
msgid "poche it!"
msgstr "прикарманить!"
msgid "Bookmarklet: drag & drop this link to your bookmarks bar"
msgstr "Закладка: перетащите и опустите ссылку на панель закладок"
msgid "Updating poche"
msgstr "Обновления poche"
msgid "Installed version"
msgstr "Установленная версия"
msgid "Latest stable version"
msgstr "Последняя стабильная версия"
msgid "A more recent stable version is available."
msgstr "Доступна новая стабильная версия."
msgid "You are up to date."
msgstr "У вас всё самое новое."
msgid "latest dev version"
msgstr "последняя версия в разработке"
msgid "a more recent development version is available."
msgstr "есть более свежая версия в разработке."
msgid "you are up to date."
msgstr "у вас всё самое новое."
msgid "Feeds"
msgstr "Ленты (feeds)"
msgid "Your feed token is currently empty and must first be generated to enable feeds. Click <a href='?feed&amp;action=generate'>here to generate it</a>."
msgstr "Ваш маркер ленты (feed token) не определен, для того, чтобы активировать ленту, сначала создайте его. Нажмите <a href='?feed&action=generate'>здесь для его генерации</ а>."
msgid "Unread feed"
msgstr "Лента непрочитанного"
msgid "Favorites feed"
msgstr "Лента избранного"
msgid "Archive feed"
msgstr "Лента архива"
msgid "Your token:"
msgstr "Ваш маркер (token):"
msgid "Your user id:"
msgstr "Ваш идентификатор пользователя (user id):"
msgid "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>."
msgstr "Вы можете создать новый ​​маркер: <a href='?feed&action=generate'>сгенерировать!</a>."
msgid "Change your theme"
msgstr "Изменить тему"
msgid "Theme:"
msgstr "Тема:"
msgid "Update"
msgstr "Обновить"
msgid "Change your language"
msgstr "Изменить язык"
msgid "Language:"
msgstr "Язык:"
msgid "Change your password"
msgstr "Смена пароля"
msgid "New password:"
msgstr "Новый пароль:"
msgid "Password"
msgstr "Пароль"
msgid "Repeat your new password:"
msgstr "Ещё раз новый пароль:"
msgid "Import"
msgstr "Импортировать"
msgid "Please execute the import script locally as it can take a very long time."
msgstr "Пожалуйста, выполните сценарий импорта локально - это может занять слишком много времени."
msgid "More info in the official docs:"
msgstr "Больше сведений в официальной документации:"
msgid "Import from Pocket"
msgstr "Импортировать из Pocket"
#, php-format
msgid "(you must have a %s file on your server)"
msgstr "(файл %s должен присутствовать на вашем сервере)"
msgid "Import from Readability"
msgstr "Импортировать из Readability"
msgid "Import from Instapaper"
msgstr "Импортировать из Instapaper"
msgid "Import from poche"
msgstr "Импортировать из poche"
msgid "Export your poche data"
msgstr "Экспортировать данные poche"
msgid "Click here"
msgstr "Кликните здесь"
msgid "to download your database."
msgstr "чтобы скачать вашу базу данных"
msgid "to export your poche data."
msgstr "чтобы экспортировать свои записи из poche."
msgid "Tag"
msgstr "Тег"
msgid "No link available here!"
msgstr "Здесь нет ссылки!"
msgid "toggle mark as read"
msgstr "изменить отметку 'прочитано'"
msgid "You can enter multiple tags, separated by commas."
msgstr "Вы можете ввести несколько тегов, разделяя их запятой."
msgid "return to article"
msgstr "вернуться к статье"
msgid "plop"
msgstr "plop"
msgid "You can <a href='wallabag_compatibility_test.php'>check your configuration here</a>."
msgstr "Вы можете <a href='wallabag_compatibility_test.php'>проверить конфигурацию здесь</a>."
msgid "installation"
msgstr "установка"
msgid "install your wallabag"
msgstr "установка wallabag"
msgid "wallabag is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://doc.wallabag.org/'>read the documentation on wallabag website</a>."
msgstr "wallabag всё ещё не установлен. Надо заполнить форму ниже, чтобы установить его. Неплохо также <a href='http://doc.wallabag.org'>прочесть документацию на сайте wallabag</a>."
msgid "Login"
msgstr "Имя пользователя"
msgid "Repeat your password"
msgstr "Повторите пароль"
msgid "Install"
msgstr "Установить"
msgid "login to your wallabag"
msgstr "войти в свой wallabag"
msgid "Login to wallabag"
msgstr "Войдите в wallabag"
msgid "you are in demo mode, some features may be disabled." msgid "you are in demo mode, some features may be disabled."
msgstr "демонстрационный режим - работают не все возможности." msgstr "демонстрационный режим - работают не все возможности."
msgid "Username"
msgstr "Имя пользователя"
msgid "Stay signed in" msgid "Stay signed in"
msgstr "Оставаться зарегистрированным" msgstr "Запомнить меня"
msgid "(Do not check on public computers)" msgid "(Do not check on public computers)"
msgstr "(Не отмечай на чужих компьютерах)" msgstr "(Не отмечайте на чужих компьютерах)"
msgid "Sign in" msgid "Untitled"
msgstr "Зарегистрироваться" msgstr "Без названия"
msgid "the link has been added successfully"
msgstr "ссылка успешно добавлена"
msgid "error during insertion : the link wasn't added"
msgstr "ошибка во время вставки: ссылка не добавлена"
msgid "the link has been deleted successfully"
msgstr "ссылка успешно удалена"
msgid "the link wasn't deleted"
msgstr "ссылка не удалена"
msgid "previous"
msgstr "предыдущая"
msgid "next"
msgstr "следующая"
msgid "in demo mode, you can't update your password"
msgstr "в демонстрационном режиме смена пароля не разрешена"
msgid "your password has been updated"
msgstr "ваш пароль обновлен"
msgid "the two fields have to be filled & the password must be the same in the two fields"
msgstr "необходимо заполнить оба поля и пароль в обоих должен совпадать"
msgid "still using the \""
msgstr "все еще используется \""
msgid "that theme does not seem to be installed"
msgstr "кажется, эта тема не установлена"
msgid "you have changed your theme preferences"
msgstr "вы изменили свои настройки темы"
msgid "that language does not seem to be installed"
msgstr "кажется, что этот язык не установлен"
msgid "you have changed your language preferences"
msgstr "вы изменили свои настройки языка"
msgid "login failed: you have to fill all fields"
msgstr "войти не удалось: вы должны заполнить все поля"
msgid "welcome to your poche"
msgstr "добро пожаловать в ваш poche"
msgid "login failed: bad login or password"
msgstr "войти не удалось: неправильное имя пользователя или пароль"
msgid "see you soon!"
msgstr "увидимся!"
msgid "import from instapaper completed"
msgstr "импорт из instapaper завершен"
msgid "import from pocket completed"
msgstr "импорт из pocket завершен"
msgid "import from Readability completed. "
msgstr "импорт из Readability завершен"
msgid "import from Poche completed. "
msgstr "импорт из Poche завершен."
msgid "Unknown import provider."
msgstr "Неизвестный провайдер импорта."
msgid "Incomplete inc/poche/define.inc.php file, please define \""
msgstr "Незавершенный файл inc/poche/define.inc.php file, пожалуйста определите \""
msgid "Could not find required \""
msgstr "Не удалось найти требуемый \""
msgid "Uh, there is a problem while generating feeds."
msgstr "Ох, возникла проблема при создании ленты."
msgid "Oops, it seems you don't have PHP 5."
msgstr "Упс, кажется у вас не установлен PHP 5."
#~ msgid "your version"
#~ msgstr "Ваша версия"
#~ msgid "back to home"
#~ msgstr "домой"
#~ msgid "create an issue"
#~ msgstr "оповестить об ошибке"
#~ msgid "or"
#~ msgstr "или"
#~ msgid "contact us by mail"
#~ msgstr "связаться по почте"
#~ msgid "Sign in"
#~ msgstr "Зарегистрироваться"

Binary file not shown.

View File

@ -0,0 +1,428 @@
msgid ""
msgstr ""
"Project-Id-Version: wballabag\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-02-06 19:23+0300\n"
"PO-Revision-Date: 2014-02-06 19:24+0300\n"
"Last-Translator: Maryana <mariroz@mr.lviv.ua>\n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: .\n"
"X-Poedit-Language: Ukrainian\n"
"X-Poedit-Country: UKRAINE\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-SearchPath-0: /home/mariroz/_DEV/web/wallabag/wallabag\n"
msgid "poche, a read it later open source system"
msgstr "poche, сервіс відкладеного читання з відкритим кодом"
msgid "login failed: user doesn't exist"
msgstr "увійти не вдалося: користувач не існує"
msgid "powered by"
msgstr "за підтримки"
msgid "debug mode is on so cache is off."
msgstr "режим відладки включено, отже кеш виключено."
msgid "your poche version:"
msgstr "версія вашої poche:"
msgid "storage:"
msgstr "сховище:"
msgid "home"
msgstr "головна"
msgid "favorites"
msgstr "вибране"
msgid "archive"
msgstr "архів"
msgid "tags"
msgstr "теги"
msgid "config"
msgstr "налаштування"
msgid "logout"
msgstr "вихід"
msgid "return home"
msgstr "повернутися на головну"
msgid "Poching links"
msgstr "Зберігання посилань"
msgid "There are several ways to poche a link:"
msgstr "Є кілька способів зберегти посилання:"
msgid "read the documentation"
msgstr "читати документацію"
msgid "download the extension"
msgstr "завантажити розширення"
msgid "via F-Droid"
msgstr "через F-Droid"
msgid " or "
msgstr "або"
msgid "via Google Play"
msgstr "через Google Play"
msgid "download the application"
msgstr "завантажити додаток"
msgid "By filling this field"
msgstr "Заповнивши це поле"
msgid "poche it!"
msgstr "зберегти!"
msgid "Bookmarklet: drag & drop this link to your bookmarks bar"
msgstr "З допомогою закладки: перетягніть і відпустіть посилання на панель закладок"
msgid "Updating poche"
msgstr "Оновлення poche"
msgid "Installed version"
msgstr "Встановлено ​​версію"
msgid "Latest stable version"
msgstr "Остання стабільна версія"
msgid "A more recent stable version is available."
msgstr "Є новіша стабільна версія."
msgid "You are up to date."
msgstr "У вас остання версія."
msgid "latest dev version"
msgstr "остання версія в розробці"
msgid "a more recent development version is available."
msgstr "доступна новіша версія в розробці."
msgid "you are up to date."
msgstr "у вас остання версія."
msgid "Feeds"
msgstr "Завантаження (feeds)"
msgid "Your feed token is currently empty and must first be generated to enable feeds. Click <a href='?feed&amp;action=generate'>here to generate it</a>."
msgstr "Ваш маркер завантажень (feed token) не визначено, ви повинні спочатку згенерувати його для того, щоб активувати завантаження. Натисніть <a href='?feed&action=generate'>тут для його генерації</ A>."
msgid "Unread feed"
msgstr "Завантаження непрочитаного"
msgid "Favorites feed"
msgstr "Завантаження вибраного"
msgid "Archive feed"
msgstr "Завантаження архіву"
msgid "Your token:"
msgstr "Ваш маркер (token): "
msgid "Your user id:"
msgstr "Ваш ідентифікатор користувача (user id):"
msgid "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>."
msgstr "Ви можете перестворити ваш маркер: натисніть <a href='?feed&amp;action=generate'>згенерувати!</a>."
msgid "Change your theme"
msgstr "Змінити тему"
msgid "Theme:"
msgstr "Тема:"
msgid "Update"
msgstr "Оновити"
msgid "Change your language"
msgstr "Змінити мову"
msgid "Language:"
msgstr "Мова:"
msgid "Change your password"
msgstr "Зміна паролю"
msgid "New password:"
msgstr "Новий пароль:"
msgid "Password"
msgstr "Пароль"
msgid "Repeat your new password:"
msgstr "Новий пароль ще раз:"
msgid "Import"
msgstr "Імпортування"
msgid "Please execute the import script locally as it can take a very long time."
msgstr "Будь ласка, виконайте сценарій імпорту локально, оскільки це може тривати досить довго."
msgid "More info in the official docs:"
msgstr "Більш детальна інформація в офіційній документації:"
msgid "Import from Pocket"
msgstr "Імпорт з Pocket-а"
#, php-format
msgid "(you must have a %s file on your server)"
msgstr "(файл %s повинен бути присутнім на вашому сервері)"
msgid "Import from Readability"
msgstr "Імпорт з Readability"
msgid "Import from Instapaper"
msgstr "Імпорт з Instapaper"
msgid "Import from poche"
msgstr "Імпорт з poche"
msgid "Export your poche data"
msgstr "Експортувати ваші дані з poche"
msgid "Click here"
msgstr "Клікніть тут"
msgid "to download your database."
msgstr "щоб завантажити вашу базу даних."
msgid "to export your poche data."
msgstr "щоб експортувати ваші дані poche."
msgid "Tag"
msgstr "Тег"
msgid "No link available here!"
msgstr "Немає доступних посилань!"
msgid "toggle mark as read"
msgstr "змінити мітку на прочитано"
msgid "toggle favorite"
msgstr "змінити мітку вибраного"
msgid "delete"
msgstr "видалити"
msgid "original"
msgstr "оригінал"
msgid "estimated reading time:"
msgstr "приблизний час читання:"
msgid "results"
msgstr "результат(ів)"
msgid "You can enter multiple tags, separated by commas."
msgstr "Ви можете ввести декілька тегів, розділених комами."
msgid "return to article"
msgstr "повернутися до статті"
msgid "plop"
msgstr "plop"
msgid "You can <a href='wallabag_compatibility_test.php'>check your configuration here</a>."
msgstr "Ви можете <a href='wallabag_compatibility_test.php'>перевірити вашу конфігурацію тут</a>."
msgid "favoris"
msgstr "вибране"
msgid "unread"
msgstr "непрочитане"
msgid "by date asc"
msgstr "за датою по зростанню"
msgid "by date"
msgstr "за датою"
msgid "by date desc"
msgstr "за датою по спаданню"
msgid "by title asc"
msgstr "за назвою по зростанню"
msgid "by title"
msgstr "за назвою"
msgid "by title desc"
msgstr "за назвою по спаданню"
msgid "No articles found."
msgstr "Статей не знайдено."
msgid "Toggle mark as read"
msgstr "змінити мітку прочитаного"
msgid "installation"
msgstr "інсталяція"
msgid "install your wallabag"
msgstr "встановити wallabag"
msgid "wallabag is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://doc.wallabag.org/'>read the documentation on wallabag website</a>."
msgstr "wallabag ще не встановлено. Будь ласка, заповніть форму нижче, щоб його встановити. Ви можете <a href='http://doc.wallabag.org/'>звертутися до документації на сайті wallabag</ A>."
msgid "Login"
msgstr "Логін"
msgid "Repeat your password"
msgstr "Пароль ще раз"
msgid "Install"
msgstr "Встановити"
msgid "login to your wallabag"
msgstr "увійти до wallabag"
msgid "Login to wallabag"
msgstr "Увійти до wallabag"
msgid "you are in demo mode, some features may be disabled."
msgstr "ви в демонстраційному режимі, деякі функції можуть бути відключені."
msgid "Username"
msgstr "Ім’я користувача"
msgid "Stay signed in"
msgstr "Запам'ятати мене"
msgid "(Do not check on public computers)"
msgstr "(Не відмічайте на загальнодоступних комп'ютерах)"
msgid "Return home"
msgstr "Повернутися на головну"
msgid "Back to top"
msgstr "Догори"
msgid "Mark as read"
msgstr "Відмітити як прочитано/не прочитано"
msgid "Favorite"
msgstr "Вибране"
msgid "Toggle favorite"
msgstr "Відмітити як вибране/не вибране"
msgid "Delete"
msgstr "Видалити"
msgid "Tweet"
msgstr "Твітнути"
msgid "Email"
msgstr "Надіслати по e-mail"
msgid "shaarli"
msgstr "shaarli"
msgid "flattr"
msgstr "flattr"
msgid "Does this article appear wrong?"
msgstr "Ця стаття виглядає не так, як треба?"
msgid "tags:"
msgstr "теги:"
msgid "Edit tags"
msgstr "Редагувати теги"
msgid "previous"
msgstr "попередня"
msgid "next"
msgstr "наступна"
msgid "Untitled"
msgstr "Без назви"
msgid "the link has been added successfully"
msgstr "посилання успішно додано"
msgid "error during insertion : the link wasn't added"
msgstr "помилка при вставці: посилання не додано"
msgid "the link has been deleted successfully"
msgstr "посилання успішно видалено"
msgid "the link wasn't deleted"
msgstr "посилання не було видалено"
msgid "in demo mode, you can't update your password"
msgstr "в демонстраційному режимі ви не можете змінювати свій пароль"
msgid "your password has been updated"
msgstr "ваш пароль змінено"
msgid "the two fields have to be filled & the password must be the same in the two fields"
msgstr "обидва поля повинні бути заповнені і пароль повинен співпадати в обох"
msgid "still using the \""
msgstr "досі використовується \""
msgid "that theme does not seem to be installed"
msgstr "виглядає, що цю тему не було встановлено"
msgid "you have changed your theme preferences"
msgstr "ви змінили налаштування своєї теми"
msgid "that language does not seem to be installed"
msgstr "виглядає, що цю мову не було встановлено"
msgid "you have changed your language preferences"
msgstr "ви змінили свої налаштування мови"
msgid "login failed: you have to fill all fields"
msgstr "увійти не вдалося: ви повинні заповнити всі поля"
msgid "welcome to your poche"
msgstr "ласкаво просимо до вашого poche"
msgid "login failed: bad login or password"
msgstr "увійти не вдалося: не вірний логін або пароль"
msgid "see you soon!"
msgstr "бувайте, ще побачимось!"
msgid "import from instapaper completed"
msgstr "імпорт з instapaper-а завершено"
msgid "import from pocket completed"
msgstr "імпорт з pocket-а завершено"
msgid "import from Readability completed. "
msgstr "імпорт з Readability завершено"
msgid "import from Poche completed. "
msgstr "імпорт з Poche завершено."
msgid "Unknown import provider."
msgstr "Невідомий провайдер імпорту."
msgid "Incomplete inc/poche/define.inc.php file, please define \""
msgstr "Неповний файл inc/poche/define.inc.php, будь ласка, визначте \""
msgid "Could not find required \""
msgstr "Не вдалося знайти потрібний \""
msgid "Uh, there is a problem while generating feeds."
msgstr "Ох, є проблема при створенні завантажень (feeds)."
msgid "Oops, it seems you don't have PHP 5."
msgstr "Упс, здається, у вас немає PHP 5."

3
themes/baggy/README.md Executable file
View File

@ -0,0 +1,3 @@
# Baggy Theme
theme created by Thomas LEBEAU alias Courgette http://thomaslebeau.fr/

13
themes/baggy/_head.twig Normal file
View File

@ -0,0 +1,13 @@
<link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/{{theme}}/img/favicon.ico" />
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-144x144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-72x72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/{{theme}}/img/apple-touch-icon-precomposed.png">
<link href='http://fonts.googleapis.com/css?family=PT+Sans:700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/ratatouille.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/font.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/main.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/messages.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{theme}}/css/print.css" media="print">
<script src="{{ poche_url }}/themes/{{theme}}/js/jquery-2.0.3.min.js"></script>
<script src="{{ poche_url }}/themes/{{theme}}/js/init.js"></script>
<script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/closeMessage.js"></script>

9
themes/baggy/_menu.twig Normal file
View File

@ -0,0 +1,9 @@
<button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button>
<ul id="links" class="links">
<li><a href="./" {% if view == 'home' %}class="current"{% endif %}>{% trans "home" %}</a></li>
<li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li>
<li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li>
<li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li>
<li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
<li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
</ul>

7
themes/baggy/_top.twig Normal file
View File

@ -0,0 +1,7 @@
<header class="w600p center mbm">
<h1 class="logo">
{% if view == 'home' %}{% block logo %}<img width="100" height="100" src="{{ poche_url }}/themes/{{theme}}/img/logo-w.png" alt="logo poche" />{% endblock %}
{% else %}<a href="./" title="{% trans "return home" %}" >{{ block('logo') }}</a>
{% endif %}
</h1>
</header>

119
themes/baggy/config.twig Normal file
View File

@ -0,0 +1,119 @@
{% extends "layout.twig" %}
{% block title %}{% trans "config" %}{% endblock %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block content %}
<h2>{% trans "Saving articles" %}</h2>
<p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p>
<ul>
<li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/poche/" title="download the firefox extension">{% trans "download the extension" %}</a></li>
<li>Chrome: <a href="http://doc.wallabag.org/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li>
<li>Android: <a href="https://f-droid.org/repository/browse/?fdid=fr.gaulupeau.apps.Poche" title="download the application">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via Google Play" %}</a></li>
<li>Windows Phone: <a href="https://www.windowsphone.com/en-us/store/app/poche/334de2f0-51b5-4826-8549-a3d805a37e83" title="download the window phone application">{% trans "download the application" %}</a></li>
<li>
<form method="get" action="index.php">
<label class="addurl" for="plainurl">{% trans "By filling this field" %}:</label>
<input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" />
<input type="submit" value="{% trans "bag it!" %}" />
</form>
</li>
<li>{% trans "Bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "bag it!" %}</a></li>
</ul>
<h2>{% trans "Upgrading wallabag" %}</h2>
<ul>
<li>{% trans "Installed version" %} : <strong>{{ constant('POCHE') }}</strong></li>
<li>{% trans "Latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent stable version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %}</li>
{% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "Latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent development version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %}</li>{% endif %}
</ul>
<h2>{% trans "Feeds" %}</h2>
{% if token == '' %}
<p>{% trans "Your feed token is currently empty and must first be generated to enable feeds. Click <a href='?feed&amp;action=generate'>here to generate it</a>." %}</p>
{% else %}
<ul>
<li><a href="?feed&amp;type=home&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Unread feed" %}</a></li>
<li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li>
<li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li>
</ul>
<p>{% trans "Your token:" %} <strong>{{token}}</strong></p>
<p>{% trans "Your user id:" %} <strong>{{user_id}}</strong></p>
<p>{% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}</p>
{% endif %}
<h2>{% trans "Change your theme" %}</h2>
<form method="post" action="?updatetheme" name="changethemeform">
<fieldset class="w500p inline">
<div class="row">
<label class="col w150p" for="theme">{% trans "Theme:" %}</label>
<select class="col" id="theme" name="theme">
{% for key, theme in themes %}
<option value="{{ key }}" {{ theme.current ? 'selected' : '' }}>{{ theme.name }}</option>
{% endfor %}
</select>
</div>
<div class="row mts txtcenter">
<button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
</div>
</fieldset>
<input type="hidden" name="returnurl" value="{{ referer }}">
<input type="hidden" name="token" value="{{ token }}">
</form>
<h2>{% trans "Change your language" %}</h2>
<form method="post" action="?updatelanguage" name="changelanguageform">
<fieldset class="w500p inline">
<div class="row">
<label class="col w150p" for="language">{% trans "Language:" %}</label>
<select class="col" id="language" name="language">
{% for language in languages %}
<option value="{{ language.name }}" {{ language.current ? 'selected' : '' }}>{{ language.name }}</option>
{% endfor %}
</select>
</div>
<div class="row mts txtcenter">
<button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
</div>
</fieldset>
<input type="hidden" name="returnurl" value="{{ referer }}">
<input type="hidden" name="token" value="{{ token }}">
</form>
{% if http_auth == 0 %}
<h2>{% trans "Change your password" %}</h2>
<form method="post" action="?config" name="loginform">
<fieldset class="w500p">
<div class="row">
<label class="col w150p" for="password">{% trans "New password:" %}</label>
<input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2">
</div>
<div class="row">
<label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label>
<input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3">
</div>
<div class="row mts txtcenter">
<button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
</div>
</fieldset>
<input type="hidden" name="returnurl" value="{{ referer }}">
<input type="hidden" name="token" value="{{ token }}">
</form>
{% endif %}
<h2>{% trans "Import" %}</h2>
<p>{% trans "Please execute the import script locally as it can take a very long time." %}</p>
<p>{% trans "More info in the official documentation:" %} <a href="http://doc.wallabag.org/doku.php?id=users:migrate">wallabag.org</a></p>
<ul>
<li><a href="./?import&amp;from=pocket">{% trans "Import from Pocket" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCKET_FILE')) }}</li>
<li><a href="./?import&amp;from=readability">{% trans "Import from Readability" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('READABILITY_FILE')) }}</li>
<li><a href="./?import&amp;from=instapaper">{% trans "Import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li>
<li><a href="./?import&amp;from=poche">{% trans "Import from wallabag" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCHE_FILE')) }}</li>
</ul>
<h2>{% trans "Export your wallabag data" %}</h2>
{% if constant('STORAGE') == 'sqlite' %}
<p><a href="?download" target="_blank">{% trans "Click here" %}</a> {% trans "to download your database." %}</p>{% endif %}
<p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p>
{% endblock %}

0
themes/baggy/css/font.css Executable file
View File

821
themes/baggy/css/main.css Executable file
View File

@ -0,0 +1,821 @@
/* ==========================================================================
Sommaire
1 = Style Guide
2 = Layout
3 = Pictos
4 = Messages
5 = Article
6 = Media queries
========================================================================== */
html {
min-height: 100%;
}
body {
background: #EEE;
}
.login {
background: #333;
}
.login #main {
padding: 0;
margin: 0;
}
.login form {
background: #FFF;
padding: 1.5em;
box-shadow: 0 1px 8px rgba(0,0,0,0.9);
width: 20em;
position: absolute;
top: 8em;
left: 50%;
margin-left: -10em;
}
.login .logo {
position: absolute;
top: 2em;
left: 50%;
margin-left: -55px;
}
/* ==========================================================================
1 = Style Guide
========================================================================== */
::selection {
color: #FFF;
background: #000;
}
.desktopHide {
display: none;
}
.logo {
position: fixed;
z-index: 20;
top: 0.4em;
left: 0.6em;
}
h2, h3, h4 {
font-family: 'PT Sans', sans-serif;
text-transform: uppercase;
}
p, li {
color: #666;
}
a {
color: #000;
font-weight: bold;
}
a:hover, a:focus {
text-decoration: none;
}
form fieldset {
border:0;
padding: 0;
margin: 0;
}
form input[type="text"], select, form input[type="password"], form input[type="url"] {
border: 1px solid #999;
padding: 0.5em 1em;
min-width: 12em;
color: #666;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
select{
-webkit-appearance: none;
border-radius: 0;
background: #FFF url(../img/bg-select.png) no-repeat right center;
}
}
fieldset label {
min-width: 12.5em;
}
.inline .row {
display: inline-block;
margin-right: 0.5em;
}
.inline label {
min-width: 6em;
}
fieldset label {
display: inline-block;
margin-right: 0.5em;
color: #666;
}
form .row {
margin-bottom: 0.5em;
}
form button, input[type="submit"] {
cursor:pointer;
background: #000;
color: #FFF;
border:0;
padding: 0.5em 1em;
display: inline-block;
border:1px solid #000;
}
form button:hover, form button:focus, input[type="submit"]:hover, input[type="submit"]:focus {
background: #FFF;
color: #000;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
#bookmarklet {
cursor: move;
}
h2:after {
content: "";
height: 4px;
width: 70px;
background: #000;
display: block;
}
.links {
padding: 0;
margin: 0;
}
.links li {
list-style: none;
margin: 0;
padding: 0;
}
#links {
position: fixed;
top: 0;
width: 9em;
left: 0;
text-align: right;
background: #333;
padding-top: 9em;
height: 100%;
box-shadow:inset -4px 0 20px rgba(0,0,0,0.6);
z-index: 10;
}
#main {
margin-left: 12em;
position: relative;
z-index: 10;
padding-right: 5%;
}
#links a {
display: block;
padding: 0.5em 2em 0.5em 1em;
color: #FFF;
position: relative;
text-transform: uppercase;
text-decoration: none;
font-weight: normal;
font-family: 'PT Sans', sans-serif;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
#links a:hover, #links a:focus {
background: #999;
color: #000;
}
#links .current:after {
content: "";
width: 0;
height: 0;
position: absolute;
border-style: solid;
border-width: 10px;
border-color: transparent #EEE transparent transparent;
right: 0;
top: 50%;
margin-top: -10px;
}
#links li:last-child {
position: fixed;
bottom: 1em;
width: 10%;
}
#links li:last-child a:before {
font-size: 1.2em;
position: relative;
top: 2px;
}
/* ==========================================================================
2 = Layout
========================================================================== */
#content {
margin-top: 5em;
min-height: 30em;
}
footer {
text-align: right;
position: fixed;
bottom: 0;
right: 5em;
color: #999;
font-size: 0.8em;
font-style: italic;
}
footer a {
color: #999;
font-weight: normal;
}
.list-entries {
letter-spacing:-5px;
}
.list-entries + .results {
margin-bottom: 2em;
}
.estimatedTime a {
color: #999;
font-style: italic;
font-weight: normal;
font-size: 0.9em;
}
.estimatedTime small {
position: relative;
top: -1px;
}
.entrie {
background: #FFF;
letter-spacing:normal;
box-shadow: 0 3px 7px rgba(0,0,0,0.3);
display: inline-block;
width: 32%;
margin-bottom: 1.5em;
vertical-align: top;
margin-left: 1.5%;
position: relative;
overflow: hidden;
padding: 1.5em 1.5em 3em 1.5em;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.entrie:before {
content: "";
width: 0;
height: 0;
border-style:solid;
border-color: transparent transparent #000 transparent;
border-width: 10px;
position: absolute;
bottom: 0.3em;
z-index: 10;
right: 1.5em;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.entrie:after {
content: "";
position: absolute;
height: 7px;
width: 100%;
bottom: 0;
left: 0;
background: #000;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.entrie:hover {
box-shadow: 0 3px 10px rgba(0,0,0,1);
}
.entrie:hover:after {
height: 40px;
}
.entrie:hover:before {
bottom: 2.4em;
}
.entrie:hover h2 a {
color: #666;
}
.entrie h2 {
text-transform: none;
margin-bottom: 0;
}
.entrie h2:after {
content: none;
}
.entrie h2 a {
display: block;
text-decoration: none;
color: #000;
word-wrap: break-word;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.entrie h2 a:after {
content: "";
position: absolute;
top: 0;
width: 100%;
height: 100%;
left: 0;
}
.entrie p {
color: #666;
font-size: 0.9em;
line-height: 1.7;
}
.entrie h2 a:first-letter {
text-transform: uppercase;
}
.entrie:hover .tools {
bottom: 0;
}
.entrie .tools {
position: absolute;
bottom: -50px;
left: 0;
width: 100%;
z-index: 10;
padding-right: 0.5em;
text-align: right;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.entrie .tools a {
color: #666;
text-decoration: none;
display: block;
padding: 0.4em;
}
.entrie .tools a:hover {
color: #FFF;
}
.entrie .tools li {
display: inline-block;
}
.entrie:nth-child(3n+1) {
margin-left: 0;
}
.results {
letter-spacing: -5px;
padding: 0 0 0.5em;
}
.results > * {
display: inline-block;
vertical-align: top;
letter-spacing: normal;
width: 50%;
}
.pagination {
text-align: right;
}
.nb-results {
text-align: left;
font-style: italic;
color: #999;
}
.pagination > * {
display: inline-block;
margin-left: 0.5em;
}
.pagination a {
color: #999;
text-decoration: none;
}
.pagination a:hover, .pagination a:focus {
text-decoration: underline;
}
.pagination .disabled {
display: none;
}
/* ==========================================================================
3 = Pictos
========================================================================== */
@font-face {
font-family: 'icomoon';
src:url('../font/icomoon.eot?-s0mcsx');
src:url('../font/icomoon.eot?#iefix-s0mcsx') format('embedded-opentype'),
url('../font/icomoon.woff?-s0mcsx') format('woff'),
url('../font/icomoon.ttf?-s0mcsx') format('truetype'),
url('../font/icomoon.svg?-s0mcsx#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
.icon span {
position: absolute;
top: -9999px;
}
[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;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-flattr:before {
content: "\e800";
}
.icon-mail:before {
content: "\e80a";
}
.icon-up-open:before {
content: "\e80b";
}
.icon-star:before {
content: "\e805";
}
.icon-check:before {
content: "\e804";
}
.icon-link:before {
content: "\e801";
}
.icon-reply:before {
content: "\e806";
}
.icon-menu:before {
content: "\e802";
}
.icon-clock:before {
content: "\e803";
}
.icon-twitter:before {
content: "\e807";
}
.icon-down-open:before {
content: "\e809";
}
.icon-trash:before {
content: "\e80c";
}
.icon-delete:before {
content: "\e600";
}
.icon-power:before {
content: "\e601";
}
.icon-arrow-up-thick:before {
content: "\e602";
}
.icon-rss:before {
content: "\e808";
}
/* ==========================================================================
Icon selected
========================================================================== */
.icon-star.fav:before {
color: #FFF;
}
/* ==========================================================================
4 = Messages
========================================================================== */
.messages {
text-align: center;
}
.messages > * { display: inline-block;}
.closeMessage {
background: #000;
color: #FFF;
padding: 0.2em 0.5em;
text-decoration: none;
}
.closeMessage:hover, .closeMessage:focus {
background: #FFF;
color: #000;
}
.warning {
font-size: 3em;
color: #999;
font-style: italic;
position: absolute;
top: 50%;
left: 0;
width: 100%;
text-align: center;
padding-right: 5%;
margin-top: -2em;
}
/* ==========================================================================
5 = Article
========================================================================== */
#article {
width: 70%;
margin-bottom: 3em;
}
#article .tags {
margin-bottom: 1em;
}
#article i {
font-style: normal;
}
blockquote {
border:1px solid #999;
background: #FFF;
padding: 1em;
margin: 0;
}
#article h2, #article h3, #article h4 {
text-transform: none;
}
#article h2:after {
content: none;
}
.topPosF {
position: fixed;
right: 20%;
bottom: 2em;
font-size: 1.5em;
}
#article_toolbar {
margin-bottom: 1em;
}
#article_toolbar li {
display: inline-block;
}
#article_toolbar a {
background: #000;
padding: 0.3em 0.5em 0.2em;
color: #FFF;
text-decoration: none;
}
#article_toolbar a:hover, #article_toolbar a:focus {
background: #999;
}
.shaarli:before {
content: "*";
}
.return {
text-decoration: none;
margin-top: 1em;
display: block;
}
.return:before {
margin-right: 0.5em;
}
.notags {
font-style: italic;
color: #999;
}
.icon-rss {
background: #000;
color: #FFF;
padding: 0.2em 0.5em;
}
.icon-rss:before {
position: relative;
top: 2px;
}
.list-tags li {
margin-bottom: 0.5em;
}
.list-tags .icon-rss:hover, .list-tags .icon-rss:focus {
background: #FFF;
color: #000;
text-decoration: none;
}
.list-tags a {
text-decoration: none;
}
.list-tags a:hover, .list-tags a:focus {
text-decoration: underline;
}
/* ==========================================================================
6 = Media Queries
========================================================================== */
@media screen and (max-width: 1050px) {
.entrie {
width: 49%;
}
.entrie:nth-child(3n+1) {
margin-left: 1.5%;
}
.entrie:nth-child(2n+1) {
margin-left: 0;
}
}
@media screen and (max-width: 900px) {
#article {
width: 80%;
}
.topPosF {
right: 2.5em;
}
}
@media screen and (max-width: 700px) {
.entrie {
width: 100%;
margin-left: 0;
}
}
@media screen and (max-width: 500px) {
.entrie {
width: 100%;
margin-left: 0;
}
body > header {
background: #333;
position: fixed;
top: 0;
width: 100%;
height: 3em;
z-index: 11;
}
#links li:last-child {
position: static;
width: auto;
}
#links li:last-child a:before {
content: none;
}
.logo {
width: 1.5em;
height: 1.5em;
left: 0;
top: 0;
}
.login > header {
position: static;
}
.login form {
width: 100%;
position: static;
margin-left: 0;
}
.login .logo {
width: auto;
height: auto;
top: 0.5em;
width: 75px;
height: 75px;
margin-left: -37.5px;
}
.desktopHide {
display: block;
position: fixed;
z-index: 20;
top: 0;
right: 0;
border:0;
width: 2.5em;
height: 2.5em;
cursor: pointer;
background: #999;
font-size: 1.2em;
}
.desktopHide:hover, .desktopHide:focus {
background: #FFF;
}
#links {
display: none;
width: 100%;
height: auto;
padding-top: 3em;
}
footer {
position: static;
margin-right: 3em;
}
#main {
margin-left: 1.5em;
padding-right: 1.5em;
position: static;
}
#article_toolbar .topPosF {
display: none;
}
#article {
width: 100%;
}
#article h1 {
font-size: 1.5em;
}
#article_toolbar a {
padding: 0.3em 0.4em 0.2em;
}
}

0
themes/baggy/css/messages.css Executable file
View File

48
themes/baggy/css/print.css Executable file
View File

@ -0,0 +1,48 @@
/* ### Layout ### */
body {
font-family: Serif;
background-color: #fff;
}
@page {
margin: 1cm;
}
img {
max-width: 100% !important;
}
/* ### Content ### */
/* Hide useless blocks */
body > header,
#links,
#sort,
body > footer,
.top_link,
div.tools,
header div,
.messages,
.entrie + .results {
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;
}

View File

@ -0,0 +1,211 @@
/*
Ratatouille mini Framework css by Thomas LEBEAU
Base on KNACSS => www.KNACSS.com (2013-10) @author: Raphael Goetter, Alsacreations
and normalize.css
*/
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
body {
font-size: 1em;
line-height:1.5;
margin: 0;
}
/* ==========================================================================
Mise en forme
========================================================================== */
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child,
h6:first-child,
p:first-child,
ul:first-child,
ol:first-child,
dl:first-child{
margin-top: 0;
}
code,
kbd,
pre,
samp {
font-family: monospace, serif;
}
pre {
white-space: pre-wrap;
}
.upper {
text-transform: uppercase;
}
.bold {
font-weight: bold;
}
.inner {
margin: 0 auto;
max-width: 61.25em;/*980px*/
}
table, img {
max-width: 100%;
height :auto;
}
iframe {
max-width: 100%;
}
.fl {
float: left;
}
.fr {
float: right;
}
table {
border-collapse: collapse;
}
figure {
margin: 0;
}
button,
input,
select,
textarea {
font-family: inherit;
font-size: 100%;
margin: 0;
}
input[type="search"] {
-webkit-appearance: textfield;
}
/* ==========================================================================
Mise en page
========================================================================== */
.dib {
display: inline-block;
vertical-align: middle;
}
.dnone {
display: none;
}
.dtable { display:table }
.dtable > * { display:table-row; }
.dtable > * > * { display:table-cell; }
.element-invisible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.small {
font-size:0.8em;
}
.big {
font-size: 1.2em;
}
/*Width*/
.w100 { width:100%; }
.w90 { width:90%; }
.w80 { width:80%; }
.w70 { width:70%; }
.w60 { width:60%; }
.w50 { width:50%; }
.w40 { width:40%; }
.w30 { width:30%; }
.w20 { width:20%; }
.w10 { width:10%; }
/* ==========================================================================
Internet Explorer
========================================================================== */
/*IE8 and IE9*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/*IE8 and IE9*/
audio,
canvas,
video {
display: inline-block;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
select{
-webkit-appearance: none;
border-radius: 0;
}
}
/* ==========================================================================
Medias Queries
========================================================================== */
/*Desktop 1080px*/
@media screen and (max-width: 67.50em) {
}
/*Tablet 800px*/
@media screen and (max-width: 50em) {
}
/*Mobile 640px*/
@media screen and (max-width: 40em) {
}

View File

@ -0,0 +1,20 @@
{% extends "layout.twig" %}
{% block title %}edit tags{% endblock %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block content %}
{% if tags is empty %}
<div class="notags">no tags</div>
{% endif %}
<ul>
{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
</ul>
<form method="post" action="./?action=add_tag">
<label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
<p>{% trans "You can enter multiple tags, separated by commas." %}</p>
<input type="hidden" name="entry_id" value="{{ entry_id }}" />
<input type="submit" value="Tag" />
</form>
<a class="icon icon-reply return" href="./?view=view&id={{ entry_id }}">{% trans "return to article" %}</a>
{% endblock %}

BIN
themes/baggy/font/icomoon.eot Executable file

Binary file not shown.

26
themes/baggy/font/icomoon.svg Executable file
View File

@ -0,0 +1,26 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="512">
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
<glyph unicode="&#xe600;" d="M256 389.333c-94.272 0-170.667-76.416-170.667-170.666s76.394-170.667 170.667-170.667 170.667 76.416 170.667 170.667-76.394 170.666-170.667 170.666zM335.082 169.749c8.341-8.341 8.341-21.824 0-30.166-4.16-4.16-9.622-6.25-15.082-6.25s-10.923 2.091-15.082 6.25l-48.918 48.918-48.917-48.918c-4.16-4.16-9.621-6.25-15.083-6.25s-10.923 2.091-15.083 6.25c-8.341 8.341-8.341 21.824 0 30.166l48.917 48.918-48.917 48.917c-8.341 8.341-8.341 21.824 0 30.166s21.824 8.341 30.166 0l48.917-48.917 48.918 48.917c8.341 8.341 21.824 8.341 30.166 0s8.341-21.824 0-30.166l-48.918-48.917 48.918-48.918z" />
<glyph unicode="&#xe601;" d="M245.333 73.109c-37.035 0-71.85 14.421-98.048 40.598-26.176 26.197-40.618 61.014-40.618 98.070s14.442 71.872 40.618 98.070c8.341 8.341 21.824 8.341 30.166 0s8.341-21.824 0-30.166c-18.133-18.154-28.118-42.261-28.118-67.904s9.984-49.771 28.118-67.904c18.133-18.134 42.219-28.096 67.882-28.096s49.749 9.984 67.883 28.096c18.154 18.134 28.118 42.24 28.118 67.904s-9.984 49.771-28.118 67.904c-8.341 8.341-8.341 21.824 0 30.166s21.824 8.341 30.166 0c26.176-26.219 40.618-61.035 40.618-98.070s-14.442-71.872-40.618-98.070c-26.197-26.176-61.014-40.597-98.048-40.597zM245.333 234.667c-11.797 0-21.333 9.558-21.333 21.333v106.667c0 11.776 9.536 21.333 21.334 21.333s21.334-9.558 21.334-21.333v-106.667c0-11.776-9.536-21.333-21.334-21.333z" />
<glyph unicode="&#xe602;" d="M256 401.664l-136.832-136.832c-16.662-16.661-16.662-43.67 0-60.331s43.669-16.661 60.331 0l33.834 33.835v-154.496c0-23.552 19.094-42.666 42.667-42.666 23.552 0 42.666 19.115 42.666 42.666v154.496l33.834-33.835c8.341-8.341 19.243-12.502 30.166-12.502s21.824 4.16 30.166 12.502c16.661 16.661 16.661 43.67 0 60.331l-136.832 136.832z" />
<glyph unicode="&#xe800;" d="M0 25.856v263.168q0 91.648 43.52 142.336t132.608 50.688h280.576q-2.56-2.56-26.624-27.136t-51.2-51.712-55.808-55.808-48.64-47.616-21.504-18.944q-7.68 0-7.68 8.192v79.872h-24.576q-30.208 0-48.128-3.072t-32.256-13.312-19.968-29.184-6.144-49.152v-134.144zM34.304-34.048q2.56 2.56 27.136 27.136t51.2 51.712 55.808 56.32 48.64 47.616 20.992 18.432q7.68 0 7.68-8.192v-79.872h24.576q59.392 0 82.944 18.432t23.040 76.288v134.144l114.688 114.176v-263.168q0-91.648-43.008-142.336t-133.12-50.688h-280.576z" horiz-adv-x="491" />
<glyph unicode="&#xe801;" d="M150.528 104.192q7.168 7.168 17.408 7.168t18.432-7.168q16.384-17.408 0-35.84l-21.504-20.48q-28.672-28.672-67.584-28.672-39.936 0-68.608 28.672t-28.672 67.584q0 39.936 28.672 68.608l75.776 75.776q35.84 34.816 73.728 39.424t65.536-22.016q8.192-8.192 8.192-18.432t-8.192-18.432q-18.432-16.384-35.84 0-25.6 24.576-67.584-17.408l-75.776-74.752q-13.312-13.312-13.312-32.768t13.312-31.744q13.312-13.312 32.256-13.312t32.256 13.312zM380.928 398.080q28.672-28.672 28.672-67.584 0-39.936-28.672-68.608l-80.896-80.896q-37.888-36.864-76.8-36.864-31.744 0-57.344 25.6-7.168 7.168-7.168 17.408t7.168 18.432q7.168 7.168 17.92 7.168t17.92-7.168q25.6-24.576 62.464 12.288l80.896 79.872q14.336 14.336 14.336 32.768 0 19.456-14.336 31.744-12.288 13.312-28.672 15.872t-30.72-10.752l-25.6-25.6q-8.192-7.168-18.432-7.168t-17.408 7.168q-17.408 17.408 0 35.84l25.6 25.6q27.648 27.648 65.024 26.112t66.048-31.232z" horiz-adv-x="410" />
<glyph unicode="&#xe802;" d="M438.784 96v-36.352q0-7.68-5.12-12.8t-13.312-5.632h-401.92q-7.68 0-12.8 5.632t-5.632 12.8v36.352q0 7.68 5.632 12.8t12.8 5.632h401.92q7.68 0 13.312-5.632t5.12-12.8zM438.784 242.432v-36.864q0-7.168-5.12-12.8t-13.312-5.12h-401.92q-7.68 0-12.8 5.12t-5.632 12.8v36.864q0 7.168 5.632 12.8t12.8 5.12h401.92q7.68 0 13.312-5.12t5.12-12.8zM438.784 388.352v-36.352q0-7.68-5.12-12.8t-13.312-5.632h-401.92q-7.68 0-12.8 5.632t-5.632 12.8v36.352q0 7.68 5.632 13.312t12.8 5.12h401.92q7.68 0 13.312-5.12t5.12-13.312z" horiz-adv-x="439" />
<glyph unicode="&#xe803;" d="M235.52 459.52q97.28 0 166.4-69.12t69.12-166.4-69.12-166.4-166.4-69.12-166.4 69.12-69.12 166.4 69.12 166.4 166.4 69.12zM235.52 39.68q76.8 0 130.56 54.272t53.76 130.048q0 76.8-53.76 130.56t-130.56 53.76q-75.776 0-130.048-53.76t-54.272-130.56q0-75.776 54.272-130.048t130.048-54.272zM253.952 357.12v-124.928l76.8-76.8-25.6-25.6-87.040 87.040v140.288h35.84z" horiz-adv-x="471" />
<glyph unicode="&#xe804;" d="M127.488 44.8q-17.408 0-28.672 14.336l-92.16 120.832q-8.192 12.288-6.144 26.624t13.312 23.552 26.112 7.168 24.064-14.336l60.416-78.848 151.552 242.688q8.192 12.288 22.016 15.36t27.136-4.096q12.288-8.192 15.36-22.016t-4.096-27.136l-179.2-286.72q-10.24-16.384-28.672-16.384z" horiz-adv-x="342" />
<glyph unicode="&#xe805;" d="M225.28 449.28l61.44-172.032h163.84l-134.144-100.352 48.128-178.176-139.264 106.496-139.264-106.496 48.128 178.176-134.144 100.352h163.84z" horiz-adv-x="451" />
<glyph unicode="&#xe806;" d="M460.8 49.92q-44.032 77.824-106.496 100.864t-168.96 23.040v-111.616l-185.344 171.008 185.344 164.864v-98.304q46.080 0 86.016-13.824t67.072-35.84 49.152-48.64 35.328-53.248 22.528-48.64 12.288-35.328z" horiz-adv-x="461" />
<glyph unicode="&#xe807;" d="M471.040 370.432q-18.432-27.648-48.128-50.176v-12.288q0-66.56-30.72-128t-95.232-103.936-148.48-42.496q-81.92 0-148.48 43.008 7.168-1.024 23.552-1.024 67.584 0 119.808 40.96-31.744 1.024-56.32 19.456t-33.792 48.128q5.12-2.048 17.408-2.048 13.312 0 25.6 3.072-33.792 7.168-55.296 33.792t-21.504 61.44v1.024q18.432-10.24 43.008-12.288-43.008 29.696-43.008 80.896 0 24.576 13.312 48.128 78.848-96.256 199.68-100.352-3.072 9.216-3.072 21.504 0 39.936 28.16 68.096t69.12 28.16q41.984 0 69.632-29.696 30.72 6.144 61.44 22.528-10.24-33.792-41.984-53.248 28.672 4.096 55.296 15.36z" horiz-adv-x="471" />
<glyph unicode="&#xe808;" d="M109.568 96q0-23.040-15.872-38.912t-38.912-15.872-38.912 15.872-15.872 38.912 15.872 38.912 38.912 15.872 38.912-15.872 15.872-38.912zM256 60.672q0.512-7.68-4.608-13.312-5.632-6.144-13.824-6.144h-38.4q-7.168 0-12.288 4.608t-5.632 11.776q-6.144 65.536-52.736 112.128t-112.128 52.736q-7.168 0.512-11.776 5.632t-4.608 12.288v38.4q0 8.192 6.144 13.312 4.608 5.12 12.288 5.12h1.536q45.568-3.584 87.040-23.040t74.24-51.712q32.256-32.256 51.712-74.24t23.040-87.552zM402.432 60.16q0.512-7.68-5.12-13.312-5.12-5.632-13.312-5.632h-40.96q-7.168 0-12.8 5.12t-5.632 11.776q-3.072 61.44-28.672 116.736t-66.048 96.256-96.256 66.048-116.224 29.184q-7.168 0-12.288 5.632t-5.12 12.288v40.96q0 7.68 5.632 13.312 5.12 5.12 12.8 5.12h0.512q75.264-4.096 143.36-34.304t121.856-83.968q53.248-53.248 83.968-121.856t34.304-143.36z" horiz-adv-x="402" />
<glyph unicode="&#xe809;" d="M0 314.112l75.776 75.776 180.224-179.712 180.224 179.712 75.776-75.776-256-256-75.776 75.776z" />
<glyph unicode="&#xe80a;" d="M475.648 50.432v219.136q-9.216-10.24-19.968-18.944-76.288-58.368-121.856-96.256-14.336-12.288-23.552-19.456t-24.576-13.824-29.184-6.656h-1.024q-13.312 0-29.184 6.656t-24.576 13.824-23.552 19.456q-45.056 37.888-121.856 96.256-10.752 8.704-19.968 18.944v-219.136q0-4.096 3.072-6.656t6.144-2.56h420.864q3.584 0 6.144 2.56t3.072 6.656zM475.648 350.464v7.168t-0.512 3.584-0.512 3.584-1.536 2.56-2.56 2.048-4.096 1.024h-420.864q-3.584 0-6.144-3.072t-3.072-6.144q0-48.128 41.984-81.408 55.296-43.52 114.688-90.624 2.048-1.024 10.24-8.192t12.8-10.752 12.8-9.216 14.336-7.68 12.288-2.56h1.024q5.632 0 12.288 2.56t14.336 7.68 12.8 9.216 12.8 10.752 10.24 8.192q59.392 47.104 114.688 90.624 15.36 12.288 28.672 33.28t13.312 37.376zM512 361.216v-310.784q0-18.944-13.312-32.256t-32.256-13.824h-420.864q-18.432 0-32.256 13.824t-13.312 32.256v310.784q0 18.944 13.312 32.256t32.256 13.312h420.864q18.944 0 32.256-13.312t13.312-32.256z" />
<glyph unicode="&#xe80b;" d="M0 133.888l256 256 256-256-75.776-75.776-180.224 179.712-180.224-179.712z" />
<glyph unicode="&#xe80c;" d="M25.6 279.296q62.464-35.84 168.96-35.84t168.96 35.84l-27.648-248.832q-1.024-7.168-17.92-18.432t-51.2-22.016-72.192-10.752-71.68 10.752-51.2 22.016-18.432 18.432zM275.456 432.896q48.128-9.216 80.896-28.16t32.768-36.352v-5.12q0-29.696-57.344-50.688t-137.216-20.992-137.216 20.992-57.344 50.688v5.12q0 17.408 32.768 36.352t80.896 28.16l21.504 24.576q11.264 13.312 35.84 13.312h47.104q26.624 0 35.84-13.312zM247.808 375.552h43.008q-47.104 56.32-53.248 64.512-7.168 8.192-16.384 8.192h-52.224q-11.264 0-16.384-8.192l-54.272-64.512h43.008l32.768 33.792h41.984z" horiz-adv-x="389" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
themes/baggy/font/icomoon.ttf Executable file

Binary file not shown.

BIN
themes/baggy/font/icomoon.woff Executable file

Binary file not shown.

49
themes/baggy/home.twig Normal file
View File

@ -0,0 +1,49 @@
{% extends "layout.twig" %}
{% block title %}
{% if view == 'fav' %}
{% trans "favorites" %}
{% elseif view == 'archive' %}
{% trans "archive" %}
{% else %}
{% trans "unread" %}
{% endif %}
{% endblock %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block content %}
{% if entries is empty %}
<div class="messages warning"><p>{% trans "No articles found." %}</p></div>
{% else %}
{% block pager %}
{% if nb_results > 1 %}
<div class="results">
<div class="nb-results">{{ nb_results }} {% trans "results" %}</div>
{{ page_links | raw }}
</div>
{% endif %}
{% endblock %}
<div class="list-entries">
{% for entry in entries %}
<div id="entry-{{ entry.id|e }}" class="entrie">
<h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
{% if entry.content| getReadingTime > 0 %}
<div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min</span></div>
{% else %}
<div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} <small class="inferieur"><</small> 1 min</span></div>
{% endif %}
<ul class="tools links">
<li><a title="{% trans "Toggle mark as read" %}" class="tool icon-check icon {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&amp;id={{ entry.id|e }}"><span>{% trans "Toggle mark as read" %}</span></a></li>
<li><a title="{% trans "toggle favorite" %}" class="tool icon-star icon {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
<li><a title="{% trans "delete" %}" class="tool delete icon-trash icon" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
<li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.url | e | getDomain }}</span></a></li>
</ul>
<p>{{ entry.content|striptags|slice(0, 300) }}...</p>
</div>
{% endfor %}
</div>
{% if view == 'home' %}{% if nb_results > 1 %}<a title="{% trans "Mark all the entries as read" %}" href="./?action=archive_all">{{ "Mark all the entries as read" }} {% trans "" %}</a>{% endif %}{% endif %}
{% endif %}
{{ block('pager') }}
{% endblock %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
themes/baggy/img/favicon.ico Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
themes/baggy/img/logo-w.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1,300 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="800px" height="800px" viewBox="0 0 800 800" overflow="visible" enable-background="new 0 0 800 800"
xml:space="preserve">
<defs>
</defs>
<image overflow="visible" width="800" height="800" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAMgCAYAAADbcAZoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS
ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD
cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNl
SUQ9InhtcC5paWQ6MkMyNzEzMDQ4QTgzMTFFM0JGNkJCRDhDMjI5OTRBNkIiIHhtcE1NOkRvY3Vt
ZW50SUQ9InhtcC5kaWQ6MkMyNzEzMDU4QTgzMTFFM0JGNkJCRDhDMjI5OTRBNkIiPiA8eG1wTU06
RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQzI3MTMwMjhBODMxMUUzQkY2
QkJEOEMyMjk5NEE2QiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQzI3MTMwMzhBODMxMUUz
QkY2QkJEOEMyMjk5NEE2QiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1w
bWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtTNJDcAADxbSURBVHja7N37ddPK2gfgybf2/9ungm0q
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">
</image>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

BIN
themes/baggy/img/logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="64" height="64">
<circle cx="32" cy="32" r="29.5" style="fill:#000" />
<path d="m 16,18 33,0 0,26 -16.5,6 -16.5,-6 z" fill="#fff" />
<rect width="9" height="2.5" x="17.5" y="24.5" fill="#000" />
<rect width="9" height="2.5" x="28" y="24.5" fill="#000" />
<rect width="9" height="2.5" x="38.5" y="24.5" fill="#000" />
</svg>

After

Width:  |  Height:  |  Size: 444 B

View File

@ -0,0 +1,6 @@
$(document).ready(function() {
current_url = window.location.href
if (current_url.match("&closewin=true")) {
window.close();
}
});

View File

@ -0,0 +1,17 @@
$(function(){
//---------------------------------------------------------------------------
// Show the close icon when the user hover over a message
//---------------------------------------------------------------------------
// $('.messages').on('mouseenter', function(){
// $(this).find('a.closeMessage').stop(true, true).show();
// }).on('mouseleave', function(){
// $(this).find('a.closeMessage').stop(true, true).hide();
// });
//---------------------------------------------------------------------------
// Close the message box when the user clicks the close icon
//---------------------------------------------------------------------------
$('a.closeMessage').on('click', function(){
$(this).parents('div.messages').slideUp(300, function(){ $(this).remove(); });
return false;
});
});

12
themes/baggy/js/init.js Executable file
View File

@ -0,0 +1,12 @@
document.addEventListener('DOMContentLoaded', function() {
var menu = document.getElementById('menu');
menu.addEventListener('click', function(){
if(this.nextElementSibling.style.display === "block") {
this.nextElementSibling.style.display = "none";
}else {
this.nextElementSibling.style.display = "block";
}
});
});

1
themes/baggy/js/jquery-2.0.3.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,25 @@
function supportsLocalStorage() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
}
function savePercent(id, percent) {
if (!supportsLocalStorage()) { return false; }
localStorage["poche.article." + id + ".percent"] = percent;
return true;
}
function retrievePercent(id) {
if (!supportsLocalStorage()) { return false; }
var bheight = $(document).height();
var percent = localStorage["poche.article." + id + ".percent"];
var scroll = bheight * percent;
$('html,body').animate({scrollTop: scroll}, 'fast');
return true;
}

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="{{ lang }}"><![endif]-->
<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="{{ lang }}"><![endif]-->
<!--[if IE 8]><html class="no-js ie8 ie678" lang="{{ lang }}"><![endif]-->
<!--[if gt IE 8]><html class="no-js" lang="{{ lang }}"><![endif]-->
<html lang="{{ lang }}">
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<!--[if IE]>
<meta http-equiv="X-UA-Compatible" content="IE=10">
<![endif]-->
<title>{% block title %}{% endblock %} - wallabag</title>
{% include '_head.twig' %}
{% include '_bookmarklet.twig' %}
</head>
<body class="login">
{% include '_top.twig' %}
<div id="main">
{% block menu %}{% endblock %}
{% block precontent %}{% endblock %}
{% block messages %}
{% include '_messages.twig' %}
{% endblock %}
<div id="content" class="w600p center">
{% block content %}{% endblock %}
</div>
</div>
{% include '_footer.twig' %}
</body>
</html>

31
themes/baggy/layout.twig Normal file
View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="{{ lang }}"><![endif]-->
<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="{{ lang }}"><![endif]-->
<!--[if IE 8]><html class="no-js ie8 ie678" lang="{{ lang }}"><![endif]-->
<!--[if gt IE 8]><html class="no-js" lang="{{ lang }}"><![endif]-->
<html lang="{{ lang }}">
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<!--[if IE]>
<meta http-equiv="X-UA-Compatible" content="IE=10">
<![endif]-->
<title>{% block title %}{% endblock %} - wallabag</title>
{% include '_head.twig' %}
{% include '_bookmarklet.twig' %}
</head>
<body>
{% include '_top.twig' %}
<div id="main">
{% block menu %}{% endblock %}
{% block precontent %}{% endblock %}
{% block messages %}
{% include '_messages.twig' %}
{% endblock %}
<div id="content" class="w600p center">
{% block content %}{% endblock %}
</div>
</div>
{% include '_footer.twig' %}
</body>
</html>

34
themes/baggy/login.twig Normal file
View File

@ -0,0 +1,34 @@
{% extends "layout-login.twig" %}
{% block title %}{% trans "login to your wallabag" %}{% endblock %}
{% block content %}
{% if http_auth == 0 %}
<form method="post" action="?login" name="loginform">
<fieldset class="w500p center">
<h2 class="mbs txtcenter">{% trans "Login to wallabag" %}</h2>
{% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %}
<div class="row">
<label class="col w150p" for="login">{% trans "Username" %}</label>
<input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
</div>
<div class="row">
<label class="col w150p" for="password">{% trans "Password" %}</label>
<input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
</div>
<div class="row">
<label class="col w150p" for="longlastingsession">{% trans "Stay signed in" %}</label>
<div class="col">
<input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3">
<small class="inbl">{% trans "(Do not check on public computers)" %}</small>
</div>
</div>
<div class="row mts txtcenter">
<button class="bouton" type="submit" tabindex="4">{% trans "Login" %}</button>
</div>
</fieldset>
<input type="hidden" name="returnurl" value="{{ referer }}">
<input type="hidden" name="token" value="{{ token }}">
</form>
{% endif %}
{% endblock %}

BIN
themes/baggy/screenshot.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

34
themes/baggy/tag.twig Normal file
View File

@ -0,0 +1,34 @@
{% extends "layout.twig" %}
{% block title %}tag {% endblock %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block content %}
<h3>{% trans "Tag" %} {{ tag.value }}</h3>
{% if entries is empty %}
<div class="messages warning"><p>{% trans "No link available here!" %}</p></div>
{% else %}
{% block pager %}
{% if nb_results > 1 %}
<div class="results">
<div class="nb-results">{{ nb_results }} {% trans "results" %}</div>
{{ page_links | raw }}
</div>
{% endif %}
{% endblock %}
<div class="list-entries">
{% for entry in entries %}
<div id="entry-{{ entry.id|e }}" class="entrie">
<h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
<ul class="tools links">
<li><a title="{% trans "Toggle mark as read" %}" class="tool icon-check icon {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&amp;id={{ entry.id|e }}"><span>{% trans "Toggle mark as read" %}</span></a></li>
<li><a title="{% trans "toggle favorite" %}" class="tool icon-star icon {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
<li><a title="{% trans "delete" %}" class="tool delete icon-trash icon" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
<li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.url | e | getDomain }}</span></a></li>
</ul>
<p>{{ entry.content|striptags|slice(0, 300) }}...</p>
</div>
{% endfor %}
</div>
{% endif %}
{% endblock %}

13
themes/baggy/tags.twig Normal file
View File

@ -0,0 +1,13 @@
{% extends "layout.twig" %}
{% block title %}tags{% endblock %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block content %}
<h2>{% trans "Tags" %}</h2>
<ul class="list-tags">
{% for tag in tags %}<li>{% if token != '' %}<a class="icon icon-rss" href="?feed&amp;type=tag&amp;user_id={{ user_id }}&amp;tag_id={{ tag.id }}&amp;token={{ token }}" target="_blank"><span>rss</span></a>{% endif %} <a href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a>
</li>
{% endfor %}
</ul>
{% endblock %}

3
themes/baggy/theme.ini Normal file
View File

@ -0,0 +1,3 @@
name = Baggy
description = Responsive black and white theme especially adapted to smartphones.
requirements[] = default

32
themes/baggy/view.twig Normal file
View File

@ -0,0 +1,32 @@
{% extends "layout.twig" %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %}
{% block content %}
<div id="article_toolbar">
<ul class="links">
<li class="topPosF"><a href="#top" title="{% trans "Back to top" %}" class="tool top icon icon-arrow-up-thick"><span>{% trans "Back to top" %}</span></a></li>
<li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.url | e | getDomain }}</span></a></li>
<li><a title="{% trans "Mark as read" %}" class="tool icon icon-check {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&amp;id={{ entry.id|e }}"><span>{% trans "Toggle mark as read" %}</span></a></li>
<li><a title="{% trans "Favorite" %}" class="tool icon icon-star {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&amp;id={{ entry.id|e }}"><span>{% trans "Toggle favorite" %}</span></a></li>
<li><a title="{% trans "Delete" %}" class="tool delete icon icon-trash" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "Delete" %}</span></a></li>
{% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans "Tweet" %}"><span>{% trans "Tweet" %}</span></a></li>{% endif %}
{% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans "Email" %}"><span>{% trans "Email" %}</span></a></li>{% endif %}
{% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %}
{% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span> ({{ flattr.numflattrs }})</a></li>{% endif %}{% endif %}
<li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{% trans "Does this article appear wrong?" %}" class="tool bad-display icon icon-delete"><span>{% trans "Does this article appear wrong?" %}</span></a></li>
</ul>
</div>
<div id="article">
<header class="mbm">
<h1>{{ entry.title|raw }}</h1>
</header>
<aside class="tags">
tags: {% for tag in tags %}<a href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a> {% endfor %}<a href="./?view=edit-tags&amp;id={{ entry.id|e }}" title="{% trans "Edit tags" %}">✎</a>
</aside>
<article>
{{ content | raw }}
</article>
</div>
{% endblock %}

View File

@ -3,6 +3,7 @@
<li><a href="./" {% if view == 'home' %}class="current"{% endif %}>{% trans "home" %}</a></li> <li><a href="./" {% if view == 'home' %}class="current"{% endif %}>{% trans "home" %}</a></li>
<li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li> <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li>
<li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li> <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li>
<li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li>
<li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
<li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
</ul> </ul>

Binary file not shown.

View File

@ -8,3 +8,15 @@
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
} }
@font-face {
font-family: 'icomoon';
src:url('../font/icomoon.eot?-72nnzw');
src:url('../font/icomoon.eot?#iefix-72nnzw') format('embedded-opentype'),
url('../font/icomoon.woff?-72nnzw') format('woff'),
url('../font/comoon.ttf?-72nnzw') format('truetype'),
url('../font/icomoon.svg?-72nnzw#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}

View File

@ -157,6 +157,8 @@ h1 a {
transition-delay:1.55ms; transition-delay:1.55ms;
} }
#article_toolbar li:nth-child(2) { display: none; }
#menu:before { #menu:before {
content: "\e801"; content: "\e801";
display: block; display: block;
@ -299,7 +301,7 @@ ul li {
color:#000; color:#000;
} }
.tools a:before { display: block; font-family: 'fontello'; } .tools a:before { display: block; font-family: 'icomoon'; }
.fav-off:before, .fav:before { content: '\e805'; } /* '' */ .fav-off:before, .fav:before { content: '\e805'; } /* '' */
@ -308,13 +310,13 @@ ul li {
background: #FFF; background: #FFF;
color:#000; color:#000;
} }
.link:before { content: '\e800'; } /* '' */ .link:before { content: '\e801'; } /* '' */
.delete:before { content: '\e803'; } /* '' */ .delete:before { content: '\e80c'; } /* '' */
.reading-time:before { content: '\e802'; } /* '' */ .reading-time:before { content: '\e803'; } /* '' */
#article_toolbar a:before { #article_toolbar a:before {
display: block; display: block;
font-family: 'fontello'; font-family: 'icomoon';
} }
#article_toolbar a { #article_toolbar a {
@ -343,7 +345,8 @@ ul li {
.email:before { content: '\e80a'; } /* '' */ .email:before { content: '\e80a'; } /* '' */
.icon-check:before { content: '\e804'; } /* '' */ .icon-check:before { content: '\e804'; } /* '' */
.back:before { content: '\e806'; } /* '' */ .back:before { content: '\e806'; } /* '' */
.bad-display:before { content: '\e808'; } /* '' */ .flattr:before { content: '\e800'; } /* '' */
.bad-display:before { content: '\e600'; } /* '' */
.twitter:before { content: '\e807'; } /* '' */ .twitter:before { content: '\e807'; } /* '' */
#article_toolbar .flattrli { #article_toolbar .flattrli {
@ -618,3 +621,64 @@ form button:hover, form button:focus, form input[type="submit"]:hover, form inpu
position:static; position:static;
} }
} }
.w600p {
width: 70%;
margin: auto;
}
.tagForm {
margin: 1em 0;
}
.tagForm p {
font-style: italic;
margin: 0;
font-size: 0.8em;
color: #999;
}
.tagForm label {
width: auto;
margin-right: 1em;
}
.back:before {
font-family: "icomoon";
}
.back.link {
color: #000;
text-decoration: none;
}
.back.link:before {
margin-right: 0.5em;
}
.tag-list a {
color: #000;
text-decoration: none;
}
.tag-list li {
display: inline-block;
margin-right: 1em;
}
a:hover {
text-decoration: underline;
}
.tag {
background: #000;
color: #FFF;
padding: 0.5em 1em;
text-decoration: none;
}
.tag:hover, .tag:focus {
background: #FFF;
color: #000;
}

View File

@ -0,0 +1,20 @@
{% extends "layout.twig" %}
{% block title %}edit tags{% endblock %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block content %}
{% if tags is empty %}
<em>no tags</em>
{% endif %}
<ul class='tag-list'>
{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
</ul>
<form method="post" action="./?action=add_tag" class="tagForm">
<label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
<p>{% trans "You can enter multiple tags, separated by commas." %}</p>
<input type="hidden" name="entry_id" value="{{ entry_id }}" />
<input type="submit" value="Tag" />
</form>
<a class="back link" href="./?view=view&id={{ entry_id }}">{% trans "return to article" %}</a>
{% endblock %}

Binary file not shown.

View File

@ -1,23 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2013 by original authors @ fontello.com</metadata>
<defs>
<font id="fontello" horiz-adv-x="1000" >
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="mail" unicode="&#xe80a;" d="m929 11v428q-18-20-39-37q-149-114-238-188q-28-24-46-38t-48-27t-57-13h-2q-26 0-57 13t-48 27t-46 38q-88 74-238 188q-21 17-39 37v-428q0-8 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7t-1 7t-3 5t-5 4t-8 2h-822q-7 0-12-6t-6-12q0-94 82-159q108-85 224-177q4-2 20-16t25-21t25-18t28-15t24-5h2q11 0 24 5t28 15t25 18t25 21t20 16q116 92 224 177q30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z" horiz-adv-x="1000" />
<glyph glyph-name="up-open" unicode="&#xe80b;" d="m0 174l352 352l148 148l148-148l352-352l-148-148l-352 351l-352-351z" horiz-adv-x="1000" />
<glyph glyph-name="star" unicode="&#xe805;" d="m440 790l120-336l320 0l-262-196l94-348l-272 208l-272-208l94 348l-262 196l320 0z" horiz-adv-x="880" />
<glyph glyph-name="check" unicode="&#xe804;" d="m249 0q-34 0-56 28l-180 236q-16 24-12 52t26 46t51 14t47-28l118-154l296 474q16 24 43 30t53-8q24-16 30-43t-8-53l-350-560q-20-32-56-32z" horiz-adv-x="667" />
<glyph glyph-name="link" unicode="&#xe800;" d="m294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56q-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0q-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132q0-78-56-134l-158-158q-74-72-150-72q-62 0-112 50q-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64q0 38-28 62q-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z" horiz-adv-x="800" />
<glyph glyph-name="reply" unicode="&#xe806;" d="m900 10q-86 152-208 197t-330 45l0-218l-362 334l362 322l0-192q90 0 168-27t131-70t96-95t69-104t44-95t24-69z" horiz-adv-x="900" />
<glyph glyph-name="menu" unicode="&#xe801;" d="m857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" />
<glyph glyph-name="clock" unicode="&#xe802;" d="m460 810q190 0 325-135t135-325t-135-325t-325-135t-325 135t-135 325t135 325t325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244l150-150l-50-50l-170 170l0 274l70 0z" horiz-adv-x="920" />
<glyph glyph-name="block" unicode="&#xe808;" d="m480 830q200 0 340-140t140-340q0-198-140-339t-340-141q-198 0-339 141t-141 339q0 200 141 340t339 140z m258-220z m-622-260q0-132 82-230l514 514q-100 82-232 82q-152 0-258-107t-106-259z m106-258z m258-106q152 0 259 107t107 257q0 130-82 232l-514-514q98-82 230-82z" horiz-adv-x="960" />
<glyph glyph-name="twitter" unicode="&#xe807;" d="m920 636q-36-54-94-98l0-24q0-130-60-250t-186-203t-290-83q-160 0-290 84q14-2 46-2q132 0 234 80q-62 2-110 38t-66 94q10-4 34-4q26 0 50 6q-66 14-108 66t-42 120l0 2q36-20 84-24q-84 58-84 158q0 48 26 94q154-188 390-196q-6 18-6 42q0 78 55 133t135 55q82 0 136-58q60 12 120 44q-20-66-82-104q56 8 108 30z" horiz-adv-x="920" />
<glyph glyph-name="down-open" unicode="&#xe809;" d="m0 526l148 148l352-351l352 351l148-148l-352-352l-148-148l-148 148z" horiz-adv-x="1000" />
<glyph glyph-name="trash" unicode="&#xe803;" d="m50 458q122-70 330-70t330 70l-54-486q-2-14-35-36t-100-43t-141-21t-140 21t-100 43t-36 36z m488 300q94-18 158-55t64-71l0-10q0-58-112-99t-268-41t-268 41t-112 99l0 10q0 34 64 71t158 55l42 48q22 26 70 26l92 0q52 0 70-26z m-54-112l84 0q-92 110-104 126q-14 16-32 16l-102 0q-22 0-32-16l-106-126l84 0l64 66l82 0z" horiz-adv-x="760" />
</font>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Binary file not shown.

BIN
themes/courgette/font/icomoon.eot Executable file

Binary file not shown.

View File

@ -0,0 +1,23 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="512">
<font-face units-per-em="512" ascent="480" descent="-32" />
<missing-glyph horiz-adv-x="512" />
<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
<glyph unicode="&#xe600;" d="M256 389.333c-94.272 0-170.667-76.416-170.667-170.666s76.394-170.667 170.667-170.667 170.667 76.416 170.667 170.667-76.394 170.666-170.667 170.666zM335.082 169.749c8.341-8.341 8.341-21.824 0-30.166-4.16-4.16-9.622-6.25-15.082-6.25s-10.923 2.091-15.082 6.25l-48.918 48.918-48.917-48.918c-4.16-4.16-9.621-6.25-15.083-6.25s-10.923 2.091-15.083 6.25c-8.341 8.341-8.341 21.824 0 30.166l48.917 48.918-48.917 48.917c-8.341 8.341-8.341 21.824 0 30.166s21.824 8.341 30.166 0l48.917-48.917 48.918 48.917c8.341 8.341 21.824 8.341 30.166 0s8.341-21.824 0-30.166l-48.918-48.917 48.918-48.918z" />
<glyph unicode="&#xe800;" d="M0 25.856v263.168q0 91.648 43.52 142.336t132.608 50.688h280.576q-2.56-2.56-26.624-27.136t-51.2-51.712-55.808-55.808-48.64-47.616-21.504-18.944q-7.68 0-7.68 8.192v79.872h-24.576q-30.208 0-48.128-3.072t-32.256-13.312-19.968-29.184-6.144-49.152v-134.144zM34.304-34.048q2.56 2.56 27.136 27.136t51.2 51.712 55.808 56.32 48.64 47.616 20.992 18.432q7.68 0 7.68-8.192v-79.872h24.576q59.392 0 82.944 18.432t23.040 76.288v134.144l114.688 114.176v-263.168q0-91.648-43.008-142.336t-133.12-50.688h-280.576z" horiz-adv-x="491" />
<glyph unicode="&#xe801;" d="M150.528 104.192q7.168 7.168 17.408 7.168t18.432-7.168q16.384-17.408 0-35.84l-21.504-20.48q-28.672-28.672-67.584-28.672-39.936 0-68.608 28.672t-28.672 67.584q0 39.936 28.672 68.608l75.776 75.776q35.84 34.816 73.728 39.424t65.536-22.016q8.192-8.192 8.192-18.432t-8.192-18.432q-18.432-16.384-35.84 0-25.6 24.576-67.584-17.408l-75.776-74.752q-13.312-13.312-13.312-32.768t13.312-31.744q13.312-13.312 32.256-13.312t32.256 13.312zM380.928 398.080q28.672-28.672 28.672-67.584 0-39.936-28.672-68.608l-80.896-80.896q-37.888-36.864-76.8-36.864-31.744 0-57.344 25.6-7.168 7.168-7.168 17.408t7.168 18.432q7.168 7.168 17.92 7.168t17.92-7.168q25.6-24.576 62.464 12.288l80.896 79.872q14.336 14.336 14.336 32.768 0 19.456-14.336 31.744-12.288 13.312-28.672 15.872t-30.72-10.752l-25.6-25.6q-8.192-7.168-18.432-7.168t-17.408 7.168q-17.408 17.408 0 35.84l25.6 25.6q27.648 27.648 65.024 26.112t66.048-31.232z" horiz-adv-x="410" />
<glyph unicode="&#xe802;" d="M438.784 96v-36.352q0-7.68-5.12-12.8t-13.312-5.632h-401.92q-7.68 0-12.8 5.632t-5.632 12.8v36.352q0 7.68 5.632 12.8t12.8 5.632h401.92q7.68 0 13.312-5.632t5.12-12.8zM438.784 242.432v-36.864q0-7.168-5.12-12.8t-13.312-5.12h-401.92q-7.68 0-12.8 5.12t-5.632 12.8v36.864q0 7.168 5.632 12.8t12.8 5.12h401.92q7.68 0 13.312-5.12t5.12-12.8zM438.784 388.352v-36.352q0-7.68-5.12-12.8t-13.312-5.632h-401.92q-7.68 0-12.8 5.632t-5.632 12.8v36.352q0 7.68 5.632 13.312t12.8 5.12h401.92q7.68 0 13.312-5.12t5.12-13.312z" horiz-adv-x="439" />
<glyph unicode="&#xe803;" d="M235.52 459.52q97.28 0 166.4-69.12t69.12-166.4-69.12-166.4-166.4-69.12-166.4 69.12-69.12 166.4 69.12 166.4 166.4 69.12zM235.52 39.68q76.8 0 130.56 54.272t53.76 130.048q0 76.8-53.76 130.56t-130.56 53.76q-75.776 0-130.048-53.76t-54.272-130.56q0-75.776 54.272-130.048t130.048-54.272zM253.952 357.12v-124.928l76.8-76.8-25.6-25.6-87.040 87.040v140.288h35.84z" horiz-adv-x="471" />
<glyph unicode="&#xe804;" d="M127.488 44.8q-17.408 0-28.672 14.336l-92.16 120.832q-8.192 12.288-6.144 26.624t13.312 23.552 26.112 7.168 24.064-14.336l60.416-78.848 151.552 242.688q8.192 12.288 22.016 15.36t27.136-4.096q12.288-8.192 15.36-22.016t-4.096-27.136l-179.2-286.72q-10.24-16.384-28.672-16.384z" horiz-adv-x="342" />
<glyph unicode="&#xe805;" d="M225.28 449.28l61.44-172.032h163.84l-134.144-100.352 48.128-178.176-139.264 106.496-139.264-106.496 48.128 178.176-134.144 100.352h163.84z" horiz-adv-x="451" />
<glyph unicode="&#xe806;" d="M460.8 49.92q-44.032 77.824-106.496 100.864t-168.96 23.040v-111.616l-185.344 171.008 185.344 164.864v-98.304q46.080 0 86.016-13.824t67.072-35.84 49.152-48.64 35.328-53.248 22.528-48.64 12.288-35.328z" horiz-adv-x="461" />
<glyph unicode="&#xe807;" d="M471.040 370.432q-18.432-27.648-48.128-50.176v-12.288q0-66.56-30.72-128t-95.232-103.936-148.48-42.496q-81.92 0-148.48 43.008 7.168-1.024 23.552-1.024 67.584 0 119.808 40.96-31.744 1.024-56.32 19.456t-33.792 48.128q5.12-2.048 17.408-2.048 13.312 0 25.6 3.072-33.792 7.168-55.296 33.792t-21.504 61.44v1.024q18.432-10.24 43.008-12.288-43.008 29.696-43.008 80.896 0 24.576 13.312 48.128 78.848-96.256 199.68-100.352-3.072 9.216-3.072 21.504 0 39.936 28.16 68.096t69.12 28.16q41.984 0 69.632-29.696 30.72 6.144 61.44 22.528-10.24-33.792-41.984-53.248 28.672 4.096 55.296 15.36z" horiz-adv-x="471" />
<glyph unicode="&#xe809;" d="M0 314.112l75.776 75.776 180.224-179.712 180.224 179.712 75.776-75.776-256-256-75.776 75.776z" />
<glyph unicode="&#xe80a;" d="M475.648 50.432v219.136q-9.216-10.24-19.968-18.944-76.288-58.368-121.856-96.256-14.336-12.288-23.552-19.456t-24.576-13.824-29.184-6.656h-1.024q-13.312 0-29.184 6.656t-24.576 13.824-23.552 19.456q-45.056 37.888-121.856 96.256-10.752 8.704-19.968 18.944v-219.136q0-4.096 3.072-6.656t6.144-2.56h420.864q3.584 0 6.144 2.56t3.072 6.656zM475.648 350.464v7.168t-0.512 3.584-0.512 3.584-1.536 2.56-2.56 2.048-4.096 1.024h-420.864q-3.584 0-6.144-3.072t-3.072-6.144q0-48.128 41.984-81.408 55.296-43.52 114.688-90.624 2.048-1.024 10.24-8.192t12.8-10.752 12.8-9.216 14.336-7.68 12.288-2.56h1.024q5.632 0 12.288 2.56t14.336 7.68 12.8 9.216 12.8 10.752 10.24 8.192q59.392 47.104 114.688 90.624 15.36 12.288 28.672 33.28t13.312 37.376zM512 361.216v-310.784q0-18.944-13.312-32.256t-32.256-13.824h-420.864q-18.432 0-32.256 13.824t-13.312 32.256v310.784q0 18.944 13.312 32.256t32.256 13.312h420.864q18.944 0 32.256-13.312t13.312-32.256z" />
<glyph unicode="&#xe80b;" d="M0 133.888l256 256 256-256-75.776-75.776-180.224 179.712-180.224-179.712z" />
<glyph unicode="&#xe80c;" d="M25.6 279.296q62.464-35.84 168.96-35.84t168.96 35.84l-27.648-248.832q-1.024-7.168-17.92-18.432t-51.2-22.016-72.192-10.752-71.68 10.752-51.2 22.016-18.432 18.432zM275.456 432.896q48.128-9.216 80.896-28.16t32.768-36.352v-5.12q0-29.696-57.344-50.688t-137.216-20.992-137.216 20.992-57.344 50.688v5.12q0 17.408 32.768 36.352t80.896 28.16l21.504 24.576q11.264 13.312 35.84 13.312h47.104q26.624 0 35.84-13.312zM247.808 375.552h43.008q-47.104 56.32-53.248 64.512-7.168 8.192-16.384 8.192h-52.224q-11.264 0-16.384-8.192l-54.272-64.512h43.008l32.768 33.792h41.984z" horiz-adv-x="389" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
themes/courgette/font/icomoon.ttf Executable file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,8 @@
{% extends "layout.twig" %}
{% block title %}tags{% endblock %}
{% block menu %}
{% include '_menu.twig' %}
{% endblock %}
{% block content %}
{% for tag in tags %}<a class="tag" href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a> {% if token != '' %}<a href="?feed&amp;type=tag&amp;user_id={{ user_id }}&amp;tag_id={{ tag.id }}&amp;token={{ token }}" target="_blank"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/rss.png" /></a>{% endif %} {% endfor %}
{% endblock %}

View File

@ -1,4 +1,4 @@
<footer class="w600p center mt3 mb3 smaller txtright"> <footer class="w600p center mt3 mb3 smaller txtright">
<p>{% trans "powered by" %} <a href="http://wallabag.org">wallabag</a></p> <p>{% trans "powered by" %} <a href="http://wallabag.org">wallabag</a></p>
{% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your poche version:" %}{{constant('POCHE')}}. {% trans "storage:" %} {{constant('STORAGE')}}</strong></p>{% endif %} {% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your wallabag version:" %}{{constant('POCHE')}}. {% trans "storage:" %} {{constant('STORAGE')}}</strong></p>{% endif %}
</footer> </footer>

View File

@ -1,11 +1,12 @@
<link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/default/img/favicon.ico" />
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-144x144-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/default/img/apple-touch-icon-144x144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-72x72-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/default/img/apple-touch-icon-72x72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-precomposed.png"> <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/default/img/apple-touch-icon-precomposed.png">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/knacss.css" media="all"> <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/knacss.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/style.css" media="all"> <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/style.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme"> <link rel="stylesheet" href="{{ poche_url }}/themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/messages.css" media="all"> <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/messages.css" media="all">
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/print.css" media="print"> <link rel="stylesheet" href="{{ poche_url }}/themes/default/css/print.css" media="print">
<script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/jquery-2.0.3.min.js"></script> <script src="{{ poche_url }}/themes/default/js/jquery-2.0.3.min.js"></script>
<script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/autoClose.js"></script> <script src="{{ poche_url }}/themes/default/js/autoClose.js"></script>
<script src="{{ poche_url }}/themes/default/js/closeMessage.js"></script>

View File

@ -0,0 +1,17 @@
$(function(){
//---------------------------------------------------------------------------
// Show the close icon when the user hover over a message
//---------------------------------------------------------------------------
$('.messages').on('mouseenter', function(){
$(this).find('a.closeMessage').stop(true, true).show();
}).on('mouseleave', function(){
$(this).find('a.closeMessage').stop(true, true).hide();
});
//---------------------------------------------------------------------------
// Close the message box when the user clicks the close icon
//---------------------------------------------------------------------------
$('a.closeMessage').on('click', function(){
$(this).parents('div.messages').slideUp(300, function(){ $(this).remove(); });
return false;
});
});

View File

@ -21,7 +21,7 @@
<h1>{{ entry.title|raw }}</h1> <h1>{{ entry.title|raw }}</h1>
</header> </header>
<aside class="tags"> <aside class="tags">
tags: {% for tag in tags %}<a href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a> {% endfor %}<a href="./?view=edit-tags&amp;id={{ entry.id|e }}" title="{% trans "Edit tags" %}">✎</a> {% trans "tags:" %} {% for tag in tags %}<a href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a> {% endfor %}<a href="./?view=edit-tags&amp;id={{ entry.id|e }}" title="{% trans "Edit tags" %}">✎</a>
</aside> </aside>
<article> <article>
{{ content | raw }} {{ content | raw }}