]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #932 from wallabag/dev 1.8.1
authorNicolas Lœuillet <nicolas@loeuillet.org>
Sat, 15 Nov 2014 19:48:49 +0000 (20:48 +0100)
committerNicolas Lœuillet <nicolas@loeuillet.org>
Sat, 15 Nov 2014 19:48:49 +0000 (20:48 +0100)
1.8.1

103 files changed:
.gitignore
Vagrantfile [new file with mode: 0644]
inc/3rdparty/class.messages.php
inc/3rdparty/site_config/standard/512pixels.net.txt
inc/3rdparty/site_config/standard/README.md
inc/3rdparty/site_config/standard/adme.ru.txt [new file with mode: 0644]
inc/3rdparty/site_config/standard/alexduner.com.txt
inc/3rdparty/site_config/standard/anandtech.com.txt
inc/3rdparty/site_config/standard/apotheke-adhoc.de.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/arstechnica.com.txt
inc/3rdparty/site_config/standard/autocar.co.uk.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/bbc.co.uk.txt
inc/3rdparty/site_config/standard/bbc.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/bit-tech.net.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/bleacherreport.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/blogs.faz.net.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/brasil.elpais.com.txt
inc/3rdparty/site_config/standard/businessweek.com.txt
inc/3rdparty/site_config/standard/buzzfeed.com.txt
inc/3rdparty/site_config/standard/canonrumors.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/chomsky.info.txt
inc/3rdparty/site_config/standard/cn.reuters.com.txt
inc/3rdparty/site_config/standard/code.fivefilters.org.txt
inc/3rdparty/site_config/standard/csmonitor.com.txt
inc/3rdparty/site_config/standard/da.feedsportal.com.txt
inc/3rdparty/site_config/standard/designsponge.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/desitvforum.net.txt
inc/3rdparty/site_config/standard/deutsche-apotheker-zeitung.de.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/dictionary.reference.com.txt
inc/3rdparty/site_config/standard/dropbox.com.txt
inc/3rdparty/site_config/standard/echo-online.de.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/economist.com.txt
inc/3rdparty/site_config/standard/eurogamer.net.txt
inc/3rdparty/site_config/standard/facebook.com.txt
inc/3rdparty/site_config/standard/faz.net.txt [changed mode: 0644->0755]
inc/3rdparty/site_config/standard/finance.yahoo.com.txt
inc/3rdparty/site_config/standard/fivechapters.com.txt
inc/3rdparty/site_config/standard/fivefilters.org.txt
inc/3rdparty/site_config/standard/foreignpolicy.com.txt
inc/3rdparty/site_config/standard/golem.de.txt
inc/3rdparty/site_config/standard/heise.de.txt
inc/3rdparty/site_config/standard/hosted.ap.org.txt
inc/3rdparty/site_config/standard/itunes.apple.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/kachiblog.com.txt
inc/3rdparty/site_config/standard/lifehacker.co.uk.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/mainpost.de.txt
inc/3rdparty/site_config/standard/medialens.org.txt
inc/3rdparty/site_config/standard/medium.com.txt
inc/3rdparty/site_config/standard/menshealth.com.sg.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/northumberlandview.ca.txt
inc/3rdparty/site_config/standard/nytimes.com.txt
inc/3rdparty/site_config/standard/real.gr.txt
inc/3rdparty/site_config/standard/reddit.com.txt
inc/3rdparty/site_config/standard/searchengineland.com.txt
inc/3rdparty/site_config/standard/sourcebooks.com.txt
inc/3rdparty/site_config/standard/tabletmag.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/tagesspiegel.de.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/techmeme.com.txt
inc/3rdparty/site_config/standard/theatlantic.com.txt
inc/3rdparty/site_config/standard/theglobeandmail.com.txt
inc/3rdparty/site_config/standard/theguardian.com.txt
inc/3rdparty/site_config/standard/theverge.com.txt
inc/3rdparty/site_config/standard/thisiscolossal.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/towerofthehand.com.txt [new file with mode: 0755]
inc/3rdparty/site_config/standard/twitter.com.txt
inc/3rdparty/site_config/standard/vanityfair.com.txt
inc/3rdparty/site_config/standard/wn.de.txt [new file with mode: 0755]
inc/poche/Database.class.php
inc/poche/Language.class.php
inc/poche/Poche.class.php
inc/poche/Routing.class.php
inc/poche/Tools.class.php
inc/poche/config.inc.default.php
install/index.php
install/mysql.sql
locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo
locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.po
locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mo [new file with mode: 0644]
locale/en_US.utf8/LC_MESSAGES/en_US.utf8.po [new file with mode: 0644]
locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo
locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po
themes/baggy/_menu.twig
themes/baggy/_pocheit-form.twig
themes/baggy/_search-form.twig
themes/baggy/about.twig [new file with mode: 0755]
themes/baggy/config.twig
themes/baggy/css/main.css
themes/baggy/edit-tags.twig
themes/baggy/home.twig
themes/baggy/js/init.js
themes/baggy/login.twig
themes/baggy/tags.twig
themes/courgette/home.twig
themes/default/_menu.twig
themes/default/_sorting.twig
themes/default/about.twig [new file with mode: 0755]
themes/default/config.twig
themes/default/css/messages.css
themes/default/css/style.css
themes/default/edit-tags.twig
themes/default/home.twig
themes/default/js/popupForm.js
themes/default/js/saveLink.js

