Merge pull request #932 from wallabag/dev

1.8.1
This commit is contained in:
Nicolas Lœuillet 2014-11-15 20:48:49 +01:00
commit 1532376710
103 changed files with 2183 additions and 498 deletions

4
.gitignore vendored
View 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/
inc/3rdparty/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/
.vagrant

71
Vagrantfile vendored Normal file
View File

@ -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

View File

@ -44,7 +44,7 @@ class Messages {
var $msgId;
var $msgTypes = array( 'help', 'info', 'warning', 'success', 'error' );
var $msgClass = 'messages';
var $msgWrapper = "<div class='%s %s'><a href='#' class='closeMessage'>X</a>\n%s</div>\n";
var $msgWrapper = "<div class='%s %s'><a href='#' class='closeMessage'>&times;</a>\n%s</div>\n";
var $msgBefore = '<p>';
var $msgAfter = "</p>\n";

View File

@ -1,2 +1,2 @@
title: substring-before(//title, '&mdash;')
test_url: http://512pixels.net/more-on-linked-lists/
title: //meta[@property='og:title']/@content
test_url: http://www.512pixels.net/blog/2014/10/the-move

View File

@ -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

View File

@ -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/

View File

@ -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
test_url: http://alexduner.com/blog/something-i-learned-today

View File

@ -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/
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

View File

@ -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/

View File

@ -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/

View File

@ -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

View File

@ -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
test_url: http://www.bbc.co.uk/news/world-asia-22056933

60
inc/3rdparty/site_config/standard/bbc.com.txt vendored Executable file
View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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/

View File

@ -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

View File

@ -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
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

View File

@ -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
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

View File

@ -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/

View File

@ -2,4 +2,5 @@ title: //div[@class='title']
author: //div[@class='author']
prune: no
test_url: http://www.chomsky.info/onchomsky/2002----.htm
test_url: http://www.chomsky.info/onchomsky/2002----.htm
test_contains: The propaganda model argues

View File

@ -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
test_url: http://cn.reuters.feedsportal.com/CNAnalysesNews
# multipage link
test_url: http://cn.reuters.com/article/idCNKBS0FF0UL20140710

View File

@ -1 +1,3 @@
body: //div[@id='content']
body: //div[@id='readme']
test_url: http://code.fivefilters.org/full-text-rss

View File

@ -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
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

View File

@ -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
test_url: http://da.feedsportal.com/c/585/f/413794/s/17037b5a/l/0L0Stelegraaf0Bnl0Cbinnenland0C10A2757860C0I0IKlacht0Itegen0Idr0B0IFrank0Iniet0I0Eontvankelijk0I0I0Bhtml0Dcid0Frss/ia1.htm

View File

@ -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

View File

@ -2,4 +2,6 @@ body: (//blockquote[contains(@class, 'postcontent')])[1]
body: (//div[starts-with(@id, 'post_message')])[1]
prune: no
tidy: no
tidy: no
test_url: http://www.desitvforum.net/forum/watch-online/431739-creature-3d-2014-watch-online-download-dvd-rip.html

View File

@ -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

View File

@ -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/
test_url: http://dictionary.reference.com/browse/propaganda

View File

@ -1 +1,3 @@
single_page_link: //a[@id='download_button_link']
single_page_link: //a[@id='download_button_link']
test_url: https://www.dropbox.com/s/qmocfrco2t0d28o/Fluffbeast.docx

View File

@ -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

View File

@ -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
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

View File

@ -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
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

View File

@ -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
# 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

0
inc/3rdparty/site_config/standard/faz.net.txt vendored Normal file → Executable file
View File

View File

@ -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
test_url: http://finance.yahoo.com/news/canadian-orebodies-gives-notice-exercise-130000032.html

View File

@ -1,2 +1,2 @@
body: //div[@class='entry']
test_url: http://www.fivechapters.com/2010/paris-part-one/
test_url: http://www.fivechapters.com/2014/the-saddest-writer-in-america-part-two/

View File

@ -1 +1,4 @@
prune: no
body: //section[contains(@class, 'container')]
prune: no
test_url: http://fivefilters.org/kindle-it/

View File

@ -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

View File

@ -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
# Set full title
title: //h1
# 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
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

View File

@ -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']
test_url: http://www.heise.de/newsticker/meldung/Europa-soll-Grundrechteschutz-im-Netz-staerken-1392664.html
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/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

View File

@ -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
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

View File

@ -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

View File

@ -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
test_url: http://www.kachiblog.com/feed

View File

@ -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

View File

@ -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
test_url: http://www.mainpost.de/regional/wuerzburg/Autobahnschuetze-Staatsanwalt-fordert-zwoelf-Jahre;art492151,8386332

View File

@ -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
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

View File

@ -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
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.

View File

@ -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

View File

@ -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
test_url: http://www.northumberlandview.ca/index.php?module=news&type=user&func=display&sid=31127

View File

@ -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 youve seen enough of Aaron Sorkins 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
test_url: http://www.nytimes.com/2014/06/19/opinion/gail-collins-romney-and-the-2016-contenders-huddle.html

View File

@ -1,3 +1,5 @@
body: //div[@id='_ctl12__ctl0_Article']
body: //div[contains(@class, 'article-photo-wrapper')]
prune: no
autodetect_on_failure: no
test_url: http://www.real.gr/DefaultArthro.aspx?page=arthro&id=360962&catID=1
test_contains: Επισήμως το αποψινό υπουργικό

View File

@ -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/
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

View File

@ -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')

View File

@ -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
test_url: http://www.sourcebooks.com/blog/happy-27th-birthday-sourcebooks.html

View File

@ -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

View File

@ -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

View File

@ -1,3 +1,3 @@
single_page_link_in_feed: //b/a
test_url_feed: http://www.techmeme.com/feed.xml
test_url: http://www.techmeme.com/feed.xml

View File

@ -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/

View File

@ -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/
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/

View File

@ -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
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

View File

@ -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
test_url: http://www.theverge.com/rss/frontpage

View File

@ -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/

View File

@ -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

View File

@ -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
test_url: https://twitter.com/medialens/status/216883678582804480
test_contains: is all but alone in challenging the tsunami of UK

View File

@ -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
test_url: http://www.vanityfair.com/style/2012/01/prisoners-of-style-201201

18
inc/3rdparty/site_config/standard/wn.de.txt vendored Executable file
View File

@ -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

View File

@ -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))) {
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;

View 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');
}
}
}