index aec2e3ef5bb3f144d0b6864493901c7675c1e665..5b34c79f4dc3750b68a1c757c61f6ee80702579a 100644 (file)
@@ -1,7 +1,9 @@
+.DS_Store
 assets/*
 cache/*
 vendor
 composer.phar
 db/poche.sqlite
 inc/poche/config.inc.php
-inc/3rdparty/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/
\ No newline at end of file
+inc/3rdparty/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/
+.vagrant
\ No newline at end of file
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644 (file)
index 0000000..221ad6d
--- /dev/null
@@ -0,0 +1,71 @@
+
+$script_sqlite = <<SCRIPT
+apt-get update
+apt-get install -y apache2 php5 php5-sqlite php5-xdebug
+apt-get clean -y
+echo "ServerName localhost" >> /etc/apache2/apache2.conf
+service apache2 restart
+rm -f /var/www/html/index.html
+date > /etc/vagrant_provisioned_at
+SCRIPT
+
+$script_mysql = <<SCRIPT
+export DEBIAN_FRONTEND=noninteractive
+apt-get update
+apt-get install -y apache2 php5 php5-mysql php5-xdebug mysql-server mysql-client
+apt-get clean -y
+echo "ServerName localhost" >> /etc/apache2/apache2.conf
+service apache2 restart
+service mysql restart
+echo "create database wallabag;" | mysql -u root
+rm -f /var/www/html/index.html
+date > /etc/vagrant_provisioned_at
+SCRIPT
+
+$script_postgres = <<SCRIPT
+export DEBIAN_FRONTEND=noninteractive
+apt-get update
+apt-get install -y apache2 php5 php5-pgsql php5-xdebug postgresql postgresql-contrib
+apt-get clean -y
+echo "ServerName localhost" >> /etc/apache2/apache2.conf
+service apache2 restart
+service postgresql restart
+rm -f /var/www/html/index.html
+date > /etc/vagrant_provisioned_at
+SCRIPT
+
+Vagrant.configure("2") do |config|
+
+  config.vm.define "sqlite" do |m|
+    m.vm.box = "ubuntu/trusty64"
+    m.vm.provision "shell", inline: $script_sqlite
+    m.vm.synced_folder ".", "/var/www/html", owner: "www-data", group: "www-data"
+  end
+
+  config.vm.define "mysql" do |m|
+    m.vm.box = "ubuntu/trusty64"
+    m.vm.provision "shell", inline: $script_mysql
+    m.vm.synced_folder ".", "/var/www/html", owner: "www-data", group: "www-data"
+  end
+
+  config.vm.define "postgres" do |m|
+    m.vm.box = "ubuntu/trusty64"
+    m.vm.provision "shell", inline: $script_postgres
+    m.vm.synced_folder ".", "/var/www/html", owner: "www-data", group: "www-data"
+  end
+
+  config.vm.define "debian7" do |m|
+    m.vm.box = "chef/debian-7.6"
+    m.vm.provision "shell", inline: $script_sqlite
+    m.vm.synced_folder ".", "/var/www", owner: "www-data", group: "www-data"
+  end
+
+  config.vm.define "debian6" do |m|
+    m.vm.box = "chef/debian-6.0.10"
+    m.vm.provision "shell", inline: $script_sqlite
+    m.vm.synced_folder ".", "/var/www", owner: "www-data", group: "www-data"
+  end
+
+  config.vm.network :forwarded_port, guest: 80, host: 8003
+  #config.vm.network "public_network", :bridge => "en0: Wi-Fi (AirPort)"
+end
index 27c28f43f4efefb6e34579652d12bb8908037a57..fbca0df0dbade343d8e805d6cdeaceb599c991b5 100644 (file)
@@ -44,7 +44,7 @@ class Messages {
        var $msgId;\r
        var $msgTypes = array( 'help', 'info', 'warning', 'success', 'error' );\r
        var $msgClass = 'messages';\r
-       var $msgWrapper = "<div class='%s %s'><a href='#' class='closeMessage'>X</a>\n%s</div>\n";\r
+       var $msgWrapper = "<div class='%s %s'><a href='#' class='closeMessage'>&times;</a>\n%s</div>\n";\r
        var $msgBefore = '<p>';\r
        var $msgAfter = "</p>\n";\r
 \r
index e458980fe0db1b7aaecd0b5c2e62cf06a1820138..02a996f79eb0c6fe2aacbb37d89d4b73417adf90 100755 (executable)
@@ -1,2 +1,2 @@
-title: substring-before(//title, '&mdash;')
-test_url: http://512pixels.net/more-on-linked-lists/
\ No newline at end of file
+title: //meta[@property='og:title']/@content
+test_url: http://www.512pixels.net/blog/2014/10/the-move
index 9040ba8522bd3abb14d41d005eba4b51201c8cc2..ab5b12d9c0f4ce267741c74cffcaf80077d85f08 100755 (executable)
@@ -1,12 +1,14 @@
 Full-Text RSS site config files
 ================
 
-[Full-Text RSS](http://fivefilters.org/content-only/), our article extraction tool, makes use of site-specific extraction rules to improve results. Each time a URL is processed, it checks to see if there are extraction rules for the site being processed. If there are no site patterns, it tries to detect the content block automatically.
+[Full-Text RSS](http://fivefilters.org/content-only/), our article extraction tool, makes use of site-specific extraction rules to improve results. Each time a URL is processed, it checks to see if there are extraction rules for the site being processed. If there are no rules are found, it tries to detect the content block automatically.
 
-This repository contains the site config files we use in Full-Text RSS.
+This repository contains the site-specific extraction rules we rely on in Full-Text RSS.
 
 ### Contributing changes
 
+We run automated tests on these files to detect issues. If you'd like to help keep these up to date, please look at the [test results](http://siteconfig.fivefilters.org/test/) and see which files you'd like to contribute fixes for.
+
 We chose GitHub for this set of files because they offer one feature which we hope will make contributing changes easier: [file editing](https://github.com/blog/844-forking-with-the-edit-button) through the web interface. 
 
 You can now make changes to any of our site config files and request that your changes be pulled into the main set we maintain. This is what GitHub calls the Fork and Pull model:
@@ -31,7 +33,7 @@ Marco, Instapaper's creator, graciously opened up the database of contributions
 
 > And, recognizing that your efforts could be useful to a wide range of other tools and services, I'll make the list of all of these site-specific configurations available to the public, free, with no strings attached.
 
-Most of the extraction rules in our set are borrowed from Instapaper. You can see the list maintained by Instapaper at [instapaper.com/bodytext/](http://instapaper.com/bodytext/) (login required).
+Most of the extraction rules in our set are borrowed from Instapaper. You can see the list maintained by Instapaper at [instapaper.com/bodytext/](http://instapaper.com/bodytext/) (no longer available since Instapaper was sold).
 
 ### Testing site config files
 
diff --git a/inc/3rdparty/site_config/standard/adme.ru.txt b/inc/3rdparty/site_config/standard/adme.ru.txt
new file mode 100644 (file)
index 0000000..b929685
--- /dev/null
@@ -0,0 +1,6 @@
+# Generated by FiveFilters.org's web-based selection tool
+# Place this file inside your site_config/custom/ folder
+# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.adme.ru%2Ftvorchestvo-hudozhniki%2Fprostoj-kak-5-kopeek-hudozhnik-557405%2F
+
+body: //article[contains(concat(' ',normalize-space(@class),' '),' article ')]
+test_url: http://www.adme.ru/tvorchestvo-hudozhniki/prostoj-kak-5-kopeek-hudozhnik-557405/
index bd9de9d70e66bb610c89d77599405a0f45e303d2..3897f9ec165d75a7e7b76ed0470f3bc909f9de80 100755 (executable)
@@ -1,4 +1,4 @@
 body: //section[@class='content']
 date: //span[1]
 author: //h1[@id='sitetitle']
-test_url: https://alexduner.com/blog/2013/1/something-i-learned-today
\ No newline at end of file
+test_url: http://alexduner.com/blog/something-i-learned-today
index 7d80491852a98bd5994386a06f64c75b87bcd5dd..fc95c5d8a3bf3135a2159a9faf89df6ba2cdbbc3 100755 (executable)
@@ -1,3 +1,5 @@
+body: //section[@class='main_cont']/img | //div[@class='articleContent']
+title: //div[@class='blog_top_left']//h2
 author: //a[@class='b'][1]
 date: substring-after(substring-before(//div, 'Posted in'), ' on ')
 strip_image_src: /content/images/globals/
@@ -8,4 +10,6 @@ prune: no
 
 single_page_link: concat('http://www.anandtech.com/print/', substring-after(//meta[@property='og:url']/@content, '/show/'))
 
-test_url: http://www.anandtech.com/show/5812/eurocom-monster-10-clevos-little-monster/
\ No newline at end of file
+test_url: http://www.anandtech.com/show/8370/gigabyte-am1m-s2h-review
+test_url: http://www.anandtech.com/show/8402/sandisk-releases-ultra-ii-ssd-the-second-tlc-nand-ssd-in-the-market
+test_url: http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores
diff --git a/inc/3rdparty/site_config/standard/apotheke-adhoc.de.txt b/inc/3rdparty/site_config/standard/apotheke-adhoc.de.txt
new file mode 100755 (executable)
index 0000000..3a702e7
--- /dev/null
@@ -0,0 +1,23 @@
+# Author: zinnober
+
+prune: no
+
+title: substring-before(//div[@id='content']/h1, ',')
+
+single_page_link: //a[@title='Seite drucken']
+
+body: //div[@id='detail-body']
+
+replace_string(<span class="description">): <em>
+replace_string(<p class="leadtext"><small>): <p class="leadtext">
+
+# Fix headlines
+replace_string(Patrick Hollstein): &nbsp;
+replace_string(APOTHEKE ADHOC): &nbsp;
+replace_string(dpa): &nbsp;
+replace_string(Katharina Lübke): &nbsp;
+replace_string(Julia Pradel): &nbsp;
+replace_string(Franziska Gerhardt): &nbsp;
+
+test_url: http://www.apotheke-adhoc.de/nachrichten/politik/nachricht-detail-politik/deutscher-apothekertag-antraege-gegen-lieferengpaesse-2/
+
index 767f6800c829f21d82d10b318e8d8a1e237f2a10..eb92aa2c7a4fd31ef43054ac7e3372ff3abe9046 100755 (executable)
@@ -13,5 +13,7 @@ title: //div[@id='story']//h2[@class='title']
 strip: //div[@class='pager']
 next_page_link: //nav//a[span/@class='next']/@href
 
+native_ad_clue: //meta[@property="og:url" and contains(@content, '/sponsored/')]
+
 test_url: http://arstechnica.com/tech-policy/news/2012/02/gigabit-internet-for-80-the-unlikely-success-of-californias-sonicnet.ars
 test_url: http://arstechnica.com/apple/2005/04/macosx-10-4/
diff --git a/inc/3rdparty/site_config/standard/autocar.co.uk.txt b/inc/3rdparty/site_config/standard/autocar.co.uk.txt
new file mode 100755 (executable)
index 0000000..9f4fe18
--- /dev/null
@@ -0,0 +1,13 @@
+title: //div[@class='col-center']/h1
+author: //div[@class='personality']/a
+date: //div[@class='personality-date']
+body: //div[@class='content-top ']//div[@class='content'][1] | //div[contains(@class,'article-body')] | //div[contains(@class,'main-article')]
+
+next_page_link: //div[@id='review-link']/a
+
+strip: //div[@class='author-block']
+strip: //p//iframe[contains(@src,'signup')]/preceding::p[1]
+
+test_url: http://www.autocar.co.uk/car-review/volkswagen/golf
+test_url: http://www.autocar.co.uk/car-news/pebble-beach/saleen-unveils-performance-electric-vehicle-based-tesla-model-s
+test_url: http://www.autocar.co.uk/car-review/rolls-royce/first-drives/rolls-royce-ghost-series-ii-first-drive-review
index ef1f491ae0adc229a7db0c6c274525dfa38a2acc..bad77654b02c29981afcbb54079f77d60ab4096e 100755 (executable)
@@ -13,7 +13,7 @@ body: //div[contains(@class, 'hrecipe')]//div[@id='subcolumn-1']
 #strip: //div[@class="story-feature narrow"]
 #strip: //div[@class="story-feature wide"]
 #strip: //div[@class="story-feature dslideshow-enclosure"]
-strip: //div[contains(@class, "story-feature")]
+strip: //div[contains(@class, "story-feature") and not(contains(@class, 'full-width'))]
 strip: //span[@class="story-date"]
 #strip: //div[@class="caption body-narrow-width"]
 strip: //div[@class="warning"]//p
@@ -30,13 +30,26 @@ strip: //div[contains(@class, 'comment-introduction')]
 strip: //div[contains(@class, 'share-tools')]
 strip: //div[@id='also-related-links']
 
+strip_id_or_class: share-help
+strip_id_or_class: comments_module
+
 replace_string(<noscript>): <div>
 replace_string(</noscript>): </div>
 
+tidy: no
 prune: no
 
 dissolve: //h2
+
 test_url: http://www.bbc.co.uk/sport/0/football/23224017
+test_contains: Swansea City have completed the club-record signing 
+
 test_url: http://www.bbc.co.uk/news/business-15060862
+test_contains: Europe's leaders are meeting again to try to solve
+
+# news feed
+test_url: http://feeds.bbci.co.uk/news/rss.xml
+# sports feed
+test_url: http://feeds.bbci.co.uk/sport/0/football/rss.xml?edition=int
 # video entry
-test_url: http://www.bbc.co.uk/news/world-asia-22056933
\ No newline at end of file
+test_url: http://www.bbc.co.uk/news/world-asia-22056933
diff --git a/inc/3rdparty/site_config/standard/bbc.com.txt b/inc/3rdparty/site_config/standard/bbc.com.txt
new file mode 100755 (executable)
index 0000000..c04a683
--- /dev/null
@@ -0,0 +1,60 @@
+body: //div[@class="story-body"]
+# for video entries
+body: //div[contains(@class, "videoInStory") or @id="meta-information"]
+title: //h1[@class="story-header"]
+date: //span[@class="story-date"]/span[@class='date']
+# for sport site
+date: //meta[@name='DCTERMS.created']/@content
+author: //div[@id='headline']//span[@class='byline-name']
+
+# recipes, e.g. http://www.bbc.co.uk/food/recipes/mymincepies_71055
+body: //div[contains(@class, 'hrecipe')]//div[@id='subcolumn-1']
+
+#strip: //div[@class="story-feature narrow"]
+#strip: //div[@class="story-feature wide"]
+#strip: //div[@class="story-feature dslideshow-enclosure"]
+strip: //div[contains(@class, "story-feature") and not(contains(@class, 'full-width'))]
+strip: //span[@class="story-date"]
+#strip: //div[@class="caption body-narrow-width"]
+strip: //div[@class="warning"]//p
+strip: //div[@id='page-bookmark-links-head']
+strip: //object
+strip: //div[contains(@class, "bbccom_advert_placeholder")]
+strip: //div[contains(@class, "embedded-hyper")]
+strip: //div[contains(@class, 'market-data')]
+strip: //a[contains(@class, 'hidden')]
+strip: //div[contains(@class, 'hypertabs')]
+strip: //div[contains(@class, 'related')]
+strip: //form[@id='comment-form']
+strip: //div[contains(@class, 'comment-introduction')]
+strip: //div[contains(@class, 'share-tools')]
+strip: //div[@id='also-related-links']
+
+strip_id_or_class: share-help
+strip_id_or_class: comments_module
+
+replace_string(<noscript>): <div>
+replace_string(</noscript>): </div>
+
+native_ad_clue: //meta[@property="og:url" and contains(@content, '/sponsored/')]
+
+tidy: no
+prune: no
+
+dissolve: //h2
+
+test_url: http://www.bbc.com/sport/0/football/28918021
+test_contains: Cameroonian footballer Albert Ebosse has died
+
+test_url: http://www.bbc.com/sport/0/football/23224017
+
+test_url: http://www.bbc.com/news/business-15060862
+test_contains: Europe's leaders are meeting again to try
+
+
+# news feed
+test_url: http://feeds.bbci.co.uk/news/rss.xml
+# sports feed
+test_url: http://feeds.bbci.co.uk/sport/0/football/rss.xml?edition=int
+# video entry
+test_url: http://www.bbc.com/news/world-asia-22056933
diff --git a/inc/3rdparty/site_config/standard/bit-tech.net.txt b/inc/3rdparty/site_config/standard/bit-tech.net.txt
new file mode 100755 (executable)
index 0000000..c6f5b20
--- /dev/null
@@ -0,0 +1,19 @@
+body: //div[@id='column_1']
+next_page_link: //div[@class='next']/a[not(contains(@href, '/comments') or contains(@href, '/news/'))]
+prune: no
+
+author: substring-after(//p[@class='byline'], 'by ')
+date: substring-before(substring-after(//p[@class='byline'], 'on '), ' by')
+
+strip: //h1
+strip_id_or_class: socialLinks
+strip_id_or_class: byline
+strip_id_or_class: pageSelector
+strip_id_or_class: articleTabs
+strip_id_or_class: pageNav
+strip_id_or_class: share
+strip_id_or_class: commentsContainer
+strip_id_or_class: below_article_related
+
+test_url: http://www.bit-tech.net/hardware/storage/2014/08/13/ocz-arc-100-240gb-review/1
+test_url: http://www.bit-tech.net/news/bits/2014/08/15/google-trojan/1
diff --git a/inc/3rdparty/site_config/standard/bleacherreport.com.txt b/inc/3rdparty/site_config/standard/bleacherreport.com.txt
new file mode 100755 (executable)
index 0000000..9205e44
--- /dev/null
@@ -0,0 +1,16 @@
+body: //div[contains(@class, 'article_pages')]
+
+strip_id_or_class: article_page-header
+strip_id_or_class: paginator
+strip_id_or_class: article_info
+
+find_string: src="data:image
+replace_string: ignore-src="data:image
+find_string: data-defer-src="
+replace_string: src="
+
+prune: no
+
+test_url: http://bleacherreport.com/articles/feed
+test_url: http://bleacherreport.com/articles/2137787-christian-ponders-newborn-daughter-was-named-after-fsu-legend-bobby-bowden
+test_url: http://bleacherreport.com/articles/2137596-college-football-week-1-picks-unlv-runnin-rebels-vs-arizona-wildcats/
\ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/blogs.faz.net.txt b/inc/3rdparty/site_config/standard/blogs.faz.net.txt
new file mode 100755 (executable)
index 0000000..4f2626f
--- /dev/null
@@ -0,0 +1,45 @@
+# Author: zinnober
+
+tidy: no
+prune: no
+
+# Set author
+author: //a[@rel='author']
+
+# Set date
+date: //span[@class='Datum']
+
+# Content is here
+body: //div[@class='Artikel']
+
+# Tidy up before article
+strip: //div[@id='FAZHeaderNeu']
+strip: //h2[@itemprop='headline']
+strip: //span[@class='Datum']
+strip: //span[@class='Autor']
+strip_id_or_class: ArticlePagerTop
+strip: //div[@class='FAZArtikelEinleitung']/h2
+
+# General cleanup
+strip: //div[@class='clear']
+strip: //span[@class='Bildnachweis']
+strip: //iframe
+strip_id_or_class: Community
+strip: ' ·  '
+
+# Remove tracking and ads
+strip_image_src: /l.gif?
+strip: //img[@width='1']
+strip_id_or_class: invisible
+strip_id_or_class: Anzeige
+strip_id_or_class: billboard
+
+# Remove clutter after article
+strip_id_or_class: Tagline
+strip_id_or_class: ArtikelAbbinder
+strip_id_or_class: FAZArtikelKommentare
+strip_id_or_class: ArtikelKommentieren
+strip_id_or_class: FAZContentRight
+
+# Try it yourself
+test_url: http://blogs.faz.net/wost/2014/08/17/viel-fuck-und-wenig-guter-sex-1239/
index 0b8feb6a559844d40751d150b5cdf87776612bce..6a22dcb76f124e9375541089cb91fd8cf2dc07d6 100755 (executable)
@@ -19,5 +19,8 @@ strip: //p[@class='nota_pie']
 strip: //div[starts-with(@id, 'sumario') and contains(., 'más información')]
 strip: //div[@id='coment' or @id='foros_not']
 
-test_url: http://elpais.com/elpais/2012/02/06/gente/1328526783_491687.html
-test_url: http://www.elpais.com/articulo/cultura/mano/retrato/materia/elpepicul/20120207elpepicul_2/Tes
+test_url: http://brasil.elpais.com/brasil/2014/10/15/politica/1413334841_878730.html
+test_contains: O PT quer intensificar a presença do ex-presidente
+
+test_url: http://brasil.elpais.com/brasil/2014/10/13/internacional/1413225730_450761.html
+test_contains: Todos na localidade onde ele nasceu ainda falavam da façanha
index 03085593f9587f1a1dea15f671922cf647d3c97a..f546b708f09f1a103856335e6bbfc33c0ebbf028 100755 (executable)
@@ -1,30 +1,17 @@
-# story has several pages, should be detected
-body: //div[@id='storyBody']
-body: //div[@id='article_body']
-body: //div[@id='story_body']
+# include the lead graphic in the body, if available
+body: //div[contains(concat(' ', normalize-space(@id), ' '), ' lead_graphic ')] | //div[contains(concat(' ', normalize-space(@itemprop), ' '), ' articleBody ')]
+title: //h1[contains(concat(' ', normalize-space(@itemprop), ' '), ' headline ')]
+date: //time[contains(concat(' ', normalize-space(@itemprop), ' '), ' datePublished ')]
 
-title://h1[@id='article_headline']
-
-# article author
-author: //p[@class='author']/a
-# story author(s)
-author: substring-after(//p[@class='byline'], 'By ')
-
-# article date
-date: //span[@class='published_date']
-# story date
-date: //span[@class='date']
-
-date: substring-after(//div[contains(@class,'attributor')],'on')
-strip_id_or_class: inset
-strip: //p/span[@class='photoCredit']
-strip: //h1
-
-strip_id_or_class: page_count
-strip_id_or_class: tools
-strip_id_or_class: pagination
-
-single_page_link: //li[@id='stPrint']/a
+strip_id_or_class: photo_credit
+strip_id_or_class: photo_caption
+strip_id_or_class: inline_gallery
+# pull quote, often inside a blockquote element
+strip_id_or_class: pq
+strip_id_or_class: credit
+strip_id_or_class: figcaption
+strip_id_or_class: related_item
 
 test_url: http://www.businessweek.com/magazine/buyback-insurance-a-good-deal-for-retailers-07282011.html
-test_url: http://www.businessweek.com/articles/2012-06-06/american-pain-the-largest-u-dot-s-dot-pill-mills-rise-and-fall
\ No newline at end of file
+test_url: http://www.businessweek.com/articles/2012-06-06/american-pain-the-largest-u-dot-s-dot-pill-mills-rise-and-fall
+test_url: http://www.businessweek.com/articles/2014-07-09/american-apparel-dov-charneys-sleazy-struggle-for-control
index 97dddaee9e95bc81c296a021391b77210d7b1c7a..ea88ea472d2bd8435c66f6807c6d7b6968344ff1 100755 (executable)
@@ -10,6 +10,15 @@ date: //time[@data-print='date']
 body: //div[@data-print='body']
 body: //section[@data-print='body']
 
+find_string: rel:bf_image_src=
+replace_string: src=
+find_string: src="data:
+replace_string: disabled_src="data:
+
+native_ad_clue: //meta[@property="article:section" and @content="Advertiser"]
+
 # For various things...
 strip: *[@data-print="ignore"]
-test_url: http://www.buzzfeed.com/hgrant/35-reasons-why-dogs-hate-the-holidays
\ No newline at end of file
+test_url: http://www.buzzfeed.com/hgrant/35-reasons-why-dogs-hate-the-holidays
+# Native ad
+test_url: http://www.buzzfeed.com/bravo/ways-to-up-your-online-dating-game
\ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/canonrumors.com.txt b/inc/3rdparty/site_config/standard/canonrumors.com.txt
new file mode 100755 (executable)
index 0000000..c22cf4f
--- /dev/null
@@ -0,0 +1,28 @@
+# Author: zinnober
+
+tidy: no
+prune: no
+
+# Set title
+title: //h2
+
+date: //li[@class='time']
+
+# Set author
+author: //a[contains(@rel, 'author')]
+
+# Content is here
+body: //div[@id='content']
+
+# Tidy up before article
+strip: //div[@class='meta']
+
+# Tidy up after article
+strip_id_or_class: nr_related_placeholder
+strip_id_or_class: twitter-share-button
+strip_id_or_class: afterpost
+strip_id_or_class: tags
+
+# Try it yourself
+test_url: http://www.canonrumors.com/2014/09/chuck-westfall-talks-canon-eos-7d-mark-ii/
+test_url: http://www.canonrumors.com/2014/09/canon-cinema-eos-captures-space-in-4k-for-new-imax-3d-film/
index 31440538085fe3af4fe264b009f8b9cf902ba3b2..2645f119dc965826cee481875efae17d6d784403 100755 (executable)
@@ -2,4 +2,5 @@ title: //div[@class='title']
 author: //div[@class='author']
 prune: no
 
-test_url: http://www.chomsky.info/onchomsky/2002----.htm
\ No newline at end of file
+test_url: http://www.chomsky.info/onchomsky/2002----.htm
+test_contains: The propaganda model argues
index b38786622fab6e62abc2c53493b4f862d7db4800..28f104725ca568e48067da326b216257d8a4fc32 100755 (executable)
@@ -1,5 +1,9 @@
 title: //div[@id='maincontent']//h1
 body: //div[@id='resizeableText']
 
+single_page_link: concat(//link[@rel='canonical']/@href, '?sp=true')
+
 test_url: http://cn.reuters.com/article/CNAnalysesNews/idCNKBS0FF0NM20140710
-test_url: http://cn.reuters.feedsportal.com/CNAnalysesNews
\ No newline at end of file
+test_url: http://cn.reuters.feedsportal.com/CNAnalysesNews
+# multipage link
+test_url: http://cn.reuters.com/article/idCNKBS0FF0UL20140710
\ No newline at end of file
index 269fb54783e805f175de34a1f6c96f5ad406ef6a..f8a88caeed67ed49d2a865b2dd3ea7683675761d 100755 (executable)
@@ -1 +1,3 @@
-body: //div[@id='content']
+body: //div[@id='readme']
+
+test_url: http://code.fivefilters.org/full-text-rss
index b482e34e9377072793524f2d7a51b5aa629e61e8..70ab98854ed87f84c49ca0f9834c68c0fb14688b 100755 (executable)
@@ -15,4 +15,4 @@ strip_id_or_class: promotion-tag
 tidy: no
 prune: no
 
-test_url: www.csmonitor.com/World/Middle-East/2011/1108/Imminent-Iran-nuclear-threat-A-timeline-of-warnings-since-1979/Earliest-warnings-1979-84
\ No newline at end of file
+test_url: http://www.csmonitor.com/World/Middle-East/2011/1108/Imminent-Iran-nuclear-threat-A-timeline-of-warnings-since-1979/Earliest-warnings-1979-84
index 381446e597ad04237e9e2ff5fd6abab6ab8d79fd..2bd66be82159464d06174566540a239c9eb16b4f 100755 (executable)
@@ -2,4 +2,4 @@ single_page_link: //a
 tidy: no
 prune: no
 
-test_url: da.feedsportal.com/c/585/f/413794/s/17037b5a/l/0L0Stelegraaf0Bnl0Cbinnenland0C10A2757860C0I0IKlacht0Itegen0Idr0B0IFrank0Iniet0I0Eontvankelijk0I0I0Bhtml0Dcid0Frss/ia1.htm
\ No newline at end of file
+test_url: http://da.feedsportal.com/c/585/f/413794/s/17037b5a/l/0L0Stelegraaf0Bnl0Cbinnenland0C10A2757860C0I0IKlacht0Itegen0Idr0B0IFrank0Iniet0I0Eontvankelijk0I0I0Bhtml0Dcid0Frss/ia1.htm
diff --git a/inc/3rdparty/site_config/standard/designsponge.com.txt b/inc/3rdparty/site_config/standard/designsponge.com.txt
new file mode 100755 (executable)
index 0000000..2cd2f1f
--- /dev/null
@@ -0,0 +1,31 @@
+# Author: zinnober
+
+tidy: no
+prune: no
+
+# Set title
+title: //header/h1
+
+# Set author
+author: //a[rel='author']
+
+# Content is here
+body: //article
+
+# Tidy up before article
+strip: //header
+
+# Tidy up article
+strip: //div[contains(@id, 'gallery-')]
+replace_string(<a rel="attachment): <p rel="attachment
+
+
+# Tidy up after article
+strip: //div[@class='sm']
+strip_id_or_class: related
+strip_id_or_class: comments
+strip: //footer
+
+# Try it yourself
+test_url: http://www.designsponge.com/2010/06/seattle-design-guide.html
+test_url: http://www.designsponge.com/2012/04/sneak-peek-liz-cook.html
index efa85f763120ae01285556b33950881d3ce55e42..c77007b7bccdea318348e271b4bb3d08cf641027 100755 (executable)
@@ -2,4 +2,6 @@ body: (//blockquote[contains(@class, 'postcontent')])[1]
 body: (//div[starts-with(@id, 'post_message')])[1]
 
 prune: no
-tidy: no
\ No newline at end of file
+tidy: no
+
+test_url: http://www.desitvforum.net/forum/watch-online/431739-creature-3d-2014-watch-online-download-dvd-rip.html
diff --git a/inc/3rdparty/site_config/standard/deutsche-apotheker-zeitung.de.txt b/inc/3rdparty/site_config/standard/deutsche-apotheker-zeitung.de.txt
new file mode 100755 (executable)
index 0000000..36709ca
--- /dev/null
@@ -0,0 +1,29 @@
+# Author: zinnober
+
+prune: yes
+tidy: yes
+
+title: //h1
+date: //p[@class='news_datum']
+author: //span[@class='author']
+
+body: //div[@class='tagesnews-content']
+
+# General clenaup
+strip_id_or_class: dachzeile
+strip: //h3
+strip: //p[@class='bodytext']//a
+strip_id_or_class: autor_datum
+strip_id_or_class: comments
+strip_id_or_class: banner-
+
+strip: //p[contains(., 'Lesen Sie')]
+strip: //p[contains(., '– in DAZ')]
+
+# Fix image captions
+replace_string(<p class="image_caption">): <p><small><em>
+replace_string(</dd>): </em></small></dd>
+
+test_url: http://www.deutsche-apotheker-zeitung.de/pharmazie/news/2014/09/03/weniger-nebenwirkungen-aber-kein-zusatznutzen/13715.html
+test_url: http://www.deutsche-apotheker-zeitung.de/recht/news/2014/09/02/urteile-zum-cannabis-eigenanbau-bfarm-geht-in-berufung/13716.html
+
index f8b79c8007a467bce82af40e173863d00d52b4da..b8243d0c5e6d5f50cb5eba93caf20b040cd61495 100755 (executable)
@@ -1,8 +1,6 @@
-title: //h1[@id='query_h1']
-body: //div[contains(@class, 'lunatext results_content')]
-strip_id_or_class: spl_unshd
-#replace_string(<div class="dicTl">): <div class="dicTl">------------------<br />
+body: //div[contains(@class, 'source-data')]
+strip: //button
 
 prune: no
 
-test_url: http://www.wired.com/cloudline/2011/10/meet-arms-cortex-a15-the-future-of-the-ipad-and-possibly-the-macbook-air/
\ No newline at end of file
+test_url: http://dictionary.reference.com/browse/propaganda
index 92ae31b218831b76f6df27e81864476a836b107f..3b51569f77851c70ba594c5e8f47135d6cdc9cb3 100755 (executable)
@@ -1 +1,3 @@
-single_page_link: //a[@id='download_button_link']
\ No newline at end of file
+single_page_link: //a[@id='download_button_link']
+
+test_url: https://www.dropbox.com/s/qmocfrco2t0d28o/Fluffbeast.docx
diff --git a/inc/3rdparty/site_config/standard/echo-online.de.txt b/inc/3rdparty/site_config/standard/echo-online.de.txt
new file mode 100755 (executable)
index 0000000..e53de23
--- /dev/null
@@ -0,0 +1,24 @@
+# Author: Marvin Dickhaus <github@marvindickhaus.de>
+# 2014-10-08
+
+#Tidy just messes up the DOM
+tidy: no
+
+title: //h1
+body: //h2 | //div[@id='artikelteaser'] | //div[@id='artikeltext']
+
+#Strip 
+strip_image_src: artikel_a_merken.gif
+strip: //div[@class='zusatzinfo']
+
+#Author: substring is used to remove the " Von " prefix.
+author: substring(//li[@class='artikelautor'], 5)
+
+date: //li[@class='artikeldatum']
+
+#The first two URLs will at some point no longer show 
+#the full article. There is a time-based paywall 
+#installed. Using the feed should present valid output
+test_url: http://www.echo-online.de/art1231,5503063
+test_url: http://www.echo-online.de/art1168,5502598
+test_url: http://www.echo-online.de/rss/darmstadt.xml
index 16c9ed646f1369609bfea90d6c0a741d819b8915..8db5fdd66b1ac3dfc17e9e485788cfc328ce1f34 100755 (executable)
@@ -1,8 +1,13 @@
 body: //div[@class='main-content']
+body: //article[contains(@class, 'resp-node')]
 date: //time[@class='date-created']
 strip: //aside
 prune: no
 
 autodetect_next_page: no
 
-test_url: http://www.economist.com/node/21528429
\ No newline at end of file
+test_url: http://www.economist.com/node/21528429
+
+test_url: http://www.economist.com/news/essays/21623373-which-something-old-and-powerful-encountered-vault
+test_contains: the calfskin pages are smooth
+test_contains: Books will evolve online and off
index 8a3516671b27afde0e93955a4d00d0693047a8c8..8931becb1166435d99becc5d2ab6a5f235047ab5 100755 (executable)
@@ -1,8 +1,9 @@
-body: //div[ @class='content' ]  |  //div[ @class='blog-entry' ]
+body: //p[@class='strapline'] | //div[@class='cover-image'] | //article[@class='hd']
+strip: //div[@class='social top']
+strip: //p[@class='byline']
 
-strip: //h2/abbr  |  //div[ @class='lowleader' ]  |  //*[ @class='discussion' ]  |  //img[ @class='play-button' ]  |  //div[ @class='boxout' ] | //h2/a | //h2 | //h2/div | //p[ @class='timestamp' ] | //a[ @class='eurogamer-author' ] | //p[ @class='aPager' ] | //h1 | //div[ @id='lowleader' ] | //a[ @class='next' ]  |  //div[contains(concat(' ', normalize-space(@class), ' '), ' pullquote ')]
+date: //span[@itemprop='datePublished']
+author: //a[@itemprop='author']/text()
 
-date://p[ @class='timestamp' ]
-
-author://a[ @class='eurogamer-author' ]
-test_url: http://www.eurogamer.net/articles/digitalfoundry-vs-unreal-engine-4
\ No newline at end of file
+test_url: http://www.eurogamer.net/articles/2014-08-20-bungie-ordered-to-return-shares-to-composer-marty-odonnell
+test_url: http://www.eurogamer.net/articles/2014-08-20-invisible-inc-does-espionage-justice
index 6a49276740868cf4c14446403cf33354f5e7ab16..26d4f90594043445744ee6d9627ac3b5b97eb4d7 100755 (executable)
@@ -1,5 +1,12 @@
 body: //div[@id='imagestage']
+body: //div[contains(@class, 'userContentWrapper')]
+
+strip_id_or_class: commentable
+
 prune: no
 tidy: no
 
-test_url: https://www.facebook.com/feeds/page.php?id=338077742912613&format=rss20
\ No newline at end of file
+# single_page_link: replace(substring-after(//noscript//meta[@http-equiv="refresh"]/@content, 'URL='), "&amp;", "&")
+
+test_url: https://www.facebook.com/permalink.php?story_fbid=10154584776550183&id=294468630182
+test_contains: holding an extraordinary session in Brussels this month
old mode 100644 (file)
new mode 100755 (executable)
index 248522cbdd4f14434316ae0a9c4ed7e335fe04c5..0c967db0575b97d5b44fba3577b534624e4e8802 100755 (executable)
@@ -5,8 +5,8 @@ strip: //div[contains(@class, 'related-companies')]
 strip: //div[@id='y-article-related']
 strip: //div[@id='ypf-article-related']
 prune: no
+tidy: no
 
 single_page_link: //div[@class='ft']//a[contains(@href, 'page=all')]
 
-test_url: http://sg.finance.yahoo.com/news/Motorola-takes-wraps-249-rsg-3508842732.html?x=0&.v=1
-test_url: http://finance.yahoo.com/news/super-young-retirement-savers.html
\ No newline at end of file
+test_url: http://finance.yahoo.com/news/canadian-orebodies-gives-notice-exercise-130000032.html
\ No newline at end of file
index d9c5e42e77fe7b6351e3b24d8642d3d3fbc1c956..9614d2f6e861bce836aa487e58a495a2b4c188a8 100755 (executable)
@@ -1,2 +1,2 @@
 body: //div[@class='entry']
-test_url: http://www.fivechapters.com/2010/paris-part-one/
\ No newline at end of file
+test_url: http://www.fivechapters.com/2014/the-saddest-writer-in-america-part-two/
index dc1db432f9386d52665b6556712b9875f78d2b7a..f37f02b93e53dcdbff8d042acdacb187278484a0 100755 (executable)
@@ -1 +1,4 @@
-prune: no
\ No newline at end of file
+body: //section[contains(@class, 'container')]
+prune: no
+
+test_url: http://fivefilters.org/kindle-it/
index 4e84b9893435c951ba98136129336dd0e54ec330..853a5b7bd9f676c612dce06604899d81fe13a7a0 100755 (executable)
@@ -1,15 +1,19 @@
 title: //div[@class='translateHead']//h1 | //div[@id='art-mast']//h1
 author: substring-after(//span[@id='by-line'], 'BY ')
 date: //span[@id='pub-date']
-body: //div[@id='art-mast']/h2 | //div[@class='translateBody'] | //div[@id='art-body']
+body: (//article//img[contains(@class, 'main_photo')])[1] | (//article//div[contains(@class, 'full_post_content')])[1]
+#body: //div[@id='art-mast']/h2 | //div[@class='translateBody'] | //div[@id='art-body']
 #Strip inside article content
 strip: //div[@id='share-box']
-strip: //div[@id='special-box']
+strip: //div[@id='special-box
+
+strip_id_or_class: side_panel
 
 prune: no
 
 single_page_link: //span[@id='controls']/a[contains(@href, 'print=yes')]
 single_page_link: //a[text()='SINGLE PAGE']
 
+test_url: http://www.foreignpolicy.com/articles/2014/07/22/the_end_game_in_gaza_netanyahu_hamas
 test_url: http://www.foreignpolicy.com/articles/2011/08/01/a_murderers_manifesto_and_me
 test_url: http://www.foreignpolicy.com/articles/2012/02/29/five_years_in_damascus
\ No newline at end of file
index 6afdebe8d98fd376a3d055379decf0e17b407249..c64860c09c51f34f59deac35eaec44a02ae621be 100755 (executable)
@@ -1,25 +1,34 @@
-# Jens Kohl, jens.kohl@...
-# - Added publication date
-# - Striped pagination block
-# - Added single page link
-# - Added xpath-querys for the printer friendly version
+# Author: zinnober
+# Rewrite of original template which fetched the printer-version without pictures
 
-title: //h1
-body: //div[@class='formatted']
+tidy: no
 prune: no
 
-date: substring-after(//li[2][@class="text1"], 'Datum:')
-strip: //ol[@class="list-chapters"]
-strip_comments: yes
-
-# next: commands for printer friendly pages
-single_page_link: //a[contains(@href, 'print.php?a=')]/@href
-title: //body/h3
-strip_image_src: staticrl/images/logo.jpg
-strip_image_src: http://cpx.golem.de/cpx.php?class=7
-strip: //body/h3
-strip: //body/b[1]
-strip: //body/b[2]
-strip: //body/b[3]
-strip: //div[1]
-test_url: http://www.golem.de/1112/88696.html
\ No newline at end of file
+# Set full title
+title: //h1
+
+date: //time
+
+# Content is here
+body: //article
+
+# Fetch full multipage articles
+next_page_link: //a[@id='atoc_next']
+
+# Remove tracking and ads
+strip_id_or_class: iqadtile4
+
+# General Cleanup
+strip_id_or_class: list-jtoc
+strip_id_or_class: table-jtoc
+strip_id_or_class: implied
+strip_id_or_class: social-
+strip_id_or_class: comments
+strip_id_or_class: footer
+
+# Tidy up galleries (could still be improved, though)
+strip: //img[@src='']
+
+# Try yourself
+test_url: http://www.golem.de/news/intel-core-i7-5960x-im-test-die-pc-revolution-beginnt-mit-octacore-und-ddr4-1408-108893.html
+test_url: http://www.golem.de/news/test-infamous-first-light-neonbunter-actionspass-1408-108914.html
index c51af5619baeac28bb38feb970caeb2b26d74c53..9433104b0077b28ae3fec092cf9a1930eab18c06 100755 (executable)
@@ -1,7 +1,42 @@
-single_page_link: //p[@class='news_option']/a
+# Author: zinnober
+# Template should work well with either desktop or mobile version (m.heise.de)
 
+prune: no
+
+title: //article/h1 | //h1
 date: //p[@class='news_datum']
-title: //h1
-body: //div[@class='meldung_wrapper']
+author: //h4[@class='author']
+
+body: //article | //div[@class='meldung_wrapper']
+
+# General cleanup
+strip: //time
+strip: //h4[@class='author']
+strip: //p[@class='news_datum']
+strip: //p[@class='artikel_datum']
+strip: //a[contains(@href, 'mailto')]
+strip_id_or_class: comments
+strip_id_or_class: ISI_IGNORE
+strip_id_or_class: clear
+
+strip_id_or_class: linkurl_grossbild
+strip_id_or_class: image-num
+strip_id_or_class: heisebox_right
+strip_id_or_class: dossier
+
+# Strip Ads
+strip_id_or_class: ad_
+
+# Some optimizations
+replace_string(<h5>): <h2>
+replace_string(</h5>): </h2>
+replace_string(<span class="bild_rechts"): <p
+replace_string(<div class="heisebox">): <blockquote>
+
+
+next_page_link: //a[@class='next']
+next_page_link: //a[@title='vor']
 
-test_url: http://www.heise.de/newsticker/meldung/Europa-soll-Grundrechteschutz-im-Netz-staerken-1392664.html
\ No newline at end of file
+test_url: http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-3-15-2196231.html
+test_url: http://m.heise.de/open/artikel/Die-Neuerungen-von-Linux-3-15-2196231.html
+test_url: http://www.heise.de/newsticker/meldung/Ueberwachungstechnik-Die-globale-Handy-Standortueberwachung-2301494.html
index dfd8193763648147edccde0ea4ef23fd72f69863..a660f23b11cba56aa4e787d3cdd81f18a2d6bd69 100755 (executable)
@@ -2,4 +2,4 @@ body: //table[@class='ap-smallphoto-table'] | //div[@class='body']//*[@class='en
 tidy: no
 strip_image_src: analytics.apnewsregistry
 
-test_url: http://hosted.ap.org/dynamic/stories/U/US_SPENDING_SHOWDOWN?SITE=FLPET&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2011-04-06-07-46-50
\ No newline at end of file
+test_url: http://hosted.ap.org/dynamic/stories/E/EU_TURKEY_KURDS?SITE=KSNEW&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2014-10-14-10-50-25
diff --git a/inc/3rdparty/site_config/standard/itunes.apple.com.txt b/inc/3rdparty/site_config/standard/itunes.apple.com.txt
new file mode 100755 (executable)
index 0000000..ffd9556
--- /dev/null
@@ -0,0 +1,14 @@
+body: //div[@id='left-stack' or contains(@class, 'center-stack')]
+
+find_string: class="artwork" src="
+replace_string: class="artwork" src-disabled="
+find_string: src-swap-high-dpi="
+replace_string: src="
+
+strip_id_or_class: rating
+strip_id_or_class: listeners-also-bought
+
+prune: no
+
+test_url: https://itunes.apple.com/us/rss/topaudiobooks/limit=10/xml
+test_url: https://itunes.apple.com/us/audiobook/the-giver-unabridged/id356345850
\ No newline at end of file
index 35baf8dfc6c781025fa0c9f7b886c2c7c9c21801..57ab0de1a48db595cdad21b5f313e2df208ffb51 100755 (executable)
@@ -4,4 +4,4 @@ body: //div[@itemprop='articleBody']
 tidy: no
 
 test_url: http://www.kachiblog.com/2013/05/samsung-galaxy-s4-vs-samsung-galaxy.html
-test_url: http://www.kachiblog.com/feeds/posts/default
\ No newline at end of file
+test_url: http://www.kachiblog.com/feed
diff --git a/inc/3rdparty/site_config/standard/lifehacker.co.uk.txt b/inc/3rdparty/site_config/standard/lifehacker.co.uk.txt
new file mode 100755 (executable)
index 0000000..c540f7f
--- /dev/null
@@ -0,0 +1,7 @@
+title: //div[@itemprop='headline']
+body: //noscript/img | //div[@itemprop='text']
+author: //div[@class='meta meta--post']//a[@class='is-author']
+date: //div[@class='meta meta--post']//time/@datetime
+
+test_url: http://www.lifehacker.co.uk/2014/08/22/dealhacker-10-google-chromecast-super-cheap-batteries-much
+test_url: http://www.lifehacker.co.uk/2014/08/18/andrognito-hides-files-youd-like-keep-away-prying-eyes
index 2136de3fdc9a159317a707bcf303a7166c008aee..2f6382f187f76c3fa0517ecdda3d8d0808fb2853 100755 (executable)
@@ -25,4 +25,4 @@ strip_id_or_class: 'rightimage'
 #Comments
 strip: //table
 strip: //p/following-sibling::*[0]
-test_url: http://www.mainpost.de/ueberregional/meinung/Dioxin-Skandal-bringt-Agrarministerin-in-Bedraengnis;art9517,5920211
\ No newline at end of file
+test_url: http://www.mainpost.de/regional/wuerzburg/Autobahnschuetze-Staatsanwalt-fordert-zwoelf-Jahre;art492151,8386332
index 4c333aa116247e2e5b2ba64057b31dc5afeaf297..c26bac553d493ea8eca54602ff9255c00c4041a4 100755 (executable)
@@ -1,4 +1,5 @@
 strip_id_or_class: article-tools
 strip_id_or_class: pagenav
 prune: no
-test_url: http://www.medialens.org/index.php/alerts/alert-archive/2012/713-the-illusion-of-democracy.html
\ No newline at end of file
+test_url: http://www.medialens.org/index.php/alerts/alert-archive/2012/713-the-illusion-of-democracy.html
+test_contains: In an era of permanent war, economic meltdown
index acf7cc9028c1a5f5cc8280616f552bbb702a4a13..9e9c6895167d59d35f4457516d48353e099a9f91 100755 (executable)
@@ -1,7 +1,12 @@
-body: //div[contains(@class, 'post-content-inner')]
-strip_id_or_class: follow-ups
-strip_id_or_class: footer
+body: //div[contains(@class, 'postContent-inner')]
+strip_id_or_class: supplementalPostContent
 
 prune: no
 
-test_url: https://medium.com/p/6844c0d7893b
\ No newline at end of file
+test_url: https://medium.com/@savolai/kaytettavyyden-haasteet-keskustelukulttuurista-2-3-6844c0d7893b
+test_contains: Jos käytettävyysongelmat ovat kerran niin tyypillisiä
+test_contains: Keskustelukulttuuriongelmasta (subjective vs. objective bugs)
+
+test_url: https://medium.com/health-the-future/thirty-things-ive-learned-482765ee3503
+test_contains: Remember you will die
+test_contains: You have to have some faith.
diff --git a/inc/3rdparty/site_config/standard/menshealth.com.sg.txt b/inc/3rdparty/site_config/standard/menshealth.com.sg.txt
new file mode 100755 (executable)
index 0000000..6a66925
--- /dev/null
@@ -0,0 +1,12 @@
+strip: //div[contains(@style, 'float:right') and contains(., 'advertisement')]
+body: //div[@style="float:left;width:740px;"]
+
+tidy: no
+
+test_url: http://www.menshealth.com.sg/fitness/mh-picks-under-armour-clutchfit-nitro-mid-cleats
+test_contains: These cleats are made for one thing
+
+test_url: http://www.menshealth.com.sg/fitness/top-10-fat-burning-bodyweight-moves-you-can-do-10-minutes
+test_contains: let this workout fool you
+
+test_url: http://www.menshealth.com.sg/fitness/feed
\ No newline at end of file
index 88429a7835c1ec57e478a8b87dd711363d715caa..f698d98e0711ee0e8c56ba1b6c2238ca05042b46 100755 (executable)
@@ -8,4 +8,4 @@ strip_id_or_class: news_morearticlesincat
 strip_id_or_class: ezc_comments
 strip_comments: yes
 
-test_url: http://www.northumberlandview.ca/index.php?module=news&func=display&sid=5972
\ No newline at end of file
+test_url: http://www.northumberlandview.ca/index.php?module=news&type=user&func=display&sid=31127
index 23c9ad11979eab45974b1e3178ebd6a9e82486a8..54735ec7b643982a38191b31446ce7838c87874a 100755 (executable)
@@ -42,8 +42,12 @@ strip://h6[@class = 'kicker']
 author:substring-after(//h6[@class='byline'],'By ')
 
 test_url: http://www.nytimes.com/2011/07/24/books/review/an-academic-authors-unintentional-masterpiece.html
+test_contains: In this column I want to look at a not uncommon way of writing
+
 test_url: http://www.nytimes.com/2012/06/10/arts/television/the-newsroom-aaron-sorkins-return-to-tv.html
+test_contains: IF you’ve seen enough of Aaron Sorkin’s theater
+
 test_url: http://www.nytimes.com/2013/03/25/world/middleeast/israeli-military-responds-after-patrols-come-under-fire-from-syria.html
 test_url: http://www.nytimes.com/2013/08/15/nyregion/when-the-new-york-city-subway-ran-without-rails.html
 test_url: http://www.nytimes.com/2004/02/29/weekinreview/correspondence-class-consciousness-china-s-wealthy-live-creed-hobbes-darwin-meet.html
-test_url: http://www.nytimes.com/2014/06/19/opinion/gail-collins-romney-and-the-2016-contenders-huddle.html
\ No newline at end of file
+test_url: http://www.nytimes.com/2014/06/19/opinion/gail-collins-romney-and-the-2016-contenders-huddle.html
index 1a33610d6f031be9ff0c408dadf9d74218af7a68..ce0a3c4309ece51bc515de63bfcba905311d4957 100755 (executable)
@@ -1,3 +1,5 @@
-body: //div[@id='_ctl12__ctl0_Article']
+body: //div[contains(@class, 'article-photo-wrapper')]
 prune: no
-autodetect_on_failure: no
\ No newline at end of file
+
+test_url: http://www.real.gr/DefaultArthro.aspx?page=arthro&id=360962&catID=1
+test_contains: Επισήμως το αποψινό υπουργικό
index 8871f5644c5f27ff5b057ddd78c70420877ce4d6..ba342c7cd2aa0fe1f6f85cb28b80d1e29719cc5b 100755 (executable)
@@ -7,7 +7,7 @@ author: //p[@class="tagline"]/a
 # this doesn't work for some reason...?
 date: //p[@class="tagline"]//@datetime
 
-body: //div[@class="expando"]//div[@class="usertext-body"]
+body: (//div[contains(@class, 'noncollapsed')]//div[contains(@class, 'usertext-body')])[1]
 
 strip_id_or_class: tagline
 strip_id_or_class: unvotable-message
@@ -17,4 +17,5 @@ strip_id_or_class: buttons
 single_page_link: //p[@class="title"]/a[contains(@href, 'http://')]
 
 test_url: http://www.reddit.com/r/truegaming/comments/wfe7r/i_wrote_about_the_problems_i_honestly_feel_that/
-test_url: http://www.reddit.com/r/worldnews/comments/1as37r/twelve_north_korean_soldiers_attempting_to_defect/
\ No newline at end of file
+test_url: http://www.reddit.com/r/worldnews/comments/1as37r/twelve_north_korean_soldiers_attempting_to_defect/
+test_url: http://www.reddit.com/r/WritingPrompts/comments/2786lw/wp_in_a_world_where_puns_are_illegal_one_man/chybk8e
\ No newline at end of file
index fb6a1074a4b06e2a081a2bb094a06e6841e7f1f8..9ccc5898133a2e8754cf7c3e44d97e2cb021bd28 100755 (executable)
@@ -1,4 +1,4 @@
-body: //div[@class="storyBox"]
+body: //div[contains(concat(' ',normalize-space(@class),' '),' article ') and (contains(concat(' ',normalize-space(@class),' '),' clear '))]
 title: //div[@class="storyBox"]/h1
 author: //a[@rel="author"]
 date: substring-before(//span[@class="dateline"], 'by')
index b52169da921e2e8a4b5a78ebf0038c6ae245a5ed..86e3df5ee0086eea0eac0197fc90764c1c3fd9ca 100755 (executable)
@@ -1,4 +1,4 @@
 #grab the actual content div
 body: //div[@class='rt-article']
 
-test_url: http://www.sourcebooks.com/next/sourcebooks-next-our-blog/1601-another-piece-of-the-e-puzzle-or-when-good-ebook-promotions-go-bad.html
\ No newline at end of file
+test_url: http://www.sourcebooks.com/blog/happy-27th-birthday-sourcebooks.html
diff --git a/inc/3rdparty/site_config/standard/tabletmag.com.txt b/inc/3rdparty/site_config/standard/tabletmag.com.txt
new file mode 100755 (executable)
index 0000000..58b1f5b
--- /dev/null
@@ -0,0 +1,5 @@
+body: //div[contains(@class, 'story-text')]
+
+strip_id_or_class: related
+
+test_url: http://www.tabletmag.com/jewish-news-and-politics/181181/mossberg-parallel-states?all=1
\ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/tagesspiegel.de.txt b/inc/3rdparty/site_config/standard/tagesspiegel.de.txt
new file mode 100755 (executable)
index 0000000..57e7d3d
--- /dev/null
@@ -0,0 +1,60 @@
+# Author: zinnober
+# Should work with "normal" articles as well as with image galleries
+
+prune: no
+
+# Title
+title: //h1/span[@class='hcf-headline']
+
+# Set author
+author: //a[@rel='author']
+
+# Set date
+date: //span[@class='date hcf-atlas']
+
+# Fetch full multipage articles
+next_page_link: //a[contains(@class, 'hcf-forward')]
+
+# Content is here
+body: //article
+body: //div[contains(@class, 'hcf-screen')]
+
+# Remove tracking and ads
+strip_id_or_class: hcf-ad
+strip_id_or_class: hcf-autoload-ad
+strip_id_or_class: hcf-content-ad
+
+# Tidy up before article
+strip: //article/h1
+strip_id_or_class: hcf-atlas
+strip_id_or_class: hcf-author
+strip_id_or_class: date hcf-atlas
+strip_id_or_class: date hcf-atlas
+
+# General cleanup
+strip: //div[contains(@class, 'hcf-screen')]//h1
+strip: //div[@class='hcf-subpage-titles']//ul
+strip_id_or_class: hcf-doctype-media
+strip_id_or_class: hcf-inline-gallery
+strip_id_or_class: hcf-doctype-video
+strip_id_or_class: hcf-links
+strip_id_or_class: hcf-mini-navi
+strip_id_or_class: hcf-media-control
+strip_id_or_class: hcf-hidden
+replace_string(<span class="hcf-update">Update</span>): <strong>Update: </strong>
+
+# Fix pictures and captions
+replace_string(<a class="hcf-doctype-gallery): <p class="hcf-doctype-gallery
+replace_string(<a class="hcf-doctype-enlarge): <p class="hcf-doctype-enlarge
+replace_string(<figcaption class="hcf-caption">): <br><small><em>
+replace_string(</figcaption>): </em></small>
+
+# Fix image galleries
+replace_string(<a class=" ajaxify): <p class="ajaxify
+replace_string(<div class="hcf-caption"><div><p>): <small><em>
+
+# Try it yourself
+test_url: http://www.tagesspiegel.de/berlin/bezirke/wedding/wedding-jetzt/auf-der-suche-nach-einem-stadtteil-wilder-weiter-wedding/8757156.html
+test_url: http://www.tagesspiegel.de/berlin/olympia-in-berlin-der-flughafen-tegel-soll-das-olympische-dorf-werden/10645036.html
+test_url: http://www.tagesspiegel.de/mediacenter/fotostrecken/berlin/bildergalerie-kreuzberger-der-woche/9305534.html
+
index 0b4bfbd6afa64266e4b9aad433da12bfc3ba4a8f..26eb37b06f435aa079789cfffc22bada59e3eaf7 100755 (executable)
@@ -1,3 +1,3 @@
 single_page_link_in_feed: //b/a
 
-test_url_feed: http://www.techmeme.com/feed.xml
\ No newline at end of file
+test_url: http://www.techmeme.com/feed.xml
index aa41b1533f2efb3b9b264f6a2de6f817d34f0481..3fc5611b2c9964666b671da5cd293fb56f8600a4 100755 (executable)
@@ -15,6 +15,8 @@ strip: //div[@class='earthbox']
 
 single_page_link: //article//a[contains(@class, 'print')]
 
+native_ad_clue: //meta[@property="og:url" and contains(@content, '/sponsored/')]
+
 test_url: http://www.theatlantic.com/technology/archive/2011/04/want-to-see-how-crazy-a-bot-run-market-can-be/237773/
 test_url: http://www.theatlantic.com/magazine/archive/2007/11/the-autumn-of-the-multitaskers/6342/
 test_url: http://www.theatlantic.com/entertainment/archive/2012/04/30-rock-live-a-funny-reminder-of-why-sitcoms-arent-shot-live-anymore/256447/
\ No newline at end of file
index 750f8473302d60b5597fc448f7145719abe244bf..2473cad2c532063623c768aaccc08f95d62115b8 100755 (executable)
@@ -1,5 +1,10 @@
+body: //div[contains(@class, 'entry-content')]//div[contains(@class, 'column-2')]
 single_page_link: //div[contains(@class, 'pagination')]//a[contains(@title, 'ingle page')]
+strip_id_or_class: entry-related
+strip_id_or_class: entry-sidebar
+strip_id_or_class: entry-pagination
 tidy: no
 prune: no
 
-test_url: http://www.theglobeandmail.com/report-on-business/rob-magazine/how-a-novice-miner-survived-a-summer-in-the-klondike/article2345350/
\ No newline at end of file
+test_url: http://www.theglobeandmail.com/report-on-business/rob-magazine/how-a-novice-miner-survived-a-summer-in-the-klondike/article2345350/
+test_url: http://www.theglobeandmail.com/report-on-business/industry-news/energy-and-resources/cliffs-natural-resources-looking-to-exit-ontarios-ring-of-fire/article20651617/
\ No newline at end of file
index c803e4e41532b3718d0d9454295ad90c37109c74..88e2ecf4e29f74874621923e34bdeca5b9dc184c 100755 (executable)
@@ -6,8 +6,19 @@ strip: //div[contains(@class, 'kindleWidget')]
 #strip: //a[not(text())]
 strip_id_or_class: pocket-btn
 author: //li[@class='byline']
+native_ad_clue: //meta[@property="article:tag" and contains(@content, "Partner zone")]
+native_ad_clue: //meta[@property="video:tag" and contains(@content, "Partner zone")]
 prune: no
 tidy: no
+
 test_url: http://www.theguardian.com/world/2013/oct/04/nsa-gchq-attack-tor-network-encryption
+test_contains: The National Security Agency has made repeated attempts to develop
+test_contains: The agency did not directly address those questions, instead providing a statement.
+
 test_url: http://www.theguardian.com/world/2013/oct/03/edward-snowden-files-john-lanchester
-test_url: http://www.theguardian.com/commentisfree/2014/jun/15/britishness-search-identity-my-part-in-camerons-odyssey
\ No newline at end of file
+test_contains: In August, the editor of the Guardian rang me up and asked if I would spend a week in New York
+test_contains: As the second most senior judge in the country, Lord Hoffmann, said in 2004 about a previous version of our anti-terrorism laws
+
+test_url: http://www.theguardian.com/commentisfree/2014/jun/15/britishness-search-identity-my-part-in-camerons-odyssey
+# Native ad
+test_url: http://www.theguardian.com/sustainable-business/2014/jul/18/ben-jerry-turn-ice-cream-into-energy
index 1e1ce58f0405caecd78a30c25810cbd065681ff9..78f8654a00fd7a8fd71d803278d2c86684fdd992 100755 (executable)
@@ -15,6 +15,11 @@ strip: //nav
 strip: //img[contains(@class, 'vox-lazy-load')]
 # deal with bad parsing
 strip: //div[contains(@class, 'story-image')]//div[contains(., 'function(')]
+strip: //div[contains(@class, 'm-linkset')]
+strip: //div[contains(@class, 'm-entry__sidebar')]
+strip: //ul[contains(@class, 'm-article__sources')]
+strip: //div[contains(@class, 'chorus-emc__content')]
+
 
 strip_id_or_class: gallery
 strip_id_or_class: article-meta
@@ -45,4 +50,4 @@ test_url: http://www.theverge.com/2012/2/29/2821763/lytro-review
 test_url: http://www.theverge.com/2011/11/3/2534861/nokia-lumia-800-review
 test_url: http://www.theverge.com/2013/2/24/4026114/barnes-noble-shifting-focus-away-from-nook-hardware
 test_url: http://www.theverge.com/2014/6/19/5824072/top-shelf-living-the-dream
-test_url: http://www.theverge.com/rss/frontpage
\ No newline at end of file
+test_url: http://www.theverge.com/rss/frontpage
diff --git a/inc/3rdparty/site_config/standard/thisiscolossal.com.txt b/inc/3rdparty/site_config/standard/thisiscolossal.com.txt
new file mode 100755 (executable)
index 0000000..ab16ce1
--- /dev/null
@@ -0,0 +1,25 @@
+# Author: zinnober
+
+tidy: no
+prune: no
+
+# Set author
+author: //a[contains(@rel, 'author')]
+
+# Content is here
+body: //article
+
+# Tidy up before article
+strip: //header
+
+# Get rid of doubled images
+strip: //img[contains(@class, '-hidden')]
+
+# Tidy up after article
+strip_id_or_class: social-list
+strip_id_or_class: meta-info
+strip: //footer
+
+# Try it yourself
+test_url: http://www.thisiscolossal.com/2014/09/chicago-in-the-fog-by-michael-salisbury/
+test_url: http://www.thisiscolossal.com/2014/09/bird-portraits-ruffling-with-personality-by-leila-jeffreys/
diff --git a/inc/3rdparty/site_config/standard/towerofthehand.com.txt b/inc/3rdparty/site_config/standard/towerofthehand.com.txt
new file mode 100755 (executable)
index 0000000..a4d87d1
--- /dev/null
@@ -0,0 +1,10 @@
+title: //div[@id='headline']
+body: //div[@class='entry_text']
+author: //div[text() = 'Author:']/following-sibling::div/a
+date: //div[text() = 'Published:']/following-sibling::div
+single_page_link: //a[@href='noscript.html']
+prune: no
+
+test_url: http://towerofthehand.com/blog/2014/08/08-pitch-this-got-spinoff/index.html
+test_url: http://towerofthehand.com/blog/2014/07/31-definitions-and-embodiments/index.html
+test_url: http://towerofthehand.com/blog/2014/07/03-hero-with-thousand-faces/index.html
index 520ebd85925d71ca6ea309531d68e2d6b79b179b..0e5b74878abbb3822b7cd1ff1c7ec96ec19bd0e1 100755 (executable)
@@ -6,4 +6,5 @@ date: //span[contains(@class, 'js-short-timestamp')]/@data-time
 prune: no
 tidy: no
 
-test_url: https://twitter.com/medialens/status/216883678582804480
\ No newline at end of file
+test_url: https://twitter.com/medialens/status/216883678582804480
+test_contains: is all but alone in challenging the tsunami of UK
index efa382244c671d24f5b35b6a7113919bc708ece7..f52339cfa167b7578db950cbe407b379a8e54595 100755 (executable)
@@ -2,6 +2,7 @@ title: //meta[@property="og:title"]/@content
 author: //div[contains(@class, 'byline')]//span[contains(@class, 'name')]
 date: //div[contains(@class, 'cn_date_time')]
 body: //div[contains(@class, 'pageContainers')]
+body: //div[@id='main']
 body: //article[@id='items-container']
 #body: //h2[@class='sub-header'] | //div[contains(@class, 'contributor-type') or @class='display-date' or @class='content-container']
 
@@ -26,5 +27,7 @@ strip: //li[@class='blogNavPrev']
 single_page_link: //a[@title='Print this page']
 
 test_url: http://www.vanityfair.com/politics/features/2011/05/egypt-revolutionaries-201105
+test_contains: nothing can take away from the miracle of Tahrir Square
+
 test_url: http://www.vanityfair.com/politics/features/2008/08/hitchens200808
-test_url: http://www.vanityfair.com/style/2012/01/prisoners-of-style-201201
\ No newline at end of file
+test_url: http://www.vanityfair.com/style/2012/01/prisoners-of-style-201201
diff --git a/inc/3rdparty/site_config/standard/wn.de.txt b/inc/3rdparty/site_config/standard/wn.de.txt
new file mode 100755 (executable)
index 0000000..ef18c8a
--- /dev/null
@@ -0,0 +1,18 @@
+author: //div[@id='main']//div[@class='col right']//div[contains(@class, 'attribute-author')]
+body: //div[@id='main']//div[@class='col right']
+strip_id_or_class: boxes
+strip_id_or_class: lazy
+strip_id_or_class: comment_box
+strip_id_or_class: fb_comments
+
+find_string: <noscript>
+replace_string: <div>
+find_string: </noscript>
+replace_string: </div>
+
+prune: no
+tidy: no
+
+test_url: http://www.wn.de/Muenster/Kultur/1742956-Wilm-Weppelmann-verlaesst-die-Einsiedelei-Und-dann-ab-unter-die-Dusche
+# feed
+test_url: http://www.wn.de/rss/feed/wn_muenster
\ No newline at end of file
index b5dd21203a9a667872303bc71a0b97498f862769..f6ba47089e8b1cb5b5a87d08787cf0b30397aefc 100755 (executable)
@@ -24,15 +24,17 @@ class Database {
         switch (STORAGE) {
             case 'sqlite':
                 // Check if /db is writeable
-                if ( !is_writable(STORAGE_SQLITE) || !is_writable(dirname(STORAGE_SQLITE))) {\r
+                if ( !is_writable(STORAGE_SQLITE) || !is_writable(dirname(STORAGE_SQLITE))) {
                        die('An error occured: "db" directory must be writeable for your web server user!');
                 }
                 $db_path = 'sqlite:' . STORAGE_SQLITE;
                 $this->handle = new PDO($db_path);
                 break;
             case 'mysql':
-                $db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
-                $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD);
+                $db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB . ';charset=utf8mb4';
+                $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD, array(
+                    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
+                ));
                 break;
             case 'postgres':
                 $db_path = 'pgsql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
index 8d3912f5f8d01fa68d8944ab822f4a9585aa6a83..420f2fb9c2db9ae39888495f43be7bc2d78b69a8 100644 (file)
@@ -18,6 +18,7 @@ class Language
         'cs_CZ.utf8' => 'čeština',
         'de_DE.utf8' => 'German',
         'en_EN.utf8' => 'English',
+        'en_US.utf8' => 'English (US)',
         'es_ES.utf8' => 'Español',
         'fa_IR.utf8' => 'فارسی',
         'fr_FR.utf8' => 'Français',
@@ -110,4 +111,4 @@ class Language
         Tools::emptyCache();
         Tools::redirect('?view=config');
     }
-} 
\ No newline at end of file
+} 
index 8cebafa31af026de49c59c3db8ccf6954bc4419f..16235474bf601a4cc321bf1513b7d9e59326c1a1 100755 (executable)
@@ -314,6 +314,8 @@ class Poche
 
         switch ($view)
         {
+            case 'about':
+                break;
             case 'config':
                 $dev_infos = $this->_getPocheVersion('dev');
                 $dev = trim($dev_infos[0]);
@@ -388,7 +390,7 @@ class Poche
                             $this->pagination->page_links('?view=' . $view . '?search=' . $search . '&sort=' . $_SESSION['sort'] . '&' ));
                    $tpl_vars['page_links'] = $page_links;
                    $tpl_vars['nb_results'] = $count;
-                   $tpl_vars['search_term'] = $search;
+                   $tpl_vars['searchterm'] = $search;
                 }
                 break;
             case 'view':
index 0b373058029777acc582736faffddaeaa46e6cf8..6ae93d21d7622d552709d98ccd5ce743bcfc7a71 100755 (executable)
@@ -119,7 +119,7 @@ class Routing
             } elseif (isset($_GET['deluser'])) {
                 $this->wallabag->deleteUser($_POST['password4deletinguser']);
             } elseif (isset($_GET['epub'])) {
-                $epub = new WallabagEpub($this->wallabag, $_GET['method'], $_GET['id'], $_GET['value']);
+                $epub = new WallabagEpub($this->wallabag, $_GET['method'], $_GET['value']);
                 $epub->run();
             } elseif (isset($_GET['import'])) {
                 $import = $this->wallabag->import();
index 93ec3fc6a877bf93f00e7c0dfadfd2cdf2b412d8..f803e3b57b1435e6064cefea5e9e48e08b6672ee 100755 (executable)
@@ -51,6 +51,7 @@ final class Tools
 
         $serverport = (!isset($_SERVER["SERVER_PORT"])
             || $_SERVER["SERVER_PORT"] == '80'
+            || $_SERVER["SERVER_PORT"] == HTTP_PORT
             || ($https && $_SERVER["SERVER_PORT"] == '443')
             || ($https && $_SERVER["SERVER_PORT"]==SSL_PORT) //Custom HTTPS port detection
             ? '' : ':' . $_SERVER["SERVER_PORT"]);
@@ -116,7 +117,7 @@ final class Tools
     {
         $views = array(
             'install', 'import', 'export', 'config', 'tags',
-            'edit-tags', 'view', 'login', 'error'
+            'edit-tags', 'view', 'login', 'error', 'about'
             );
 
         return (in_array($view, $views) ? $view . '.twig' : 'home.twig');
index 2a458544f0fd49b09a4b4f4bb873486db5e3216b..f666f468eeabc343fad8476707dcd25f9d10e675 100755 (executable)
@@ -24,6 +24,8 @@
 #################################################################################
 # Do not trespass unless you know what you are doing
 #################################################################################
+// Change this if http is running on nonstandard port - i.e is behind cache proxy
+@define ('HTTP_PORT', 80);
 
 // Change this if not using the standart port for SSL - i.e you server is behind sslh
 @define ('SSL_PORT', 443);
index 89dfc0177f58a3a5a6595db9823f4dd9314480a5..fee063bb19ce55a0ea1c6cf7b04b740c33d1b941 100755 (executable)
@@ -102,12 +102,14 @@ else if (isset($_POST['install'])) {
                 $content = file_get_contents('inc/poche/config.inc.php');
 
                 if ($_POST['db_engine'] == 'mysql') {
-                    $db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database'];
+                    $db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database'] . ';charset=utf8mb4';
                     $content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['mysql_server']."');", $content);
                     $content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['mysql_database']."');", $content);
                     $content = str_replace("define ('STORAGE_USER', 'poche');", "define ('STORAGE_USER', '".$_POST['mysql_user']."');", $content);
                     $content = str_replace("define ('STORAGE_PASSWORD', 'poche');", "define ('STORAGE_PASSWORD', '".$_POST['mysql_password']."');", $content);
-                    $handle = new PDO($db_path, $_POST['mysql_user'], $_POST['mysql_password']); 
+                    $handle = new PDO($db_path, $_POST['mysql_user'], $_POST['mysql_password'], array(
+                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
+                    ));
 
                     $moreQueries[] = "INSERT INTO `entries` (`id`, `title`, `url`, `is_read`, `is_fav`, `content`, `user_id`) VALUES
 (1, 'Framabag, un nouveau service libre et gratuit', 'http://www.framablog.org/index.php/post/2014/02/05/Framabag-service-libre-gratuit-interview-developpeur', 0, 0, 0x0a3c68323e556e6520696e74657276696577206465204e69636f6c61732c20736f6e2064c3a976656c6f70706575722e3c2f68323e0a3c703e3c656d3e496c206e6520766f757320612073c3bb72656d656e742070617320c3a96368617070c3a920717565206e6f74726520636f6e736f6d6d6174696f6e20646520636f6e74656e75732064752057656220657374207465727269626c656d656e74206368726f6e6f706861676520657420706172746963756c69c3a872656d656e7420667275737472616e746520746f757420c3a0206c6120666f6973c2a03a206e6f6e207365756c656d656e74206e6f757320706173736f6e732062656175636f7570202874726f70c2a03f292064652074656d707320656e206c69676e6520c3a0206578706c6f726572206c6573206d696e6573206175726966c3a8726573206465206c6120746f696c652c20792064c3a974656374616e742070c3a970697465732065742066696c6f6e732c206d616973206e6f757320736f6d6d657320737572746f757420636f6e7374616d6d656e7420656e206d616e7175652e204dc3aa6d65207369206e6f7573206e6520736f6d6d6573207061732064616e73206c65207a617070696e67206672c3a96ec3a9746971756520736920666163696c656d656e742064c3a96e6f6e63c3a920706172206c657320646f637465732070737963686f6c6f677565732071756920706f6e74696669656e7420737572206c65732064616e67657273206475206e756dc3a9726971756520706f7572206c6573206a65756e65732063657276656c6c65732c20696c206e6f7573207669656e7420736f7576656e74206c6520676fc3bb7420616d6572206465206ce28099696e6163686576c3a9c2a03a20706173206c652074656d707320646520746f7574206c69726520283c6120687265663d22687474703a2f2f66722e77696b74696f6e6172792e6f72672f77696b692f544c4452223e544c3b44523c2f613e2065737420646576656e75206c6520636c696e2064e28099c593696c206d692d6669677565206d692d72616973696e2064e28099756e652067c3a96ec3a9726174696f6e206465206c65637465757273207072657373c3a973292c207061732074726f70206c652074656d70732064652072c3a9666cc3a963686972206e6f6e20706c75732068c3a96c61732c20706173206c652074656d707320646520737569767265206c6120726962616d62656c6c65206465206c69656e73206173736f6369c3a97320c3a020756e2061727469636c65e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e506f7572206e6f757320646f6e6e657220626f6e6e6520636f6e736369656e63652c206e6f75732072616e67656f6e73207363727570756c657573656d656e7420756e206d61727175652d7061676520646520706c75732064616e7320756e20736f75732d646f73736965722071756920656e20636f6d706f7274652064c3a96ac3a0203235362c206e6f7573206e6f746f6e7320756e20c3a96cc3a96d656e7420646520706c75732064616e73206c6120746f756a6f757273207269646963756c656d656e74206c6f6e67756520746f75646f756c697374652c2062726566206e6f75732072656d6574746f6e7320c3a020706c757320746172642c2063e280996573742dc3a02d64697265206c6520706c757320736f7576656e742061757820696e74726f757661626c65732063616c656e6465732067726563717565732c206c6520736f696e206465206c69726520767261696d656e7420756e2061727469636c65206a7567c3a920696e74c3a972657373616e742c20646520726567617264657220756e6520766964c3a96f207369676e616cc3a96520706172206c65732072c3a97a6f73736f63696f732c206465206c69726520756e20636861706974726520656e746965722064e28099756e206f75767261676520646973706f6e69626c6520656e206c69676e65e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e416c6f7273206269656e2073c3bb722c20c3a02064c3a966617574206465206e6f757320646f6e6e657220746f7574206c652074656d70732071756920736572616974206ec3a963657373616972652c2064657320736f6c7574696f6e73206578697374656e7420706f7572206e6f7573207065726d657474726520646520c2abc2a06c69726520706c75732074617264c2a0c2bb20656e20736175766567617264616e74206c65207072c3a9636965757820706f6c6c656e206465206e6f7320627574696e61676573206465207369746520656e20736974652c2065742064e28099656e20666169726520756c74c3a97269657572656d656e7420766f747265206d69656cc2a03b2063e280996573742062656c20657420626f6e206d616973206c65732072756368657320736f6e7420756e207065752064697374616e7465732c20c3a7612073e28099617070656c6c65206c6520636c6f756420286e6f7320616d69732074656368696573206de280996f6e74206269656e206578706c697175c3a9206d616973206ae280996169207365756c656d656e7420636f6d70726973207175652064657320747275637320c3a0206d6f6920736f6e742073757220646573206d616368696e6573206c6f696e7461696e65732c20c3a761206e65206d652072617373757265207061732074726f702920657420656c6c657320736f6e7420736f7576656e742070726f707269c3a97461697265732c206e65206c61697373616e7420656e7472657220717565206c6573203c733e7574696c69736174657572733c2f733e20636f6e736f6d6d61746575727320706179616e74732065742071756920636f6e73656e74656e7420c3a0206c6575727320636f6e646974696f6e732e2053616e7320636f6d70746572207175652064652067726f7320626f7572646f6e73207669656e6e656e742070726f666974657220706c7573206f75206d6f696e73206469736372c3a874656d656e7420646520746f757465732063657320747261636573206465206e6f75732d6dc3aa6d657320717569207065726d657474656e74206465206d6f6ec3a97469736572206e6f7472652070726f66696cc2a03a207369206a6520636f6c6c65637465207375722063657320736572766963657320286e65206c6573206e6f6d6d6f6e73207061732c206a757374656d656e742920756e652073c3a97269652064e2809961727469636c657320737572206ce280996964c3a965206465204e6174757265206368657a2044696465726f742c206a6520726563657672616920646976657273657320736f6c6c696369746174696f6e7320706f757220646576656e697220636c69656e74206465206c6120626f757469717565204e61747572652026616d703b2044c3a9636f75766572746520647520626f756c65766172642044696465726f742e2045742073692064e280996176656e74757265206c65732070726f6772616d6d6573206465206c61204e5341206d6f756c696e656e7420737572206c6520736572766963652c206a6520736572616920706575742dc3aa74726520756e206a6f75722064616e7320756e65206c6973746520646573206d696c6974616e7473206e61747572697374657320696e64c3a973697261626c657320737572206c657320766f6c73206465206c612050616e416d20286a65206e65207361697320706c75732074726f70207369206a6520706c616973616e7465206cc3a02c2066696e616c656d656e74e280a6293c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4c6120626f6e6e65206964c3a965c2a03a20c2abc2a0736520636f6e7374697475657220756e2072c3a9736572766f697220646520646f63756d656e74732073c3a96c656374696f6e6ec3a97320c3a020706172636f7572697220706c75732074617264c2a0c2bb20617070656c61697420646f6e6320756e6520617574726520626f6e6e65206964c3a9652c2063656c6c652064e2809961766f6972206c6520636f6e7472c3b46c652064652063652072c3a9736572766f69722c206465206e6f74726520636f6c6c656374696f6e20706572736f6e6e656c6c652e2043e28099657374204e69636f6c6173204cc59375696c6c65742c2063692d646573736f757320696e74657276696577c3a92c207175692073e28099792065737420636f6c6cc3a9206176656320756e652062656c6c65206170706c69636174696f6e20617070656cc3a96520657568e280a6206f75692c20617070656cc3a9652057616c6c616261672e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4672616d61736f667420736f757469656e742064e28099617574616e7420706c757320736f6e20696e6974696174697665207175e280993c6120687265663d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f696e6465782e7068702f706f73742f323031342f30312f33312f4765656b74696f6e6e6572642d57616c6c61626167223e6f6e206c7569206120636865726368c3a920646573206d6973c3a872657320706f757220756e6520686973746f697265206465206e6f6d3c2f613e206574207175e28099696c2065737420706f737369626c652064e28099696e7374616c6c657220736f692d6dc3aa6d6520756e6520636f7069652064652057616c6c616261672073757220736f6e2070726f70726520736974652e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4c6520706574697420706c7573206465204672616d61736f66742c2072c3a97365617520746f756a6f7572732064c3a973697265757820646520766f75732070726f706f7365722064657320616c7465726e617469766573206c6962c3a972617472696365732c2063e2809965737420646520766f75732070726f706f736572202873757220696e736372697074696f6e207072c3a9616c61626c652920756e20616363c3a873206175204672616d616261672c2061757472656d656e742064697420766f7472652057616c6c616261672073757220756e2073657276657572204672616d612a2061766563206e6f74726520676172616e74696520646520636f6e666964656e7469616c6974c3a92e20436f6d6d6520706f7572206c65204672616d616e6577732c206e6f757320766f7573206163637565696c6c6f6e7320766f6c6f6e74696572732064616e73206c61206c696d697465206465206e6f732063617061636974c3a9732c20656e20766f757320696e766974616e7420c3a020766f7573206c616e6365722064616e7320766f747265206175746f2d68c3a962657267656d656e742064652057616c6c616261672e3c6272202f3e4365742061727469636c65206573742074726f70206c6f6e67c2a03f204d657474657a2d6c652064616e73203c6120687265663d22687474703a2f2f7777772e6672616d616261672e6f72672f696e6465782e706870223e766f747265204672616d616261673c2f613e20657420686f702e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4672616d61626c6f67c2a03a2053616c7574204e69636f6c6173e280a62054752070657578207465207072c3a973656e74657220627269c3a876656d656e74c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e53616c7574c2a0212044c3a976656c6f70706575722050485020646570756973207175656c7175657320616e6ec3a96573206d61696e74656e616e742028313020616e73292c206ae28099616920766f756c75206d652072656d657474726520c3a0206e697665617520746563686e697175656d656e74207061726c616e742028646570756973203320616e732c206ae28099616920706173206d616c206cc3a26368c3a9206c6520636c6176696572292e20506f7572206d6573206265736f696e7320706572736f732c206ae28099616920646f6e63206372c3a9c3a920756e2070657469742070726f6a657420706f75722072656d706c6163657220756e6520736f6c7574696f6e2070726f707269c3a97461697265206578697374616e74652e2053616e7320617563756e65207072c3a974656e74696f6e2c206ae2809961692068c3a962657267c3a92063652070726f6a6574207375722047697468756220657420636f6d6d652063e28099657374206c61207365756c6520736f6c7574696f6e203c656d3e6f70656e20736f757263653c2f656d3e20646520636520747970652c206c65206e6f6d62726520646520706572736f6e6e657320696e74c3a972657373c3a965732061206175676d656e74c3a920e280a63c2f703e0a3c703e3c656d3e4c6573207574696c6973617465757273206465207365727669636573204672616d61736f6674206e65206c6520736176656e742070617320666f7263c3a96d656e742c206d6169732074752061732064c3a96ac3a020706173206d616c207061727469636970c3a920c3a0206c61204672616d6147616c617869652c206e6f6ec2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e456e2065666665742e204ae28099616920636f6d6d656e63c3a920756e20706c7567696e20706f7572204672616d616e6577732c203c6120687265663d2268747470733a2f2f6769746875622e636f6d2f6e69636f736f6d622f74747273732d70757267652d6163636f756e7473223e74747273732d70757267652d6163636f756e74733c2f613e2c20717569207065726d6574206465206e6574746f796572206c61206261736520646520646f6e6ec3a9657320646520636f6d7074657320706c7573207574696c6973c3a9732e204d616973206365203c656d3e706c7567696e3c2f656d3e2061206265736f696e2064e28099c3aa747265207465726d696ec3a920c3a0203130302520706f757220c3aa74726520696e74c3a96772c3a9206175207365696e206465204672616d616e6577732028657420646f6e632064652054696e792054696e7920525353292c207369207175656c7175e28099756e20736f756861697465206de2809961696465722c20696c206ee2809979206120617563756e20736f7563692e3c6272202f3e4ae28099616920617573736920666169742031206f7520322061707061726974696f6e732064616e73206465732074726164756374696f6e7320706f7572204672616d61626c6f672e205269656e2064e2809965787472616f7264696e616972652c206a65206e652073756973207061732062696c696e6775652c20c3a761206d65207065726d6574206465206de28099656e747261c3ae6e65722e3c2f703e0a3c703e3c656d3e5061726c6f6e73206465207375697465206465206365207175692066c3a2636865c2a03a20746f6e206170706c69636174696f6e2057616c6c616261672c20656c6c652073e28099617070656c6c6169742070617320e2809c506f636865e2809d2c206176616e74c2a03f205475206e6f7573207261636f6e746573206ce28099686973746f697265c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e45756820656e20656666657420e280a62044c3a96ac3a02c20706f757271756f69203c656d3e706f6368653c2f656d3ec2a03f20506172636520717565206ce28099756e206465732074726f697320c2abc2a074c3a96e6f7273c2a0c2bb20737572206c65206d61726368c3a92073e28099617070656c6c65203c656d3e506f636b65743c2f656d3e2e20436f6d6d65206d6f6e206170706c69206ee28099c3a9746169742064657374696ec3a965207175e28099c3a0206d6f6e20757361676520706572736f6e6e656c2061752064c3a9706172742c206a65206e65206d6520737569732070617320746f72747572c3a9206269656e206c6f6e6774656d70732e3c2f703e0a3c703e43657420c3a974c3a92c206f6e2061206661696c6c69206368616e676572206465206e6f6d2c207175616e6420696c2079206120657520646520706c757320656e20706c75732064e280997574696c69736174657572732e2045742070756973206f6e2073e28099657374206469742071756520706f6368652c2063e28099c3a97461697420706173206d616c2c20c3a76120736f6e6e616974206269656e206672616ec3a761697320657420707569732061766563206c6573207175656c717565732064697a61696e65732064e280997574696c69736174657572732c206f6e206e652067c3aa6e657261697420706572736f6e6e652e3c2f703e0a3c703e43e280996573742073616e7320636f6d707465722061766563206c657320736f6369c3a974c3a97320616dc3a972696361696e6573206574206c6575722066c3a2636865757365206d616e696520646520766f756c6f697220656e766f796572206c657572732061766f6361747320c3a020746f757420626f7574206465206368616d702e204c65203233206a616e766965722c206ae280996169207265c3a77520756e20656d61696c206465206c61207061727420647520636162696e65742064e2809961766f6361747320646520506f636b6574206d652064656d616e64616e74206465206368616e676572206c65206e6f6d2c206c65206c6f676f2c206465206e6520706c7573207574696c69736572206c65207465726d6520e2809c726561642d69742d6c61746572e2809d2028c2abc2a06c6973657a206c6520706c75732074617264c2a0c2bb29206574206465206e6520706c757320646972652071756520506f636b6574206ee280996573742070617320677261747569742028746f7574206573742070617274692064e280993c6120687265663d2268747470733a2f2f747769747465722e636f6d2f77616c6c616261676170702f7374617475732f343233373836333635393434323235373932223e756e2074776565743c2f613e206fc3b9206a65207175616c6966696520506f636b657420646520c2abc2a06e6f6e2066726565c2a0c2bb20c3a0207361766f6972206e6f6e206c69627265292e20427265662c206dc3aa6d65207369206a652073656d626c6169732064616e73206d6f6e2064726f69742c206ae280996169207175616e64206dc3aa6d652070726973206c612064c3a9636973696f6e206465206368616e676572206465206e6f6d2065742057616c6c6162616720657374206ec3a92c20737569746520617578203c6120687265663d22687474703a2f2f6672616d61646174652e6f72672f73747564732e7068703f736f6e646167653d6c6c6370366f6a70796339706b6c6861223e64697a61696e65732064652070726f706f736974696f6e73206465206e6f6d207265c3a77565733c2f613e2e2043e2809965737420756e206dc3a96c616e676520656e747265206c652077616c6c61627920286465206c612066616d696c6c6520646573206b616e676f75726f75732c207175692073746f636b656e742064616e73206c65757220706f63686520636520717569206c65757220657374206368657229206574203c656d3e6261673c2f656d3e20286c6573207465726d657320736163202f207361636f636865202f2062657361636520736f6e7420c3a96e6f726dc3a96d656e7420726576656e7573292e204d616973206d61696e74656e616e742c206f6e207661206465206ce280996176616e742c20706c75732064652074656d707320c3a020706572647265206176656320c3a7612c206f6e2061206475207061696e20737572206c6120706c616e6368652e3c6272202f3e3c696d67207372633d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f7075626c69632f5f696d672f6672616d61626c6f672f77616c6c6162795f626162792e6a70672220616c743d2277616c6c61627920617665632062c3a962c3a92064616e7320736120706f6368652220636c6173733d22633122207469746c653d2277616c6c61627920617665632062c3a962c3a92064616e7320736120706f63686522202f3e206372c3a96469742070686f746f203c6120687265663d22687474703a2f2f7777772e666c69636b722e636f6d2f70686f746f732f3236373832383634404e30302f353032373230323233342f696e2f70686f746f6c6973742d3845654a35412d6831544c36762d4e454c38312d636e4e6b536f2d39594d3174762d374b636736622d387a70416f612d61315a4c4d4e2d39594d3339722d3768355341442d38456548664c2d3845654677752d647456776e4d2d38756f4d45312d4a457a58652d47713471792d3932564a50522d43786531762d38483344324a2d61315a464e732d395937324b362d38456547784c2d354c353346782d354e6b454e732d3555384354592d354e6b7373682d6e6b6176462d3943726777502d3773644341612d647566324b682d685a65707a792d685a645531652d685a656f66462d685a656b44672d685a656741592d685a654d5a6e2d6a61486741662d3850383744322d354e677152762d6154343851422d685a645634592d685a654336342d45526770732d3556594747642d3556594a42312d354e6b72466b2d364a786837682d3768395075512d4552664d782d6831553169682d683155534278223e57696c6c69616d2057617262793c2f613e20717569206175746f72697365206578706c69636974656d656e7420746f7574652072c3a97574696c69736174696f6e2e3c2f703e0a3c703e3c656d3e426f6e2c20616c6f7273206578706c697175652d6d6f6920636520717565206a65207661697320706f75766f69722066616972652061766563204672616d61626167e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e416c6f7273204672616d616261672c20c3a761207465207065726d6574206465207465206372c3a9657220756e20636f6d7074652067726174756974656d656e74206574206c696272656d656e7420706f757220706f75766f6972207574696c697365722057616c6c616261672e205365756c6520746f6e206164726573736520656d61696c20657374206ec3a963657373616972652c206f6e207365206368617267652064e28099696e7374616c6c6572206574206465206d657474726520c3a0206a6f75722057616c6c6162616720706f757220746f692e20547520706575782064e2809961696c6c657572732070726f6669746572203c6120687265663d22687474703a2f2f7777772e6672616d61736f66742e6e65742f23746f705067436c6f7564223e64e280996175747265732073657276696365732070726f706f73c3a97320706172204672616d61736f6674206963693c2f613e2e3c2f703e0a3c703ec380206365206a6f75722c20696c207920612038333420636f6d70746573206372c3a9c3a97320737572204672616d616261672e3c2f703e0a3c703e3c656d3e566f7573206176657a20767261696d656e7420636f6ec3a7752063652073657276696365206166696e207175e280996f6e20707569737365206ce280997574696c69736572206176656320756e206d6178696d756d2064e280996f7574696c732c206e6f6ec2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4175746f7572206465206ce280996170706c69636174696f6e207765622c20696c206578697374652064c3a96ac3a020646573206170706c69636174696f6e7320706f757220736d61727470686f6e65732028416e64726f69642065742057696e646f77732050686f6e65292c2064657320657874656e73696f6e732046697265666f7820657420476f6f676c65204368726f6d652e3c2f703e0a3c703e436f6d6d652057616c6c6162616720706f7373c3a864652064657320666c7578205253532c2063e2809965737420666163696c65206465206c697265206c65732061727469636c657320736175766567617264c3a97320737572207361206c697365757365202873692063656c6c652d6369207065726d6574206465206c6972652064657320666c757820525353292e2043616c696272652028c2abc2a06c6f67696369656c206465206c6563747572652c2064652067657374696f6e206465206269626c696f7468c3a87175657320657420646520636f6e76657273696f6e206465206669636869657273206e756dc3a972697175657320646520747970652065626f6f6b206f75206c6976726520c3a96c656374726f6e69717565c2a0c2bb2c6e6f757320646974207562756e74752d66722e6f72672920696e74c3a867726520646570756973207175656c717565732073656d61696e6573206d61696e74656e616e74206c6120706f73736962696c6974c3a92064652072c3a9637570c3a9726572206c65732061727469636c6573206e6f6e206c75732c20707261746971756520706f757220666169726520756e20666963686965722065507562c2a0213c2f703e0a3c703e44e28099617574726573206170706c69636174696f6e7320776562207065726d657474656e74206ce28099696e74c3a967726174696f6e20617665632057616c6c61626167202846726573685253532c204c6565642065742054696e792054696e792052535320706f7572206c657320616772c3a96761746575727320646520666c7578292e204ce2809941504920717569207365726120646973706f6e69626c652064616e73206c612070726f636861696e652076657273696f6e2064652057616c6c61626167207065726d657474726120656e636f726520706c75732064e28099696e74657261637469766974c3a92e3c2f703e0a3c703e3c656d3e5920612d742d696c20756e206d6f6465206465206c65637475726520686f7273206c69676e65206f75206573742d6365207175652063e28099657374207072c3a9767520706f7572206c65732070726f636861696e65732076657273696f6e73c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e496c2079206120756e2070736575646f206d6f646520686f7273206c69676e652c20646973706f6e69626c652061766563206ce280996170706c69636174696f6e20416e64726f69642e204f6e20706575742072c3a9637570c3a9726572202876696120756e20666c75782052535329206c65732061727469636c6573206e6f6e206c757320717565206ce280996f6e206120736175766567617264c3a9732e20556e6520666f69732064c3a9636f6e6e656374c3a92c206f6e207065757420636f6e74696e75657220c3a0206c6972652073757220736f6e20736d61727470686f6e65206f75207361207461626c65747465206c65732061727469636c65732e2050617220636f6e7472652c20696c206d616e7175652064657320666f6e6374696f6e6e616c6974c3a973c2a03a207175616e64207475206d61727175657320756e2061727469636c6520636f6d6d65206c752c206365206ee28099657374207061732073796e6368726f6e6973c3a92061766563206c612076657273696f6e207765622064652057616c6c616261672e204ae28099657370c3a8726520717565206a652073756973207072657371756520636c6169722064616e73206d6573206578706c69636174696f6e732e3c2f703e0a3c703e506f7572206c612076322c20717569206573742064c3a96ac3a020656e20636f7572732064652064c3a976656c6f7070656d656e742c206fc3b9206a652073756973206269656e20616964c3a9207061722056696e63656e74204a6f757373652c206f6e2061757261206c6120706f73736962696c6974c3a92064e2809961766f697220756e2076726169206d6f646520686f7273206c69676e652e3c2f703e0a3c703e3c656d3e416c6f7273207369206f6e2076657574206169646572202f2070617274696369706572202f20747269666f75696c6c6572206c6520636f6465202f20766f757320656e766f79657220646573207265746f7572732c206f6e206661697420636f6d6d656e74c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4f6e207065757420616964657220646520706c75736965757273206661c3a76f6e73c2a03a3c2f703e0a3c756c3e3c6c693e7574696c697365722077616c6c61626167206574206e6f75732072656d6f6e746572206c65732070726f626cc3a86d65732072656e636f6e7472c3a973c2a03b3c2f6c693e0a3c6c693e706172746963697065722061752064c3a976656c6f7070656d656e74206465206ce280996170706c69636174696f6e2068747470733a2f2f6769746875622e636f6d2f77616c6c616261672f77616c6c616261672053692053696c6578202f2053796d666f6e7932202f2048544d4c35202f206574632e207465207061726c656e742c206ee2809968c3a97369746520706173c2a0213c2f6c693e0a3c6c693e636f6d6d6520746f75742070726f6a65742c206c652067726f7320706f696e74206e6f697220657374206c65206d616e71756520646520646f63756d656e746174696f6e2e203c6120687265663d22687474703a2f2f646f632e77616c6c616261672e6f7267223e456c6c652065737420646973706f206963693c2f613e206d61697320696c206d616e71756520706c65696e2064652063686f73657320657420746f7574206ee280996573742070617320c3a0206a6f7572c2a03b3c2f6c693e0a3c6c693e7061726c65722064652057616c6c61626167206175746f757220646520766f7573c2a03b3c2f6c693e0a3c6c693e696c20657869737465203c6120687265663d2268747470733a2f2f666c617474722e636f6d2f7468696e672f313236353438302f706f6368652d612d726561642d69742d6c617465722d6f70656e2d736f757263652d73797374656d223e756e20636f6d70746520466c617474723c2f613e2e3c2f6c693e0a3c2f756c3e3c703e3c656d3e4c65206d6f74206465206c612066696ee280a63f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4d6572636920c3a0204672616d61736f66742064e280996163637565696c6c697220657420646520736f7574656e69722057616c6c61626167c2a0213c2f703e0a3c703e4c6120726f7574652065737420656e636f7265206269656e206c6f6e67756520706f7572206e6520706c7573207574696c6973657220646520736f6c7574696f6e732070726f707269c3a97461697265732c206d616973206f6e2064657672616974207920617272697665722c206e6f6ec2a03f3c2f703e0a3c703e3c696d67207372633d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f7075626c69632f5f696d672f6672616d61626c6f672f706c65696e4c6573506f636865732e706e672220616c743d226672616d61736f667420706c65696e206c657320706f636865732220636c6173733d22633122207469746c653d226672616d61736f667420706c65696e206c657320706f6368657322202f3e3c6272202f3e3c6120687265663d22687474703a2f2f6672616d616c61622e6f72672f676b6e642d63726561746f722f223e6861636b657a2047c3a967c3a9c2a0213c2f613e3c2f703e0a, 1),
@@ -288,7 +290,7 @@ php composer.phar install</code></pre></li>
                                     <li><label for="mysql_server">Server</label> <input type="text" placeholder="localhost" id="mysql_server" name="mysql_server" /></li>
                                     <li><label for="mysql_database">Database</label> <input type="text" placeholder="wallabag" id="mysql_database" name="mysql_database" /></li>
                                     <li><label for="mysql_user">User</label> <input type="text" placeholder="user" id="mysql_user" name="mysql_user" /></li>
-                                    <li><label for="mysql_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="mysql_password" name="mysql_password" /></li>
+                                    <li><label for="mysql_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="mysql_password" name="mysql_password" /></li>
                                 </ul>
                             </li>
                             <li>
@@ -297,7 +299,7 @@ php composer.phar install</code></pre></li>
                                     <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li>
                                     <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li>
                                     <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li>
-                                    <li><label for="pg_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li>
+                                    <li><label for="pg_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li>
                                 </ul>
                             </li>
                         </ul>
index de5640e4a6e13b63b8c61dd4e289ee7750177399..1b65cd35ac370fff602bf43a55916479c53f50c1 100644 (file)
@@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS `config` (
   `name` varchar(255) NOT NULL,
   `value` varchar(255) NOT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
 CREATE TABLE IF NOT EXISTS `entries` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS `entries` (
   `content` blob NOT NULL,
   `user_id` int(11) NOT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4;
 
 CREATE TABLE IF NOT EXISTS `users` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS `users` (
   `name` varchar(255) NOT NULL,
   `email` varchar(255) NOT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4;
 
 CREATE TABLE IF NOT EXISTS `users_config` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -31,13 +31,13 @@ CREATE TABLE IF NOT EXISTS `users_config` (
   `name` varchar(255) NOT NULL,
   `value` varchar(255) NOT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4;
 
 CREATE TABLE IF NOT EXISTS `tags` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `value` varchar(255) NOT NULL,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4;
 
 CREATE TABLE IF NOT EXISTS `tags_entries` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -46,4 +46,4 @@ CREATE TABLE IF NOT EXISTS `tags_entries` (
   FOREIGN KEY(entry_id) REFERENCES entries(id) ON DELETE CASCADE,
   FOREIGN KEY(tag_id) REFERENCES tags(id) ON DELETE CASCADE,
   PRIMARY KEY (`id`)
-) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4;
index a3c984970b4279f17783368de837c0ad58d38a03..12fef6c83ac8417903986dad6385c37ad0a381db 100644 (file)
Binary files a/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo and b/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo differ
index c589866cf0efe6c6b269c0f45f9a45fd88cbb292..98c6a3e81a93bc813a395edda0ce771ae8ef55ed 100644 (file)
@@ -4,26 +4,26 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-02-25 15:17+0300\n"
 "PO-Revision-Date: \n"
-"Last-Translator: tcit <tcit@tcit.fr>\n"
+"Last-Translator: tcit <tcit@openmailbox.org>\n"
 "Language-Team: \n"
 "Language: en\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.6.9\n"
+"X-Generator: Poedit 1.5.4\n"
 "X-Poedit-Basepath: .\n"
 
 msgid "wallabag, a read it later open source system"
 msgstr "wallabag, a read it later open source system"
 
 msgid "login failed: user doesn't exist"
-msgstr "login failed: user doesn't exist"
+msgstr "Login failed: user doesn't exist"
 
 msgid "return home"
-msgstr "return home"
+msgstr "Return Home"
 
 msgid "config"
-msgstr "config"
+msgstr "Config"
 
 msgid "Saving articles"
 msgstr "Saving articles"
@@ -32,10 +32,16 @@ msgid "There are several ways to save an article:"
 msgstr "There are several ways to save an article:"
 
 msgid "read the documentation"
-msgstr "read the documentation"
+msgstr "Read the documentation"
 
 msgid "download the extension"
-msgstr "download the extension"
+msgstr "Download the extension"
+
+msgid "Firefox Add-On"
+msgstr "Firefox Add-On"
+
+msgid "Chrome Extension"
+msgstr "Chrome Extension"
 
 msgid "via F-Droid"
 msgstr "via F-Droid"
@@ -47,7 +53,7 @@ msgid "via Google Play"
 msgstr "via Google Play"
 
 msgid "download the application"
-msgstr "download the application"
+msgstr "Download the application"
 
 msgid "By filling this field"
 msgstr "By filling this field"
@@ -56,7 +62,7 @@ msgid "bag it!"
 msgstr "bag it!"
 
 msgid "Bookmarklet: drag & drop this link to your bookmarks bar"
-msgstr "Bookmarklet: drag & drop this link to your bookmarks bar"
+msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
 
 msgid "Upgrading wallabag"
 msgstr "Upgrading wallabag"
@@ -102,17 +108,16 @@ msgid "Your token:"
 msgstr "Your token:"
 
 msgid "Your user id:"
-msgstr "Your user id:"
+msgstr "Your user ID:"
 
 msgid ""
 "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!"
 "</a>."
 msgstr ""
-"You can regenerate your token: <a href='?feed&amp;action=generate'>generate!"
-"</a>."
+"<a href='?feed&amp;action=generate'>Regenerate Token</a>"
 
 msgid "Change your theme"
-msgstr "Change your theme"
+msgstr "Change Your Theme"
 
 msgid "Theme:"
 msgstr "Theme:"
@@ -121,13 +126,13 @@ msgid "Update"
 msgstr "Update"
 
 msgid "Change your language"
-msgstr "Change your language"
+msgstr "Change Your Language"
 
 msgid "Language:"
 msgstr "Language:"
 
 msgid "Change your password"
-msgstr "Change your password"
+msgstr "Change Your Password"
 
 msgid "New password:"
 msgstr "New password:"
@@ -141,14 +146,26 @@ msgstr "Repeat your new password:"
 msgid "Import"
 msgstr "Import"
 
+msgid "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format."
+msgstr "You can import your Pocket, Readability, Instapaper, wallabag or any fil in appropriate JSON or HTML format."
+
 msgid ""
 "Please execute the import script locally as it can take a very long time."
 msgstr ""
+
+msgid "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required."
+msgstr "Please select export file on your computer and press &ldquo;Import&rdquo; button below. wallabag will parse your file, insert all URLs and start fetching of articles if required."
 "Please execute the import script locally as it can take a very long time."
 
+msgid "You can click here to fetch content for articles with no content."
+msgstr "Fetch content for articles with no content"
+
 msgid "More info in the official documentation:"
 msgstr "More info in the official documentation:"
 
+msgid "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
+msgstr "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
+
 msgid "Import from Pocket"
 msgstr "Import from Pocket"
 
@@ -177,17 +194,41 @@ msgstr "to download your database."
 msgid "to export your wallabag data."
 msgstr "to export your wallabag data."
 
+msgid "Export JSON"
+msgstr "Export JSON"
+
 msgid "Cache"
 msgstr "Cache"
 
 msgid "to delete cache."
 msgstr "to delete cache."
 
+msgid "Delete Cache"
+msgstr "Delete Cache"
+
 msgid "You can enter multiple tags, separated by commas."
 msgstr "You can enter multiple tags, separated by commas."
 
+msgid "Add tags:"
+msgstr "Add tags:"
+
+msgid "no tags"
+msgstr "no tags"
+
+msgid "The tag has been applied successfully"
+msgstr "The tag has been applied successfully"
+
+msgid "interview"
+msgstr "interview"
+
+msgid "editorial"
+msgstr "editorial"
+
+msgid "video"
+msgstr "video"
+
 msgid "return to article"
-msgstr "return to article"
+msgstr "Return to article"
 
 msgid "plop"
 msgstr "plop"
@@ -200,13 +241,13 @@ msgstr ""
 "here</a>."
 
 msgid "favoris"
-msgstr "favoris"
+msgstr "Favorites"
 
 msgid "archive"
-msgstr "archive"
+msgstr "Archive"
 
 msgid "unread"
-msgstr "unread"
+msgstr "Unread"
 
 msgid "by date asc"
 msgstr "by date asc"
@@ -236,28 +277,28 @@ msgid "Toggle mark as read"
 msgstr "Toggle mark as read"
 
 msgid "toggle favorite"
-msgstr "toggle favorite"
+msgstr "Toggle favorite"
 
 msgid "delete"
-msgstr "delete"
+msgstr "Delete"
 
 msgid "original"
-msgstr "original"
+msgstr "Original"
 
 msgid "estimated reading time:"
-msgstr "estimated reading time:"
+msgstr "Estimated reading time:"
 
 msgid "mark all the entries as read"
-msgstr "mark all the entries as read"
+msgstr "Mark all the entries as read"
 
 msgid "results"
-msgstr "results"
+msgstr "Results"
 
 msgid "installation"
-msgstr "installation"
+msgstr "Installation"
 
 msgid "install your wallabag"
-msgstr "install your wallabag"
+msgstr "Install your wallabag"
 
 msgid ""
 "wallabag is still not installed. Please fill the below form to install it. "
@@ -278,13 +319,13 @@ msgid "Install"
 msgstr "Install"
 
 msgid "login to your wallabag"
-msgstr "login to your wallabag"
+msgstr "Login to your wallabag"
 
 msgid "Login to wallabag"
 msgstr "Login to wallabag"
 
 msgid "you are in demo mode, some features may be disabled."
-msgstr "you are in demo mode, some features may be disabled."
+msgstr "You are in demo mode; some features may be disabled."
 
 msgid "Username"
 msgstr "Username"
@@ -299,10 +340,10 @@ msgid "Sign in"
 msgstr "Sign in"
 
 msgid "favorites"
-msgstr "favorites"
+msgstr "Favorites"
 
 msgid "estimated reading time :"
-msgstr "estimated reading time :"
+msgstr "Estimated reading time:"
 
 msgid "Mark all the entries as read"
 msgstr "Mark all the entries as read"
@@ -344,61 +385,64 @@ msgid "tags:"
 msgstr "tags:"
 
 msgid "Edit tags"
-msgstr "Edit tags"
+msgstr "Edit Tags"
 
 msgid "save link!"
-msgstr "save link!"
+msgstr "Save Link"
 
 msgid "home"
-msgstr "home"
+msgstr "Home"
 
 msgid "tags"
-msgstr "tags"
+msgstr "Tags"
 
 msgid "logout"
-msgstr "logout"
+msgstr "Logout"
 
 msgid "powered by"
-msgstr "powered by"
+msgstr "Powered by"
 
 msgid "debug mode is on so cache is off."
-msgstr "debug mode is on so cache is off."
+msgstr "Debug mode is on, so cache is off."
 
 msgid "your wallabag version:"
-msgstr "your wallabag version:"
+msgstr "Your wallabag version:"
 
 msgid "storage:"
-msgstr "storage:"
+msgstr "Storage:"
 
 msgid "save a link"
-msgstr "save a link"
+msgstr "Save a Link"
 
 msgid "back to home"
-msgstr "back to home"
+msgstr "Back to Home"
 
 msgid "toggle mark as read"
-msgstr "toggle mark as read"
+msgstr "Toggle mark as read"
 
 msgid "tweet"
-msgstr "tweet"
+msgstr "Tweet"
 
 msgid "email"
-msgstr "email"
+msgstr "Email"
 
 msgid "this article appears wrong?"
-msgstr "this article appears wrong?"
+msgstr "This article appears wrong?"
 
 msgid "No link available here!"
-msgstr "No link available here!"
+msgstr "No link available here"
 
 msgid "Poching a link"
-msgstr "Poching a link"
+msgstr "bagging a link"
 
 msgid "by filling this field"
 msgstr "by filling this field"
 
 msgid "bookmarklet: drag & drop this link to your bookmarks bar"
-msgstr "bookmarklet: drag & drop this link to your bookmarks bar"
+msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
+
+msgid "Drag &amp; drop this link to your bookmarks bar:"
+msgstr "Drag &amp; drop this link to your bookmarks bar:"
 
 msgid "your version"
 msgstr "your version"
@@ -407,32 +451,35 @@ msgid "latest stable version"
 msgstr "latest stable version"
 
 msgid "a more recent stable version is available."
-msgstr "a more recent stable version is available."
+msgstr "A more recent stable version is available."
 
 msgid "you are up to date."
-msgstr "you are up to date."
+msgstr "You are up to date."
 
 msgid "latest dev version"
 msgstr "latest dev version"
 
 msgid "a more recent development version is available."
-msgstr "a more recent development version is available."
+msgstr "A more recent development version is available."
+
+msgid "You can clear cache to check the latest release."
+msgstr "You can <a href=\"#cache\">clear the cache</a> to check for the latest release."
 
 msgid "Please execute the import script locally, it can take a very long time."
 msgstr ""
 "Please execute the import script locally, it can take a very long time."
 
 msgid "More infos in the official doc:"
-msgstr "More infos in the official doc:"
+msgstr "More information in the official doc:"
 
 msgid "import from Pocket"
-msgstr "import from Pocket"
+msgstr "Import from Pocket"
 
 msgid "import from Readability"
-msgstr "import from Readability"
+msgstr "Import from Readability"
 
 msgid "import from Instapaper"
-msgstr "import from Instapaper"
+msgstr "Import from Instapaper"
 
 msgid "Tags"
 msgstr "Tags"
@@ -441,74 +488,74 @@ msgid "Untitled"
 msgstr "Untitled"
 
 msgid "the link has been added successfully"
-msgstr "the link has been added successfully"
+msgstr "The link has been added successfully."
 
 msgid "error during insertion : the link wasn't added"
-msgstr "error during insertion : the link wasn't added"
+msgstr "Error during insertion: the link wasn't added."
 
 msgid "the link has been deleted successfully"
-msgstr "the link has been deleted successfully"
+msgstr "The link has been deleted successfully."
 
 msgid "the link wasn't deleted"
-msgstr "the link wasn't deleted"
+msgstr "The link wasn't deleted."
 
 msgid "Article not found!"
-msgstr "Article not found!"
+msgstr "Article not found."
 
 msgid "previous"
-msgstr "previous"
+msgstr "Previous"
 
 msgid "next"
-msgstr "next"
+msgstr "Next"
 
 msgid "in demo mode, you can't update your password"
-msgstr "in demo mode, you can't update your password"
+msgstr "In demo mode, you can't update your password."
 
 msgid "your password has been updated"
-msgstr "your password has been updated"
+msgstr "Your password has been updated."
 
 msgid ""
 "the two fields have to be filled & the password must be the same in the two "
 "fields"
 msgstr ""
-"the two fields have to be filled & the password must be the same in the two "
+"The two fields must be filled, and the password must be the same in both "
 "fields"
 
 msgid "still using the \""
-msgstr "still using the \""
+msgstr "Still using the \""
 
 msgid "that theme does not seem to be installed"
-msgstr "that theme does not seem to be installed"
+msgstr "That theme does not seem to be installed."
 
 msgid "you have changed your theme preferences"
-msgstr "you have changed your theme preferences"
+msgstr "You have changed your theme preferences."
 
 msgid "that language does not seem to be installed"
-msgstr "that language does not seem to be installed"
+msgstr "That language does not seem to be installed."
 
 msgid "you have changed your language preferences"
-msgstr "you have changed your language preferences"
+msgstr "You have changed your language preferences."
 
 msgid "login failed: you have to fill all fields"
-msgstr "login failed: you have to fill all fields"
+msgstr "Login failed: you have to fill all fields."
 
 msgid "welcome to your wallabag"
-msgstr "welcome to your wallabag"
+msgstr "Welcome to your wallabag."
 
 msgid "login failed: bad login or password"
-msgstr "login failed: bad login or password"
+msgstr "Login failed: bad login or password."
 
 msgid "import from instapaper completed"
-msgstr "import from instapaper completed"
+msgstr "Import from Instapaper completed."
 
 msgid "import from pocket completed"
-msgstr "import from pocket completed"
+msgstr "Import from Pocket completed."
 
 msgid "import from Readability completed. "
-msgstr "import from Readability completed. "
+msgstr "Import from Readability completed."
 
 msgid "import from Poche completed. "
-msgstr "import from Poche completed. "
+msgstr "Import from Poche completed. "
 
 msgid "Unknown import provider."
 msgstr "Unknown import provider."
@@ -520,7 +567,7 @@ msgid "Could not find required \""
 msgstr "Could not find required \""
 
 msgid "Uh, there is a problem while generating feeds."
-msgstr "Uh, there is a problem while generating feeds."
+msgstr "There is a problem generating feeds."
 
 msgid "Cache deleted."
 msgstr "Cache deleted."
@@ -529,25 +576,25 @@ msgid "Oops, it seems you don't have PHP 5."
 msgstr "Oops, it seems you don't have PHP 5."
 
 msgid "Add user"
-msgstr "Add user"
+msgstr "Add User"
 
 msgid "Add a new user :"
-msgstr "Add a new user :"
+msgstr "Add a new user:"
 
 msgid "Login for new user"
-msgstr "Login for new user"
+msgstr "Login for new user:"
 
 msgid "Password for new user"
-msgstr "Password for new user"
+msgstr "Password for new user:"
 
 msgid "Email for new user (not required)"
-msgstr "Email for new user (not required)"
+msgstr "Email for new user (not required):"
 
 msgid "Send"
 msgstr "Send"
 
 msgid "Delete account"
-msgstr "Delete account"
+msgstr "Delete Account"
 
 msgid "You can delete your account by entering your password and validating."
 msgstr "You can delete your account by entering your password and validating."
@@ -556,7 +603,7 @@ msgid "Be careful, data will be erased forever (that is a very long time)."
 msgstr "Be careful, data will be erased forever (that is a very long time)."
 
 msgid "Type here your password"
-msgstr "Type here your password"
+msgstr "Enter your password"
 
 msgid "You are the only user, you cannot delete your own account."
 msgstr "You are the only user, you cannot delete your own account."
@@ -571,6 +618,36 @@ msgstr ""
 msgid "Enter your search here"
 msgstr "Enter your search here"
 
+msgid "Tag these results as"
+msgstr "Tag these results as"
+
+# ebook
+msgid "Fancy an E-Book ?"
+msgstr "Fancy an E-Book?"
+
+msgid ""
+"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this "
+"link</a> to get all your articles in one ebook (ePub 3 format)."
+msgstr ""
+"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate EPUB\">this "
+"link</a> to get all your articles in one ebook (EPUB 3 format)."
+
+msgid ""
+"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
+"articles, depending on your server configuration."
+msgstr ""
+"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
+"articles, depending on your server configuration."
+
+msgid "Download the articles from this tag in an epub"
+msgstr "Download the articles from this tag in an EPUB"
+
+msgid "Download the articles from this search in an epub"
+msgstr "Download the articles from this search in an EPUB"
+
+msgid "Download the articles from this category in an epub"
+msgstr "Download the articles from this category in an EPUB"
+
 #~ msgid "poche it!"
 #~ msgstr "poche it!"
 
diff --git a/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mo b/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mo
new file mode 100644 (file)
index 0000000..a09b4f3
Binary files /dev/null and b/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mo differ
diff --git a/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.po b/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.po
new file mode 100644 (file)
index 0000000..25c3aa2
--- /dev/null
@@ -0,0 +1,666 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: wallabag\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-02-25 15:17+0300\n"
+"PO-Revision-Date: \n"
+"Last-Translator: tcit <tcit@openmailbox.org>\n"
+"Language-Team: \n"
+"Language: en_US\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+"X-Poedit-Basepath: .\n"
+
+msgid "wallabag, a read it later open source system"
+msgstr "wallabag, a read it later open source system"
+
+msgid "login failed: user doesn't exist"
+msgstr "Login failed: user doesn't exist"
+
+msgid "return home"
+msgstr "Return Home"
+
+msgid "config"
+msgstr "Config"
+
+msgid "Saving articles"
+msgstr "Saving articles"
+
+msgid "There are several ways to save an article:"
+msgstr "There are several ways to save an article:"
+
+msgid "read the documentation"
+msgstr "Read the documentation"
+
+msgid "download the extension"
+msgstr "Download the extension"
+
+msgid "Firefox Add-On"
+msgstr "Firefox Add-On"
+
+msgid "Chrome Extension"
+msgstr "Chrome Extension"
+
+msgid "via F-Droid"
+msgstr "via F-Droid"
+
+msgid " or "
+msgstr " or "
+
+msgid "via Google Play"
+msgstr "via Google Play"
+
+msgid "download the application"
+msgstr "Download the application"
+
+msgid "By filling this field"
+msgstr "By filling this field"
+
+msgid "bag it!"
+msgstr "bag it!"
+
+msgid "Bookmarklet: drag & drop this link to your bookmarks bar"
+msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
+
+msgid "Upgrading wallabag"
+msgstr "Upgrading wallabag"
+
+msgid "Installed version"
+msgstr "Installed version"
+
+msgid "Latest stable version"
+msgstr "Latest stable version"
+
+msgid "A more recent stable version is available."
+msgstr "A more recent stable version is available."
+
+msgid "You are up to date."
+msgstr "You are up to date."
+
+msgid "Latest dev version"
+msgstr "Latest dev version"
+
+msgid "A more recent development version is available."
+msgstr "A more recent development version is available."
+
+msgid "You can clear cache to check the latest release."
+msgstr "You can <a href=\"#cache\">clear the cache</a> to check for the latest release."
+
+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 ""
+"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>."
+
+msgid "Unread feed"
+msgstr "Unread feed"
+
+msgid "Favorites feed"
+msgstr "Favorites feed"
+
+msgid "Archive feed"
+msgstr "Archive feed"
+
+msgid "Your token:"
+msgstr "Your token:"
+
+msgid "Your user id:"
+msgstr "Your user ID:"
+
+msgid ""
+"You can regenerate your token: <a href='?feed&amp;action=generate'>generate!"
+"</a>."
+msgstr ""
+"<a href='?feed&amp;action=generate'>Regenerate Token</a>"
+
+msgid "Change your theme"
+msgstr "Change Your Theme"
+
+msgid "Theme:"
+msgstr "Theme:"
+
+msgid "Update"
+msgstr "Update"
+
+msgid "Change your language"
+msgstr "Change Your Language"
+
+msgid "Language:"
+msgstr "Language:"
+
+msgid "Change your password"
+msgstr "Change Your Password"
+
+msgid "New password:"
+msgstr "New password:"
+
+msgid "Password"
+msgstr "Password"
+
+msgid "Repeat your new password:"
+msgstr "Repeat your new password:"
+
+msgid "Import"
+msgstr "Import"
+
+msgid "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format."
+msgstr "You can import your Pocket, Readability, Instapaper, wallabag or any file in appropriate JSON or HTML format."
+
+msgid ""
+"Please execute the import script locally as it can take a very long time."
+msgstr ""
+"Please execute the import script locally as it can take a very long time."
+
+msgid "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required."
+msgstr "Please select export file on your computer and press &ldquo;Import&rdquo; button below. wallabag will parse your file, insert all URLs and start fetching of articles if required."
+
+msgid "You can click here to fetch content for articles with no content."
+msgstr "Fetch content for articles with no content"
+
+msgid "More info in the official documentation:"
+msgstr "More info in the official documentation:"
+
+msgid "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
+msgstr "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
+
+msgid "Import from Pocket"
+msgstr "Import from Pocket"
+
+#, php-format
+msgid "(you must have a %s file on your server)"
+msgstr "(you must have a %s file on your server)"
+
+msgid "Import from Readability"
+msgstr "Import from Readability"
+
+msgid "Import from Instapaper"
+msgstr "Import from Instapaper"
+
+msgid "Import from wallabag"
+msgstr "Import from wallabag"
+
+msgid "Export your wallabag data"
+msgstr "Export your wallabag data"
+
+msgid "Click here"
+msgstr "Click here"
+
+msgid "to download your database."
+msgstr "to download your database."
+
+msgid "to export your wallabag data."
+msgstr "to export your wallabag data."
+
+msgid "Export JSON"
+msgstr "Export JSON"
+
+msgid "Cache"
+msgstr "Cache"
+
+msgid "to delete cache."
+msgstr "to delete cache."
+
+msgid "Delete Cache"
+msgstr "Delete Cache"
+
+msgid "You can enter multiple tags, separated by commas."
+msgstr "You can enter multiple tags, separated by commas."
+
+msgid "Add tags:"
+msgstr "Add tags:"
+
+msgid "no tags"
+msgstr "no tags"
+
+msgid "The tag has been applied successfully"
+msgstr "The tag has been applied successfully"
+
+msgid "interview"
+msgstr "interview"
+
+msgid "editorial"
+msgstr "editorial"
+
+msgid "video"
+msgstr "video"
+
+msgid "return to article"
+msgstr "Return to article"
+
+msgid "plop"
+msgstr "plop"
+
+msgid ""
+"You can <a href='wallabag_compatibility_test.php'>check your configuration "
+"here</a>."
+msgstr ""
+"You can <a href='wallabag_compatibility_test.php'>check your configuration "
+"here</a>."
+
+msgid "favoris"
+msgstr "Favorites"
+
+msgid "archive"
+msgstr "Archive"
+
+msgid "unread"
+msgstr "Unread"
+
+msgid "by date asc"
+msgstr "by date asc"
+
+msgid "by date"
+msgstr "by date"
+
+msgid "by date desc"
+msgstr "by date desc"
+
+msgid "by title asc"
+msgstr "by title asc"
+
+msgid "by title"
+msgstr "by title"
+
+msgid "by title desc"
+msgstr "by title desc"
+
+msgid "Tag"
+msgstr "Tag"
+
+msgid "No articles found."
+msgstr "No articles found."
+
+msgid "Toggle mark as read"
+msgstr "Toggle mark as read"
+
+msgid "toggle favorite"
+msgstr "Toggle favorite"
+
+msgid "delete"
+msgstr "Delete"
+
+msgid "original"
+msgstr "Original"
+
+msgid "estimated reading time:"
+msgstr "Estimated reading time:"
+
+msgid "mark all the entries as read"
+msgstr "Mark all the entries as read"
+
+msgid "results"
+msgstr "Results"
+
+msgid "installation"
+msgstr "Installation"
+
+msgid "install your wallabag"
+msgstr "Install your 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 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>."
+
+msgid "Login"
+msgstr "Login"
+
+msgid "Repeat your password"
+msgstr "Repeat your password"
+
+msgid "Install"
+msgstr "Install"
+
+msgid "login to your wallabag"
+msgstr "Login to your wallabag"
+
+msgid "Login to wallabag"
+msgstr "Login to wallabag"
+
+msgid "you are in demo mode, some features may be disabled."
+msgstr "You are in demo mode; some features may be disabled."
+
+msgid "Username"
+msgstr "Username"
+
+msgid "Stay signed in"
+msgstr "Stay signed in"
+
+msgid "(Do not check on public computers)"
+msgstr "(Do not check on public computers)"
+
+msgid "Sign in"
+msgstr "Sign in"
+
+msgid "favorites"
+msgstr "Favorites"
+
+msgid "estimated reading time :"
+msgstr "Estimated reading time:"
+
+msgid "Mark all the entries as read"
+msgstr "Mark all the entries as read"
+
+msgid "Return home"
+msgstr "Return home"
+
+msgid "Back to top"
+msgstr "Back to top"
+
+msgid "Mark as read"
+msgstr "Mark as read"
+
+msgid "Favorite"
+msgstr "Favorite"
+
+msgid "Toggle favorite"
+msgstr "Toggle favorite"
+
+msgid "Delete"
+msgstr "Delete"
+
+msgid "Tweet"
+msgstr "Tweet"
+
+msgid "Email"
+msgstr "Email"
+
+msgid "shaarli"
+msgstr "shaarli"
+
+msgid "flattr"
+msgstr "flattr"
+
+msgid "Does this article appear wrong?"
+msgstr "Does this article appear wrong?"
+
+msgid "tags:"
+msgstr "tags:"
+
+msgid "Edit tags"
+msgstr "Edit Tags"
+
+msgid "save link!"
+msgstr "Save Link"
+
+msgid "home"
+msgstr "Home"
+
+msgid "tags"
+msgstr "Tags"
+
+msgid "logout"
+msgstr "Logout"
+
+msgid "powered by"
+msgstr "Powered by"
+
+msgid "debug mode is on so cache is off."
+msgstr "Debug mode is on, so cache is off."
+
+msgid "your wallabag version:"
+msgstr "Your wallabag version:"
+
+msgid "storage:"
+msgstr "Storage:"
+
+msgid "save a link"
+msgstr "Save a Link"
+
+msgid "back to home"
+msgstr "Back to Home"
+
+msgid "toggle mark as read"
+msgstr "Toggle mark as read"
+
+msgid "tweet"
+msgstr "Tweet"
+
+msgid "email"
+msgstr "Email"
+
+msgid "this article appears wrong?"
+msgstr "This article appears wrong?"
+
+msgid "No link available here!"
+msgstr "No link available here"
+
+msgid "Poching a link"
+msgstr "bagging a link"
+
+msgid "by filling this field"
+msgstr "by filling this field"
+
+msgid "bookmarklet: drag & drop this link to your bookmarks bar"
+msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
+
+msgid "Drag &amp; drop this link to your bookmarks bar:"
+msgstr "Drag &amp; drop this link to your bookmarks bar:"
+
+msgid "your version"
+msgstr "your version"
+
+msgid "latest stable version"
+msgstr "latest stable version"
+
+msgid "a more recent stable version is available."
+msgstr "A more recent stable version is available."
+
+msgid "you are up to date."
+msgstr "You are up to date."
+
+msgid "latest dev version"
+msgstr "latest dev version"
+
+msgid "a more recent development version is available."
+msgstr "A more recent development version is available."
+
+msgid "Please execute the import script locally, it can take a very long time."
+msgstr ""
+"Please execute the import script locally, it can take a very long time."
+
+msgid "More infos in the official doc:"
+msgstr "More information in the official doc:"
+
+msgid "import from Pocket"
+msgstr "Import from Pocket"
+
+msgid "import from Readability"
+msgstr "Import from Readability"
+
+msgid "import from Instapaper"
+msgstr "Import from Instapaper"
+
+msgid "Tags"
+msgstr "Tags"
+
+msgid "Untitled"
+msgstr "Untitled"
+
+msgid "the link has been added successfully"
+msgstr "The link has been added successfully."
+
+msgid "error during insertion : the link wasn't added"
+msgstr "Error during insertion: the link wasn't added."
+
+msgid "the link has been deleted successfully"
+msgstr "The link has been deleted successfully."
+
+msgid "the link wasn't deleted"
+msgstr "The link wasn't deleted."
+
+msgid "Article not found!"
+msgstr "Article not found."
+
+msgid "previous"
+msgstr "Previous"
+
+msgid "next"
+msgstr "Next"
+
+msgid "in demo mode, you can't update your password"
+msgstr "In demo mode, you can't update your password."
+
+msgid "your password has been updated"
+msgstr "Your password has been updated."
+
+msgid ""
+"the two fields have to be filled & the password must be the same in the two "
+"fields"
+msgstr ""
+"The two fields must be filled, and the password must be the same in both "
+"fields"
+
+msgid "still using the \""
+msgstr "Still using the \""
+
+msgid "that theme does not seem to be installed"
+msgstr "That theme does not seem to be installed."
+
+msgid "you have changed your theme preferences"
+msgstr "You have changed your theme preferences."
+
+msgid "that language does not seem to be installed"
+msgstr "That language does not seem to be installed."
+
+msgid "you have changed your language preferences"
+msgstr "You have changed your language preferences."
+
+msgid "login failed: you have to fill all fields"
+msgstr "Login failed: you have to fill all fields."
+
+msgid "welcome to your wallabag"
+msgstr "Welcome to your wallabag."
+
+msgid "login failed: bad login or password"
+msgstr "Login failed: bad login or password."
+
+msgid "import from instapaper completed"
+msgstr "Import from Instapaper completed."
+
+msgid "import from pocket completed"
+msgstr "Import from Pocket completed."
+
+msgid "import from Readability completed. "
+msgstr "Import from Readability completed."
+
+msgid "import from Poche completed. "
+msgstr "Import from Poche completed. "
+
+msgid "Unknown import provider."
+msgstr "Unknown import provider."
+
+msgid "Incomplete inc/poche/define.inc.php file, please define \""
+msgstr "Incomplete inc/poche/define.inc.php file, please define \""
+
+msgid "Could not find required \""
+msgstr "Could not find required \""
+
+msgid "Uh, there is a problem while generating feeds."
+msgstr "There is a problem generating feeds."
+
+msgid "Cache deleted."
+msgstr "Cache deleted."
+
+msgid "Oops, it seems you don't have PHP 5."
+msgstr "Oops, it seems you don't have PHP 5."
+
+msgid "Add user"
+msgstr "Add User"
+
+msgid "Add a new user :"
+msgstr "Add a new user:"
+
+msgid "Login for new user"
+msgstr "Login for new user:"
+
+msgid "Password for new user"
+msgstr "Password for new user:"
+
+msgid "Email for new user (not required)"
+msgstr "Email for new user (not required):"
+
+msgid "Send"
+msgstr "Send"
+
+msgid "Delete account"
+msgstr "Delete Account"
+
+msgid "You can delete your account by entering your password and validating."
+msgstr "You can delete your account by entering your password and validating."
+
+msgid "Be careful, data will be erased forever (that is a very long time)."
+msgstr "Be careful, data will be erased forever (that is a very long time)."
+
+msgid "Type here your password"
+msgstr "Enter your password"
+
+msgid "You are the only user, you cannot delete your own account."
+msgstr "You cannot delete your account because you are the only user."
+
+msgid ""
+"To completely remove wallabag, delete the wallabag folder on your web server "
+"(and eventual databases)."
+msgstr ""
+"To completely remove wallabag, delete the wallabag folder and database(s) from your web server."
+
+msgid "Enter your search here"
+msgstr "Enter your search here"
+
+msgid "Tag these results as"
+msgstr "Tag these results as"
+
+# ebook
+msgid "Fancy an E-Book ?"
+msgstr "Fancy an E-Book?"
+
+msgid ""
+"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this "
+"link</a> to get all your articles in one ebook (ePub 3 format)."
+msgstr ""
+"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate EPUB\">this "
+"link</a> to get all your articles in one ebook (EPUB 3 format)."
+
+msgid ""
+"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
+"articles, depending on your server configuration."
+msgstr ""
+"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
+"articles, depending on your server configuration."
+
+msgid "Download the articles from this tag in an epub"
+msgstr "Download the articles from this tag in an EPUB"
+
+msgid "Download the articles from this search in an epub"
+msgstr "Download the articles from this search in an EPUB"
+
+msgid "Download the articles from this category in an epub"
+msgstr "Download the articles from this category in an EPUB"
+
+#~ msgid "poche it!"
+#~ msgstr "poche it!"
+
+#~ msgid "Updating poche"
+#~ msgstr "Updating poche"
+
+#~ msgid "create an issue"
+#~ msgstr "create an issue"
+
+#~ msgid "or"
+#~ msgstr "or"
+
+#~ msgid "contact us by mail"
+#~ msgstr "contact us by mail"
+
+#~ msgid "your poche version:"
+#~ msgstr "your poche version:"
index f4a28e728795c9fd86866eff27a5a531ef8fdccb..da087516d80aed792f03751f1ff39d968c4f8efe 100644 (file)
Binary files a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo and b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo differ
index 0912b8722f84b36088354ee288390f1ede13bad1..3d031967bafe7da7c703024f6e48ba52e3f70f1f 100644 (file)
@@ -4,7 +4,7 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2014-05-10 20:09+0100\n"
 "PO-Revision-Date: \n"
-"Last-Translator: tcit <tcit@tcit.fr>\n"
+"Last-Translator: tcit <tcit@openmailbox.org>\n"
 "Language-Team: \n"
 "Language: fr_FR\n"
 "MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
 "X-Poedit-SourceCharset: UTF-8\n"
-"X-Generator: Poedit 1.6.9\n"
+"X-Generator: Poedit 1.5.4\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 msgid "wallabag, a read it later open source system"
@@ -372,6 +372,24 @@ msgstr "Cet article s'affiche mal ?"
 msgid "tags:"
 msgstr "tags :"
 
+msgid "Add tags:"
+msgstr "Ajouter des tags :"
+
+msgid "no tags"
+msgstr "pas de tags"
+
+msgid "The tag has been applied successfully"
+msgstr "Le tag a été appliqué avec succès"
+
+msgid "interview"
+msgstr "interview"
+
+msgid "editorial"
+msgstr "éditorial"
+
+msgid "video"
+msgstr "vidéo"
+
 msgid "Edit tags"
 msgstr "Modifier les tags"
 
@@ -655,3 +673,33 @@ msgstr "Cache effacé."
 
 msgid "Oops, it seems you don't have PHP 5."
 msgstr "Oups, vous ne semblez pas avoir PHP 5."
+
+msgid "Tag these results as"
+msgstr "Appliquer à ces résultats le tag"
+
+# ebook
+msgid "Fancy an E-Book ?"
+msgstr "Envie d'un E-Book ?"
+
+msgid ""
+"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this "
+"link</a> to get all your articles in one ebook (ePub 3 format)."
+msgstr ""
+"Cliquez sur <a href=\"./?epub&amp;method=all\" title=\"Générer ePub\">ce "
+"lien</a> pour obtenir tous vos articles (format ePub 3)."
+
+msgid ""
+"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
+"articles, depending on your server configuration."
+msgstr ""
+"Ceci peut <b>prendre un moment</b> et même <b>échouer</b> si vous avez trop "
+"d'articles, selon la configuration de votre serveur."
+
+msgid "Download the articles from this tag in an epub"
+msgstr "Télécharger les articles de ce tag dans un epub"
+
+msgid "Download the articles from this search in an epub"
+msgstr "Télécharger les articles de cette recherche dans un epub"
+
+msgid "Download the articles from this category in an epub"
+msgstr "Télécharger les articles de cette catégorie dans un epub"
index 59b6a46b408e486827e90cf5745d02c6ed44b286..8b80f65d878a0e78ed3dcc80c5076b93e616c871 100644 (file)
@@ -11,6 +11,7 @@
                     {% include '_search-form.twig' %}
                 </li>
                 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
+                <li><a href="./?view=about" {% if view == 'about' %}class="current"{% endif %}>{% trans "about" %}</a></li>
                 <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
             </ul>
 
index 57a928c0b4c2a135b5bc0e716ecdc1dcb9501d89..bf2ae903769637405f2fadfecf03200d4a19e91f 100755 (executable)
@@ -1,7 +1,7 @@
-<div id="bagit-form" class="messages info">
+<div id="bagit-form" class="messages info popup-form">
     <form method="get" action="index.php" target="_blank" id="bagit-form-form">
-        <h2><a href="javascript: void(null);" id="bagit-form-close">X</a>
-        {% trans "Save a link" %}</h2>
+        <h2>{% trans "Save a link" %}</h2>
+        <a href="javascript: void(null);" id="bagit-form-close" class="close-button--popup close-button">&times;</a>
         <input type="hidden" name="autoclose" value="1" />
         <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" />
         <span id="add-link-result"></span>
index 7b2c70824016366bde13e2d77399e58c10f37ac3..73f7951f81a2b74062276822d829c9a4189d2681 100644 (file)
@@ -1,7 +1,9 @@
-<div id="search-form" class="messages info">
+<div id="search-form" class="messages info popup-form">
 <form method="get" action="index.php">
+       <h2>{%trans "Search" %}</h2>
+        <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">&times;</a>
         <input type="hidden" name="view" value="search"></input>
-        <label><a href="javascript: void(null);" id="search-form-close">X</a>{% trans "Search" %}</label> : <input required placeholder="{% trans "Enter your search here" %}" type="text" name="search" id="searchfield" />
-        <input id="submit-search" type="submit" value="{% trans "Search" %} !"></input>
+        <input required placeholder="{% trans "Enter your search here" %}" type="text" name="search" id="searchfield"><br>
+        <input id="submit-search" type="submit" value="{% trans "Search" %}"></input>
 </form>
-</div>
\ No newline at end of file
+</div>
diff --git a/themes/baggy/about.twig b/themes/baggy/about.twig
new file mode 100755 (executable)
index 0000000..7e19a90
--- /dev/null
@@ -0,0 +1,74 @@
+{% extends "layout.twig" %}
+
+{% block title %}{% trans "About" %}{% endblock %}
+{% block menu %}
+{% include '_menu.twig' %}
+{% endblock %}
+{% block content %}
+    <h2>{% trans "About wallabag" %}</h2>
+
+    <dl>
+        <dt>{% trans "Project website" %}</dt>
+        <dd><a href="http://www.wallabag.org">http://www.wallabag.org</a></dd>
+
+        <dt>{% trans "Main developer" %}</dt>
+        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans "website" %}</a></dd>
+
+        <dt>{% trans "Contributors:" %}</dt>
+        <dd><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans "on Github" %}</a></dd>
+
+        <dt>{% trans "Bug reports" %}</dt>
+        <dd><a href="http://support.wallabag.org">{% trans "On our support website" %}</a> {% trans "or" %} <a href="https://github.com/wallabag/wallabag/issues">{% trans "on Github" %}</a></dd>
+
+        <dt>{% trans "License" %}</dt>
+        <dd><a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dd>
+
+        <dt>{% trans "Version" %}</dt>
+        <dd>{{ constant('POCHE') }}</dd>
+    </dl>
+
+    <p>{% trans "wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like ads or menus are deleted." %}</p>
+
+    <h2>{% trans "Helping wallabag" %}</h2>
+
+    <p>{% trans "wallabag is free and opensource. You can help us:" %}</p>
+
+    <dl>
+        <dt><a href="http://www.wallabag.org">{% trans "via Paypal" %}</a></dt>
+
+        <dt><a href="http://www.wallabag.org">{% trans "via Flattr" %}</a></dt>
+    </dl>
+
+    <h2>{% trans "Credits" %}</h2>
+    <dl>
+        <dt>PHP Readability</dt>
+        <dd><a href="https://bitbucket.org/fivefilters/php-readability">https://bitbucket.org/fivefilters/php-readability</a></dd>
+
+        <dt>Full Text RSS</dt>
+        <dd><a href="http://code.fivefilters.org/full-text-rss/src">http://code.fivefilters.org/full-text-rss/src</a></dd>
+
+        <dt>logo by Maylis Agniel</dt>
+        <dd><a href="https://github.com/wallabag/logo">https://github.com/wallabag/logo</a></dd>
+
+        <dt>icons</dt>
+        <dd><a href="http://icomoon.io">http://icomoon.io</a></dd>
+
+        <dt>PHP Simple HTML DOM Parser</dt>
+        <dd><a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></dd>
+
+        <dt>Session</dt>
+        <dd><a href="https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php">https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php</a></dd>
+
+        <dt>Twig</dt>
+        <dd><a href="http://twig.sensiolabs.org">http://twig.sensiolabs.org</a></dd>
+
+        <dt>Flash messages</dt>
+        <dd><a href="https://github.com/plasticbrain/PHP-Flash-Messages">https://github.com/plasticbrain/PHP-Flash-Messages</a></dd>
+
+        <dt>Pagination</dt>
+        <dd><a href="https://github.com/daveismyname/pagination">https://github.com/daveismyname/pagination</a></dd>
+
+        <dt>PHPePub</dt>
+        <dd><a href="https://github.com/Grandt/PHPePub/">https://github.com/Grandt/PHPePub/</a></dd>
+    </dl> 
+{% endblock %}
index 3523cd0847365c2cd8945a1653883a25ffcd3b22..2b967cd4abaa7dc4b602a04eb4f444e348cdad1e 100755 (executable)
@@ -6,30 +6,29 @@
 {% 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>
+            <p>{% trans "There are several ways to save an article:" %} {% trans "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)" %}</p>
+            <p>
+                <form method="get" action="index.php">
+                    <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label><br>
+                    <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
+                    <input type="submit" value="{% trans "bag it!" %}" />
+                </form>
+            </p>
+            <h3>Browser Plugins</h3>
             <ul>
-                <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" 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/app/fr.gaulupeau.apps.InThePoche" 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>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li>
-                <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" title="download the window phone application">{% trans "download the application" %}</a></li>
-                <li>
-                    <form method="get" action="index.php">
-                        <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label>
-                        <input required placeholder="example.com/article" class="addurl" id="config_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>
+                <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
+                <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
             </ul>
-
-            <h2>{% trans "Upgrading wallabag" %}</h2>
+            <h3>Mobile Apps</h3>
             <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 %} ({% trans "Last check:" %} {{ check_time_prod }})</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 %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}</li>
+                <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via Google Play" %}</a></li>
+                <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans "download the application" %}</a></li>
+                <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" target="_blank">{% trans "download the application" %}</a></li>
             </ul>
-            <p>{% trans "You can clear cache to check the latest release." %}</p>
+                <h3>{% trans "Bookmarklet" %}</h3>
+                <p>
+                {% trans "Drag &amp; drop this link to your bookmarks bar:" %} <a id="bookmarklet" ondragend="this.click();" 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>
+                </p>
 
             <h2>{% trans "Feeds" %}</h2>
             {% if token == '' %}
                 <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>
+            <p class="more-info">
+              {% trans "Your token:" %} <strong>{{token}}</strong><br>
+              {% trans "Your user id:" %} <strong>{{user_id}}</strong><br>
+              {% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}
+            </p>
             {% endif %}
 
             <h2>{% trans "Change your theme" %}</h2>
                 <input type="hidden" name="token" value="{{ token }}">
             </form>
 
+            <h2><a name="import"></a>{% trans "Import" %}</h2>
+            <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
+            <p>{% trans "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required." %}</p>
+            <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
+                <fieldset class="w500p">
+                    <div class="row">
+                        <label class="col w150p" for="file">{% trans "File:" %}</label>
+                        <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
+                    </div>
+                    <div class="row mts txtcenter">
+                        <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
+                    </div>
+                </fieldset>
+            </form>
+            <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
+            <p class="more-info">{% trans "Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
+
+            <h2>{% trans "Export your wallabag data" %}</h2>
+            <p><a href="?export" target="_blank">{% trans "Export JSON" %}</a><br>
+            <span class="more-info">Data will be exported in a single JSON file.</span></p>
+
+            <h2>{% trans "Fancy an E-Book ?" %}</h2>
+            <p><a href="./?epub&amp;method=all" title="Generate ePub">Download E-Book</a><br>
+            <span class="more-info">{% trans "Articles will be exported as a single E-book file (EPUB 3 format)." %} {% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</span></p>
+
+            <h2><a name="cache"></a>{% trans "Cache" %}</h2>
+            <p><a href="?empty-cache">{% trans "Delete Cache" %}</a><br>
+            <span class="more-info">Deleting the cache may help with display or other problems.</span></p>
+
             {% if http_auth == 0 %}
             <h2>{% trans "Change your password" %}</h2>
             <form method="post" action="?config" name="loginform">
             </form>
             {% endif %}
 
-            <h2>{% trans "Import" %}</h2>
-            <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
-            <p>{% trans "Please select export file on your computer and press \"Import\" button below.<br>Wallabag will parse your file, insert all URLs and start fetching of articles if required.<br>Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
-            <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
-                <fieldset class="w500p">
-                    <div class="row">
-                        <label class="col w150p" for="file">{% trans "File:" %}</label>
-                        <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
-                    </div>
-                    <div class="row mts txtcenter">
-                        <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
-                    </div>
-                </fieldset>
-            </form>
-            <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
-            
-            <h2>{% trans "Export your wallabag data" %}</h2>
-            <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p>
-            
-            <h2>{% trans "Fancy an E-Book ?" %}</h2>
-            <p>{% trans "Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this link</a> to get all your articles in one ebook (ePub 3 format)." %}
-            <br>{% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</p>
-
-            <h2>{% trans "Cache" %}</h2>
-            <p><a href="?empty-cache">{% trans "Click here" %}</a> {% trans "to delete cache." %}</p>
-
             <h2>{% trans 'Add user' %}</h2>
-            <p>{% trans 'Add a new user :' %}</p>
             <form method="post" action="?newuser">
                 <fieldset class="w500p">
                 <div class="row">
                     <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}">
                 </div>
                 <div class="row mts txtcenter">
-                    <button type="submit">{% trans "Send" %}</button>  
+                    <button type="submit">{% trans "Add user" %}</button>
                 </div>
                 </fieldset>
             </form>
                     <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}">
                 </div>
             <div class="row mts txtcenter">
-                <button type="submit">{% trans "Send" %}</button>
+                <button type="submit">{% trans "Delete account" %}</button>
             </div>
             </form>
-            {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}<br />
-            {% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
+            {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}</p>
+            <p>{% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
+
+            <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 %} ({% trans "Last check:" %} {{ check_time_prod }})</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 %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}</li>
+            </ul>
+            <p class="more-info">{% trans "You can clear cache to check the latest release." %}</p>
+
 {% endblock %}
index b775a2916251ae40edbc21f6a7d8de654519d7dc..028c8b4eeaa76c0c82b906c3937b7644dd7396c0 100755 (executable)
@@ -70,7 +70,7 @@ h2, h3, h4 {
   text-transform: uppercase;
 }
 
-p, li {
+p, li, label {
   color: #666;
 }
 
@@ -104,10 +104,6 @@ form input[type="text"], select, form input[type="password"], form input[type="u
   }
 }
 
-fieldset label {
-  min-width: 12.5em;
-}
-
 .inline .row {
   display: inline-block;
   margin-right: 0.5em;
@@ -119,10 +115,14 @@ fieldset label {
 
 fieldset label {
   display: inline-block;
-  margin-right: 0.5em;
+  min-width: 12.5em;
   color: #666;
 }
 
+label {
+  margin-right: 0.5em;
+}
+
 form .row {
   margin-bottom: 0.5em;
 }
@@ -180,7 +180,7 @@ h2:after {
   padding-top: 9.5em;
   height: 100%;
   box-shadow:inset -4px 0 20px rgba(0,0,0,0.6);
-  z-index: 10;
+  z-index: 15;
 }
 
 #main {
@@ -191,7 +191,7 @@ h2:after {
   padding-bottom: 1em;
 }
 
-  #links a {
+  #links > li > a {
     display: block;
     padding: 0.5em 2em 0.5em 1em;
     color: #FFF;
@@ -207,7 +207,7 @@ h2:after {
           transition: all 0.5s ease;
   }
 
-  #links a:hover, #links a:focus {
+  #links > li > a:hover, #links > li > a:focus {
     background: #999;
     color: #000;
   }
@@ -281,12 +281,12 @@ h2:after {
 #listmode a:hover {
   opacity: 1;
 }
-.tablemode {
+#listmode.tablemode {
   background-image: url("../img/baggy/table.png");
   background-repeat: no-repeat;
   background-position: bottom;
 }
-.listmode {
+#listmode.listmode {
   background-image: url("../img/baggy/list.png");
   background-repeat: no-repeat;
   background-position: bottom;
@@ -327,15 +327,11 @@ footer a {
   margin-left: 0!important;
 }
 
-.listmode .entrie p {
-  display: none;
-}
-
 .list-entries + .results {
   margin-bottom: 2em;
 }
 
-.estimatedTime a {
+.estimatedTime .reading-time {
   color: #999;
   font-style: italic;
   font-weight: normal;
@@ -359,11 +355,15 @@ footer a {
   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;
+
+       /* Removing CSS transitions because they make the switch from list view to
+        * table view jerky
+        */
+  /* -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 {
@@ -418,6 +418,7 @@ footer a {
 .entrie h2 {
   text-transform: none;
   margin-bottom: 0;
+  line-height: 1.2;
 }
 
   .entrie h2:after {
@@ -540,7 +541,7 @@ footer a {
   2.1 = "save a link" related styles
   ========================================================================== */
 
-#bagit-form, #search-form {
+.popup-form {
   background: rgba(0,0,0,0.5);
   position: absolute;
   top: 0;
@@ -549,37 +550,53 @@ footer a {
   height: 100%;
   width: 100%;
   margin: 0;
-  margin-top: -30%;
+  margin-top: -30% !important; /* TODO: get rid of !important here; overridden by .messages selector */
   padding: 2em;
   display: none;
   border-left: 1px #EEE solid;
 }
 
-#bagit-form form, #search-form form {
-  background: #FFF;
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 20;
-  border: 10px solid #000;
-  width: 400px;
-  height: 200px;
-  /* margin: -150px 0 0 -300px; */
-  padding: 2em;
+       .popup-form form {
+               background: #FFF;
+               position: absolute;
+               top: 0;
+               left: 0;
+               z-index: 20;
+               border: 10px solid #000;
+               width: 400px;
+               height: 200px;
+               padding: 2em;
+       }
+
+#bagit-form-form .addurl {
+       margin-left: 0;
 }
 
-a#bagit-form-close, a#search-form-close {
+.closeMessage,
+.close-button {
   background: #000;
   color: #FFF;
-  padding: 0.2em 0.5em;
+       font-size: 1.2em;
+       line-height: 1.6;
+       width: 1.6em;
+       height: 1.6em;
+       text-align: center;
   text-decoration: none;
-  display: inline-block;
-  float: right;
-  font-size: 0.6em;
 }