View File

@ -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':

View File

@ -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();

View File

@ -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');

View File

@ -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);

File diff suppressed because one or more lines are too long

View 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;

View 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!"

Binary file not shown.

View File

@ -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:"

View 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"

View 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>

View File

@ -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>

View 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>
</div>

74
themes/baggy/about.twig Executable file
View File

@ -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 %}

View File

@ -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 == '' %}
@ -40,9 +39,11 @@
<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>
@ -83,6 +84,35 @@
<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">
@ -104,34 +134,7 @@
</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">
@ -147,7 +150,7 @@
<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>
@ -161,9 +164,18 @@
<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 %}

View File

@ -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%;
}
}

View File

@ -13,14 +13,14 @@
<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>

View File

@ -38,12 +38,12 @@
{% 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>
@ -57,13 +57,14 @@
{% 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 %}

View File

@ -8,7 +8,10 @@ $.fn.ready(function() {
========================================================================== */
$("#menu").click(function(){
$("#links").toggle();
$("#links").toggleClass('menu--open');
if ($('#content').hasClass('opacity03')) {
$('#content').removeClass('opacity03');
}
});
/* ==========================================================================

View 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>

View File

@ -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 %}
{% endblock %}

View File

@ -26,13 +26,13 @@
{% 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 %}
@ -53,10 +53,12 @@
{{ 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 %}
{% endblock %}

View 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' %}

View File

@ -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 %}

74
themes/default/about.twig Executable file
View File

@ -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 %}

View File

@ -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 == '' %}
@ -39,14 +39,16 @@
<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">
@ -82,6 +84,35 @@
<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">
@ -102,55 +133,28 @@
<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>
@ -160,9 +164,18 @@
<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 %}

View 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;

View File

@ -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;
}
}

View File

@ -16,15 +16,15 @@
</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>

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