-a#bagit-form-close:hover, a#search-form-close:hover {
-  background: #999;
-  color: #000;
+       .closeMessage:hover,
+       .closeMessage:focus,
+       .close-button:hover,
+       .close-button:focus {
+               background: #999;
+               color: #000;
+       }
+
+.close-button--popup {
+       display: inline-block;
+       position: absolute;
+       top: 0;
+       right: 0;
+       font-size: 1.4em;
 }
 
 .active-current {
@@ -633,56 +650,6 @@ a.add-to-wallabag-link-after:after {
   font-size: 0.9em;
 }
 
-/* ==========================================================================
-  2.2 = "search for articles" popup div related styles
-  ========================================================================== */
-#search-form {
-  background: rgba(0,0,0,0.5);
-  position: absolute;
-  top: 0;
-  left: 10em;
-  z-index: 20;
-  height: 100%;
-  width: 100%;
-  margin: 0;
-  margin-top: -30%;
-  padding: 2em;
-  display: none;
-  border-left: 1px #EEE solid;
-}
-
-#search-form form {
-  background: #FFF;
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 20;
-  border: 10px solid #000;
-  width: 400px;
-  height: 200px;
-  /* margin: -150px 0 0 -300px; */
-  padding: 2em;
-}
-
-a#search-form-close {
-  background: #000;
-  color: #FFF;
-  padding: 0.2em 0.5em;
-  text-decoration: none;
-  display: inline-block;
-  float: right;
-  font-size: 1.2em;
-}
-a#search-form-close:hover {
-  background: #999;
-  color: #000;
-}
-
-#submit-search{
-margin-left: 4em;
-margin-top:1em;
-}
-
 /* ==========================================================================
    3 = Pictos
    ========================================================================== */
@@ -777,6 +744,10 @@ margin-top:1em;
   color: #FFF;
 }
 
+.icon-check.archive:before {
+  color: #FFF;
+}
+
 /* ==========================================================================
    4 = Messages
    ========================================================================== */
@@ -788,18 +759,6 @@ margin-top:1em;
 
 .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;
@@ -816,6 +775,16 @@ margin-top:1em;
   width: 100%;
 }
 
+.more-info {
+       font-size: 0.85em;
+  line-height: 1.5;
+       color: #aaa;
+}
+
+       .more-info a {
+               color: #aaa;
+       }
+
 /* ==========================================================================
    5 = Article
    ========================================================================== */
@@ -841,6 +810,10 @@ blockquote {
   margin: 0;
 }
 
+#article h1 {
+  text-align: left;
+}
+
 #article h2, #article h3, #article h4 {
   text-transform: none;
 }
@@ -1029,6 +1002,9 @@ pre code {
     height: auto;
     padding-top: 3em;
   }
+  #links.menu--open {
+    display: block;
+  }
   footer  {
     position: static;
     margin-right: 3em;
@@ -1058,8 +1034,16 @@ pre code {
     display: none;
   }
 
-  #bagit-form, #search-form {
+  .popup-form, #bagit-form, #search-form {
     left: 0;
+    width: 100%;
+    border-left: none;
+  }
+
+  .popup-form form,
+  #bagit-form form,
+  #search-form form {
+    width: 100%;
   }
 }
 
index 2113e964ebea0b667cd0bccc58791cacf7773a1e..d7c150333b3f79c9b76a98fd953059f61c3f5767 100755 (executable)
   <h2>{{ entry.title|raw }}</21>
 </div>
 {% if tags is empty %}
-<div class="notags">no tags</div>
+<div class="notags">{% trans "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">
     <input type="hidden" name="entry_id" value="{{ entry_id }}" />
-    <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
+    <label for="value">{% trans "Add tags:" %}</label><input type="text" placeholder="{% trans "interview" %}, {% trans "editorial" %}, {% trans "video" %}" id="value" name="value" required="required" />
     <input type="submit" value="Tag" />
     <p>{% trans "Start typing for auto complete." %}<br>
     {% trans "You can enter multiple tags, separated by commas." %}</p>
index e788b588f88c2ac681fba1b84c4c3286ef6201df..dec848f23ad75c0211d3f471dbeb2b239fb6f961 100755 (executable)
                 {% endblock %}
             <div id="list-entries" class="list-entries">
                     {% for entry in entries %}
-                <div id="entry-{{ entry.id|e }}" class="entrie"{% if listmode %} style="width:100%; margin-left:0;"{% endif %}>
+                <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>
+                        <div class="estimatedTime"><span class="tool reading-time">{% 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>
+                        <div class="estimatedTime"><span class="tool reading-time">{% trans "estimated reading time :" %} <small class="inferieur">&lt;</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>
                 {% endfor %}
             </div>
             {{ block('pager') }}
-            {% 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" }}</a>{% endif %}{% endif %}
+            {% if view == 'home' %}{% if nb_results > 1 %}<p><a title="{% trans "Mark all the entries as read" %}"  href="./?action=archive_all">{% trans "Mark all the entries as read" %}</a></p>{% endif %}{% endif %}
 
-            {% if search_term is defined %}<a title="{% trans %} Apply the tag {{ search_term }} to this search {% endtrans %}" href="./?action=add_tag&search={{ search_term }}">{% trans %} Apply the tag {{ search_term }} to this search {% endtrans %}</a>{% endif %}
+            {% if searchterm is defined %}<p><a title="{% trans "Tag these results as" %} {{ searchterm }}" href="./?action=add_tag&search={{ searchterm }}">
+{% trans "Tag these results as" %} {{ searchterm }}</p></a>{% endif %}
             
-            {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a>
-            {% elseif search_term is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</a>
-            {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %}
+            {% if tag %}<p><a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</p></a>
+            {% elseif search_term is defined %}<p><a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</p></a>
+            {% else %}<p><a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a></p>{% endif %}
             
             {% endif %}
 {% endblock %}
index 00470fbfd734fdebe270ff24c20c11069599e147..74cbae683bbc3e9a9643d865087db721315eec3a 100755 (executable)
@@ -8,7 +8,10 @@ $.fn.ready(function() {
      ========================================================================== */
 
   $("#menu").click(function(){
-    $("#links").toggle();
+    $("#links").toggleClass('menu--open');
+    if ($('#content').hasClass('opacity03')) {
+        $('#content').removeClass('opacity03');
+    }
   });
 
   /* ==========================================================================
index 645db376aeac69419eb4a8023b1f9d4dc267b2c5..58290e9c646cf68dcbea0dd44c29ffd57e59efa5 100644 (file)
@@ -9,17 +9,17 @@
                     {% 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 %} />
+                                               <input class="col" type="text" id="login" name="login" placeholder="{% trans "Username" %}" 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 %} />
+                                               <input class="col" type="password" id="password" name="password" placeholder="{% trans "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">
+                                                       <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3" /> <label for="longlastingsession">{% trans "Stay signed in" %}</label><br />
                                                        <small class="inbl">{% trans "(Do not check on public computers)" %}</small>
                                                </div>
                                        </div>
index 9bb93a45d6adc5a8fff86c3fcb50e34dc6388244..65930eb252aba0fcc4a23e95ae50c16b66ad8c03 100755 (executable)
@@ -1,5 +1,5 @@
 {% extends "layout.twig" %}
-{% block title %}tags{% endblock %}
+{% block title %}Tags{% endblock %}
 {% block menu %}
 {% include '_menu.twig' %}
 {% endblock %}
@@ -10,4 +10,4 @@
 </li>
 {% endfor %}
 </ul>
-{% endblock %}
\ No newline at end of file
+{% endblock %}
index 811298eb58f00a0e3a4e0a699494c59e35fcaf2e..ff27db4359bee860aeff5d4d56693802affe910e 100755 (executable)
                 {% block pager %}
                     {% if nb_results > 1 %}
                 <div class="results">
-                    <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div>
+                    <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if searchterm is defined %}{% trans " found for « " %} {{ searchterm }} »{% endif %}</div>
                         {{ page_links | raw }}
                 </div>
                     {% elseif nb_results == 1 %}
-                        {% if search_term is defined %}
+                        {% if searchterm is defined %}
                      <div class="results">
-                        <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div>
+                        <div class="nb-results">{% trans "Only one result found for " %} « {{ searchterm }} »</div>
                      </div>
                         {% endif %}
                     {% endif %}
             
             {{ block('pager') }}
             
-            {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a>
-            {% elseif search_term is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</a>
+        {% if searchterm is defined %}<a title="{% trans "Tag these results as" %} {{ searchterm }}" href="./?action=add_tag&search={{ searchterm }}">{% trans "Tag these results as" %} {{ searchterm }}</a>{% endif %}            
+
+        {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a>
+        {% elseif searchterm is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ searchterm }}">{% trans "Download the articles from this search in an epub" %}</a>
             {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %}
             
             {% endif %}
 
-{% endblock %}
\ No newline at end of file
+{% endblock %}
index 9b9a60626176877b6f38a3566dcb357212c2297e..eedf84f105e0d3764d615192d0f2c7e07ce57165 100644 (file)
@@ -6,6 +6,7 @@
                 <li><a href="javascript: void(null);" id="bagit">{% trans "save a link" %}</a><span id="bagit-arrow"></span></li>
                 <li><a href="javascript: void(null);" id="search">{% trans "search" %}</a><span id="search-arrow"></span></li>
                 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
+                <li><a href="./?view=about" {% if view == 'about' %}class="current"{% endif %}>{% trans "about" %}</a></li>
                 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
             </ul>
             {% include '_pocheit-form.twig' %}
index ce3d38bc94845736a794b750a1204dcace304f47..3ce9b949fafce810328c85f2f83ddba0f56e2d57 100755 (executable)
@@ -1,6 +1,6 @@
 {% if entries|length > 1 %}
   <ul id="sort">
-      <li><a href="./?sort=ia&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
-      <li><a href="./?sort=ta&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
+      <li><a href="./?sort=ia&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
+      <li><a href="./?sort=ta&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
   </ul>
 {% endif %}
diff --git a/themes/default/about.twig b/themes/default/about.twig
new file mode 100755 (executable)
index 0000000..5ca3217
--- /dev/null
@@ -0,0 +1,74 @@
+{% extends "layout.twig" %}
+
+{% block title %}{% trans "About wallabag" %}{% endblock %}
+{% block menu %}
+{% include '_menu.twig' %}
+{% endblock %}
+{% block content %}
+    <h2>{% trans "About wallabag" %}</h2>
+
+    <dl>
+        <dt>{% trans "Project website" %}</dt>
+        <dd><a href="http://www.wallabag.org">http://www.wallabag.org</a></dd>
+
+        <dt>{% trans "Main developer" %}</dt>
+        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans "website" %}</a></dd>
+
+        <dt>{% trans "Contributors:" %}</dt>
+        <dd><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans "on Github" %}</a></dd>
+
+        <dt>{% trans "Bug reports" %}</dt>
+        <dd><a href="http://support.wallabag.org">{% trans "On our support website" %}</a> {% trans "or" %} <a href="https://github.com/wallabag/wallabag/issues">{% trans "on Github" %}</a></dd>
+
+        <dt>{% trans "License" %}</dt>
+        <dd><a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dd>
+
+        <dt>{% trans "Version" %}</dt>
+        <dd>{{ constant('POCHE') }}</dd>
+    </dl>
+
+    <p>{% trans "wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like ads or menus are deleted." %}</p>
+
+    <h2>{% trans "Helping wallabag" %}</h2>
+
+    <p>{% trans "wallabag is free and opensource. You can help us:" %}</p>
+
+    <dl>
+        <dt><a href="http://www.wallabag.org">{% trans "via Paypal" %}</a></dt>
+
+        <dt><a href="http://www.wallabag.org">{% trans "via Flattr" %}</a></dt>
+    </dl>
+
+    <h2>{% trans "Credits" %}</h2>
+    <dl>
+        <dt>PHP Readability</dt>
+        <dd><a href="https://bitbucket.org/fivefilters/php-readability">https://bitbucket.org/fivefilters/php-readability</a></dd>
+
+        <dt>Full Text RSS</dt>
+        <dd><a href="http://code.fivefilters.org/full-text-rss/src">http://code.fivefilters.org/full-text-rss/src</a></dd>
+
+        <dt>logo by Maylis Agniel</dt>
+        <dd><a href="https://github.com/wallabag/logo">https://github.com/wallabag/logo</a></dd>
+
+        <dt>icons</dt>
+        <dd><a href="http://icomoon.io">http://icomoon.io</a></dd>
+
+        <dt>PHP Simple HTML DOM Parser</dt>
+        <dd><a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></dd>
+
+        <dt>Session</dt>
+        <dd><a href="https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php">https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php</a></dd>
+
+        <dt>Twig</dt>
+        <dd><a href="http://twig.sensiolabs.org">http://twig.sensiolabs.org</a></dd>
+
+        <dt>Flash messages</dt>
+        <dd><a href="https://github.com/plasticbrain/PHP-Flash-Messages">https://github.com/plasticbrain/PHP-Flash-Messages</a></dd>
+
+        <dt>Pagination</dt>
+        <dd><a href="https://github.com/daveismyname/pagination">https://github.com/daveismyname/pagination</a></dd>
+
+        <dt>PHPePub</dt>
+        <dd><a href="https://github.com/Grandt/PHPePub/">https://github.com/Grandt/PHPePub/</a></dd>
+    </dl> 
+{% endblock %}
index 36b66e8841532d7e2cd5a1bcc0929d7b5a29015f..082e179f58f47ce95d91bfd0dc7fb097cb946c1c 100755 (executable)
@@ -6,29 +6,29 @@
 {% 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>
+            <p>{% trans "There are several ways to save an article:" %} {% trans "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)" %}</p>
+            <p>
+                <form method="get" action="index.php">
+                    <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label><br>
+                    <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
+                    <input type="submit" value="{% trans "bag it!" %}" />
+                </form>
+            </p>
+            <h3>Browser Plugins</h3>
             <ul>
-                <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" 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/app/fr.gaulupeau.apps.InThePoche" 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>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li>
-                <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" title="download the window phone application">{% trans "download the application" %}</a></li>
-                <li>
-                    <form method="get" action="index.php">
-                        <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label>
-                        <input required placeholder="example.com/article" class="addurl" id="config_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>
+                <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
+                <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
             </ul>
-
-            <h2>{% trans "Upgrading wallabag" %}</h2>
+            <h3>Mobile Apps</h3>
             <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 %}
+                <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via Google Play" %}</a></li>
+                <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans "download the application" %}</a></li>
+                <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" target="_blank">{% trans "download the application" %}</a></li>
             </ul>
+                <h3>{% trans "Bookmarklet" %}</h3>
+                <p>
+                {% trans "Drag &amp; drop this link to your bookmarks bar:" %} <a id="bookmarklet" ondragend="this.click();" 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>
+                </p>
 
             <h2>{% trans "Feeds" %}</h2>
             {% if token == '' %}
                 <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>
+            <p class="more-info">
+              {% trans "Your token:" %} <strong>{{token}}</strong><br>
+              {% trans "Your user id:" %} <strong>{{user_id}}</strong><br>
+              {% 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">
+                <fieldset class="w500p inline">
                     <div class="row">
                         <label class="col w150p" for="theme">{% trans "Theme:" %}</label>
                         <select class="col" id="theme" name="theme">
@@ -65,7 +67,7 @@
 
             <h2>{% trans "Change your language" %}</h2>
             <form method="post" action="?updatelanguage" name="changelanguageform">
-                <fieldset class="w500p">
+                <fieldset class="w500p inline">
                     <div class="row">
                         <label class="col w150p" for="language">{% trans "Language:" %}</label>
                         <select class="col" id="language" name="language">
                 <input type="hidden" name="token" value="{{ token }}">
             </form>
 
+            <h2><a name="import"></a>{% trans "Import" %}</h2>
+            <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
+            <p>{% trans "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required." %}</p>
+            <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
+                <fieldset class="w500p">
+                    <div class="row">
+                        <label class="col w150p" for="file">{% trans "File:" %}</label>
+                        <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
+                    </div>
+                    <div class="row mts txtcenter">
+                        <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
+                    </div>
+                </fieldset>
+            </form>
+            <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
+            <p class="more-info">{% trans "Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
+
+            <h2>{% trans "Export your wallabag data" %}</h2>
+            <p><a href="?export" target="_blank">{% trans "Export JSON" %}</a><br>
+            <span class="more-info">Data will be exported in a single JSON file.</span></p>
+
+            <h2>{% trans "Fancy an E-Book ?" %}</h2>
+            <p><a href="./?epub&amp;method=all" title="Generate ePub">Download E-Book</a><br>
+            <span class="more-info">{% trans "Articles will be exported as a single E-book file (EPUB 3 format)." %} {% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</span></p>
+
+            <h2><a name="cache"></a>{% trans "Cache" %}</h2>
+            <p><a href="?empty-cache">{% trans "Delete Cache" %}</a><br>
+            <span class="more-info">Deleting the cache may help with display or other problems.</span></p>
+
             {% if http_auth == 0 %}
             <h2>{% trans "Change your password" %}</h2>
             <form method="post" action="?config" name="loginform">
                 <input type="hidden" name="token" value="{{ token }}">
             </form>
             {% endif %}
-
-            <h2>{% trans "Import" %}</h2>
-            <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
-            <p>{% trans "Please select export file on your computer and press \"Import\" button below.<br>Wallabag will parse your file, insert all URLs and start fetching of articles if required.<br>Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
-            <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
-                <fieldset class="w500p">
-                    <div class="row">
-                        <label class="col w150p" for="file">{% trans "File:" %}</label>
-                        <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
-                    </div>
-                    <div class="row mts txtcenter">
-                        <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
-                    </div>
-                </fieldset>
-            </form>
-            <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
-
-            <h2>{% trans "Export your wallabag data" %}</h2>
-            <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p>
-
-            <h2>{% trans "Cache" %}</h2>
-            <p><a href="?empty-cache">{% trans "Click here" %}</a> {% trans "to delete cache." %}</p>
-            
-            <h2>{% trans "Fancy an E-Book ?" %}</h2>
-            <p>{% trans "Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this link</a> to get all your articles in one ebook (ePub 3 format)." %}
-            <br>{% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</p>
             
             <h2>{% trans 'Add user' %}</h2>
-            <p>{% trans 'Add a new user :' %}</p>
             <form method="post" action="?newuser">
                 <fieldset class="w500p">
                 <div class="row">
                     <label class="col w150p" for="newusername">{% trans 'Login for new user' %}</label>
-                    <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}">
+                    <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}" required>
                 </div>
                 <div class="row">
                     <label class="col w150p" for="password4newuser">{% trans "Password for new user" %}</label>
-                    <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans "Password" %}">
+                    <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans 'Password' %}" required>
                 </div>
                 <div class="row">
                     <label class="col w150p" for="newuseremail">{% trans 'Email for new user (not required)' %}</label>
                     <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}">
                 </div>
                 <div class="row mts txtcenter">
-                    <button type="submit">{% trans "Send" %}</button>  
+                    <button type="submit">{% trans "Add user" %}</button>
                 </div>
                 </fieldset>
             </form>
-            
+
             <h2>{% trans "Delete account" %}</h2>
             {% if not only_user %}<form method="post" action="?deluser">
             <p>{% trans "You can delete your account by entering your password and validating." %}<br /><b>{% trans "Be careful, data will be erased forever (that is a very long time)." %}</b></p>
                     <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}">
                 </div>
             <div class="row mts txtcenter">
-                <button type="submit">{% trans "Send" %}</button>
+                <button type="submit">{% trans "Delete account" %}</button>
             </div>
             </form>
-            {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}<br />
-            {% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
+            {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}</p>
+            <p>{% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
+
+            <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 %} ({% trans "Last check:" %} {{ check_time_prod }})</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 %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}</li>
+            </ul>
+            <p class="more-info">{% trans "You can clear cache to check the latest release." %}</p>
+
 {% endblock %}
index 3ad4e34e50e69035e753d2795172d3755575647b..46b547956244eb3f84d64b292a33120323c179ec 100644 (file)
@@ -8,11 +8,6 @@
     border-radius: 4px;
 }
 
-/* Search form message needs a little more width, depending on translations */
-#search-form {
-    width: 420px;
-}
-
 .messages a.closeMessage {
     display: none;
     float: right;
index e254d481b51b804340d32238be6266762e34ddb4..b25373d6c98cef6da4e4c85ed9ac64b352d115a9 100755 (executable)
@@ -417,6 +417,15 @@ a.add-to-wallabag-link-after:after {
   padding-left: 10px;
 }
 
+/* ==========================================================================
+       "Search" popup div related styles
+       ========================================================================== */
+
+/* Search form message needs a little more width, depending on translations */
+#search-form {
+    width: 420px;
+}
+
 .opacity03 {
   /*opacity: 0.3;*/
 }
@@ -435,4 +444,4 @@ pre code {
                font-family: "Courier New", Courier, monospace;
                border: 1px solid #ddd;
                font-size: 0.96em;
-}
\ No newline at end of file
+}
index bd498d26f13c43790312557c3c8aac2d3fc3c219..89c746ecaff047e4632810222013ca31b39a04b2 100755 (executable)
 </div>
 
 {% if tags is empty %}
-no tags
+{% trans "no tags" %}
 {% 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" id="editTags">
     <input type="hidden" name="entry_id" value="{{ entry_id }}" />
-    <label for="value">Add tags: </label>
-    <input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
+    <label for="value">{% trans "Add tags:" %}</label>
+    <input type="text" placeholder="{% trans "interview" %}, {% trans "editorial" %}, {% trans "video" %}" id="value" name="value" required="required" />
     <input type="submit" value="Tag" />
     <p>{% trans "Start typing for auto complete." %}<br>
     {% trans "You can enter multiple tags, separated by commas." %}</p>
index 093c2dc5e20b04076dc767143b89ec1b01c9de6b..6bc549e6c6d3e6e43265647800c377f83418f1eb 100755 (executable)
                 {% block pager %}
                     {% if nb_results > 1 %}
                 <div class="results">
-                    <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div>
+                    <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if searchterm is defined %}{% trans " found for « " %} {{ searchterm }} »{% endif %}</div>
                         {{ page_links | raw }}
                 </div>
                     {% elseif nb_results == 1 %}
-                        {% if search_term is defined %}
+                        {% if searchterm is defined %}
                      <div class="results">
-                        <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div>
+                        <div class="nb-results">{% trans "Only one result found for " %} « {{ searchterm }} »</div>
                      </div>
                         {% endif %}
                     {% endif %}
             
             {% if view == 'home' %}{% if nb_results > 1 %}<a title="{% trans "mark all the entries as read" %}"  href="./?action=archive_all">{% trans "mark all the entries as read" %}</a>{% endif %}{% endif %}
             
-            {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a>
-            {% elseif search_term is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</a>
+       {% if searchterm is defined %}<a title="{% trans "Tag these results as" %} {{ searchterm }}" href="./?action=add_tag&search={{ searchterm }}">
+{% trans "Tag these results as" %} {{ searchterm }}</a>{% endif %}            
+
+       {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a>
+            {% elseif searchterm is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ searchterm }}">{% trans "Download the articles from this search in an epub" %}</a>
             {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %}
             
             {% endif %}
index a32e6e70aa9f0471d659f169c368a43598ea2642..d233e600f3d837d0bac1bf7c2bae5aa1c7bbcd3c 100644 (file)
@@ -1,21 +1,72 @@
 $(document).ready(function() {
 
     $("#search-form").hide();
+    $("#bagit-form").hide();
 
-    function closeSearch() {
+    //---------------------------------------------------------------------------
+    // Toggle the "Search" popup in the sidebar
+    //---------------------------------------------------------------------------
+    function toggleSearch() {
         $("#search-form").toggle();
         $("#search").toggleClass("current");
+        $("#search").toggleClass("active-current");
         $("#search-arrow").toggleClass("arrow-down");
+        if ($("#search").hasClass("current")) {
+            $("#content").addClass("opacity03");
+        } else {
+            $("#content").removeClass("opacity03");
+        }
+    }
+
+    //---------------------------------------------------------------------------
+    // Toggle the "Save a Link" popup in the sidebar
+    //---------------------------------------------------------------------------
+    function toggleBagit() {
+        $("#bagit-form").toggle();
+        $("#bagit").toggleClass("current");
+        $("#bagit").toggleClass("active-current");
+        $("#bagit-arrow").toggleClass("arrow-down");
+        if ($("#bagit").hasClass("current")) {
+            $("#content").addClass("opacity03");
+        } else {
+            $("#content").removeClass("opacity03");
+        }
+    }
+
+    //---------------------------------------------------------------------------
+    // Close all #links popups in the sidebar
+    //---------------------------------------------------------------------------
+    function closePopups() {
+        $("#links .messages").hide();
+        $("#links > li > a").removeClass("active-current");
+        $("#links > li > a").removeClass("current");
+        $("[id$=-arrow]").removeClass("arrow-down");
+        $("#content").removeClass("opacity03");
     }
 
     $("#search").click(function(){
-        closeSearch();
-        $('#searchfield').focus();
+        closePopups();
+        toggleSearch();
+        $("#searchfield").focus();
+    });
+
+    $("#bagit").click(function(){
+        closePopups();
+        toggleBagit();
+        $("#plainurl").focus();
     });
 
     $("#search-form-close").click(function(){
-        closeSearch();
+        toggleSearch();
+    });
+
+    $("#bagit-form-close").click(function(){
+        toggleBagit();
     });
 
+    // $("#").click(function(){
+    //     toggleSearch();
+    // });
+
 
-});
\ No newline at end of file
+});
index 6dbce97eac5cf1ba1a62be4091750de86473e706..a7acd84c3e808969cac189ca5cf57d267cdba8d6 100755 (executable)
@@ -13,7 +13,7 @@ $.fn.ready(function() {
 
     $bagit.toggleClass("active-current");
 
-    //only if bagiti link is not presented on page
+    //only if bag-it link is not presented on page
     if ( $bagit.length === 0 ) {
       if ( event !== 'undefined' && event ) {
         $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200});
@@ -23,6 +23,11 @@ $.fn.ready(function() {
       }
     }
 
+    if ($("#search-form").length != 0) {
+       $("#search").removeClass("current");
+       $("#search-arrow").removeClass("arrow-down");
+       $("#search-form").hide();
+    }
     $bagitForm.toggle();
     $('#content').toggleClass("opacity03");
     if (url !== 'undefined' && url) {
@@ -31,18 +36,21 @@ $.fn.ready(function() {
     $('#plainurl').focus();
   }
 
-
-  $bagit.click(function(){
-    $bagit.toggleClass("current");
-    $("#bagit-arrow").toggleClass("arrow-down");
-    toggleSaveLinkForm();
-  });
-
-  $("#bagit-form-close").click(function(){
-    $bagit.removeClass("current");
-    $("#bagit-arrow").removeClass("arrow-down");
-    toggleSaveLinkForm();
-  });
+       //---------------------------------------------------------------------------
+       // These two functions are now taken care of in popupForm.js
+       //---------------------------------------------------------------------------
+
+  // $bagit.click(function(){
+  //   $bagit.toggleClass("current");
+  //   $("#bagit-arrow").toggleClass("arrow-down");
+  //   toggleSaveLinkForm();
+  // });
+
+  // $("#bagit-form-close").click(function(){
+  //   $bagit.removeClass("current");
+  //   $("#bagit-arrow").removeClass("arrow-down");
+  //   toggleSaveLinkForm();
+  // });
 
 
   //send "bag it link" form request via ajax