aboutsummaryrefslogtreecommitdiffhomepage
path: root/themes
diff options
context:
space:
mode:
Diffstat (limited to 'themes')
-rw-r--r--themes/_global/css/jquery-ui-1.10.4.custom.css (renamed from themes/default/css/jquery-ui-1.10.4.custom.css)0
-rw-r--r--themes/_global/css/jquery-ui-1.10.4.custom.min.css (renamed from themes/default/css/jquery-ui-1.10.4.custom.min.css)0
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon-114.png (renamed from themes/baggy/img/apple-touch-icon-114.png)bin2281 -> 2281 bytes
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon-120.png (renamed from themes/baggy/img/apple-touch-icon-120.png)bin2318 -> 2318 bytes
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon-144.png (renamed from themes/baggy/img/apple-touch-icon-144.png)bin2718 -> 2718 bytes
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon-152.png (renamed from themes/baggy/img/apple-touch-icon-152.png)bin2835 -> 2835 bytes
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon-57.png (renamed from themes/baggy/img/apple-touch-icon-57.png)bin1582 -> 1582 bytes
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon-72.png (renamed from themes/baggy/img/apple-touch-icon-72.png)bin1709 -> 1709 bytes
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon-76.png (renamed from themes/baggy/img/apple-touch-icon-76.png)bin1838 -> 1838 bytes
-rwxr-xr-xthemes/_global/img/appicon/apple-touch-icon.png (renamed from themes/baggy/img/apple-touch-icon.png)bin1579 -> 1579 bytes
-rwxr-xr-xthemes/_global/img/appicon/favicon.ico (renamed from themes/baggy/img/favicon.ico)bin34494 -> 34494 bytes
-rw-r--r--themes/_global/img/icons/carrot-icon--black.pngbin0 -> 1538 bytes
-rw-r--r--themes/_global/img/icons/carrot-icon--white.pngbin0 -> 1605 bytes
-rw-r--r--themes/_global/img/icons/diaspora-icon--black.pngbin0 -> 1555 bytes
-rw-r--r--themes/_global/img/icons/diaspora-icon--white.pngbin0 -> 612 bytes
-rw-r--r--themes/_global/js/autoClose.js (renamed from themes/default/js/autoClose.js)0
-rwxr-xr-xthemes/_global/js/autoCompleteTags.js (renamed from themes/default/js/autoCompleteTags.js)0
-rw-r--r--themes/_global/js/jquery-2.0.3.min.js (renamed from themes/default/js/jquery-2.0.3.min.js)0
-rw-r--r--themes/_global/js/jquery-ui-1.10.4.custom.js (renamed from themes/default/js/jquery-ui-1.10.4.custom.js)0
-rw-r--r--themes/_global/js/jquery-ui-1.10.4.custom.min.js (renamed from themes/default/js/jquery-ui-1.10.4.custom.min.js)0
-rw-r--r--themes/_global/js/popupForm.js72
-rw-r--r--[-rwxr-xr-x]themes/_global/js/restoreScroll.js (renamed from themes/courgette/js/restoreScroll.js)0
-rwxr-xr-xthemes/_global/js/saveLink.js (renamed from themes/default/js/saveLink.js)34
-rwxr-xr-xthemes/baggy/_head.twig39
-rw-r--r--themes/baggy/_menu.twig1
-rwxr-xr-xthemes/baggy/_pocheit-form.twig8
-rw-r--r--themes/baggy/_search-form.twig10
-rwxr-xr-xthemes/baggy/about.twig74
-rwxr-xr-xthemes/baggy/config.twig138
-rwxr-xr-xthemes/baggy/css/main.css278
-rwxr-xr-xthemes/baggy/edit-tags.twig10
-rwxr-xr-xthemes/baggy/home.twig22
-rwxr-xr-xthemes/baggy/js/init.js5
-rw-r--r--themes/baggy/login.twig8
-rwxr-xr-xthemes/baggy/tags.twig4
-rwxr-xr-xthemes/baggy/view.twig7
-rwxr-xr-xthemes/courgette/README.md3
-rwxr-xr-xthemes/courgette/_head.twig11
-rwxr-xr-xthemes/courgette/_menu.twig10
-rwxr-xr-xthemes/courgette/_top.twig9
-rwxr-xr-xthemes/courgette/_view.twig46
-rwxr-xr-xthemes/courgette/css/font.css22
-rwxr-xr-xthemes/courgette/css/knacss.css0
-rwxr-xr-xthemes/courgette/css/messages.css75
-rwxr-xr-xthemes/courgette/css/print.css48
-rwxr-xr-xthemes/courgette/css/style-default.css59
-rwxr-xr-xthemes/courgette/css/style.css684
-rw-r--r--themes/courgette/edit-tags.twig20
-rwxr-xr-xthemes/courgette/error.twig6
-rwxr-xr-xthemes/courgette/font/icomoon.eotbin3056 -> 0 bytes
-rwxr-xr-xthemes/courgette/font/icomoon.svg23
-rwxr-xr-xthemes/courgette/font/icomoon.ttfbin2892 -> 0 bytes
-rwxr-xr-xthemes/courgette/font/icomoon.woffbin3020 -> 0 bytes
-rwxr-xr-xthemes/courgette/home.twig62
-rwxr-xr-xthemes/courgette/img/apple-touch-icon-144x144-precomposed.pngbin7349 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/apple-touch-icon-72x72-precomposed.pngbin6168 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/apple-touch-icon.pngbin5803 -> 0 bytes
-rw-r--r--themes/courgette/img/bg-select.pngbin1193 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/backtotop.pngbin326 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/bad-display.pngbin343 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/checkmark-off.pngbin277 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/checkmark-on.pngbin235 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/clock.pngbin332 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/down.pngbin216 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/envelop.pngbin285 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/flattr.pngbin270 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/left.pngbin196 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/link.pngbin341 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/remove.pngbin252 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/shaarli.pngbin729 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/star-off.pngbin314 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/star-on.pngbin281 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/top.pngbin212 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/default/twitter.pngbin297 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/favicon.icobin346 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/logo.pngbin1350 -> 0 bytes
-rw-r--r--themes/courgette/img/logo.svg8
-rwxr-xr-xthemes/courgette/img/messages/close.pngbin662 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/messages/cross.pngbin655 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/messages/help.pngbin786 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/messages/tick.pngbin537 -> 0 bytes
-rwxr-xr-xthemes/courgette/img/messages/warning.pngbin666 -> 0 bytes
-rwxr-xr-xthemes/courgette/js/init.js6
-rwxr-xr-xthemes/courgette/layout.twig32
-rwxr-xr-xthemes/courgette/login.twig32
-rwxr-xr-xthemes/courgette/screenshot.jpgbin80611 -> 0 bytes
-rwxr-xr-xthemes/courgette/tags.twig8
-rw-r--r--themes/courgette/theme.ini3
-rwxr-xr-xthemes/default/_head.twig38
-rwxr-xr-xthemes/default/_highlight.twig4
-rw-r--r--themes/default/_menu.twig1
-rwxr-xr-xthemes/default/_search-form.twig2
-rwxr-xr-xthemes/default/_sorting.twig4
-rwxr-xr-xthemes/default/about.twig74
-rwxr-xr-xthemes/default/config.twig141
-rwxr-xr-xthemes/default/css/style-default.css12
-rwxr-xr-xthemes/default/css/style.css17
-rwxr-xr-xthemes/default/edit-tags.twig12
-rw-r--r--themes/default/highlightjs/highlight.pack.js1
-rw-r--r--themes/default/highlightjs/styles/default.css152
-rw-r--r--themes/default/highlightjs/styles/github.css127
-rw-r--r--themes/default/highlightjs/styles/googlecode.css148
-rwxr-xr-xthemes/default/home.twig26
-rw-r--r--themes/default/img/apple-touch-icon-144x144-precomposed.pngbin2361 -> 0 bytes
-rw-r--r--themes/default/img/apple-touch-icon-72x72-precomposed.pngbin1375 -> 0 bytes
-rw-r--r--themes/default/img/apple-touch-icon.pngbin1174 -> 0 bytes
-rw-r--r--themes/default/img/favicon.icobin346 -> 0 bytes
-rw-r--r--themes/default/js/popupForm.js20
-rw-r--r--themes/default/js/restoreScroll.js25
-rwxr-xr-xthemes/default/view.twig8
110 files changed, 1135 insertions, 1554 deletions
diff --git a/themes/default/css/jquery-ui-1.10.4.custom.css b/themes/_global/css/jquery-ui-1.10.4.custom.css
index 5690172f..5690172f 100644
--- a/themes/default/css/jquery-ui-1.10.4.custom.css
+++ b/themes/_global/css/jquery-ui-1.10.4.custom.css
diff --git a/themes/default/css/jquery-ui-1.10.4.custom.min.css b/themes/_global/css/jquery-ui-1.10.4.custom.min.css
index 4dba92a8..4dba92a8 100644
--- a/themes/default/css/jquery-ui-1.10.4.custom.min.css
+++ b/themes/_global/css/jquery-ui-1.10.4.custom.min.css
diff --git a/themes/baggy/img/apple-touch-icon-114.png b/themes/_global/img/appicon/apple-touch-icon-114.png
index 0e96edd5..0e96edd5 100755
--- a/themes/baggy/img/apple-touch-icon-114.png
+++ b/themes/_global/img/appicon/apple-touch-icon-114.png
Binary files differ
diff --git a/themes/baggy/img/apple-touch-icon-120.png b/themes/_global/img/appicon/apple-touch-icon-120.png
index dc5aab1c..dc5aab1c 100755
--- a/themes/baggy/img/apple-touch-icon-120.png
+++ b/themes/_global/img/appicon/apple-touch-icon-120.png
Binary files differ
diff --git a/themes/baggy/img/apple-touch-icon-144.png b/themes/_global/img/appicon/apple-touch-icon-144.png
index 1d005db6..1d005db6 100755
--- a/themes/baggy/img/apple-touch-icon-144.png
+++ b/themes/_global/img/appicon/apple-touch-icon-144.png
Binary files differ
diff --git a/themes/baggy/img/apple-touch-icon-152.png b/themes/_global/img/appicon/apple-touch-icon-152.png
index f915231f..f915231f 100755
--- a/themes/baggy/img/apple-touch-icon-152.png
+++ b/themes/_global/img/appicon/apple-touch-icon-152.png
Binary files differ
diff --git a/themes/baggy/img/apple-touch-icon-57.png b/themes/_global/img/appicon/apple-touch-icon-57.png
index 5aa19ed9..5aa19ed9 100755
--- a/themes/baggy/img/apple-touch-icon-57.png
+++ b/themes/_global/img/appicon/apple-touch-icon-57.png
Binary files differ
diff --git a/themes/baggy/img/apple-touch-icon-72.png b/themes/_global/img/appicon/apple-touch-icon-72.png
index b8b48e1b..b8b48e1b 100755
--- a/themes/baggy/img/apple-touch-icon-72.png
+++ b/themes/_global/img/appicon/apple-touch-icon-72.png
Binary files differ
diff --git a/themes/baggy/img/apple-touch-icon-76.png b/themes/_global/img/appicon/apple-touch-icon-76.png
index 9f9dba27..9f9dba27 100755
--- a/themes/baggy/img/apple-touch-icon-76.png
+++ b/themes/_global/img/appicon/apple-touch-icon-76.png
Binary files differ
diff --git a/themes/baggy/img/apple-touch-icon.png b/themes/_global/img/appicon/apple-touch-icon.png
index 9cf29e2b..9cf29e2b 100755
--- a/themes/baggy/img/apple-touch-icon.png
+++ b/themes/_global/img/appicon/apple-touch-icon.png
Binary files differ
diff --git a/themes/baggy/img/favicon.ico b/themes/_global/img/appicon/favicon.ico
index 0346558b..0346558b 100755
--- a/themes/baggy/img/favicon.ico
+++ b/themes/_global/img/appicon/favicon.ico
Binary files differ
diff --git a/themes/_global/img/icons/carrot-icon--black.png b/themes/_global/img/icons/carrot-icon--black.png
new file mode 100644
index 00000000..6da7925b
--- /dev/null
+++ b/themes/_global/img/icons/carrot-icon--black.png
Binary files differ
diff --git a/themes/_global/img/icons/carrot-icon--white.png b/themes/_global/img/icons/carrot-icon--white.png
new file mode 100644
index 00000000..a70044b6
--- /dev/null
+++ b/themes/_global/img/icons/carrot-icon--white.png
Binary files differ
diff --git a/themes/_global/img/icons/diaspora-icon--black.png b/themes/_global/img/icons/diaspora-icon--black.png
new file mode 100644
index 00000000..32bca194
--- /dev/null
+++ b/themes/_global/img/icons/diaspora-icon--black.png
Binary files differ
diff --git a/themes/_global/img/icons/diaspora-icon--white.png b/themes/_global/img/icons/diaspora-icon--white.png
new file mode 100644
index 00000000..fc48d47c
--- /dev/null
+++ b/themes/_global/img/icons/diaspora-icon--white.png
Binary files differ
diff --git a/themes/default/js/autoClose.js b/themes/_global/js/autoClose.js
index e9145b7e..e9145b7e 100644
--- a/themes/default/js/autoClose.js
+++ b/themes/_global/js/autoClose.js
diff --git a/themes/default/js/autoCompleteTags.js b/themes/_global/js/autoCompleteTags.js
index 90bc982c..90bc982c 100755
--- a/themes/default/js/autoCompleteTags.js
+++ b/themes/_global/js/autoCompleteTags.js
diff --git a/themes/default/js/jquery-2.0.3.min.js b/themes/_global/js/jquery-2.0.3.min.js
index a4dd0a2f..a4dd0a2f 100644
--- a/themes/default/js/jquery-2.0.3.min.js
+++ b/themes/_global/js/jquery-2.0.3.min.js
diff --git a/themes/default/js/jquery-ui-1.10.4.custom.js b/themes/_global/js/jquery-ui-1.10.4.custom.js
index 6f599fca..6f599fca 100644
--- a/themes/default/js/jquery-ui-1.10.4.custom.js
+++ b/themes/_global/js/jquery-ui-1.10.4.custom.js
diff --git a/themes/default/js/jquery-ui-1.10.4.custom.min.js b/themes/_global/js/jquery-ui-1.10.4.custom.min.js
index 31635026..31635026 100644
--- a/themes/default/js/jquery-ui-1.10.4.custom.min.js
+++ b/themes/_global/js/jquery-ui-1.10.4.custom.min.js
diff --git a/themes/_global/js/popupForm.js b/themes/_global/js/popupForm.js
new file mode 100644
index 00000000..d233e600
--- /dev/null
+++ b/themes/_global/js/popupForm.js
@@ -0,0 +1,72 @@
1$(document).ready(function() {
2
3 $("#search-form").hide();
4 $("#bagit-form").hide();
5
6 //---------------------------------------------------------------------------
7 // Toggle the "Search" popup in the sidebar
8 //---------------------------------------------------------------------------
9 function toggleSearch() {
10 $("#search-form").toggle();
11 $("#search").toggleClass("current");
12 $("#search").toggleClass("active-current");
13 $("#search-arrow").toggleClass("arrow-down");
14 if ($("#search").hasClass("current")) {
15 $("#content").addClass("opacity03");
16 } else {
17 $("#content").removeClass("opacity03");
18 }
19 }
20
21 //---------------------------------------------------------------------------
22 // Toggle the "Save a Link" popup in the sidebar
23 //---------------------------------------------------------------------------
24 function toggleBagit() {
25 $("#bagit-form").toggle();
26 $("#bagit").toggleClass("current");
27 $("#bagit").toggleClass("active-current");
28 $("#bagit-arrow").toggleClass("arrow-down");
29 if ($("#bagit").hasClass("current")) {
30 $("#content").addClass("opacity03");
31 } else {
32 $("#content").removeClass("opacity03");
33 }
34 }
35
36 //---------------------------------------------------------------------------
37 // Close all #links popups in the sidebar
38 //---------------------------------------------------------------------------
39 function closePopups() {
40 $("#links .messages").hide();
41 $("#links > li > a").removeClass("active-current");
42 $("#links > li > a").removeClass("current");
43 $("[id$=-arrow]").removeClass("arrow-down");
44 $("#content").removeClass("opacity03");
45 }
46
47 $("#search").click(function(){
48 closePopups();
49 toggleSearch();
50 $("#searchfield").focus();
51 });
52
53 $("#bagit").click(function(){
54 closePopups();
55 toggleBagit();
56 $("#plainurl").focus();
57 });
58
59 $("#search-form-close").click(function(){
60 toggleSearch();
61 });
62
63 $("#bagit-form-close").click(function(){
64 toggleBagit();
65 });
66
67 // $("#").click(function(){
68 // toggleSearch();
69 // });
70
71
72});
diff --git a/themes/courgette/js/restoreScroll.js b/themes/_global/js/restoreScroll.js
index 331c9e19..331c9e19 100755..100644
--- a/themes/courgette/js/restoreScroll.js
+++ b/themes/_global/js/restoreScroll.js
diff --git a/themes/default/js/saveLink.js b/themes/_global/js/saveLink.js
index 6dbce97e..a7acd84c 100755
--- a/themes/default/js/saveLink.js
+++ b/themes/_global/js/saveLink.js
@@ -13,7 +13,7 @@ $.fn.ready(function() {
13 13
14 $bagit.toggleClass("active-current"); 14 $bagit.toggleClass("active-current");
15 15
16 //only if bagiti link is not presented on page 16 //only if bag-it link is not presented on page
17 if ( $bagit.length === 0 ) { 17 if ( $bagit.length === 0 ) {
18 if ( event !== 'undefined' && event ) { 18 if ( event !== 'undefined' && event ) {
19 $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200}); 19 $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200});
@@ -23,6 +23,11 @@ $.fn.ready(function() {
23 } 23 }
24 } 24 }
25 25
26 if ($("#search-form").length != 0) {
27 $("#search").removeClass("current");
28 $("#search-arrow").removeClass("arrow-down");
29 $("#search-form").hide();
30 }
26 $bagitForm.toggle(); 31 $bagitForm.toggle();
27 $('#content').toggleClass("opacity03"); 32 $('#content').toggleClass("opacity03");
28 if (url !== 'undefined' && url) { 33 if (url !== 'undefined' && url) {
@@ -31,18 +36,21 @@ $.fn.ready(function() {
31 $('#plainurl').focus(); 36 $('#plainurl').focus();
32 } 37 }
33 38
34 39 //---------------------------------------------------------------------------
35 $bagit.click(function(){ 40 // These two functions are now taken care of in popupForm.js
36 $bagit.toggleClass("current"); 41 //---------------------------------------------------------------------------
37 $("#bagit-arrow").toggleClass("arrow-down"); 42
38 toggleSaveLinkForm(); 43 // $bagit.click(function(){
39 }); 44 // $bagit.toggleClass("current");
40 45 // $("#bagit-arrow").toggleClass("arrow-down");
41 $("#bagit-form-close").click(function(){ 46 // toggleSaveLinkForm();
42 $bagit.removeClass("current"); 47 // });
43 $("#bagit-arrow").removeClass("arrow-down"); 48
44 toggleSaveLinkForm(); 49 // $("#bagit-form-close").click(function(){
45 }); 50 // $bagit.removeClass("current");
51 // $("#bagit-arrow").removeClass("arrow-down");
52 // toggleSaveLinkForm();
53 // });
46 54
47 55
48 //send "bag it link" form request via ajax 56 //send "bag it link" form request via ajax
diff --git a/themes/baggy/_head.twig b/themes/baggy/_head.twig
index be11673f..a88d4186 100755
--- a/themes/baggy/_head.twig
+++ b/themes/baggy/_head.twig
@@ -1,16 +1,39 @@
1 <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/{{theme}}/img/favicon.ico" /> 1 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-152.png" sizes="152x152">
2 <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-144x144-precomposed.png"> 2 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-152.png" sizes="152x152">
3 <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-72x72-precomposed.png"> 3
4 <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-precomposed.png"> 4 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-144.png" sizes="144x144">
5 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-144.png" sizes="144x144">
6
7 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-120.png" sizes="120x120">
8 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-120.png" sizes="120x120">
9
10 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-114.png" sizes="114x114">
11 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-114.png" sizes="114x114">
12
13 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-76.png" sizes="76x76">
14 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-76.png" sizes="76x76">
15
16 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-72.png" sizes="72x72">
17 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-72.png" sizes="72x72">
18
19 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-57.png" sizes="57x57">
20 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-57.png" sizes="57x57">
21
22 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon.png">
23 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon.png">
24
25 <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/_global/img/appicon/favicon.ico" sizes="16x16">
26
5 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/ratatouille.css" media="all"> 27 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/ratatouille.css" media="all">
6 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/font.css" media="all"> 28 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/font.css" media="all">
7 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/main.css" media="all"> 29 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/main.css" media="all">
8 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/messages.css" media="all"> 30 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/messages.css" media="all">
9 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/print.css" media="print"> 31 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/print.css" media="print">
10 <script src="{{ poche_url }}themes/default/js/jquery-2.0.3.min.js"></script> 32
11 <script src="{{ poche_url }}themes/default/js/autoClose.js"></script> 33 <script src="{{ poche_url }}themes/_global/js/jquery-2.0.3.min.js"></script>
34 <script src="{{ poche_url }}themes/_global/js/autoClose.js"></script>
12 <script src="{{ poche_url }}themes/{{theme}}/js/jquery.cookie.js"></script> 35 <script src="{{ poche_url }}themes/{{theme}}/js/jquery.cookie.js"></script>
13 <script src="{{ poche_url }}themes/{{theme}}/js/init.js"></script> 36 <script src="{{ poche_url }}themes/{{theme}}/js/init.js"></script>
14 <script src="{{ poche_url }}themes/default/js/saveLink.js"></script> 37 <script src="{{ poche_url }}themes/_global/js/saveLink.js"></script>
15 <script src="{{ poche_url }}themes/default/js/popupForm.js"></script> 38 <script src="{{ poche_url }}themes/_global/js/popupForm.js"></script>
16 <script src="{{ poche_url }}themes/{{theme}}/js/closeMessage.js"></script> 39 <script src="{{ poche_url }}themes/{{theme}}/js/closeMessage.js"></script>
diff --git a/themes/baggy/_menu.twig b/themes/baggy/_menu.twig
index 59b6a46b..8b80f65d 100644
--- a/themes/baggy/_menu.twig
+++ b/themes/baggy/_menu.twig
@@ -11,6 +11,7 @@
11 {% include '_search-form.twig' %} 11 {% include '_search-form.twig' %}
12 </li> 12 </li>
13 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> 13 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
14 <li><a href="./?view=about" {% if view == 'about' %}class="current"{% endif %}>{% trans "about" %}</a></li>
14 <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> 15 <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
15 </ul> 16 </ul>
16 17
diff --git a/themes/baggy/_pocheit-form.twig b/themes/baggy/_pocheit-form.twig
index 505ec368..bf2ae903 100755
--- a/themes/baggy/_pocheit-form.twig
+++ b/themes/baggy/_pocheit-form.twig
@@ -1,10 +1,10 @@
1<div id="bagit-form" class="messages info"> 1<div id="bagit-form" class="messages info popup-form">
2 <form method="get" action="index.php" target="_blank" id="bagit-form-form"> 2 <form method="get" action="index.php" target="_blank" id="bagit-form-form">
3 <h2><a href="javascript: void(null);" id="bagit-form-close">X</a> 3 <h2>{% trans "Save a link" %}</h2>
4 {% trans "Save a link" %}</h2> 4 <a href="javascript: void(null);" id="bagit-form-close" class="close-button--popup close-button">&times;</a>
5 <input type="hidden" name="autoclose" value="1" /> 5 <input type="hidden" name="autoclose" value="1" />
6 <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> 6 <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" />
7 <span id="add-link-result"></span>
7 <input type="submit" value="{% trans "save link!" %}" /> 8 <input type="submit" value="{% trans "save link!" %}" />
8 <div id="add-link-result"></div>
9 </form> 9 </form>
10</div> 10</div>
diff --git a/themes/baggy/_search-form.twig b/themes/baggy/_search-form.twig
index b8ac3bfa..73f7951f 100644
--- a/themes/baggy/_search-form.twig
+++ b/themes/baggy/_search-form.twig
@@ -1,7 +1,9 @@
1<div id="search-form" class="messages info"> 1<div id="search-form" class="messages info popup-form">
2<form method="get" action="index.php"> 2<form method="get" action="index.php">
3 <h2>{%trans "Search" %}</h2>
4 <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">&times;</a>
3 <input type="hidden" name="view" value="search"></input> 5 <input type="hidden" name="view" value="search"></input>
4 <label><a href="javascript: void(null);" id="search-form-close">X</a>{% trans "Search" %}</label> : <input type="text" name="search" /> 6 <input required placeholder="{% trans "Enter your search here" %}" type="text" name="search" id="searchfield"><br>
5 <input id="submit-search" type="submit" value="{% trans "Search" %} !"></input> 7 <input id="submit-search" type="submit" value="{% trans "Search" %}"></input>
6</form> 8</form>
7</div> \ No newline at end of file 9</div>
diff --git a/themes/baggy/about.twig b/themes/baggy/about.twig
new file mode 100755
index 00000000..7e19a900
--- /dev/null
+++ b/themes/baggy/about.twig
@@ -0,0 +1,74 @@
1{% extends "layout.twig" %}
2
3{% block title %}{% trans "About" %}{% endblock %}
4{% block menu %}
5{% include '_menu.twig' %}
6{% endblock %}
7{% block content %}
8 <h2>{% trans "About wallabag" %}</h2>
9
10 <dl>
11 <dt>{% trans "Project website" %}</dt>
12 <dd><a href="http://www.wallabag.org">http://www.wallabag.org</a></dd>
13
14 <dt>{% trans "Main developer" %}</dt>
15 <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans "website" %}</a></dd>
16
17 <dt>{% trans "Contributors:" %}</dt>
18 <dd><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans "on Github" %}</a></dd>
19
20 <dt>{% trans "Bug reports" %}</dt>
21 <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>
22
23 <dt>{% trans "License" %}</dt>
24 <dd><a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dd>
25
26 <dt>{% trans "Version" %}</dt>
27 <dd>{{ constant('POCHE') }}</dd>
28 </dl>
29
30 <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>
31
32 <h2>{% trans "Helping wallabag" %}</h2>
33
34 <p>{% trans "wallabag is free and opensource. You can help us:" %}</p>
35
36 <dl>
37 <dt><a href="http://www.wallabag.org">{% trans "via Paypal" %}</a></dt>
38
39 <dt><a href="http://www.wallabag.org">{% trans "via Flattr" %}</a></dt>
40 </dl>
41
42 <h2>{% trans "Credits" %}</h2>
43 <dl>
44 <dt>PHP Readability</dt>
45 <dd><a href="https://bitbucket.org/fivefilters/php-readability">https://bitbucket.org/fivefilters/php-readability</a></dd>
46
47 <dt>Full Text RSS</dt>
48 <dd><a href="http://code.fivefilters.org/full-text-rss/src">http://code.fivefilters.org/full-text-rss/src</a></dd>
49
50 <dt>logo by Maylis Agniel</dt>
51 <dd><a href="https://github.com/wallabag/logo">https://github.com/wallabag/logo</a></dd>
52
53 <dt>icons</dt>
54 <dd><a href="http://icomoon.io">http://icomoon.io</a></dd>
55
56 <dt>PHP Simple HTML DOM Parser</dt>
57 <dd><a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></dd>
58
59 <dt>Session</dt>
60 <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>
61
62 <dt>Twig</dt>
63 <dd><a href="http://twig.sensiolabs.org">http://twig.sensiolabs.org</a></dd>
64
65 <dt>Flash messages</dt>
66 <dd><a href="https://github.com/plasticbrain/PHP-Flash-Messages">https://github.com/plasticbrain/PHP-Flash-Messages</a></dd>
67
68 <dt>Pagination</dt>
69 <dd><a href="https://github.com/daveismyname/pagination">https://github.com/daveismyname/pagination</a></dd>
70
71 <dt>PHPePub</dt>
72 <dd><a href="https://github.com/Grandt/PHPePub/">https://github.com/Grandt/PHPePub/</a></dd>
73 </dl>
74{% endblock %}
diff --git a/themes/baggy/config.twig b/themes/baggy/config.twig
index dda05c29..a5a61559 100755
--- a/themes/baggy/config.twig
+++ b/themes/baggy/config.twig
@@ -6,30 +6,29 @@
6{% endblock %} 6{% endblock %}
7{% block content %} 7{% block content %}
8 <h2>{% trans "Saving articles" %}</h2> 8 <h2>{% trans "Saving articles" %}</h2>
9 <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> 9 <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>
10 <p>
11 <form method="get" action="index.php">
12 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label><br>
13 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
14 <input type="submit" value="{% trans "bag it!" %}" />
15 </form>
16 </p>
17 <h3>Browser Plugins</h3>
10 <ul> 18 <ul>
11 <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" title="download the firefox extension">{% trans "download the extension" %}</a></li> 19 <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
12 <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> 20 <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
13 <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>
14 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li>
15 <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>
16 <li>
17 <form method="get" action="index.php">
18 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label>
19 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
20 <input type="submit" value="{% trans "bag it!" %}" />
21 </form>
22 </li>
23 <li>{% trans "Bookmarklet: drag &amp; 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>
24 </ul> 21 </ul>
25 22 <h3>Mobile Apps</h3>
26 <h2>{% trans "Upgrading wallabag" %}</h2>
27 <ul> 23 <ul>
28 <li>{% trans "Installed version" %} : <strong>{{ constant('POCHE') }}</strong></li> 24 <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>
29 <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> 25 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans "download the application" %}</a></li>
30 {% 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> 26 <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>
31 </ul> 27 </ul>
32 <p>{% trans "You can clear cache to check the latest release." %}</p> 28 <h3>{% trans "Bookmarklet" %}</h3>
29 <p>
30 {% 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>
31 </p>
33 32
34 <h2>{% trans "Feeds" %}</h2> 33 <h2>{% trans "Feeds" %}</h2>
35 {% if token == '' %} 34 {% if token == '' %}
@@ -40,9 +39,11 @@
40 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li> 39 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li>
41 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li> 40 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li>
42 </ul> 41 </ul>
43 <p>{% trans "Your token:" %} <strong>{{token}}</strong></p> 42 <p class="more-info">
44 <p>{% trans "Your user id:" %} <strong>{{user_id}}</strong></p> 43 {% trans "Your token:" %} <strong>{{token}}</strong><br>
45 <p>{% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}</p> 44 {% trans "Your user id:" %} <strong>{{user_id}}</strong><br>
45 {% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}
46 </p>
46 {% endif %} 47 {% endif %}
47 48
48 <h2>{% trans "Change your theme" %}</h2> 49 <h2>{% trans "Change your theme" %}</h2>
@@ -83,35 +84,14 @@
83 <input type="hidden" name="token" value="{{ token }}"> 84 <input type="hidden" name="token" value="{{ token }}">
84 </form> 85 </form>
85 86
86 {% if http_auth == 0 %} 87 <h2><a name="import"></a>{% trans "Import" %}</h2>
87 <h2>{% trans "Change your password" %}</h2>
88 <form method="post" action="?config" name="loginform">
89 <fieldset class="w500p">
90 <div class="row">
91 <label class="col w150p" for="password">{% trans "New password:" %}</label>
92 <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2">
93 </div>
94 <div class="row">
95 <label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label>
96 <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3">
97 </div>
98 <div class="row mts txtcenter">
99 <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
100 </div>
101 </fieldset>
102 <input type="hidden" name="returnurl" value="{{ referer }}">
103 <input type="hidden" name="token" value="{{ token }}">
104 </form>
105 {% endif %}
106
107 <h2>{% trans "Import" %}</h2>
108 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p> 88 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
109 <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> 89 <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>
110 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data"> 90 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
111 <fieldset class="w500p"> 91 <fieldset class="w500p">
112 <div class="row"> 92 <div class="row">
113 <label class="col w150p" for="file">{% trans "File:" %}</label> 93 <label class="col w150p" for="file">{% trans "File:" %}</label>
114 <input class="col" type="file" id="file" name="file" tabindex="4"> 94 <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
115 </div> 95 </div>
116 <div class="row mts txtcenter"> 96 <div class="row mts txtcenter">
117 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button> 97 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
@@ -119,12 +99,12 @@
119 </fieldset> 99 </fieldset>
120 </form> 100 </form>
121 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p> 101 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
122 102 <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>
103
123 <h2>{% trans "Export your wallabag data" %}</h2> 104 <h2>{% trans "Export your wallabag data" %}</h2>
124 {% if constant('STORAGE') == 'sqlite' %} 105 <p><a href="?export" target="_blank">{% trans "Export JSON" %}</a><br>
125 <p><a href="?download" target="_blank">{% trans "Click here" %}</a> {% trans "to download your database." %}</p>{% endif %} 106 <span class="more-info">Data will be exported in a single JSON file.</span></p>
126 <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p> 107
127
128 <h2>{% trans "Fancy an E-Book ?" %}</h2> 108 <h2>{% trans "Fancy an E-Book ?" %}</h2>
129 <p>{% trans "Click to get all your articles in one ebook :" %} 109 <p>{% trans "Click to get all your articles in one ebook :" %}
130 <ul> 110 <ul>
@@ -133,25 +113,50 @@
133 <li><a href="./?pdf&amp;method=all" title="{% trans 'Generate PDF file' %}">PDF</a></li> 113 <li><a href="./?pdf&amp;method=all" title="{% trans 'Generate PDF file' %}">PDF</a></li>
134 </ul> 114 </ul>
135 115
136 <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> 116 <span class="more-info">{% 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>
137 117
138 <h2>{% trans "Cache" %}</h2> 118 <h2><a name="cache"></a>{% trans "Cache" %}</h2>
139 <p><a href="?empty-cache">{% trans "Click here" %}</a> {% trans "to delete cache." %}</p> 119 <p><a href="?empty-cache">{% trans "Delete Cache" %}</a><br>
120 <span class="more-info">Deleting the cache may help with display or other problems.</span></p>
121
122 {% if http_auth == 0 %}
123 <h2>{% trans "Change your password" %}</h2>
124 <form method="post" action="?config" name="loginform">
125 <fieldset class="w500p">
126 <div class="row">
127 <label class="col w150p" for="password">{% trans "New password:" %}</label>
128 <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2">
129 </div>
130 <div class="row">
131 <label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label>
132 <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3">
133 </div>
134 <div class="row mts txtcenter">
135 <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
136 </div>
137 </fieldset>
138 <input type="hidden" name="returnurl" value="{{ referer }}">
139 <input type="hidden" name="token" value="{{ token }}">
140 </form>
141 {% endif %}
140 142
141 <h2>{% trans 'Add user' %}</h2> 143 <h2>{% trans 'Add user' %}</h2>
142 <p>{% trans 'Add a new user :' %}</p>
143 <form method="post" action="?newuser"> 144 <form method="post" action="?newuser">
144 <fieldset class="w500p"> 145 <fieldset class="w500p">
145 <div class="row"> 146 <div class="row">
146 <label class="col w150p" for="newusername">{% trans 'Login for new user' %}</label> 147 <label class="col w150p" for="newusername">{% trans 'Login for new user' %}</label>
147 <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}"> 148 <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}" required>
148 </div> 149 </div>
149 <div class="row"> 150 <div class="row">
150 <label class="col w150p" for="password4newuser">{% trans "Password for new user" %}</label> 151 <label class="col w150p" for="password4newuser">{% trans "Password for new user" %}</label>
151 <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans "Password" %}"> 152 <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans 'Password' %}" required>
153 </div>
154 <div class="row">
155 <label class="col w150p" for="newuseremail">{% trans 'Email for new user (not required)' %}</label>
156 <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}">
152 </div> 157 </div>
153 <div class="row mts txtcenter"> 158 <div class="row mts txtcenter">
154 <button type="submit">{% trans "Send" %}</button> 159 <button type="submit">{% trans "Add user" %}</button>
155 </div> 160 </div>
156 </fieldset> 161 </fieldset>
157 </form> 162 </form>
@@ -165,9 +170,18 @@
165 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}"> 170 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}">
166 </div> 171 </div>
167 <div class="row mts txtcenter"> 172 <div class="row mts txtcenter">
168 <button type="submit">{% trans "Send" %}</button> 173 <button type="submit">{% trans "Delete account" %}</button>
169 </div> 174 </div>
170 </form> 175 </form>
171 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}<br /> 176 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}</p>
172 {% trans "To completely remove wallabag, delete the wallabag folder on your web server." %}</p>{% endif %} 177 <p>{% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
178
179 <h2>{% trans "Upgrading wallabag" %}</h2>
180 <ul>
181 <li>{% trans "Installed version" %}: <strong>{{ constant('POCHE') }}</strong></li>
182 <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>
183 {% 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>
184 </ul>
185 <p class="more-info">{% trans "You can clear cache to check the latest release." %}</p>
186
173{% endblock %} 187{% endblock %}
diff --git a/themes/baggy/css/main.css b/themes/baggy/css/main.css
index 6d320cd2..1df82910 100755
--- a/themes/baggy/css/main.css
+++ b/themes/baggy/css/main.css
@@ -15,11 +15,11 @@ html {
15} 15}
16 16
17body { 17body {
18 background: #EEE; 18 background-color: #EEE;
19} 19}
20 20
21.login { 21.login {
22 background: #333; 22 background-color: #333;
23} 23}
24 24
25.login #main { 25.login #main {
@@ -28,7 +28,7 @@ body {
28} 28}
29 29
30.login form { 30.login form {
31 background: #FFF; 31 background-color: #FFF;
32 padding: 1.5em; 32 padding: 1.5em;
33 box-shadow: 0 1px 8px rgba(0,0,0,0.9); 33 box-shadow: 0 1px 8px rgba(0,0,0,0.9);
34 width: 20em; 34 width: 20em;
@@ -51,7 +51,7 @@ body {
51 51
52::selection { 52::selection {
53 color: #FFF; 53 color: #FFF;
54 background: #000; 54 background-color: #000;
55} 55}
56 56
57.desktopHide { 57.desktopHide {
@@ -70,7 +70,7 @@ h2, h3, h4 {
70 text-transform: uppercase; 70 text-transform: uppercase;
71} 71}
72 72
73p, li { 73p, li, label {
74 color: #666; 74 color: #666;
75} 75}
76 76
@@ -89,7 +89,7 @@ form fieldset {
89 margin: 0; 89 margin: 0;
90} 90}
91 91
92form input[type="text"], select, form input[type="password"], form input[type="url"] { 92form input[type="text"], select, form input[type="password"], form input[type="url"], form input[type="email"] {
93 border: 1px solid #999; 93 border: 1px solid #999;
94 padding: 0.5em 1em; 94 padding: 0.5em 1em;
95 min-width: 12em; 95 min-width: 12em;
@@ -104,10 +104,6 @@ form input[type="text"], select, form input[type="password"], form input[type="u
104 } 104 }
105} 105}
106 106
107fieldset label {
108 min-width: 12.5em;
109}
110
111.inline .row { 107.inline .row {
112 display: inline-block; 108 display: inline-block;
113 margin-right: 0.5em; 109 margin-right: 0.5em;
@@ -119,17 +115,21 @@ fieldset label {
119 115
120fieldset label { 116fieldset label {
121 display: inline-block; 117 display: inline-block;
122 margin-right: 0.5em; 118 min-width: 12.5em;
123 color: #666; 119 color: #666;
124} 120}
125 121
122label {
123 margin-right: 0.5em;
124}
125
126form .row { 126form .row {
127 margin-bottom: 0.5em; 127 margin-bottom: 0.5em;
128} 128}
129 129
130form button, input[type="submit"] { 130form button, input[type="submit"] {
131 cursor:pointer; 131 cursor:pointer;
132 background: #000; 132 background-color: #000;
133 color: #FFF; 133 color: #FFF;
134 border:0; 134 border:0;
135 padding: 0.5em 1em; 135 padding: 0.5em 1em;
@@ -138,7 +138,7 @@ form button, input[type="submit"] {
138} 138}
139 139
140 form button:hover, form button:focus, input[type="submit"]:hover, input[type="submit"]:focus { 140 form button:hover, form button:focus, input[type="submit"]:hover, input[type="submit"]:focus {
141 background: #FFF; 141 background-color: #FFF;
142 color: #000; 142 color: #000;
143 -webkit-transition: all 0.5s ease; 143 -webkit-transition: all 0.5s ease;
144 -moz-transition: all 0.5s ease; 144 -moz-transition: all 0.5s ease;
@@ -155,7 +155,7 @@ h2:after {
155 content: ""; 155 content: "";
156 height: 4px; 156 height: 4px;
157 width: 70px; 157 width: 70px;
158 background: #000; 158 background-color: #000;
159 display: block; 159 display: block;
160} 160}
161 161
@@ -176,11 +176,11 @@ h2:after {
176 width: 10em; 176 width: 10em;
177 left: 0; 177 left: 0;
178 text-align: right; 178 text-align: right;
179 background: #333; 179 background-color: #333;
180 padding-top: 9.5em; 180 padding-top: 9.5em;
181 height: 100%; 181 height: 100%;
182 box-shadow:inset -4px 0 20px rgba(0,0,0,0.6); 182 box-shadow:inset -4px 0 20px rgba(0,0,0,0.6);
183 z-index: 10; 183 z-index: 15;
184} 184}
185 185
186#main { 186#main {
@@ -191,7 +191,7 @@ h2:after {
191 padding-bottom: 1em; 191 padding-bottom: 1em;
192} 192}
193 193
194 #links a { 194 #links > li > a {
195 display: block; 195 display: block;
196 padding: 0.5em 2em 0.5em 1em; 196 padding: 0.5em 2em 0.5em 1em;
197 color: #FFF; 197 color: #FFF;
@@ -207,8 +207,8 @@ h2:after {
207 transition: all 0.5s ease; 207 transition: all 0.5s ease;
208 } 208 }
209 209
210 #links a:hover, #links a:focus { 210 #links > li > a:hover, #links > li > a:focus {
211 background: #999; 211 background-color: #999;
212 color: #000; 212 color: #000;
213 } 213 }
214 214
@@ -281,12 +281,12 @@ h2:after {
281#listmode a:hover { 281#listmode a:hover {
282 opacity: 1; 282 opacity: 1;
283} 283}
284.tablemode { 284#listmode.tablemode {
285 background-image: url("../img/baggy/table.png"); 285 background-image: url("../img/baggy/table.png");
286 background-repeat: no-repeat; 286 background-repeat: no-repeat;
287 background-position: bottom; 287 background-position: bottom;
288} 288}
289.listmode { 289#listmode.listmode {
290 background-image: url("../img/baggy/list.png"); 290 background-image: url("../img/baggy/list.png");
291 background-repeat: no-repeat; 291 background-repeat: no-repeat;
292 background-position: bottom; 292 background-position: bottom;
@@ -327,15 +327,11 @@ footer a {
327 margin-left: 0!important; 327 margin-left: 0!important;
328} 328}
329 329
330.listmode .entrie p {
331 display: none;
332}
333
334.list-entries + .results { 330.list-entries + .results {
335 margin-bottom: 2em; 331 margin-bottom: 2em;
336} 332}
337 333
338.estimatedTime a { 334.estimatedTime .reading-time {
339 color: #999; 335 color: #999;
340 font-style: italic; 336 font-style: italic;
341 font-weight: normal; 337 font-weight: normal;
@@ -348,7 +344,7 @@ footer a {
348} 344}
349 345
350.entrie { 346.entrie {
351 background: #FFF; 347 background-color: #FFF;
352 letter-spacing:normal; 348 letter-spacing:normal;
353 box-shadow: 0 3px 7px rgba(0,0,0,0.3); 349 box-shadow: 0 3px 7px rgba(0,0,0,0.3);
354 display: inline-block; 350 display: inline-block;
@@ -359,11 +355,15 @@ footer a {
359 position: relative; 355 position: relative;
360 overflow: hidden; 356 overflow: hidden;
361 padding: 1.5em 1.5em 3em 1.5em; 357 padding: 1.5em 1.5em 3em 1.5em;
362 -webkit-transition: all 0.5s ease; 358
363 -moz-transition: all 0.5s ease; 359 /* Removing CSS transitions because they make the switch from list view to
364 -ms-transition: all 0.5s ease; 360 * table view jerky
365 -o-transition: all 0.5s ease; 361 */
366 transition: all 0.5s ease; 362 /* -webkit-transition: all 0.5s ease; */
363 /* -moz-transition: all 0.5s ease; */
364 /* -ms-transition: all 0.5s ease; */
365 /* -o-transition: all 0.5s ease; */
366 /* transition: all 0.5s ease; */
367} 367}
368 368
369.entrie:before { 369.entrie:before {
@@ -391,7 +391,7 @@ footer a {
391 width: 100%; 391 width: 100%;
392 bottom: 0; 392 bottom: 0;
393 left: 0; 393 left: 0;
394 background: #000; 394 background-color: #000;
395 -webkit-transition: all 0.5s ease; 395 -webkit-transition: all 0.5s ease;
396 -moz-transition: all 0.5s ease; 396 -moz-transition: all 0.5s ease;
397 -ms-transition: all 0.5s ease; 397 -ms-transition: all 0.5s ease;
@@ -418,6 +418,7 @@ footer a {
418.entrie h2 { 418.entrie h2 {
419 text-transform: none; 419 text-transform: none;
420 margin-bottom: 0; 420 margin-bottom: 0;
421 line-height: 1.2;
421} 422}
422 423
423 .entrie h2:after { 424 .entrie h2:after {
@@ -540,7 +541,7 @@ footer a {
540 2.1 = "save a link" related styles 541 2.1 = "save a link" related styles
541 ========================================================================== */ 542 ========================================================================== */
542 543
543#bagit-form, #search-form { 544.popup-form {
544 background: rgba(0,0,0,0.5); 545 background: rgba(0,0,0,0.5);
545 position: absolute; 546 position: absolute;
546 top: 0; 547 top: 0;
@@ -549,37 +550,53 @@ footer a {
549 height: 100%; 550 height: 100%;
550 width: 100%; 551 width: 100%;
551 margin: 0; 552 margin: 0;
552 margin-top: -30%; 553 margin-top: -30% !important; /* TODO: get rid of !important here; overridden by .messages selector */
553 padding: 2em; 554 padding: 2em;
554 display: none; 555 display: none;
555 border-left: 1px #EEE solid; 556 border-left: 1px #EEE solid;
556} 557}
557 558
558#bagit-form form, #search-form form { 559 .popup-form form {
559 background: #FFF; 560 background-color: #FFF;
560 position: absolute; 561 position: absolute;
561 top: 0; 562 top: 0;
562 left: 0; 563 left: 0;
563 z-index: 20; 564 z-index: 20;
564 border: 10px solid #000; 565 border: 10px solid #000;
565 width: 400px; 566 width: 400px;
566 height: 200px; 567 height: 200px;
567 /* margin: -150px 0 0 -300px; */ 568 padding: 2em;
568 padding: 2em; 569 }
570
571#bagit-form-form .addurl {
572 margin-left: 0;
569} 573}
570 574
571a#bagit-form-close, a#search-form-close { 575.closeMessage,
572 background: #000; 576.close-button {
577 background-color: #000;
573 color: #FFF; 578 color: #FFF;
574 padding: 0.2em 0.5em; 579 font-size: 1.2em;
580 line-height: 1.6;
581 width: 1.6em;
582 height: 1.6em;
583 text-align: center;
575 text-decoration: none; 584 text-decoration: none;
576 display: inline-block;
577 float: right;
578 font-size: 0.6em;
579} 585}
580a#bagit-form-close:hover, a#search-form-close:hover { 586 .closeMessage:hover,
581 background: #999; 587 .closeMessage:focus,
582 color: #000; 588 .close-button:hover,
589 .close-button:focus {
590 background-color: #999;
591 color: #000;
592 }
593
594.close-button--popup {
595 display: inline-block;
596 position: absolute;
597 top: 0;
598 right: 0;
599 font-size: 1.4em;
583} 600}
584 601
585.active-current { 602.active-current {
@@ -630,57 +647,7 @@ a.add-to-wallabag-link-after:after {
630 647
631#add-link-result { 648#add-link-result {
632 font-weight: bold; 649 font-weight: bold;
633 margin-top: 10px; 650 font-size: 0.9em;
634}
635
636/* ==========================================================================
637 2.2 = "search for articles" popup div related styles
638 ========================================================================== */
639#search-form {
640 background: rgba(0,0,0,0.5);
641 position: absolute;
642 top: 0;
643 left: 10em;
644 z-index: 20;
645 height: 100%;
646 width: 100%;
647 margin: 0;
648 margin-top: -30%;
649 padding: 2em;
650 display: none;
651 border-left: 1px #EEE solid;
652}
653
654#search-form form {
655 background: #FFF;
656 position: absolute;
657 top: 0;
658 left: 0;
659 z-index: 20;
660 border: 10px solid #000;
661 width: 400px;
662 height: 200px;
663 /* margin: -150px 0 0 -300px; */
664 padding: 2em;
665}
666
667a#search-form-close {
668 background: #000;
669 color: #FFF;
670 padding: 0.2em 0.5em;
671 text-decoration: none;
672 display: inline-block;
673 float: right;
674 font-size: 1.2em;
675}
676a#search-form-close:hover {
677 background: #999;
678 color: #000;
679}
680
681#submit-search{
682margin-left: 4em;
683margin-top:1em;
684} 651}
685 652
686/* ========================================================================== 653/* ==========================================================================
@@ -690,15 +657,16 @@ margin-top:1em;
690@font-face { 657@font-face {
691 font-family: 'icomoon'; 658 font-family: 'icomoon';
692 src:url('../fonts/icomoon.eot?-s0mcsx'); 659 src:url('../fonts/icomoon.eot?-s0mcsx');
693 src:url('../fonts/icomoon.eot?#iefix-s0mcsx') format('embedded-opentype'), 660 src:url('../fonts/icomoon.eot?#iefix-s0mcsx') format('embedded-opentype'),
694 url('../fonts/icomoon.woff?-s0mcsx') format('woff'), 661 url('../fonts/icomoon.woff?-s0mcsx') format('woff'),
695 url('../fonts/icomoon.ttf?-s0mcsx') format('truetype'), 662 url('../fonts/icomoon.ttf?-s0mcsx') format('truetype'),
696 url('../fonts/icomoon.svg?-s0mcsx#icomoon') format('svg'); 663 url('../fonts/icomoon.svg?-s0mcsx#icomoon') format('svg');
697 font-weight: normal; 664 font-weight: normal;
698 font-style: normal; 665 font-style: normal;
699} 666}
700 667
701.icon span { 668.icon span,
669.icon-image span {
702 position: absolute; 670 position: absolute;
703 top: -9999px; 671 top: -9999px;
704} 672}
@@ -769,6 +737,28 @@ margin-top:1em;
769 content: "\e80d"; 737 content: "\e80d";
770} 738}
771 739
740
741/* .icon-image class, for image-based icons
742 ========================================================================== */
743
744.icon-image {
745 background-size: 16px 16px;
746 background-repeat: no-repeat;
747 background-position: center;
748 padding-right: 1em !important;
749 padding-left: 1em !important;
750}
751
752/* Carrot (http://carrot.org) */
753.icon-image--carrot {
754 background-image: url('../../_global/img/icons/carrot-icon--white.png');
755}
756
757/* Diaspora */
758.icon-image--diaspora {
759 background-image: url('../../_global/img/icons/diaspora-icon--black.png');
760}}
761
772/* ========================================================================== 762/* ==========================================================================
773 Icon selected 763 Icon selected
774 ========================================================================== */ 764 ========================================================================== */
@@ -777,6 +767,10 @@ margin-top:1em;
777 color: #FFF; 767 color: #FFF;
778} 768}
779 769
770.icon-check.archive:before {
771 color: #FFF;
772}
773
780/* ========================================================================== 774/* ==========================================================================
781 4 = Messages 775 4 = Messages
782 ========================================================================== */ 776 ========================================================================== */
@@ -788,18 +782,6 @@ margin-top:1em;
788 782
789.messages > * { display: inline-block;} 783.messages > * { display: inline-block;}
790 784
791.closeMessage {
792 background: #000;
793 color: #FFF;
794 padding: 0.2em 0.5em;
795 text-decoration: none;
796}
797
798 .closeMessage:hover, .closeMessage:focus {
799 background: #FFF;
800 color: #000;
801 }
802
803.warning { 785.warning {
804 /* font-size: 3em; 786 /* font-size: 3em;
805 color: #999; 787 color: #999;
@@ -816,6 +798,16 @@ margin-top:1em;
816 width: 100%; 798 width: 100%;
817} 799}
818 800
801.more-info {
802 font-size: 0.85em;
803 line-height: 1.5;
804 color: #aaa;
805}
806
807 .more-info a {
808 color: #aaa;
809 }
810
819/* ========================================================================== 811/* ==========================================================================
820 5 = Article 812 5 = Article
821 ========================================================================== */ 813 ========================================================================== */
@@ -836,11 +828,15 @@ margin-top:1em;
836 828
837blockquote { 829blockquote {
838 border:1px solid #999; 830 border:1px solid #999;
839 background: #FFF; 831 background-color: #FFF;
840 padding: 1em; 832 padding: 1em;
841 margin: 0; 833 margin: 0;
842} 834}
843 835
836#article h1 {
837 text-align: left;
838}
839
844#article h2, #article h3, #article h4 { 840#article h2, #article h3, #article h4 {
845 text-transform: none; 841 text-transform: none;
846} 842}
@@ -865,14 +861,14 @@ blockquote {
865} 861}
866 862
867#article_toolbar a { 863#article_toolbar a {
868 background: #000; 864 background-color: #000;
869 padding: 0.3em 0.5em 0.2em; 865 padding: 0.3em 0.5em 0.2em;
870 color: #FFF; 866 color: #FFF;
871 text-decoration: none; 867 text-decoration: none;
872} 868}
873 869
874 #article_toolbar a:hover, #article_toolbar a:focus { 870 #article_toolbar a:hover, #article_toolbar a:focus {
875 background: #999; 871 background-color: #999;
876 } 872 }
877 873
878.shaarli:before { 874.shaarli:before {
@@ -895,7 +891,7 @@ blockquote {
895} 891}
896 892
897.icon-rss { 893.icon-rss {
898 background: #000; 894 background-color: #000;
899 color: #FFF; 895 color: #FFF;
900 padding: 0.2em 0.5em; 896 padding: 0.2em 0.5em;
901} 897}
@@ -910,7 +906,7 @@ blockquote {
910} 906}
911 907
912.list-tags .icon-rss:hover, .list-tags .icon-rss:focus { 908.list-tags .icon-rss:hover, .list-tags .icon-rss:focus {
913 background: #FFF; 909 background-color: #FFF;
914 color: #000; 910 color: #000;
915 text-decoration: none; 911 text-decoration: none;
916} 912}
@@ -923,6 +919,13 @@ blockquote {
923 text-decoration: underline; 919 text-decoration: underline;
924} 920}
925 921
922pre code {
923 font-family: "Courier New", Courier, monospace;
924 border: 1px solid #ccc;
925 font-size: 0.96em;
926}
927
928
926/* ========================================================================== 929/* ==========================================================================
927 6 = Media Queries 930 6 = Media Queries
928 ========================================================================== */ 931 ========================================================================== */
@@ -964,7 +967,7 @@ blockquote {
964 margin-left: 0; 967 margin-left: 0;
965 } 968 }
966 body > header { 969 body > header {
967 background: #333; 970 background-color: #333;
968 position: fixed; 971 position: fixed;
969 top: 0; 972 top: 0;
970 width: 100%; 973 width: 100%;
@@ -1010,11 +1013,11 @@ blockquote {
1010 width: 2.5em; 1013 width: 2.5em;
1011 height: 2.5em; 1014 height: 2.5em;
1012 cursor: pointer; 1015 cursor: pointer;
1013 background: #999; 1016 background-color: #999;
1014 font-size: 1.2em; 1017 font-size: 1.2em;
1015 } 1018 }
1016 .desktopHide:hover, .desktopHide:focus { 1019 .desktopHide:hover, .desktopHide:focus {
1017 background: #FFF; 1020 background-color: #FFF;
1018 } 1021 }
1019 #links { 1022 #links {
1020 display: none; 1023 display: none;
@@ -1022,6 +1025,9 @@ blockquote {
1022 height: auto; 1025 height: auto;
1023 padding-top: 3em; 1026 padding-top: 3em;
1024 } 1027 }
1028 #links.menu--open {
1029 display: block;
1030 }
1025 footer { 1031 footer {
1026 position: static; 1032 position: static;
1027 margin-right: 3em; 1033 margin-right: 3em;
@@ -1051,7 +1057,15 @@ blockquote {
1051 display: none; 1057 display: none;
1052 } 1058 }
1053 1059
1054 #bagit-form, #search-form { 1060 .popup-form, #bagit-form, #search-form {
1055 left: 0; 1061 left: 0;
1062 width: 100%;
1063 border-left: none;
1064 }
1065
1066 .popup-form form,
1067 #bagit-form form,
1068 #search-form form {
1069 width: 100%;
1056 } 1070 }
1057} 1071}
diff --git a/themes/baggy/edit-tags.twig b/themes/baggy/edit-tags.twig
index 2113e964..15f15560 100755
--- a/themes/baggy/edit-tags.twig
+++ b/themes/baggy/edit-tags.twig
@@ -5,22 +5,22 @@
5{% endblock %} 5{% endblock %}
6{% block content %} 6{% block content %}
7 7
8<script src="{{ poche_url }}themes/default/js/jquery-ui-1.10.4.custom.min.js"></script> 8<script src="{{ poche_url }}themes/_global/js/jquery-ui-1.10.4.custom.min.js"></script>
9<script src="{{ poche_url }}themes/default/js/autoCompleteTags.js"></script> 9<script src="{{ poche_url }}themes/_global/js/autoCompleteTags.js"></script>
10<link rel="stylesheet" href="{{ poche_url }}themes/default/css/jquery-ui-1.10.4.custom.min.css" media="all"> 10<link rel="stylesheet" href="{{ poche_url }}themes/_global/css/jquery-ui-1.10.4.custom.min.css" media="all">
11 11
12<div id="article"> 12<div id="article">
13 <h2>{{ entry.title|raw }}</21> 13 <h2>{{ entry.title|raw }}</21>
14</div> 14</div>
15{% if tags is empty %} 15{% if tags is empty %}
16<div class="notags">no tags</div> 16<div class="notags">{% trans "no tags" %}</div>
17{% endif %} 17{% endif %}
18<ul> 18<ul>
19{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %} 19{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
20</ul> 20</ul>
21<form method="post" action="./?action=add_tag"> 21<form method="post" action="./?action=add_tag">
22 <input type="hidden" name="entry_id" value="{{ entry_id }}" /> 22 <input type="hidden" name="entry_id" value="{{ entry_id }}" />
23 <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> 23 <label for="value">{% trans "Add tags:" %}</label><input type="text" placeholder="{% trans "interview" %}, {% trans "editorial" %}, {% trans "video" %}" id="value" name="value" required="required" />
24 <input type="submit" value="Tag" /> 24 <input type="submit" value="Tag" />
25 <p>{% trans "Start typing for auto complete." %}<br> 25 <p>{% trans "Start typing for auto complete." %}<br>
26 {% trans "You can enter multiple tags, separated by commas." %}</p> 26 {% trans "You can enter multiple tags, separated by commas." %}</p>
diff --git a/themes/baggy/home.twig b/themes/baggy/home.twig
index 4f415220..426ead1d 100755
--- a/themes/baggy/home.twig
+++ b/themes/baggy/home.twig
@@ -38,12 +38,12 @@
38 {% endblock %} 38 {% endblock %}
39 <div id="list-entries" class="list-entries"> 39 <div id="list-entries" class="list-entries">
40 {% for entry in entries %} 40 {% for entry in entries %}
41 <div id="entry-{{ entry.id|e }}" class="entrie"{% if listmode %} style="width:100%; margin-left:0;"{% endif %}> 41 <div id="entry-{{ entry.id|e }}" class="entrie">
42 <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> 42 <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
43 {% if entry.content| getReadingTime > 0 %} 43 {% if entry.content| getReadingTime > 0 %}
44 <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> 44 <div class="estimatedTime"><span class="tool reading-time">{% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min</span></div>
45 {% else %} 45 {% else %}
46 <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> 46 <div class="estimatedTime"><span class="tool reading-time">{% trans "estimated reading time :" %} <small class="inferieur">&lt;</small> 1 min</span></div>
47 {% endif %} 47 {% endif %}
48 <ul class="tools links"> 48 <ul class="tools links">
49 <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> 49 <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,23 +57,21 @@
57 {% endfor %} 57 {% endfor %}
58 </div> 58 </div>
59 {{ block('pager') }} 59 {{ block('pager') }}
60 {% 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 %} 60 {% 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 %}
61 61 {% 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 %}<br />
62 {% if search_term is defined %}<a title="{% trans %} Apply the tag {{ search_term }} to this search {% endtrans %}" href="./?action=add_tag&amp;search={{ search_term }}">{% trans %} Apply the tag {{ search_term }} to this search {% endtrans %}</a>{% endif %}
63 62
64 {% if tag %} 63 {% if tag %}
65 <a title="{% trans "Download the articles from this tag in an epub file" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as ePub3" %}</a> 64 <a title="{% trans "Download the articles from this tag in an epub file" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as ePub3" %}</a>
66 <a title="{% trans "Download the articles from this tag in a mobi file" %}" href="./?mobi&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as Mobi" %}</a> 65 <a title="{% trans "Download the articles from this tag in a mobi file" %}" href="./?mobi&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as Mobi" %}</a>
67 <a title="{% trans "Download the articles from this tag in a pdf file" %}" href="./?pdf&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as PDF" %}</a> 66 <a title="{% trans "Download the articles from this tag in a pdf file" %}" href="./?pdf&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as PDF" %}</a>
68 {% elseif search_term is defined %} 67 {% elseif searchterm is defined %}
69 <a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download as ePub3" %}</a> 68 <a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ searchterm }}">{% trans "Download as ePub3" %}</a>
70 <a title="{% trans "Download the articles from this search in a mobi file" %}" href="./?mobi&amp;method=search&amp;value={{ search_term }}">{% trans "Download as Mobi" %}</a> 69 <a title="{% trans "Download the articles from this search in a mobi file" %}" href="./?mobi&amp;method=search&amp;value={{ searchterm }}">{% trans "Download as Mobi" %}</a>
71 <a title="{% trans "Download the articles from this search in a pdf file" %}" href="./?pdf&amp;method=search&amp;value={{ search_term }}">{% trans "Download as PDF" %}</a> 70 <a title="{% trans "Download the articles from this search in a pdf file" %}" href="./?pdf&amp;method=search&amp;value={{ searchterm }}">{% trans "Download as PDF" %}</a>
72 {% else %} 71 {% else %}
73 <a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download as ePub3" %}</a> 72 <a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download as ePub3" %}</a>
74 <a title="{% trans "Download the articles from this category in a mobi file" %}" href="./?mobi&amp;method=category&amp;value={{ view }}">{% trans "Download as Mobi" %}</a> 73 <a title="{% trans "Download the articles from this category in a mobi file" %}" href="./?mobi&amp;method=category&amp;value={{ view }}">{% trans "Download as Mobi" %}</a>
75 <a title="{% trans "Download the articles from this category in a pdf file" %}" href="./?pdf&amp;method=category&amp;value={{ view }}">{% trans "Download as PDF" %}</a> 74 <a title="{% trans "Download the articles from this category in a pdf file" %}" href="./?pdf&amp;method=category&amp;value={{ view }}">{% trans "Download as PDF" %}</a>
76 {% endif %} 75 {% endif %}
77 76{% endif %}
78 {% endif %}
79{% endblock %} 77{% endblock %}
diff --git a/themes/baggy/js/init.js b/themes/baggy/js/init.js
index 00470fbf..74cbae68 100755
--- a/themes/baggy/js/init.js
+++ b/themes/baggy/js/init.js
@@ -8,7 +8,10 @@ $.fn.ready(function() {
8 ========================================================================== */ 8 ========================================================================== */
9 9
10 $("#menu").click(function(){ 10 $("#menu").click(function(){
11 $("#links").toggle(); 11 $("#links").toggleClass('menu--open');
12 if ($('#content').hasClass('opacity03')) {
13 $('#content').removeClass('opacity03');
14 }
12 }); 15 });
13 16
14 /* ========================================================================== 17 /* ==========================================================================
diff --git a/themes/baggy/login.twig b/themes/baggy/login.twig
index 645db376..58290e9c 100644
--- a/themes/baggy/login.twig
+++ b/themes/baggy/login.twig
@@ -9,17 +9,17 @@
9 {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %} 9 {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %}
10 <div class="row"> 10 <div class="row">
11 <label class="col w150p" for="login">{% trans "Username" %}</label> 11 <label class="col w150p" for="login">{% trans "Username" %}</label>
12 <input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} /> 12 <input class="col" type="text" id="login" name="login" placeholder="{% trans "Username" %}" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
13 </div> 13 </div>
14 14
15 <div class="row"> 15 <div class="row">
16 <label class="col w150p" for="password">{% trans "Password" %}</label> 16 <label class="col w150p" for="password">{% trans "Password" %}</label>
17 <input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} /> 17 <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
18 </div> 18 </div>
19 <div class="row"> 19 <div class="row">
20 <label class="col w150p" for="longlastingsession">{% trans "Stay signed in" %}</label> 20
21 <div class="col"> 21 <div class="col">
22 <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3"> 22 <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3" /> <label for="longlastingsession">{% trans "Stay signed in" %}</label><br />
23 <small class="inbl">{% trans "(Do not check on public computers)" %}</small> 23 <small class="inbl">{% trans "(Do not check on public computers)" %}</small>
24 </div> 24 </div>
25 </div> 25 </div>
diff --git a/themes/baggy/tags.twig b/themes/baggy/tags.twig
index 9bb93a45..65930eb2 100755
--- a/themes/baggy/tags.twig
+++ b/themes/baggy/tags.twig
@@ -1,5 +1,5 @@
1{% extends "layout.twig" %} 1{% extends "layout.twig" %}
2{% block title %}tags{% endblock %} 2{% block title %}Tags{% endblock %}
3{% block menu %} 3{% block menu %}
4{% include '_menu.twig' %} 4{% include '_menu.twig' %}
5{% endblock %} 5{% endblock %}
@@ -10,4 +10,4 @@
10</li> 10</li>
11{% endfor %} 11{% endfor %}
12</ul> 12</ul>
13{% endblock %} \ No newline at end of file 13{% endblock %}
diff --git a/themes/baggy/view.twig b/themes/baggy/view.twig
index 3f151592..dd274327 100755
--- a/themes/baggy/view.twig
+++ b/themes/baggy/view.twig
@@ -4,6 +4,7 @@
4{% endblock %} 4{% endblock %}
5{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} 5{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %}
6{% block content %} 6{% block content %}
7 {% include '_highlight.twig' %}
7 <div id="article_toolbar"> 8 <div id="article_toolbar">
8 <ul class="links"> 9 <ul class="links">
9 <li class="topPosF"><a href="#top" title="{% trans "Back to top" %}" class="tool top icon icon-arrow-up-thick"><span>{% trans "Back to top" %}</span></a></li> 10 <li class="topPosF"><a href="#top" title="{% trans "Back to top" %}" class="tool top icon icon-arrow-up-thick"><span>{% trans "Back to top" %}</span></a></li>
@@ -14,7 +15,9 @@
14 {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans "Tweet" %}"><span>{% trans "Tweet" %}</span></a></li>{% endif %} 15 {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans "Tweet" %}"><span>{% trans "Tweet" %}</span></a></li>{% endif %}
15 {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans "Email" %}"><span>{% trans "Email" %}</span></a></li>{% endif %} 16 {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans "Email" %}"><span>{% trans "Email" %}</span></a></li>{% endif %}
16 {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %} 17 {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %}
17 {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span> ({{ flattr.numflattrs }})</a></li>{% endif %}{% endif %} 18 {% if constant('SHARE_DIASPORA') == 1 %}<li><a href="{{ constant('DIASPORA_URL') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="{% trans "diaspora" %}"><span>{% trans "diaspora" %}</span></a></li>{% endif %}
19 {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span> ({{ flattr.numFlattrs }})</a></li>{% endif %}{% endif %}
20 {% if constant('CARROT') == 1 %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="{% trans "carrot" %}"><span>Carrot</span></a></li>{% endif %}
18 {% if constant('SHOW_PRINTLINK') == 1 %}<li><a title="{% trans "Print" %}" class="tool icon icon-print" href="javascript: window.print();"><span>{% trans "Print" %}</span></a></li>{% endif %} 21 {% if constant('SHOW_PRINTLINK') == 1 %}<li><a title="{% trans "Print" %}" class="tool icon icon-print" href="javascript: window.print();"><span>{% trans "Print" %}</span></a></li>{% endif %}
19 <li><a href="./?epub&amp;method=id&amp;value={{ entry.id|e }}" title="Generate ePub file">EPUB</a></li> 22 <li><a href="./?epub&amp;method=id&amp;value={{ entry.id|e }}" title="Generate ePub file">EPUB</a></li>
20 <li><a href="./?mobi&amp;method=id&amp;value={{ entry.id|e }}" title="Generate Mobi file">MOBI</a></li> 23 <li><a href="./?mobi&amp;method=id&amp;value={{ entry.id|e }}" title="Generate Mobi file">MOBI</a></li>
@@ -33,7 +36,7 @@
33 {{ content | raw }} 36 {{ content | raw }}
34 </article> 37 </article>
35 </div> 38 </div>
36 <script src="{{ poche_url }}themes/{{theme}}/js/restoreScroll.js"></script> 39 <script src="{{ poche_url }}themes/_global/js/restoreScroll.js"></script>
37 <script type="text/javascript"> 40 <script type="text/javascript">
38 $(document).ready(function() { 41 $(document).ready(function() {
39 42
diff --git a/themes/courgette/README.md b/themes/courgette/README.md
deleted file mode 100755
index e13d3900..00000000
--- a/themes/courgette/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# Courgette Theme
2
3theme created by Thomas LEBEAU alias Courgette http://thomaslebeau.fr/ \ No newline at end of file
diff --git a/themes/courgette/_head.twig b/themes/courgette/_head.twig
deleted file mode 100755
index 059936d9..00000000
--- a/themes/courgette/_head.twig
+++ /dev/null
@@ -1,11 +0,0 @@
1 <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/{{theme}}/img/favicon.ico" />
2 <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-144x144-precomposed.png">
3 <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-72x72-precomposed.png">
4 <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}themes/{{theme}}/img/apple-touch-icon-precomposed.png">
5 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/font.css" media="all">
6 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/style.css" media="all">
7 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/messages.css" media="all">
8 <link rel="stylesheet" href="{{ poche_url }}themes/{{theme}}/css/print.css" media="print">
9 <link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
10 <script src="//codeorigin.jquery.com/jquery-2.0.3.min.js"></script>
11 <script src="{{ poche_url }}themes/{{theme}}/js/init.js"></script>
diff --git a/themes/courgette/_menu.twig b/themes/courgette/_menu.twig
deleted file mode 100755
index 0e37660a..00000000
--- a/themes/courgette/_menu.twig
+++ /dev/null
@@ -1,10 +0,0 @@
1 <div id="menuContainer">
2 <ul id="links">
3 <li><a href="./" {% if view == 'home' %}class="current"{% endif %}>{% trans "unread" %}</a></li>
4 <li><a href="./?view=fav" {% if view == 'fav' %}class="current"{% endif %}>{% trans "favorites" %}</a></li>
5 <li><a href="./?view=archive" {% if view == 'archive' %}class="current"{% endif %}>{% trans "archive" %}</a></li>
6 <li><a href="./?view=tags" {% if view == 'tags' %}class="current"{% endif %}>{% trans "tags" %}</a></li>
7 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
8 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
9 </ul>
10 </div> \ No newline at end of file
diff --git a/themes/courgette/_top.twig b/themes/courgette/_top.twig
deleted file mode 100755
index 2d41db17..00000000
--- a/themes/courgette/_top.twig
+++ /dev/null
@@ -1,9 +0,0 @@
1 <header>
2 <h1>
3 {% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}themes/{{theme}}/img/logo.svg" alt="wallabag logo" />{% endblock %}
4 {% elseif view == 'fav' %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }} <span>Favoris</span></a>
5 {% elseif view == 'archive' %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }} <span>Archive</span></a>
6 {% else %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }}</a>
7 {% endif %}
8 </h1>
9 </header> \ No newline at end of file
diff --git a/themes/courgette/_view.twig b/themes/courgette/_view.twig
deleted file mode 100755
index c5c916c0..00000000
--- a/themes/courgette/_view.twig
+++ /dev/null
@@ -1,46 +0,0 @@
1{% extends "layout.twig" %}
2{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %}
3{% block content %}
4 <div id="article_toolbar">
5 <ul>
6 <li><a href="./" title="{% trans "back to home" %}" class="tool back"><span>{% trans "back to home" %}</span></a></li>
7 <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li>
8 <li><a title="{% trans "toggle mark as read" %}" class="tool {% 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>
9 <li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
10 <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
11 {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter" title="{% trans "tweet" %}"><span>{% trans "tweet" %}</span></a></li>{% endif %}
12 {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email" title="{% trans "email" %}"><span>{% trans "email" %}</span></a></li>{% endif %}
13 {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %}
14 {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li class="flattrli"><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span>{{ flattr.numflattrs }}</a></li>{% endif %}{% endif %}
15 <li><a href="./?epub&amp;method=id&amp;value={{ entry.id|e }}" title="Generate epub file">EPUB</a></li>
16 <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{% trans "this article appears wrong?" %}" class="tool bad-display"><span>{% trans "this article appears wrong?" %}</span></a></li>
17 </ul>
18 </div>
19 <div id="article">
20 <header class="mbm">
21 <h1>{{ entry.title|raw }}</h1>
22 </header>
23 <article>
24 {{ content | raw }}
25 </article>
26 </div>
27 <script src="{{ poche_url }}themes/{{theme}}/js/restoreScroll.js"></script>
28 <script type="text/javascript">
29 $(document).ready(function() {
30
31 $(window).scroll(function(e){
32 var scrollTop = $(window).scrollTop();
33 var docHeight = $(document).height();
34 var scrollPercent = (scrollTop) / (docHeight);
35 var scrollPercentRounded = Math.round(scrollPercent*100)/100;
36 savePercent({{ entry.id|e }}, scrollPercentRounded);
37 });
38
39 retrievePercent({{ entry.id|e }});
40
41 $(window).resize(function(){
42 retrievePercent({{ entry.id|e }});
43 });
44 });
45 </script>
46{% endblock %} \ No newline at end of file
diff --git a/themes/courgette/css/font.css b/themes/courgette/css/font.css
deleted file mode 100755
index 849ff85b..00000000
--- a/themes/courgette/css/font.css
+++ /dev/null
@@ -1,22 +0,0 @@
1@font-face {
2 font-family: 'fontello';
3 src: url('../font/fontello.eot?97381924');
4 src: url('../font/fontello.eot?97381924#iefix') format('embedded-opentype'),
5 url('../font/fontello.woff?97381924') format('woff'),
6 url('../font/fontello.ttf?97381924') format('truetype'),
7 url('../font/fontello.svg?97381924#fontello') format('svg');
8 font-weight: normal;
9 font-style: normal;
10}
11
12@font-face {
13 font-family: 'icomoon';
14 src:url('../font/icomoon.eot?-72nnzw');
15 src:url('../font/icomoon.eot?#iefix-72nnzw') format('embedded-opentype'),
16 url('../font/icomoon.woff?-72nnzw') format('woff'),
17 url('../font/comoon.ttf?-72nnzw') format('truetype'),
18 url('../font/icomoon.svg?-72nnzw#icomoon') format('svg');
19 font-weight: normal;
20 font-style: normal;
21}
22
diff --git a/themes/courgette/css/knacss.css b/themes/courgette/css/knacss.css
deleted file mode 100755
index e69de29b..00000000
--- a/themes/courgette/css/knacss.css
+++ /dev/null
diff --git a/themes/courgette/css/messages.css b/themes/courgette/css/messages.css
deleted file mode 100755
index fe6fbbe8..00000000
--- a/themes/courgette/css/messages.css
+++ /dev/null
@@ -1,75 +0,0 @@
1.messages {
2 display: block;
3 clear: both;
4 width: 400px;
5 margin: 10px auto 10px;
6 padding: 10px 0;
7 -moz-border-radius: 4px;
8 border-radius: 4px;
9}
10
11.messages a.closeMessage {
12 display: none;
13 float: right;
14 width: 16px;
15 height: 16px;
16 margin: -14px -8px 0 0;
17 background: url(../img/messages/close.png) no-repeat;
18}
19
20/*.messages:hover a.closeMessage { visibility:visible; }*/
21
22.messages p {
23 margin: 3px 0 3px 10px !important;
24 padding: 0 10px 0 23px !important;
25 font-size: 14px;
26 line-height: 16px;
27}
28
29.messages.error {
30 border: 1px solid #c42608;
31 color: #c00 !important;
32 background: #fff0ef;
33}
34
35.messages.error p {
36 color: #c00 !important;
37 background: url(../img/messages/cross.png) no-repeat 0 50%;
38}
39
40.messages.success {
41 border: 1px solid #6dc70c;
42 background: #e0fbcc;
43}
44
45.messages.success p {
46 color: #2b6301 !important;
47 background: url(../img/messages/tick.png) no-repeat 0 50%;
48}
49
50.messages.warning {
51 border: 1px solid #ebcd41;
52 color: #000;
53 background: #fffcd3;
54}
55
56.messages.warning p {
57 color: #5f4e01;
58 background: url(../img/messages/warning.png) no-repeat 0 50%;
59}
60
61.messages.information,
62.messages.info {
63 border: 1px solid #82aee7;
64 background: #dfebfb;
65}
66
67.messages.information p,
68.messages.info p {
69 color: #064393;
70 background: url(../img/messages/help.png) no-repeat 0 50%;
71}
72
73.messages.information a {
74 text-decoration: underline;
75} \ No newline at end of file
diff --git a/themes/courgette/css/print.css b/themes/courgette/css/print.css
deleted file mode 100755
index 9aefa779..00000000
--- a/themes/courgette/css/print.css
+++ /dev/null
@@ -1,48 +0,0 @@
1/* ### Layout ### */
2
3body {
4 font-family: Serif;
5 background-color: #fff;
6}
7
8@page {
9 margin: 1cm;
10}
11
12img {
13 max-width: 100% !important;
14}
15
16/* ### Content ### */
17
18/* Hide useless blocks */
19body > header,
20#links,
21#sort,
22body > footer,
23.top_link,
24div.tools,
25header div,
26.messages,
27.entrie + .results {
28 display: none !important;
29}
30
31article {
32 border: none !important;
33}
34
35/* Add URL after links */
36.vieworiginal a:after {
37 content: " (" attr(href) ")";
38}
39
40/* Add explanation after abbr */
41abbr[title]:after {
42 content: " (" attr(title) ")";
43}
44
45/* Change border on current pager item */
46.pagination span.current {
47 border-style: dashed;
48}
diff --git a/themes/courgette/css/style-default.css b/themes/courgette/css/style-default.css
deleted file mode 100755
index 3377a75b..00000000
--- a/themes/courgette/css/style-default.css
+++ /dev/null
@@ -1,59 +0,0 @@
1a.back span {
2 background-image: url('../img/default/left.png');
3}
4
5a.top span {
6 background-image: url('../img/default/top.png');
7}
8
9a.fav span,
10a.fav-off span:hover {
11 background-image: url('../img/default/star-on.png');
12}
13
14a.fav span:hover,
15a.fav-off span {
16 background-image: url('../img/default/star-off.png');
17}
18
19a.archive span,
20a.archive-off span:hover {
21 background-image: url('../img/default/checkmark-on.png');
22}
23
24a.archive span:hover,
25a.archive-off span {
26 background-image: url('../img/default/checkmark-off.png');
27}
28
29a.twitter span {
30 background-image: url('../img/default/twitter.png');
31}
32
33a.shaarli span {
34 background-image: url('../img/default/shaarli.png');
35}
36
37a.flattr span {
38 background-image: url('../img/default/flattr.png');
39}
40
41a.email span {
42 background-image: url('../img/default/envelop.png');
43}
44
45a.delete span {
46 background-image: url('../img/default/remove.png');
47}
48
49a.link span {
50 background-image: url('../img/default/link.png');
51}
52
53a.bad-display span {
54 background-image: url('../img/default/bad-display.png');
55}
56
57a.reading-time span {
58 background-image: url('../img/default/clock.png');
59}
diff --git a/themes/courgette/css/style.css b/themes/courgette/css/style.css
deleted file mode 100755
index edd09c78..00000000
--- a/themes/courgette/css/style.css
+++ /dev/null
@@ -1,684 +0,0 @@
1* {
2 -webkit-box-sizing: border-box;
3 -moz-box-sizing: border-box;
4 box-sizing: border-box;
5}
6
7body {
8 margin: 10px;
9 font-family: 'Roboto',Verdana,Geneva,sans-serif;
10 font-size: 16px;
11 color: #000;
12}
13
14h1 span {
15 color #FFF;
16 background: #000;
17 display: inline-block;
18 padding: 0.2em 1em 0.2em 1.2em;
19 font-size: 0.7em;
20 position: relative;
21 top: -1em;
22 left: -1em;
23}
24
25h1 a {
26 color: #FFF;
27 text-decoration: none;
28}
29
30#menu {
31 font-family: 'fontello';
32 position:fixed;
33 z-index: 11;
34 top: 0.7em;
35 right: 0.5em;
36 border:0;
37 font-size: 2em;
38 background: #000;
39 color:#FFF;
40 height: 58px;
41 width: 58px;
42 line-height:58px;
43 border-radius:120px;
44}
45
46#menu:hover, #menu:focus {
47 background: #FFF;
48 color:#000;
49 cursor: pointer;
50}
51
52#menu span {
53 position: absolute;
54 top: -99999px;
55}
56
57#menuContainer ul, #article_toolbar ul {
58 position:fixed;
59 top: 0;
60 left:0;
61 width: 100%;
62 padding: 0;
63 margin: 0;
64 text-align:center;
65 height:80px;
66}
67
68/*Inspired by http://tympanus.net/Tutorials/AnimatedBorderMenus/index.html */
69
70#menuContainer, #article_toolbar {
71 position: fixed;
72 top: 0;
73 left:0;
74 width: 100%;
75 height: 0;
76 overflow: hidden;
77 border-width:0;
78 border-style: solid;
79 border-color:#000;
80 background-color: transparent;
81 -webkit-transition: border-width 0.3s, background-color 0.3s, height 0s 0.3s;
82 -moz-transition: border-width 0.3s, background-color 0.3s, height 0s 0.3s;
83 transition: border-width 0.3s, background-color 0.3s, height 0s 0.3s;
84}
85
86#article_toolbar ul {
87 padding: 1.7em;
88}
89
90#menuContainer.open, #article_toolbar.open {
91 border-width:80px;
92 height: 100%;
93 background: rgba(0,0,0,0.5);
94 -webkit-transition: border-width 0.3s, background-color 0.3s;
95 -moz-transition: border-width 0.3s, background-color 0.3s;
96 transition: border-width 0.3s, background-color 0.3s;
97 z-index: 1;
98}
99
100#links li, #article_toolbar li {
101 list-style: none;
102 display: inline-block;
103}
104
105#links li a, #article_toolbar a {
106 color:#FFF;
107 display: block;
108 position:relative;
109 top: -200px;
110 -webkit-transition: top 0.3s ease;
111 -moz-transition: top 0.3s ease;
112 transition: top 0.3s ease;
113 padding:1.85em 1em;
114}
115
116#links li a {
117 text-decoration:none;
118 text-transform:uppercase;
119}
120
121#links li a:hover, #links li a:focus {
122 background: #FFF;
123 color:#000;
124}
125
126#menuContainer.open li a, #article_toolbar.open a {
127 top: 0;
128 -webkit-transition: top 0.3s ease;
129 -moz-transition: top 0.3s ease;
130 transition: top 0.3s ease;
131 -webkit-transition-delay:0.25ms;
132 -moz-transition-delay:0.25ms;
133 transition-delay:0.25ms;
134}
135
136#menuContainer.open li:nth-child(2) a {
137 -webkit-transition-delay:0.50ms;
138 -moz-transition-delay:0.50ms;
139 transition-delay:0.50ms;
140}
141
142#menuContainer.open li:nth-child(3) a {
143 -webkit-transition-delay:1ms;
144 -moz-transition-delay:1ms;
145 transition-delay:1ms;
146}
147
148#menuContainer.open li:nth-child(4) a {
149 -webkit-transition-delay:1.25ms;
150 -moz-transition-delay:1.25ms;
151 transition-delay:1.25ms;
152}
153
154#menuContainer.open li:nth-child(5) a {
155 -webkit-transition-delay:1.55ms;
156 -moz-transition-delay:1.55ms;
157 transition-delay:1.55ms;
158}
159
160#article_toolbar li:nth-child(2) { display: none; }
161
162#menu:before {
163 content: "\e801";
164 display: block;
165 text-indent: 0;
166}
167
168body > header {
169 position: fixed;
170 top: 0;
171 left: 1em;
172 z-index: 10;
173}
174
175#main {
176 padding:6em;
177}
178
179/* ==========================================================================
180 entrie
181 ========================================================================== */
182
183.entrie, #article {
184 width: 45em;
185 margin: auto;
186 position:relative;
187 padding: 0 0 1em 0;
188 margin-bottom: 1.5em;
189}
190
191#article a {
192 text-decoration: underline;
193 color:#000;
194}
195
196#article a:hover, #article a:focus {
197 text-decoration: none;
198}
199
200.entrie:after {
201 content:"";
202 position: absolute;
203 width: 100%;
204 height: 4px;
205 background: #000;
206 bottom:0;
207 left: -1em;
208}
209
210.entrie p {
211 padding:0 0 0 1.5em;
212}
213
214.entrie:before {
215 content:'';
216 position: absolute;
217 top: 0;
218 left: -1em;
219 width: 4px;
220 height: 100%;
221 background: #000;
222}
223
224.entrie h2:after {
225 content:"";
226 display: block;
227 width: 0;
228 height: 0;
229 border-color: #000;
230 border-width:7px;
231 border-color:transparent transparent transparent #000;
232 border-style: solid;
233 position: absolute;
234 top: 0.8em;
235 right: -0.58em;
236}
237
238.entrie h2 {
239 margin:0;
240 display: inline-block;
241 position: relative;
242 max-width: 78%;
243}
244
245.entrie h2 a {
246 color:#000;
247 text-decoration:none;
248 display: block;
249 background: #000;
250 padding: 0.4em 1em;
251 color:#FFF;
252 margin-left: -0.5em;
253 -webkit-transition: all 0.3s ease-out;
254 -moz-transition: all 0.3s ease-out;
255 transition: all 0.3s ease-out;
256}
257
258.entrie h2 a:hover, .entrie h2 a:focus {
259 padding:0.4em 1em 0.4em 2em;
260}
261
262ul {
263 padding:0;
264 margin:0;
265}
266
267ul li {
268 list-style: none;
269}
270
271.tools {
272 display: inline-block;
273 margin-left: 1em;
274 vertical-align: top;
275 padding-top: 1em;
276}
277
278.tools a span {
279 position:absolute;
280 top: -99999px;
281}
282
283.tools li {
284 display: inline-block;
285}
286
287.tools a {
288 display: block;
289 color:#FFF;
290 background: #000;
291 text-decoration:none;
292 height: 1.5em;
293 width: 1.5em;
294 text-align: center;
295 line-height:1.5em;
296 border-radius: 90px;
297}
298
299.tools a:hover, .tools a:focus {
300 background: #FFF;
301 color:#000;
302}
303
304.tools a:before { display: block; font-family: 'icomoon'; }
305
306
307.fav-off:before, .fav:before { content: '\e805'; } /* '' */
308.archive-off:before, .archive:before { content: '\e804'; } /* '' */
309.tools .archive, .tools .fav {
310 background: #FFF;
311 color:#000;
312}
313.link:before { content: '\e801'; } /* '' */
314.delete:before { content: '\e80c'; } /* '' */
315.reading-time:before { content: '\e803'; } /* '' */
316
317#article_toolbar a:before {
318 display: block;
319 font-family: 'icomoon';
320}
321
322#article_toolbar a {
323 display: block;
324 color:#000;
325 background: #FFF;
326 text-decoration:none;
327 height: 1.5em;
328 width: 1.5em;
329 text-align: center;
330 line-height:1.5em;
331 border-radius: 90px;
332 padding: 0;
333}
334
335#article_toolbar a:hover, #article_toolbar a:focus {
336 background: #000;
337 color:#FFF;
338}
339
340#article_toolbar span {
341 position: absolute;
342 top: -99999px;
343}
344
345.email:before { content: '\e80a'; } /* '' */
346.icon-check:before { content: '\e804'; } /* '' */
347.back:before { content: '\e806'; } /* '' */
348.flattr:before { content: '\e800'; } /* '' */
349.bad-display:before { content: '\e600'; } /* '' */
350.twitter:before { content: '\e807'; } /* '' */
351
352#article_toolbar .flattrli {
353 display: none;
354}
355
356#article_toolbar li {
357 margin: 0 0 0 1em;
358}
359
360
361footer {
362 position: fixed;
363 bottom: 0;
364 width: 100%;
365 padding: 0 2%;
366 left: 0;
367 text-align:right;
368 font-size: 0.8em;
369 font-style: italic;
370 background: rgba(255,255,255,0.5);
371}
372
373footer a {
374 color:#000;
375}
376
377footer a:hover,footer a:focus {
378 text-decoration: none;
379}
380
381footer p:first-child {
382 float:left;
383}
384
385#loginForm fieldset {
386 border:5px solid #000;
387 padding: 1.5em;
388}
389
390fieldset {
391 border:0;
392 padding: 0;
393}
394
395#loginForm {
396 max-width: 25em;
397 margin: auto;
398}
399
400#loginForm .row {
401 margin-bottom: 0.5em;
402}
403
404form h2 {
405 margin-top: 0;
406}
407
408form label {
409 width: 40%;
410 display: inline-block;
411}
412
413form input[type="text"], form input[type="password"], form input[type='url'], form select {
414 border:1px solid #000;
415 padding:0.5em 1em;
416}
417
418@media screen and (-webkit-min-device-pixel-ratio:0){
419 form select{
420 -webkit-appearance: none;
421 background: url(../img/bg-select.png) no-repeat right center;
422 padding-right: 2.2em;
423 border-radius: 0;
424 }
425}
426
427form button, form input[type="submit"] {
428 background: #000;
429 color:#FFF;
430 border:0;
431 font-size:1em;
432 padding:0.5em 1em;
433 margin-top: 1em;
434 cursor: pointer;
435}
436
437form button:hover, form button:focus, form input[type="submit"]:hover, form input[type="submit"]:focus {
438 background: #FFF;
439 color: #000;
440}
441
442/* ==========================================================================
443 Config
444 ========================================================================== */
445
446#config {
447 max-width: 60%;
448 margin: auto;
449}
450
451#config a {
452 background: #000;
453 text-decoration: none;
454 color:#FFF;
455 padding: 0.2em 1em;
456}
457
458#config .special {
459 background: none;
460 padding:0;
461 color: #000;
462}
463
464#config a:hover, #config a:focus {
465 background: #FFF;
466 color:#000;
467}
468
469#config li {
470 margin-bottom: 1em;
471}
472
473#plainurl {
474 font-size: 1em;
475}
476
477#config label {
478 width: 20%;
479}
480
481.results {
482 max-width: 62.5%;
483 font-style:italic;
484 margin: 1em auto 2.5em;
485}
486
487#sort {
488 max-width: 62.5%;
489 margin: 0 auto -2.5em;
490 text-align: right;
491 border-bottom:1px dotted #000;
492}
493
494#sort li {
495 display: inline-block;
496 vertical-align: top;
497 position: relative;
498 top: -0.1em;
499 margin-left: 1em;
500}
501
502#sort li img {
503 display: none;
504}
505
506#sort a {
507 display: inline-block;
508 font-family: 'fontello';
509 color:#000;
510 text-decoration: none;
511}
512
513#sort a:hover, #sort a:focus {
514 text-decoration: underline;
515}
516
517#sort a:before {
518 display: block;
519}
520
521#sort li a:first-child:before {
522 content: '\e809';
523}
524
525#sort li a:first-child + a:before {
526 content: '\e80b';
527}
528
529@media screen and (max-width: 860px) {
530 .entrie, #article {
531 width: 30em;
532 }
533}
534
535@media screen and (max-width: 650px) {
536 #menuContainer ul, #article_toolbar ul {
537 width: 120px;
538 height: 100%;
539 }
540
541 body > header {
542 position: static;
543 }
544
545 #main {
546 padding: 0 0.5em 6em;
547 }
548
549 #menu {
550 display: none;
551 }
552
553 #main:before {
554 content:none;
555 }
556
557 #menuContainer, #article_toolbar, #menuContainer ul, #article_toolbar ul {
558 position: static;
559 width: 100%;
560 height: auto;
561 }
562
563 #links li a, #article_toolbar a {
564 position: static;
565 color: #000;
566 }
567
568 #links li a {
569 padding: 1em;
570 min-width: 120px;
571 text-align: left;
572 }
573
574 #article_toolbar li {
575 margin-bottom: 1em;
576 margin-left: 0.5em;
577 }
578
579}
580
581@media screen and (max-width: 500px) {
582 .entrie, #article {
583 width: 17em;
584 }
585 .entrie h2 {
586 width: 100%;
587 max-width: none;
588 }
589 .entrie h2 a:hover, .entrie h2 a:focus {
590 padding-left: 1em;
591 background: #FFF;
592 color: #000;
593 }
594 .entrie h2:after {
595 content:none;
596 }
597
598 .messages {
599 width: 100%!important;
600 }
601
602 #sort {
603 margin: 3em auto 0;
604 max-width: none;
605 text-align: center;
606 }
607 #config {
608 margin: 7em auto 0;
609 max-width: none;
610 }
611 #config label { width: 100%; }
612 .results {
613 max-width: none;
614 margin-bottom: 1em;
615 }
616
617 footer p:first-child {
618 float: none;
619 }
620 footer {
621 position:static;
622 }
623}
624
625
626.w600p {
627 width: 70%;
628 margin: auto;
629}
630
631.tagForm {
632 margin: 1em 0;
633}
634
635.tagForm p {
636 font-style: italic;
637 margin: 0;
638 font-size: 0.8em;
639 color: #999;
640}
641
642.tagForm label {
643 width: auto;
644 margin-right: 1em;
645}
646
647.back:before {
648 font-family: "icomoon";
649}
650
651.back.link {
652 color: #000;
653 text-decoration: none;
654}
655
656.back.link:before {
657 margin-right: 0.5em;
658}
659
660.tag-list a {
661 color: #000;
662 text-decoration: none;
663}
664
665.tag-list li {
666 display: inline-block;
667 margin-right: 1em;
668}
669
670a:hover {
671 text-decoration: underline;
672}
673
674.tag {
675 background: #000;
676 color: #FFF;
677 padding: 0.5em 1em;
678 text-decoration: none;
679}
680
681.tag:hover, .tag:focus {
682 background: #FFF;
683 color: #000;
684} \ No newline at end of file
diff --git a/themes/courgette/edit-tags.twig b/themes/courgette/edit-tags.twig
deleted file mode 100644
index bcddbe46..00000000
--- a/themes/courgette/edit-tags.twig
+++ /dev/null
@@ -1,20 +0,0 @@
1{% extends "layout.twig" %}
2{% block title %}edit tags{% endblock %}
3{% block menu %}
4{% include '_menu.twig' %}
5{% endblock %}
6{% block content %}
7{% if tags is empty %}
8<em>no tags</em>
9{% endif %}
10<ul class='tag-list'>
11{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
12</ul>
13<form method="post" action="./?action=add_tag" class="tagForm">
14 <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" />
15 <p>{% trans "You can enter multiple tags, separated by commas." %}</p>
16 <input type="hidden" name="entry_id" value="{{ entry_id }}" />
17 <input type="submit" value="Tag" />
18</form>
19<a class="back link" href="./?view=view&id={{ entry_id }}">{% trans "return to article" %}</a>
20{% endblock %}
diff --git a/themes/courgette/error.twig b/themes/courgette/error.twig
deleted file mode 100755
index 4d4db1f3..00000000
--- a/themes/courgette/error.twig
+++ /dev/null
@@ -1,6 +0,0 @@
1{% extends "layout.twig" %}
2{% block title %}{% trans "plop" %}{% endblock %}
3{% block content %}
4 {{ msg|raw }}
5 <p>Don't forget <a href="http://doc.wallabag.org">the documentation</a>.</p>
6{% endblock %} \ No newline at end of file
diff --git a/themes/courgette/font/icomoon.eot b/themes/courgette/font/icomoon.eot
deleted file mode 100755
index ff2d109d..00000000
--- a/themes/courgette/font/icomoon.eot
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/font/icomoon.svg b/themes/courgette/font/icomoon.svg
deleted file mode 100755
index 8968452d..00000000
--- a/themes/courgette/font/icomoon.svg
+++ /dev/null
@@ -1,23 +0,0 @@
1<?xml version="1.0" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3<svg xmlns="http://www.w3.org/2000/svg">
4<metadata>Generated by IcoMoon</metadata>
5<defs>
6<font id="icomoon" horiz-adv-x="512">
7<font-face units-per-em="512" ascent="480" descent="-32" />
8<missing-glyph horiz-adv-x="512" />
9<glyph unicode="&#x20;" d="" horiz-adv-x="256" />
10<glyph unicode="&#xe600;" d="M256 389.333c-94.272 0-170.667-76.416-170.667-170.666s76.394-170.667 170.667-170.667 170.667 76.416 170.667 170.667-76.394 170.666-170.667 170.666zM335.082 169.749c8.341-8.341 8.341-21.824 0-30.166-4.16-4.16-9.622-6.25-15.082-6.25s-10.923 2.091-15.082 6.25l-48.918 48.918-48.917-48.918c-4.16-4.16-9.621-6.25-15.083-6.25s-10.923 2.091-15.083 6.25c-8.341 8.341-8.341 21.824 0 30.166l48.917 48.918-48.917 48.917c-8.341 8.341-8.341 21.824 0 30.166s21.824 8.341 30.166 0l48.917-48.917 48.918 48.917c8.341 8.341 21.824 8.341 30.166 0s8.341-21.824 0-30.166l-48.918-48.917 48.918-48.918z" />
11<glyph unicode="&#xe800;" d="M0 25.856v263.168q0 91.648 43.52 142.336t132.608 50.688h280.576q-2.56-2.56-26.624-27.136t-51.2-51.712-55.808-55.808-48.64-47.616-21.504-18.944q-7.68 0-7.68 8.192v79.872h-24.576q-30.208 0-48.128-3.072t-32.256-13.312-19.968-29.184-6.144-49.152v-134.144zM34.304-34.048q2.56 2.56 27.136 27.136t51.2 51.712 55.808 56.32 48.64 47.616 20.992 18.432q7.68 0 7.68-8.192v-79.872h24.576q59.392 0 82.944 18.432t23.040 76.288v134.144l114.688 114.176v-263.168q0-91.648-43.008-142.336t-133.12-50.688h-280.576z" horiz-adv-x="491" />
12<glyph unicode="&#xe801;" d="M150.528 104.192q7.168 7.168 17.408 7.168t18.432-7.168q16.384-17.408 0-35.84l-21.504-20.48q-28.672-28.672-67.584-28.672-39.936 0-68.608 28.672t-28.672 67.584q0 39.936 28.672 68.608l75.776 75.776q35.84 34.816 73.728 39.424t65.536-22.016q8.192-8.192 8.192-18.432t-8.192-18.432q-18.432-16.384-35.84 0-25.6 24.576-67.584-17.408l-75.776-74.752q-13.312-13.312-13.312-32.768t13.312-31.744q13.312-13.312 32.256-13.312t32.256 13.312zM380.928 398.080q28.672-28.672 28.672-67.584 0-39.936-28.672-68.608l-80.896-80.896q-37.888-36.864-76.8-36.864-31.744 0-57.344 25.6-7.168 7.168-7.168 17.408t7.168 18.432q7.168 7.168 17.92 7.168t17.92-7.168q25.6-24.576 62.464 12.288l80.896 79.872q14.336 14.336 14.336 32.768 0 19.456-14.336 31.744-12.288 13.312-28.672 15.872t-30.72-10.752l-25.6-25.6q-8.192-7.168-18.432-7.168t-17.408 7.168q-17.408 17.408 0 35.84l25.6 25.6q27.648 27.648 65.024 26.112t66.048-31.232z" horiz-adv-x="410" />
13<glyph unicode="&#xe802;" d="M438.784 96v-36.352q0-7.68-5.12-12.8t-13.312-5.632h-401.92q-7.68 0-12.8 5.632t-5.632 12.8v36.352q0 7.68 5.632 12.8t12.8 5.632h401.92q7.68 0 13.312-5.632t5.12-12.8zM438.784 242.432v-36.864q0-7.168-5.12-12.8t-13.312-5.12h-401.92q-7.68 0-12.8 5.12t-5.632 12.8v36.864q0 7.168 5.632 12.8t12.8 5.12h401.92q7.68 0 13.312-5.12t5.12-12.8zM438.784 388.352v-36.352q0-7.68-5.12-12.8t-13.312-5.632h-401.92q-7.68 0-12.8 5.632t-5.632 12.8v36.352q0 7.68 5.632 13.312t12.8 5.12h401.92q7.68 0 13.312-5.12t5.12-13.312z" horiz-adv-x="439" />
14<glyph unicode="&#xe803;" d="M235.52 459.52q97.28 0 166.4-69.12t69.12-166.4-69.12-166.4-166.4-69.12-166.4 69.12-69.12 166.4 69.12 166.4 166.4 69.12zM235.52 39.68q76.8 0 130.56 54.272t53.76 130.048q0 76.8-53.76 130.56t-130.56 53.76q-75.776 0-130.048-53.76t-54.272-130.56q0-75.776 54.272-130.048t130.048-54.272zM253.952 357.12v-124.928l76.8-76.8-25.6-25.6-87.040 87.040v140.288h35.84z" horiz-adv-x="471" />
15<glyph unicode="&#xe804;" d="M127.488 44.8q-17.408 0-28.672 14.336l-92.16 120.832q-8.192 12.288-6.144 26.624t13.312 23.552 26.112 7.168 24.064-14.336l60.416-78.848 151.552 242.688q8.192 12.288 22.016 15.36t27.136-4.096q12.288-8.192 15.36-22.016t-4.096-27.136l-179.2-286.72q-10.24-16.384-28.672-16.384z" horiz-adv-x="342" />
16<glyph unicode="&#xe805;" d="M225.28 449.28l61.44-172.032h163.84l-134.144-100.352 48.128-178.176-139.264 106.496-139.264-106.496 48.128 178.176-134.144 100.352h163.84z" horiz-adv-x="451" />
17<glyph unicode="&#xe806;" d="M460.8 49.92q-44.032 77.824-106.496 100.864t-168.96 23.040v-111.616l-185.344 171.008 185.344 164.864v-98.304q46.080 0 86.016-13.824t67.072-35.84 49.152-48.64 35.328-53.248 22.528-48.64 12.288-35.328z" horiz-adv-x="461" />
18<glyph unicode="&#xe807;" d="M471.040 370.432q-18.432-27.648-48.128-50.176v-12.288q0-66.56-30.72-128t-95.232-103.936-148.48-42.496q-81.92 0-148.48 43.008 7.168-1.024 23.552-1.024 67.584 0 119.808 40.96-31.744 1.024-56.32 19.456t-33.792 48.128q5.12-2.048 17.408-2.048 13.312 0 25.6 3.072-33.792 7.168-55.296 33.792t-21.504 61.44v1.024q18.432-10.24 43.008-12.288-43.008 29.696-43.008 80.896 0 24.576 13.312 48.128 78.848-96.256 199.68-100.352-3.072 9.216-3.072 21.504 0 39.936 28.16 68.096t69.12 28.16q41.984 0 69.632-29.696 30.72 6.144 61.44 22.528-10.24-33.792-41.984-53.248 28.672 4.096 55.296 15.36z" horiz-adv-x="471" />
19<glyph unicode="&#xe809;" d="M0 314.112l75.776 75.776 180.224-179.712 180.224 179.712 75.776-75.776-256-256-75.776 75.776z" />
20<glyph unicode="&#xe80a;" d="M475.648 50.432v219.136q-9.216-10.24-19.968-18.944-76.288-58.368-121.856-96.256-14.336-12.288-23.552-19.456t-24.576-13.824-29.184-6.656h-1.024q-13.312 0-29.184 6.656t-24.576 13.824-23.552 19.456q-45.056 37.888-121.856 96.256-10.752 8.704-19.968 18.944v-219.136q0-4.096 3.072-6.656t6.144-2.56h420.864q3.584 0 6.144 2.56t3.072 6.656zM475.648 350.464v7.168t-0.512 3.584-0.512 3.584-1.536 2.56-2.56 2.048-4.096 1.024h-420.864q-3.584 0-6.144-3.072t-3.072-6.144q0-48.128 41.984-81.408 55.296-43.52 114.688-90.624 2.048-1.024 10.24-8.192t12.8-10.752 12.8-9.216 14.336-7.68 12.288-2.56h1.024q5.632 0 12.288 2.56t14.336 7.68 12.8 9.216 12.8 10.752 10.24 8.192q59.392 47.104 114.688 90.624 15.36 12.288 28.672 33.28t13.312 37.376zM512 361.216v-310.784q0-18.944-13.312-32.256t-32.256-13.824h-420.864q-18.432 0-32.256 13.824t-13.312 32.256v310.784q0 18.944 13.312 32.256t32.256 13.312h420.864q18.944 0 32.256-13.312t13.312-32.256z" />
21<glyph unicode="&#xe80b;" d="M0 133.888l256 256 256-256-75.776-75.776-180.224 179.712-180.224-179.712z" />
22<glyph unicode="&#xe80c;" d="M25.6 279.296q62.464-35.84 168.96-35.84t168.96 35.84l-27.648-248.832q-1.024-7.168-17.92-18.432t-51.2-22.016-72.192-10.752-71.68 10.752-51.2 22.016-18.432 18.432zM275.456 432.896q48.128-9.216 80.896-28.16t32.768-36.352v-5.12q0-29.696-57.344-50.688t-137.216-20.992-137.216 20.992-57.344 50.688v5.12q0 17.408 32.768 36.352t80.896 28.16l21.504 24.576q11.264 13.312 35.84 13.312h47.104q26.624 0 35.84-13.312zM247.808 375.552h43.008q-47.104 56.32-53.248 64.512-7.168 8.192-16.384 8.192h-52.224q-11.264 0-16.384-8.192l-54.272-64.512h43.008l32.768 33.792h41.984z" horiz-adv-x="389" />
23</font></defs></svg> \ No newline at end of file
diff --git a/themes/courgette/font/icomoon.ttf b/themes/courgette/font/icomoon.ttf
deleted file mode 100755
index 52463a87..00000000
--- a/themes/courgette/font/icomoon.ttf
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/font/icomoon.woff b/themes/courgette/font/icomoon.woff
deleted file mode 100755
index ddb96f29..00000000
--- a/themes/courgette/font/icomoon.woff
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/home.twig b/themes/courgette/home.twig
deleted file mode 100755
index 811298eb..00000000
--- a/themes/courgette/home.twig
+++ /dev/null
@@ -1,62 +0,0 @@
1{% extends "layout.twig" %}
2{% block title %}
3{% if view == 'fav' %}
4{% trans "favoris" %}
5{% elseif view == 'archive' %}
6{% trans "archive" %}
7{% else %}
8{% trans "unread" %}
9{% endif %}
10{% endblock %}
11{% block menu %}
12{% include '_menu.twig' %}
13{% endblock %}
14{% block precontent %}
15 {% if entries|length > 1 %}
16 <ul id="sort">
17 <li><a href="./?sort=ia&amp;view={{ view }}&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 }}&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>
18 <li><a href="./?sort=ta&amp;view={{ view }}&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 }}&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>
19 </ul>
20 {% endif %}
21{% endblock %}
22{% block content %}
23 {% if entries is empty %}
24 <div class="messages warning"><p>{% trans "No link available here!" %}</p></div>
25 {% else %}
26 {% block pager %}
27 {% if nb_results > 1 %}
28 <div class="results">
29 <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div>
30 {{ page_links | raw }}
31 </div>
32 {% elseif nb_results == 1 %}
33 {% if search_term is defined %}
34 <div class="results">
35 <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div>
36 </div>
37 {% endif %}
38 {% endif %}
39 {% endblock %}
40 {% for entry in entries %}
41 <div id="entry-{{ entry.id|e }}" class="entrie">
42 <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
43 <ul class="tools">
44 <li><a title="{% trans "toggle mark as read" %}" class="tool {% 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>
45 <li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&amp;id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
46 <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&amp;id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
47 <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li>
48 <li><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{{ entry.content| getReadingTime }} min</span></a></li>
49 </ul>
50 <p>{{ entry.content|striptags|slice(0, 300) }}...</p>
51 </div>
52 {% endfor %}
53
54 {{ block('pager') }}
55
56 {% 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>
57 {% 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>
58 {% 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 %}
59
60 {% endif %}
61
62{% endblock %} \ No newline at end of file
diff --git a/themes/courgette/img/apple-touch-icon-144x144-precomposed.png b/themes/courgette/img/apple-touch-icon-144x144-precomposed.png
deleted file mode 100755
index 557b479c..00000000
--- a/themes/courgette/img/apple-touch-icon-144x144-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/apple-touch-icon-72x72-precomposed.png b/themes/courgette/img/apple-touch-icon-72x72-precomposed.png
deleted file mode 100755
index e167d3a4..00000000
--- a/themes/courgette/img/apple-touch-icon-72x72-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/apple-touch-icon.png b/themes/courgette/img/apple-touch-icon.png
deleted file mode 100755
index 4d222fba..00000000
--- a/themes/courgette/img/apple-touch-icon.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/bg-select.png b/themes/courgette/img/bg-select.png
deleted file mode 100644
index 3a77d0eb..00000000
--- a/themes/courgette/img/bg-select.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/backtotop.png b/themes/courgette/img/default/backtotop.png
deleted file mode 100755
index 051238ef..00000000
--- a/themes/courgette/img/default/backtotop.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/bad-display.png b/themes/courgette/img/default/bad-display.png
deleted file mode 100755
index 6866799f..00000000
--- a/themes/courgette/img/default/bad-display.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/checkmark-off.png b/themes/courgette/img/default/checkmark-off.png
deleted file mode 100755
index 3db5a06d..00000000
--- a/themes/courgette/img/default/checkmark-off.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/checkmark-on.png b/themes/courgette/img/default/checkmark-on.png
deleted file mode 100755
index cd3abb2c..00000000
--- a/themes/courgette/img/default/checkmark-on.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/clock.png b/themes/courgette/img/default/clock.png
deleted file mode 100755
index 6164e92b..00000000
--- a/themes/courgette/img/default/clock.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/down.png b/themes/courgette/img/default/down.png
deleted file mode 100755
index b9d536a7..00000000
--- a/themes/courgette/img/default/down.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/envelop.png b/themes/courgette/img/default/envelop.png
deleted file mode 100755
index 6be1c886..00000000
--- a/themes/courgette/img/default/envelop.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/flattr.png b/themes/courgette/img/default/flattr.png
deleted file mode 100755
index 0404aaea..00000000
--- a/themes/courgette/img/default/flattr.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/left.png b/themes/courgette/img/default/left.png
deleted file mode 100755
index a0a53631..00000000
--- a/themes/courgette/img/default/left.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/link.png b/themes/courgette/img/default/link.png
deleted file mode 100755
index db62819d..00000000
--- a/themes/courgette/img/default/link.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/remove.png b/themes/courgette/img/default/remove.png
deleted file mode 100755
index f8ad56a3..00000000
--- a/themes/courgette/img/default/remove.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/shaarli.png b/themes/courgette/img/default/shaarli.png
deleted file mode 100755
index 1eb30f60..00000000
--- a/themes/courgette/img/default/shaarli.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/star-off.png b/themes/courgette/img/default/star-off.png
deleted file mode 100755
index 6a0133a7..00000000
--- a/themes/courgette/img/default/star-off.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/star-on.png b/themes/courgette/img/default/star-on.png
deleted file mode 100755
index a9f96eaa..00000000
--- a/themes/courgette/img/default/star-on.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/top.png b/themes/courgette/img/default/top.png
deleted file mode 100755
index 954a8c0a..00000000
--- a/themes/courgette/img/default/top.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/default/twitter.png b/themes/courgette/img/default/twitter.png
deleted file mode 100755
index cfcfe419..00000000
--- a/themes/courgette/img/default/twitter.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/favicon.ico b/themes/courgette/img/favicon.ico
deleted file mode 100755
index 0e9ff779..00000000
--- a/themes/courgette/img/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/logo.png b/themes/courgette/img/logo.png
deleted file mode 100755
index 5305c77d..00000000
--- a/themes/courgette/img/logo.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/logo.svg b/themes/courgette/img/logo.svg
deleted file mode 100644
index 865da440..00000000
--- a/themes/courgette/img/logo.svg
+++ /dev/null
@@ -1,8 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="64" height="64">
3 <circle cx="32" cy="32" r="29.5" style="fill:#000" />
4 <path d="m 16,18 33,0 0,26 -16.5,6 -16.5,-6 z" fill="#fff" />
5 <rect width="9" height="2.5" x="17.5" y="24.5" fill="#000" />
6 <rect width="9" height="2.5" x="28" y="24.5" fill="#000" />
7 <rect width="9" height="2.5" x="38.5" y="24.5" fill="#000" />
8</svg>
diff --git a/themes/courgette/img/messages/close.png b/themes/courgette/img/messages/close.png
deleted file mode 100755
index 731aa018..00000000
--- a/themes/courgette/img/messages/close.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/messages/cross.png b/themes/courgette/img/messages/cross.png
deleted file mode 100755
index 1514d51a..00000000
--- a/themes/courgette/img/messages/cross.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/messages/help.png b/themes/courgette/img/messages/help.png
deleted file mode 100755
index 5c870176..00000000
--- a/themes/courgette/img/messages/help.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/messages/tick.png b/themes/courgette/img/messages/tick.png
deleted file mode 100755
index a9925a06..00000000
--- a/themes/courgette/img/messages/tick.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/img/messages/warning.png b/themes/courgette/img/messages/warning.png
deleted file mode 100755
index 628cf2da..00000000
--- a/themes/courgette/img/messages/warning.png
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/js/init.js b/themes/courgette/js/init.js
deleted file mode 100755
index dca83906..00000000
--- a/themes/courgette/js/init.js
+++ /dev/null
@@ -1,6 +0,0 @@
1$.fn.ready(function () {
2 $('#menu').on('click', function(){
3 $('body').toggleClass('menuOpen');
4 $('#menuContainer, #article_toolbar').toggleClass('open');
5 });
6}) \ No newline at end of file
diff --git a/themes/courgette/layout.twig b/themes/courgette/layout.twig
deleted file mode 100755
index 57c2cc98..00000000
--- a/themes/courgette/layout.twig
+++ /dev/null
@@ -1,32 +0,0 @@
1<!DOCTYPE html>
2<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="{{ lang }}"><![endif]-->
3<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="{{ lang }}"><![endif]-->
4<!--[if IE 8]><html class="no-js ie8 ie678" lang="{{ lang }}"><![endif]-->
5<!--[if gt IE 8]><html class="no-js" lang="{{ lang }}"><![endif]-->
6<html lang="{{ lang }}">
7 <head>
8 <meta name="viewport" content="initial-scale=1.0">
9 <meta charset="utf-8">
10 <!--[if IE]>
11 <meta http-equiv="X-UA-Compatible" content="IE=10">
12 <![endif]-->
13 <title>{% block title %}{% endblock %} - wallabag</title>
14{% include '_head.twig' %}
15{% include '_bookmarklet.twig' %}
16 </head>
17 <body>
18 {% include '_top.twig' %}
19 <div id="main">
20 <button id="menu"><span>Menu</span></button>
21 {% block menu %}{% endblock %}
22 {% block precontent %}{% endblock %}
23 {% block messages %}
24 {% include '_messages.twig' %}
25 {% endblock %}
26 <div id="content" class="w600p center">
27 {% block content %}{% endblock %}
28 </div>
29 </div>
30{% include '_footer.twig' %}
31 </body>
32</html> \ No newline at end of file
diff --git a/themes/courgette/login.twig b/themes/courgette/login.twig
deleted file mode 100755
index 1fec0fc9..00000000
--- a/themes/courgette/login.twig
+++ /dev/null
@@ -1,32 +0,0 @@
1{% extends "layout.twig" %}
2
3{% block title %}{% trans "login to your wallabag" %}{% endblock %}
4{% block content %}
5 <form method="post" action="?login" name="loginform" id="loginForm">
6 <fieldset class="w500p center">
7 <h2 class="mbs txtcenter">{% trans "login to your wallabag" %}</h2>
8 {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %}
9 <div class="row">
10 <label class="col w150p" for="login">{% trans "Login" %}</label>
11 <input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
12 </div>
13
14 <div class="row">
15 <label class="col w150p" for="password">{% trans "Password" %}</label>
16 <input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
17 </div>
18 <div class="row">
19 <label class="col w150p" for="longlastingsession">{% trans "Stay signed in" %}</label>
20 <div class="col">
21 <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3">
22 <small class="inbl">{% trans "(Do not check on public computers)" %}</small>
23 </div>
24 </div>
25 <div class="row mts txtcenter">
26 <button class="bouton" type="submit" tabindex="4">{% trans "Login" %}</button>
27 </div>
28 </fieldset>
29 <input type="hidden" name="returnurl" value="{{ referer }}">
30 <input type="hidden" name="token" value="{{ token }}">
31 </form>
32{% endblock %} \ No newline at end of file
diff --git a/themes/courgette/screenshot.jpg b/themes/courgette/screenshot.jpg
deleted file mode 100755
index 44ee4b63..00000000
--- a/themes/courgette/screenshot.jpg
+++ /dev/null
Binary files differ
diff --git a/themes/courgette/tags.twig b/themes/courgette/tags.twig
deleted file mode 100755
index b11dce28..00000000
--- a/themes/courgette/tags.twig
+++ /dev/null
@@ -1,8 +0,0 @@
1{% extends "layout.twig" %}
2{% block title %}tags{% endblock %}
3{% block menu %}
4{% include '_menu.twig' %}
5{% endblock %}
6{% block content %}
7{% for tag in tags %}<a class="tag" href="./?view=tag&amp;id={{ tag.id }}">{{ tag.value }}</a> {% if token != '' %}<a href="?feed&amp;type=tag&amp;user_id={{ user_id }}&amp;tag_id={{ tag.id }}&amp;token={{ token }}" target="_blank"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/rss.png" /></a>{% endif %} {% endfor %}
8{% endblock %} \ No newline at end of file
diff --git a/themes/courgette/theme.ini b/themes/courgette/theme.ini
deleted file mode 100644
index 996d171f..00000000
--- a/themes/courgette/theme.ini
+++ /dev/null
@@ -1,3 +0,0 @@
1name = Courgette
2description = Responsive black and white theme especially adapted to smartphones.
3requirements[] = default
diff --git a/themes/default/_head.twig b/themes/default/_head.twig
index 8c939e30..277e3833 100755
--- a/themes/default/_head.twig
+++ b/themes/default/_head.twig
@@ -1,14 +1,36 @@
1 <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/default/img/favicon.ico" /> 1 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-152.png" sizes="152x152">
2 <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}themes/default/img/apple-touch-icon-144x144-precomposed.png"> 2 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-152.png" sizes="152x152">
3 <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}themes/default/img/apple-touch-icon-72x72-precomposed.png"> 3
4 <link rel="apple-touch-icon-precomposed" href="{{ poche_url }}themes/default/img/apple-touch-icon-precomposed.png"> 4 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-144.png" sizes="144x144">
5 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-144.png" sizes="144x144">
6
7 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-120.png" sizes="120x120">
8 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-120.png" sizes="120x120">
9
10 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-114.png" sizes="114x114">
11 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-114.png" sizes="114x114">
12
13 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-76.png" sizes="76x76">
14 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-76.png" sizes="76x76">
15
16 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-72.png" sizes="72x72">
17 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-72.png" sizes="72x72">
18
19 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-57.png" sizes="57x57">
20 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon-57.png" sizes="57x57">
21
22 <link rel="apple-touch-icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon.png">
23 <link rel="icon" type="image/png" href="{{ poche_url }}themes/_global/img/appicon/apple-touch-icon.png">
24
25 <link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}themes/_global/img/appicon/favicon.ico">
26
5 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/knacss.css" media="all"> 27 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/knacss.css" media="all">
6 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/style.css" media="all"> 28 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/style.css" media="all">
7 <link rel="stylesheet" href="{{ poche_url }}themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme"> 29 <link rel="stylesheet" href="{{ poche_url }}themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme">
8 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/messages.css" media="all"> 30 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/messages.css" media="all">
9 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/print.css" media="print"> 31 <link rel="stylesheet" href="{{ poche_url }}themes/default/css/print.css" media="print">
10 <script src="{{ poche_url }}themes/default/js/jquery-2.0.3.min.js"></script> 32 <script src="{{ poche_url }}themes/_global/js/jquery-2.0.3.min.js"></script>
11 <script src="{{ poche_url }}themes/default/js/autoClose.js"></script> 33 <script src="{{ poche_url }}themes/_global/js/autoClose.js"></script>
12 <script src="{{ poche_url }}themes/default/js/closeMessage.js"></script> 34 <script src="{{ poche_url }}themes/default/js/closeMessage.js"></script>
13 <script src="{{ poche_url }}themes/default/js/saveLink.js"></script> 35 <script src="{{ poche_url }}themes/_global/js/saveLink.js"></script>
14 <script src="{{ poche_url }}themes/default/js/popupForm.js"></script> \ No newline at end of file 36 <script src="{{ poche_url }}themes/_global/js/popupForm.js"></script>
diff --git a/themes/default/_highlight.twig b/themes/default/_highlight.twig
new file mode 100755
index 00000000..cdb7c6bf
--- /dev/null
+++ b/themes/default/_highlight.twig
@@ -0,0 +1,4 @@
1 {# include excelent highlight.js library for code highligting, see http://highlightjs.org/ #}
2<link rel="stylesheet" href="{{ poche_url }}themes/default/highlightjs/styles/github.css">
3<script src="{{ poche_url }}themes/default/highlightjs/highlight.pack.js"></script>
4<script>hljs.initHighlightingOnLoad();</script>
diff --git a/themes/default/_menu.twig b/themes/default/_menu.twig
index 9b9a6062..eedf84f1 100644
--- a/themes/default/_menu.twig
+++ b/themes/default/_menu.twig
@@ -6,6 +6,7 @@
6 <li><a href="javascript: void(null);" id="bagit">{% trans "save a link" %}</a><span id="bagit-arrow"></span></li> 6 <li><a href="javascript: void(null);" id="bagit">{% trans "save a link" %}</a><span id="bagit-arrow"></span></li>
7 <li><a href="javascript: void(null);" id="search">{% trans "search" %}</a><span id="search-arrow"></span></li> 7 <li><a href="javascript: void(null);" id="search">{% trans "search" %}</a><span id="search-arrow"></span></li>
8 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> 8 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
9 <li><a href="./?view=about" {% if view == 'about' %}class="current"{% endif %}>{% trans "about" %}</a></li>
9 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> 10 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
10 </ul> 11 </ul>
11 {% include '_pocheit-form.twig' %} 12 {% include '_pocheit-form.twig' %}
diff --git a/themes/default/_search-form.twig b/themes/default/_search-form.twig
index 33bea20d..0cf6097a 100755
--- a/themes/default/_search-form.twig
+++ b/themes/default/_search-form.twig
@@ -2,7 +2,7 @@
2<form method="get" action="index.php"> 2<form method="get" action="index.php">
3 <p> 3 <p>
4 <input type="hidden" name="view" value="search"></input> 4 <input type="hidden" name="view" value="search"></input>
5 <label>{% trans "Search" %}</label> : <input type="text" placeholder="{% trans "Enter your search here" %}" name="search" /> 5 <label>{% trans "Search" %}</label> : <input type="text" required placeholder="{% trans "Enter your search here" %}" name="search" id="searchfield" />
6 <input type="submit" value="{% trans "Search" %} !"></input> 6 <input type="submit" value="{% trans "Search" %} !"></input>
7 </p> 7 </p>
8</form> 8</form>
diff --git a/themes/default/_sorting.twig b/themes/default/_sorting.twig
index ce3d38bc..3ce9b949 100755
--- a/themes/default/_sorting.twig
+++ b/themes/default/_sorting.twig
@@ -1,6 +1,6 @@
1{% if entries|length > 1 %} 1{% if entries|length > 1 %}
2 <ul id="sort"> 2 <ul id="sort">
3 <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> 3 <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>
4 <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> 4 <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>
5 </ul> 5 </ul>
6{% endif %} 6{% endif %}
diff --git a/themes/default/about.twig b/themes/default/about.twig
new file mode 100755
index 00000000..5ca3217c
--- /dev/null
+++ b/themes/default/about.twig
@@ -0,0 +1,74 @@
1{% extends "layout.twig" %}
2
3{% block title %}{% trans "About wallabag" %}{% endblock %}
4{% block menu %}
5{% include '_menu.twig' %}
6{% endblock %}
7{% block content %}
8 <h2>{% trans "About wallabag" %}</h2>
9
10 <dl>
11 <dt>{% trans "Project website" %}</dt>
12 <dd><a href="http://www.wallabag.org">http://www.wallabag.org</a></dd>
13
14 <dt>{% trans "Main developer" %}</dt>
15 <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans "website" %}</a></dd>
16
17 <dt>{% trans "Contributors:" %}</dt>
18 <dd><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans "on Github" %}</a></dd>
19
20 <dt>{% trans "Bug reports" %}</dt>
21 <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>
22
23 <dt>{% trans "License" %}</dt>
24 <dd><a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dd>
25
26 <dt>{% trans "Version" %}</dt>
27 <dd>{{ constant('POCHE') }}</dd>
28 </dl>
29
30 <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>
31
32 <h2>{% trans "Helping wallabag" %}</h2>
33
34 <p>{% trans "wallabag is free and opensource. You can help us:" %}</p>
35
36 <dl>
37 <dt><a href="http://www.wallabag.org">{% trans "via Paypal" %}</a></dt>
38
39 <dt><a href="http://www.wallabag.org">{% trans "via Flattr" %}</a></dt>
40 </dl>
41
42 <h2>{% trans "Credits" %}</h2>
43 <dl>
44 <dt>PHP Readability</dt>
45 <dd><a href="https://bitbucket.org/fivefilters/php-readability">https://bitbucket.org/fivefilters/php-readability</a></dd>
46
47 <dt>Full Text RSS</dt>
48 <dd><a href="http://code.fivefilters.org/full-text-rss/src">http://code.fivefilters.org/full-text-rss/src</a></dd>
49
50 <dt>logo by Maylis Agniel</dt>
51 <dd><a href="https://github.com/wallabag/logo">https://github.com/wallabag/logo</a></dd>
52
53 <dt>icons</dt>
54 <dd><a href="http://icomoon.io">http://icomoon.io</a></dd>
55
56 <dt>PHP Simple HTML DOM Parser</dt>
57 <dd><a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></dd>
58
59 <dt>Session</dt>
60 <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>
61
62 <dt>Twig</dt>
63 <dd><a href="http://twig.sensiolabs.org">http://twig.sensiolabs.org</a></dd>
64
65 <dt>Flash messages</dt>
66 <dd><a href="https://github.com/plasticbrain/PHP-Flash-Messages">https://github.com/plasticbrain/PHP-Flash-Messages</a></dd>
67
68 <dt>Pagination</dt>
69 <dd><a href="https://github.com/daveismyname/pagination">https://github.com/daveismyname/pagination</a></dd>
70
71 <dt>PHPePub</dt>
72 <dd><a href="https://github.com/Grandt/PHPePub/">https://github.com/Grandt/PHPePub/</a></dd>
73 </dl>
74{% endblock %}
diff --git a/themes/default/config.twig b/themes/default/config.twig
index a65d2b2c..bac563cf 100755
--- a/themes/default/config.twig
+++ b/themes/default/config.twig
@@ -6,29 +6,29 @@
6{% endblock %} 6{% endblock %}
7{% block content %} 7{% block content %}
8 <h2>{% trans "Saving articles" %}</h2> 8 <h2>{% trans "Saving articles" %}</h2>
9 <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> 9 <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>
10 <p>
11 <form method="get" action="index.php">
12 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label><br>
13 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
14 <input type="submit" value="{% trans "bag it!" %}" />
15 </form>
16 </p>
17 <h3>Browser Plugins</h3>
10 <ul> 18 <ul>
11 <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" title="download the firefox extension">{% trans "download the extension" %}</a></li> 19 <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
12 <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> 20 <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
13 <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>
14 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li>
15 <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>
16 <li>
17 <form method="get" action="index.php">
18 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label>
19 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
20 <input type="submit" value="{% trans "bag it!" %}" />
21 </form>
22 </li>
23 <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>
24 </ul> 21 </ul>
25 22 <h3>Mobile Apps</h3>
26 <h2>{% trans "Upgrading wallabag" %}</h2>
27 <ul> 23 <ul>
28 <li>{% trans "Installed version" %} : <strong>{{ constant('POCHE') }}</strong></li> 24 <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>
29 <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> 25 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans "download the application" %}</a></li>
30 {% 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 %} 26 <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>
31 </ul> 27 </ul>
28 <h3>{% trans "Bookmarklet" %}</h3>
29 <p>
30 {% 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>
31 </p>
32 32
33 <h2>{% trans "Feeds" %}</h2> 33 <h2>{% trans "Feeds" %}</h2>
34 {% if token == '' %} 34 {% if token == '' %}
@@ -39,14 +39,16 @@
39 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li> 39 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li>
40 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li> 40 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li>
41 </ul> 41 </ul>
42 <p>{% trans "Your token:" %} <strong>{{token}}</strong></p> 42 <p class="more-info">
43 <p>{% trans "Your user id:" %} <strong>{{user_id}}</strong></p> 43 {% trans "Your token:" %} <strong>{{token}}</strong><br>
44 <p>{% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}</p> 44 {% trans "Your user id:" %} <strong>{{user_id}}</strong><br>
45 {% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}
46 </p>
45 {% endif %} 47 {% endif %}
46 48
47 <h2>{% trans "Change your theme" %}</h2> 49 <h2>{% trans "Change your theme" %}</h2>
48 <form method="post" action="?updatetheme" name="changethemeform"> 50 <form method="post" action="?updatetheme" name="changethemeform">
49 <fieldset class="w500p"> 51 <fieldset class="w500p inline">
50 <div class="row"> 52 <div class="row">
51 <label class="col w150p" for="theme">{% trans "Theme:" %}</label> 53 <label class="col w150p" for="theme">{% trans "Theme:" %}</label>
52 <select class="col" id="theme" name="theme"> 54 <select class="col" id="theme" name="theme">
@@ -65,7 +67,7 @@
65 67
66 <h2>{% trans "Change your language" %}</h2> 68 <h2>{% trans "Change your language" %}</h2>
67 <form method="post" action="?updatelanguage" name="changelanguageform"> 69 <form method="post" action="?updatelanguage" name="changelanguageform">
68 <fieldset class="w500p"> 70 <fieldset class="w500p inline">
69 <div class="row"> 71 <div class="row">
70 <label class="col w150p" for="language">{% trans "Language:" %}</label> 72 <label class="col w150p" for="language">{% trans "Language:" %}</label>
71 <select class="col" id="language" name="language"> 73 <select class="col" id="language" name="language">
@@ -82,35 +84,14 @@
82 <input type="hidden" name="token" value="{{ token }}"> 84 <input type="hidden" name="token" value="{{ token }}">
83 </form> 85 </form>
84 86
85 {% if http_auth == 0 %} 87 <h2><a name="import"></a>{% trans "Import" %}</h2>
86 <h2>{% trans "Change your password" %}</h2>
87 <form method="post" action="?config" name="loginform">
88 <fieldset class="w500p">
89 <div class="row">
90 <label class="col w150p" for="password">{% trans "New password:" %}</label>
91 <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2">
92 </div>
93 <div class="row">
94 <label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label>
95 <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3">
96 </div>
97 <div class="row mts txtcenter">
98 <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
99 </div>
100 </fieldset>
101 <input type="hidden" name="returnurl" value="{{ referer }}">
102 <input type="hidden" name="token" value="{{ token }}">
103 </form>
104 {% endif %}
105
106 <h2>{% trans "Import" %}</h2>
107 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p> 88 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
108 <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> 89 <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>
109 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data"> 90 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
110 <fieldset class="w500p"> 91 <fieldset class="w500p">
111 <div class="row"> 92 <div class="row">
112 <label class="col w150p" for="file">{% trans "File:" %}</label> 93 <label class="col w150p" for="file">{% trans "File:" %}</label>
113 <input class="col" type="file" id="file" name="file" tabindex="4"> 94 <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
114 </div> 95 </div>
115 <div class="row mts txtcenter"> 96 <div class="row mts txtcenter">
116 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button> 97 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
@@ -118,11 +99,11 @@
118 </fieldset> 99 </fieldset>
119 </form> 100 </form>
120 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p> 101 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
102 <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>
121 103
122 <h2>{% trans "Export your wallabag data" %}</h2> 104 <h2>{% trans "Export your wallabag data" %}</h2>
123 {% if constant('STORAGE') == 'sqlite' %} 105 <p><a href="?export" target="_blank">{% trans "Export JSON" %}</a><br>
124 <p><a href="?download" target="_blank">{% trans "Click here" %}</a> {% trans "to download your database." %}</p>{% endif %} 106 <span class="more-info">Data will be exported in a single JSON file.</span></p>
125 <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p>
126 107
127 <h2>{% trans "Fancy an E-Book ?" %}</h2> 108 <h2>{% trans "Fancy an E-Book ?" %}</h2>
128 <p>{% trans "Click to get all your articles in one ebook :" %} 109 <p>{% trans "Click to get all your articles in one ebook :" %}
@@ -131,31 +112,56 @@
131 <li><a href="./?mobi&amp;method=all" title="Generate Mobi file">Mobi</a></li> 112 <li><a href="./?mobi&amp;method=all" title="Generate Mobi file">Mobi</a></li>
132 <li><a href="./?pdf&amp;method=all" title="Generate PDF file">PDF</a></li> 113 <li><a href="./?pdf&amp;method=all" title="Generate PDF file">PDF</a></li>
133 </ul> 114 </ul>
115 </p>
134 116
135 <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> 117 <span class="more-info">{% 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>
136 118
119 <h2><a name="cache"></a>{% trans "Cache" %}</h2>
120 <p><a href="?empty-cache">{% trans "Delete Cache" %}</a><br>
121 <span class="more-info">Deleting the cache may help with display or other problems.</span></p>
122
123 {% if http_auth == 0 %}
124 <h2>{% trans "Change your password" %}</h2>
125 <form method="post" action="?config" name="loginform">
126 <fieldset class="w500p">
127 <div class="row">
128 <label class="col w150p" for="password">{% trans "New password:" %}</label>
129 <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2">
130 </div>
131 <div class="row">
132 <label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label>
133 <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3">
134 </div>
135 <div class="row mts txtcenter">
136 <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
137 </div>
138 </fieldset>
139 <input type="hidden" name="returnurl" value="{{ referer }}">
140 <input type="hidden" name="token" value="{{ token }}">
141 </form>
142 {% endif %}
137 143
138 <h2>{% trans "Cache" %}</h2>
139 <p><a href="?empty-cache">{% trans "Click here" %}</a> {% trans "to delete cache." %}</p>
140
141 <h2>{% trans 'Add user' %}</h2> 144 <h2>{% trans 'Add user' %}</h2>
142 <p>{% trans 'Add a new user :' %}</p>
143 <form method="post" action="?newuser"> 145 <form method="post" action="?newuser">
144 <fieldset class="w500p"> 146 <fieldset class="w500p">
145 <div class="row"> 147 <div class="row">
146 <label class="col w150p" for="newusername">{% trans 'Login for new user' %}</label> 148 <label class="col w150p" for="newusername">{% trans 'Login for new user' %}</label>
147 <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}"> 149 <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}" required>
148 </div> 150 </div>
149 <div class="row"> 151 <div class="row">
150 <label class="col w150p" for="password4newuser">{% trans "Password for new user" %}</label> 152 <label class="col w150p" for="password4newuser">{% trans "Password for new user" %}</label>
151 <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans "Password" %}"> 153 <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans 'Password' %}" required>
154 </div>
155 <div class="row">
156 <label class="col w150p" for="newuseremail">{% trans 'Email for new user (not required)' %}</label>
157 <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}">
152 </div> 158 </div>
153 <div class="row mts txtcenter"> 159 <div class="row mts txtcenter">
154 <button type="submit">{% trans "Send" %}</button> 160 <button type="submit">{% trans "Add user" %}</button>
155 </div> 161 </div>
156 </fieldset> 162 </fieldset>
157 </form> 163 </form>
158 164
159 <h2>{% trans "Delete account" %}</h2> 165 <h2>{% trans "Delete account" %}</h2>
160 {% if not only_user %}<form method="post" action="?deluser"> 166 {% if not only_user %}<form method="post" action="?deluser">
161 <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> 167 <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>
@@ -165,9 +171,18 @@
165 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}"> 171 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}">
166 </div> 172 </div>
167 <div class="row mts txtcenter"> 173 <div class="row mts txtcenter">
168 <button type="submit">{% trans "Send" %}</button> 174 <button type="submit">{% trans "Delete account" %}</button>
169 </div> 175 </div>
170 </form> 176 </form>
171 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}<br /> 177 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}</p>
172 {% trans "To completely remove wallabag, delete the wallabag folder on your web server." %}</p>{% endif %} 178 <p>{% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
179
180 <h2>{% trans "Upgrading wallabag" %}</h2>
181 <ul>
182 <li>{% trans "Installed version" %}: <strong>{{ constant('POCHE') }}</strong></li>
183 <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>
184 {% 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>
185 </ul>
186 <p class="more-info">{% trans "You can clear cache to check the latest release." %}</p>
187
173{% endblock %} 188{% endblock %}
diff --git a/themes/default/css/style-default.css b/themes/default/css/style-default.css
index 889a9f5c..4406d48f 100755
--- a/themes/default/css/style-default.css
+++ b/themes/default/css/style-default.css
@@ -38,6 +38,16 @@ a.flattr span {
38 background-image: url('../img/default/flattr.png'); 38 background-image: url('../img/default/flattr.png');
39} 39}
40 40
41a.carrot span {
42 background-image: url('../../_global/img/icons/carrot-icon--black.png');
43 background-size: 16px 16px;
44}
45
46a.diaspora span {
47 background-image: url('../../_global/img/icons/diaspora-icon--black.png');
48 background-size: 16px 16px;
49}
50
41a.email span { 51a.email span {
42 background-image: url('../img/default/envelop.png'); 52 background-image: url('../img/default/envelop.png');
43} 53}
@@ -56,4 +66,4 @@ a.bad-display span {
56 66
57a.print span { 67a.print span {
58 background-image: url('../img/default/print.png'); 68 background-image: url('../img/default/print.png');
59} \ No newline at end of file 69}
diff --git a/themes/default/css/style.css b/themes/default/css/style.css
index e58ef81a..b25373d6 100755
--- a/themes/default/css/style.css
+++ b/themes/default/css/style.css
@@ -417,6 +417,15 @@ a.add-to-wallabag-link-after:after {
417 padding-left: 10px; 417 padding-left: 10px;
418} 418}
419 419
420/* ==========================================================================
421 "Search" popup div related styles
422 ========================================================================== */
423
424/* Search form message needs a little more width, depending on translations */
425#search-form {
426 width: 420px;
427}
428
420.opacity03 { 429.opacity03 {
421 /*opacity: 0.3;*/ 430 /*opacity: 0.3;*/
422} 431}
@@ -429,4 +438,10 @@ a.add-to-wallabag-link-after:after {
429 text-indent: 0; 438 text-indent: 0;
430 color: black; 439 color: black;
431 width: 50px; 440 width: 50px;
432} \ No newline at end of file 441}
442
443pre code {
444 font-family: "Courier New", Courier, monospace;
445 border: 1px solid #ddd;
446 font-size: 0.96em;
447}
diff --git a/themes/default/edit-tags.twig b/themes/default/edit-tags.twig
index bd498d26..c29427e0 100755
--- a/themes/default/edit-tags.twig
+++ b/themes/default/edit-tags.twig
@@ -5,9 +5,9 @@
5{% endblock %} 5{% endblock %}
6{% block content %} 6{% block content %}
7 7
8<script src="{{ poche_url }}themes/default/js/jquery-ui-1.10.4.custom.min.js"></script> 8<script src="{{ poche_url }}themes/_global/js/jquery-ui-1.10.4.custom.min.js"></script>
9<script src="{{ poche_url }}themes/default/js/autoCompleteTags.js"></script> 9<script src="{{ poche_url }}themes/_global/js/autoCompleteTags.js"></script>
10<link rel="stylesheet" href="{{ poche_url }}themes/default/css/jquery-ui-1.10.4.custom.min.css" media="all"> 10<link rel="stylesheet" href="{{ poche_url }}themes/_global/css/jquery-ui-1.10.4.custom.min.css" media="all">
11 11
12<div id="article"> 12<div id="article">
13 <header class="mbm"> 13 <header class="mbm">
@@ -16,15 +16,15 @@
16</div> 16</div>
17 17
18{% if tags is empty %} 18{% if tags is empty %}
19no tags 19{% trans "no tags" %}
20{% endif %} 20{% endif %}
21<ul> 21<ul>
22{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %} 22{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
23</ul> 23</ul>
24<form method="post" action="./?action=add_tag" id="editTags"> 24<form method="post" action="./?action=add_tag" id="editTags">
25 <input type="hidden" name="entry_id" value="{{ entry_id }}" /> 25 <input type="hidden" name="entry_id" value="{{ entry_id }}" />
26 <label for="value">Add tags: </label> 26 <label for="value">{% trans "Add tags:" %}</label>
27 <input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> 27 <input type="text" placeholder="{% trans "interview" %}, {% trans "editorial" %}, {% trans "video" %}" id="value" name="value" required="required" />
28 <input type="submit" value="Tag" /> 28 <input type="submit" value="Tag" />
29 <p>{% trans "Start typing for auto complete." %}<br> 29 <p>{% trans "Start typing for auto complete." %}<br>
30 {% trans "You can enter multiple tags, separated by commas." %}</p> 30 {% trans "You can enter multiple tags, separated by commas." %}</p>
diff --git a/themes/default/highlightjs/highlight.pack.js b/themes/default/highlightjs/highlight.pack.js
new file mode 100644
index 00000000..10a21c34
--- /dev/null
+++ b/themes/default/highlightjs/highlight.pack.js
@@ -0,0 +1 @@
var hljs=new function(){function j(v){return v.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function t(v){return v.nodeName.toLowerCase()}function h(w,x){var v=w&&w.exec(x);return v&&v.index==0}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^lang(uage)?-/,"")});return v.filter(function(x){return i(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset<y[0].offset)?w:y}return y[0].event=="start"?w:y}function A(H){function G(I){return" "+I.nodeName+'="'+j(I.value)+'"'}F+="<"+t(H)+Array.prototype.map.call(H.attributes,G).join("")+">"}function E(G){F+="</"+t(G)+">"}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=j(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+j(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};var E=function(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})};if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b="\\b("+D.bK.split(" ").join("|")+")\\b"}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?("+F.b+")\\.?":F.b}).concat([D.tE,D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T<V.c.length;T++){if(h(V.c[T].bR,U)){return V.c[T]}}}function z(U,T){if(h(U.eR,T)){return U}if(U.eW){return z(U.parent,T)}}function A(T,U){return !J&&h(U.iR,T)}function E(V,T){var U=M.cI?T[0].toLowerCase():T[0];return V.k.hasOwnProperty(U)&&V.k[U]}function w(Z,X,W,V){var T=V?"":b.classPrefix,U='<span class="'+T,Y=W?"":"</span>";U+=Z+'">';return U+X+Y}function N(){if(!I.k){return j(C)}var T="";var W=0;I.lR.lastIndex=0;var U=I.lR.exec(C);while(U){T+=j(C.substr(W,U.index-W));var V=E(I,U);if(V){H+=V[1];T+=w(V[0],j(U[0]))}else{T+=j(U[0])}W=I.lR.lastIndex;U=I.lR.exec(C)}return T+j(C.substr(W))}function F(){if(I.sL&&!f[I.sL]){return j(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):e(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=j(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+="</span>"}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=j(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"<unnamed>")+'"')}C+=X;return X.length||1}var M=i(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D+=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+="</span>"}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:j(L)}}else{throw O}}}function e(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:j(y)};var w=v;x.forEach(function(z){if(!i(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function g(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"<br>")}return v}function p(z){var y=b.useBR?z.innerHTML.replace(/\n/g,"").replace(/<br>|<br [^>]*>/g,"\n").replace(/<[^>]*>/g,""):z.textContent;var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):e(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=g(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function d(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function k(){return Object.keys(f)}function i(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=e;this.fixMarkup=g;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=d;this.listLanguages=k;this.getLanguage=i;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/};this.CLCM={cN:"comment",b:"//",e:"$",c:[this.PWM]};this.CBCM={cN:"comment",b:"/\\*",e:"\\*/",c:[this.PWM]};this.HCM={cN:"comment",b:"#",e:"$",c:[this.PWM]};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.CSSNM={cN:"number",b:this.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0};this.RM={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("bash",function(b){var a={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]};var d={cN:"string",b:/"/,e:/"/,c:[b.BE,a,{cN:"variable",b:/\$\(/,e:/\)/,c:[b.BE]}]};var c={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[b.inherit(b.TM,{b:/\w[\w\d_]*/})],r:0},b.HCM,b.NM,d,c,a]}});hljs.registerLanguage("cs",function(b){var a="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{aliases:["csharp"],k:a,i:/::/,c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",v:[{b:"///",r:0},{b:"<!--|-->"},{b:"</?",e:">"}]}]},b.CLCM,b.CBCM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},b.ASM,b.QSM,b.CNM,{bK:"protected public private internal",e:/[{;=]/,k:a,c:[{bK:"class namespace interface",starts:{c:[b.TM]}},{b:b.IR+"\\s*\\(",rB:true,c:[b.TM]}]}]}});hljs.registerLanguage("ruby",function(f){var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var i="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor";var b={cN:"yardoctag",b:"@[A-Za-z]+"};var c={cN:"value",b:"#<",e:">"};var k={cN:"comment",v:[{b:"#",e:"$",c:[b]},{b:"^\\=begin",e:"^\\=end",c:[b],r:10},{b:"^__END__",e:"\\n$"}]};var d={cN:"subst",b:"#\\{",e:"}",k:i};var e={cN:"string",c:[f.BE,d],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">"},{b:"%[qw]?/",e:"/"},{b:"%[qw]?%",e:"%"},{b:"%[qw]?-",e:"-"},{b:"%[qw]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]};var a={cN:"params",b:"\\(",e:"\\)",k:i};var h=[e,c,k,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[f.inherit(f.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+f.IR+"::)?"+f.IR}]},k]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[f.inherit(f.TM,{b:j}),a,k]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[e,{b:j}],r:0},{cN:"symbol",b:f.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+f.RSR+")\\s*",c:[c,k,{cN:"regexp",c:[f.BE,d],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];d.c=h;a.c=h;var g=[{r:1,cN:"output",b:"^\\s*=> ",e:"$",rB:true,c:[{cN:"status",b:"^\\s*=>"},{b:" ",e:"$",c:h}]},{r:1,cN:"input",b:"^[^ ][^=>]*>+ ",e:"$",rB:true,c:[{cN:"prompt",b:"^[^ ][^=>]*>+"},{b:" ",e:"$",c:h}]}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:i,c:g.concat(h)}});hljs.registerLanguage("diff",function(a){return{aliases:["patch"],c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("javascript",function(a){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},a.ASM,a.QSM,a.CLCM,a.CBCM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBCM,a.RM,{b:/</,e:/>;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,eE:true,c:[a.inherit(a.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBCM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+a.IR,r:0}]}});hljs.registerLanguage("xml",function(a){var c="[A-Za-z0-9\\._:-]+";var d={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"};var b={eW:true,i:/</,r:0,c:[d,{cN:"attribute",b:c,r:0},{b:"=",r:0,c:[{cN:"value",v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s\/>]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],cI:true,c:[{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},d,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ /><]+",r:0},b]}]}});hljs.registerLanguage("markdown",function(a){return{aliases:["md","mkdown","mkd"],c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:true,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:true,rE:true,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:true,eE:true},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:true,eE:true}],r:10},{b:"^\\[.+\\]:",e:"$",rB:true,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:true,eE:true},{cN:"link_url",b:"\\s",e:"$"}]}]}});hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",rB:true,eE:true,e:"\\("};return{cI:true,i:"[=/|']",c:[a.CBCM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.CSSNM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBCM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.CSSNM,a.QSM,a.ASM,a.CBCM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});hljs.registerLanguage("http",function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}});hljs.registerLanguage("java",function(b){var a="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{aliases:["jsp"],k:a,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},b.CLCM,b.CBCM,b.ASM,b.QSM,{bK:"protected public private",e:/[{;=]/,k:a,c:[{cN:"class",bK:"class interface",eW:true,eE:true,i:/[:"\[\]]/,c:[{bK:"extends implements",r:10},b.UTM]},{b:b.UIR+"\\s*\\(",rB:true,c:[b.UTM]}]},b.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("php",function(b){var e={cN:"variable",b:"(\\$|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var a={cN:"preprocessor",b:/<\?(php)?|\?>/};var c={cN:"string",c:[b.BE,a],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null})]};var d={v:[b.BNM,b.CNM]};return{aliases:["php3","php4","php5","php6"],cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[b.CLCM,b.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},a]},{cN:"comment",b:"__halt_compiler.+?;",eW:true,k:"__halt_compiler",l:b.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[b.BE]},a,e,{cN:"function",bK:"function",e:/[;{]/,eE:true,i:"\\$|\\[|%",c:[b.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",e,b.CBCM,c,d]}]},{cN:"class",bK:"class interface",e:"{",eE:true,i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},b.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[b.UTM]},{bK:"use",e:";",c:[b.UTM]},{b:"=>"},c,d]}});hljs.registerLanguage("python",function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var b={cN:"string",c:[a.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},a.ASM,a.QSM]};var d={cN:"number",r:0,v:[{b:a.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:a.CNR+"[lLjJ]?"}]};var e={cN:"params",b:/\(/,e:/\)/,c:["self",f,d,b]};var c={e:/:/,i:/[${=;\n]/,c:[a.UTM,e]};return{aliases:["py","gyp"],k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[f,d,b,a.HCM,a.inherit(c,{cN:"function",bK:"def",r:10}),a.inherit(c,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("sql",function(a){var b={cN:"comment",b:"--",e:"$"};return{cI:true,i:/[<>]/,c:[{cN:"operator",bK:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate savepoint release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup",e:/;/,eW:true,k:{keyword:"abs absolute acos action add adddate addtime aes_decrypt aes_encrypt after aggregate all allocate alter analyze and any are as asc ascii asin assertion at atan atan2 atn2 authorization authors avg backup before begin benchmark between bin binlog bit_and bit_count bit_length bit_or bit_xor both by cache call cascade cascaded case cast catalog ceil ceiling chain change changed char_length character_length charindex charset check checksum checksum_agg choose close coalesce coercibility collate collation collationproperty column columns columns_updated commit compress concat concat_ws concurrent connect connection connection_id consistent constraint constraints continue contributors conv convert convert_tz corresponding cos cot count count_big crc32 create cross cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime data database databases datalength date_add date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts datetimeoffsetfromparts day dayname dayofmonth dayofweek dayofyear deallocate declare decode default deferrable deferred degrees delayed delete des_decrypt des_encrypt des_key_file desc describe descriptor diagnostics difference disconnect distinct distinctrow div do domain double drop dumpfile each else elt enclosed encode encrypt end end-exec engine engines eomonth errors escape escaped event eventdata events except exception exec execute exists exp explain export_set extended external extract fast fetch field fields find_in_set first first_value floor flush for force foreign format found found_rows from from_base64 from_days from_unixtime full function get get_format get_lock getdate getutcdate global go goto grant grants greatest group group_concat grouping grouping_id gtid_subset gtid_subtract handler having help hex high_priority hosts hour ident_current ident_incr ident_seed identified identity if ifnull ignore iif ilike immediate in index indicator inet6_aton inet6_ntoa inet_aton inet_ntoa infile initially inner innodb input insert install instr intersect into is is_free_lock is_ipv4 is_ipv4_compat is_ipv4_mapped is_not is_not_null is_used_lock isdate isnull isolation join key kill language last last_day last_insert_id last_value lcase lead leading least leaves left len lenght level like limit lines ln load load_file local localtime localtimestamp locate lock log log10 log2 logfile logs low_priority lower lpad ltrim make_set makedate maketime master master_pos_wait match matched max md5 medium merge microsecond mid min minute mod mode module month monthname mutex name_const names national natural nchar next no no_write_to_binlog not now nullif nvarchar oct octet_length of old_password on only open optimize option optionally or ord order outer outfile output pad parse partial partition password patindex percent_rank percentile_cont percentile_disc period_add period_diff pi plugin position pow power pragma precision prepare preserve primary prior privileges procedure procedure_analyze processlist profile profiles public publishingservername purge quarter query quick quote quotename radians rand read references regexp relative relaylog release release_lock rename repair repeat replace replicate reset restore restrict return returns reverse revoke right rlike rollback rollup round row row_count rows rpad rtrim savepoint schema scroll sec_to_time second section select serializable server session session_user set sha sha1 sha2 share show sign sin size slave sleep smalldatetimefromparts snapshot some soname soundex sounds_like space sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sql_variant_property sqlstate sqrt square start starting status std stddev stddev_pop stddev_samp stdev stdevp stop str str_to_date straight_join strcmp string stuff subdate substr substring subtime subtring_index sum switchoffset sysdate sysdatetime sysdatetimeoffset system_user sysutcdatetime table tables tablespace tan temporary terminated tertiary_weights then time time_format time_to_sec timediff timefromparts timestamp timestampadd timestampdiff timezone_hour timezone_minute to to_base64 to_days to_seconds todatetimeoffset trailing transaction translation trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse ucase uncompress uncompressed_length unhex unicode uninstall union unique unix_timestamp unknown unlock update upgrade upped upper usage use user user_resources using utc_date utc_time utc_timestamp uuid uuid_short validate_password_strength value values var var_pop var_samp variables variance varp version view warnings week weekday weekofyear weight_string when whenever where with work write xml xor year yearweek zon",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int integer interval number numeric real serial smallint varchar varying int8 serial8 text"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM,a.CBCM,b]},a.CBCM,b]}});hljs.registerLanguage("ini",function(a){return{cI:true,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}});hljs.registerLanguage("perl",function(c){var d="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var f={cN:"subst",b:"[$@]\\{",e:"\\}",k:d};var g={b:"->{",e:"}"};var a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@][^\s\w{]/,r:0}]};var e={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var h=[c.BE,f,a];var b=[a,c.HCM,e,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},g,{cN:"string",c:h,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[c.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[c.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+c.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[c.HCM,e,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[c.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];f.c=b;g.c=b;return{aliases:["pl"],k:d,c:b}});hljs.registerLanguage("objectivec",function(a){var d={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView NSView NSViewController NSWindow NSWindowController NSSet NSUUID NSIndexSet UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};var c=/[a-zA-Z@][a-zA-Z0-9_]*/;var b="@interface @class @protocol @implementation";return{aliases:["m","mm","objc","obj-c"],k:d,l:c,i:"</",c:[a.CLCM,a.CBCM,a.CNM,a.QSM,{cN:"string",v:[{b:'@"',e:'"',i:"\\n",c:[a.BE]},{b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"}]},{cN:"preprocessor",b:"#",e:"$",c:[{cN:"title",v:[{b:'"',e:'"'},{b:"<",e:">"}]}]},{cN:"class",b:"("+b.split(" ").join("|")+")\\b",e:"({|$)",eE:true,k:b,l:c,c:[a.UTM]},{cN:"variable",b:"\\."+a.UIR,r:0}]}});hljs.registerLanguage("coffeescript",function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f=c.inherit(c.TM,{b:a});var e={cN:"subst",b:/#\{/,e:/}/,k:b};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[c.BE]},{b:/'/,e:/'/,c:[c.BE]},{b:/"""/,e:/"""/,c:[c.BE,e]},{b:/"/,e:/"/,c:[c.BE,e]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[e,c.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{aliases:["coffee","cson","iced"],k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:true,i:/[:="\[\]]/,c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true,r:0}])}});hljs.registerLanguage("nginx",function(c){var b={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+c.UIR}]};var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[c.HCM,{cN:"string",c:[c.BE,b],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",c:[c.BE,b],v:[{b:"\\s\\^",e:"\\s|{|;",rE:true},{b:"~\\*?\\s+",e:"\\s|{|;",rE:true},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},b]};return{aliases:["nginxconf"],c:[c.HCM,{b:c.UIR+"\\s",e:";|{",rB:true,c:[{cN:"title",b:c.UIR,starts:a}],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("json",function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}});hljs.registerLanguage("apache",function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:true,c:[a.HCM,{cN:"tag",b:"</?",e:">"},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,a.QSM]}}],i:/\S/}});hljs.registerLanguage("cpp",function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c","h","c++","h++"],k:b,i:"</",c:[a.CLCM,a.CBCM,a.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line pragma",c:[{b:'include\\s*[<"]',e:'[>"]',k:"include",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,c:["self"]},{b:a.IR+"::"}]}});hljs.registerLanguage("makefile",function(a){var b={cN:"variable",b:/\$\(/,e:/\)/,c:[a.BE]};return{aliases:["mk","mak"],c:[a.HCM,{b:/^\w+\s*\W*=/,rB:true,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:true,starts:{e:/$/,r:0,c:[b]}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[a.QSM,b]}]}}); \ No newline at end of file
diff --git a/themes/default/highlightjs/styles/default.css b/themes/default/highlightjs/styles/default.css
new file mode 100644
index 00000000..e5bd2801
--- /dev/null
+++ b/themes/default/highlightjs/styles/default.css
@@ -0,0 +1,152 @@
1/*
2
3Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
4
5*/
6
7.hljs {
8 display: block;
9 overflow-x: auto;
10 padding: 0.5em;
11 background: #f0f0f0;
12}
13
14.hljs,
15.hljs-subst,
16.hljs-tag .hljs-title,
17.lisp .hljs-title,
18.clojure .hljs-built_in,
19.nginx .hljs-title {
20 color: black;
21}
22
23.hljs-string,
24.hljs-title,
25.hljs-constant,
26.hljs-parent,
27.hljs-tag .hljs-value,
28.hljs-rules .hljs-value,
29.hljs-preprocessor,
30.hljs-pragma,
31.haml .hljs-symbol,
32.ruby .hljs-symbol,
33.ruby .hljs-symbol .hljs-string,
34.hljs-template_tag,
35.django .hljs-variable,
36.smalltalk .hljs-class,
37.hljs-addition,
38.hljs-flow,
39.hljs-stream,
40.bash .hljs-variable,
41.apache .hljs-tag,
42.apache .hljs-cbracket,
43.tex .hljs-command,
44.tex .hljs-special,
45.erlang_repl .hljs-function_or_atom,
46.asciidoc .hljs-header,
47.markdown .hljs-header,
48.coffeescript .hljs-attribute {
49 color: #800;
50}
51
52.smartquote,
53.hljs-comment,
54.hljs-annotation,
55.hljs-template_comment,
56.diff .hljs-header,
57.hljs-chunk,
58.asciidoc .hljs-blockquote,
59.markdown .hljs-blockquote {
60 color: #888;
61}
62
63.hljs-number,
64.hljs-date,
65.hljs-regexp,
66.hljs-literal,
67.hljs-hexcolor,
68.smalltalk .hljs-symbol,
69.smalltalk .hljs-char,
70.go .hljs-constant,
71.hljs-change,
72.lasso .hljs-variable,
73.makefile .hljs-variable,
74.asciidoc .hljs-bullet,
75.markdown .hljs-bullet,
76.asciidoc .hljs-link_url,
77.markdown .hljs-link_url {
78 color: #080;
79}
80
81.hljs-label,
82.hljs-javadoc,
83.ruby .hljs-string,
84.hljs-decorator,
85.hljs-filter .hljs-argument,
86.hljs-localvars,
87.hljs-array,
88.hljs-attr_selector,
89.hljs-important,
90.hljs-pseudo,
91.hljs-pi,
92.haml .hljs-bullet,
93.hljs-doctype,
94.hljs-deletion,
95.hljs-envvar,
96.hljs-shebang,
97.apache .hljs-sqbracket,
98.nginx .hljs-built_in,
99.tex .hljs-formula,
100.erlang_repl .hljs-reserved,
101.hljs-prompt,
102.asciidoc .hljs-link_label,
103.markdown .hljs-link_label,
104.vhdl .hljs-attribute,
105.clojure .hljs-attribute,
106.asciidoc .hljs-attribute,
107.lasso .hljs-attribute,
108.coffeescript .hljs-property,
109.hljs-phony {
110 color: #88f;
111}
112
113.hljs-keyword,
114.hljs-id,
115.hljs-title,
116.hljs-built_in,
117.css .hljs-tag,
118.hljs-javadoctag,
119.hljs-phpdoc,
120.hljs-yardoctag,
121.smalltalk .hljs-class,
122.hljs-winutils,
123.bash .hljs-variable,
124.apache .hljs-tag,
125.go .hljs-typename,
126.tex .hljs-command,
127.asciidoc .hljs-strong,
128.markdown .hljs-strong,
129.hljs-request,
130.hljs-status {
131 font-weight: bold;
132}
133
134.asciidoc .hljs-emphasis,
135.markdown .hljs-emphasis {
136 font-style: italic;
137}
138
139.nginx .hljs-built_in {
140 font-weight: normal;
141}
142
143.coffeescript .javascript,
144.javascript .xml,
145.lasso .markup,
146.tex .hljs-formula,
147.xml .javascript,
148.xml .vbscript,
149.xml .css,
150.xml .hljs-cdata {
151 opacity: 0.5;
152}
diff --git a/themes/default/highlightjs/styles/github.css b/themes/default/highlightjs/styles/github.css
new file mode 100644
index 00000000..47fc2651
--- /dev/null
+++ b/themes/default/highlightjs/styles/github.css
@@ -0,0 +1,127 @@
1/*
2
3github.com style (c) Vasily Polovnyov <vast@whiteants.net>
4
5*/
6
7.hljs {
8 display: block;
9 overflow-x: auto;
10 padding: 0.5em;
11 color: #333;
12 background: #f8f8f8;
13}
14
15.hljs-comment,
16.hljs-template_comment,
17.diff .hljs-header,
18.hljs-javadoc {
19 color: #998;
20 font-style: italic;
21}
22
23.hljs-keyword,
24.css .rule .hljs-keyword,
25.hljs-winutils,
26.javascript .hljs-title,
27.nginx .hljs-title,
28.hljs-subst,
29.hljs-request,
30.hljs-status {
31 color: #333;
32 font-weight: bold;
33}
34
35.hljs-number,
36.hljs-hexcolor,
37.ruby .hljs-constant {
38 color: #099;
39}
40
41.hljs-string,
42.hljs-tag .hljs-value,
43.hljs-phpdoc,
44.tex .hljs-formula {
45 color: #d14;
46}
47
48.hljs-title,
49.hljs-id,
50.coffeescript .hljs-params,
51.scss .hljs-preprocessor {
52 color: #900;
53 font-weight: bold;
54}
55
56.javascript .hljs-title,
57.lisp .hljs-title,
58.clojure .hljs-title,
59.hljs-subst {
60 font-weight: normal;
61}
62
63.hljs-class .hljs-title,
64.haskell .hljs-type,
65.vhdl .hljs-literal,
66.tex .hljs-command {
67 color: #458;
68 font-weight: bold;
69}
70
71.hljs-tag,
72.hljs-tag .hljs-title,
73.hljs-rules .hljs-property,
74.django .hljs-tag .hljs-keyword {
75 color: #000080;
76 font-weight: normal;
77}
78
79.hljs-attribute,
80.hljs-variable,
81.lisp .hljs-body {
82 color: #008080;
83}
84
85.hljs-regexp {
86 color: #009926;
87}
88
89.hljs-symbol,
90.ruby .hljs-symbol .hljs-string,
91.lisp .hljs-keyword,
92.tex .hljs-special,
93.hljs-prompt {
94 color: #990073;
95}
96
97.hljs-built_in,
98.lisp .hljs-title,
99.clojure .hljs-built_in {
100 color: #0086b3;
101}
102
103.hljs-preprocessor,
104.hljs-pragma,
105.hljs-pi,
106.hljs-doctype,
107.hljs-shebang,
108.hljs-cdata {
109 color: #999;
110 font-weight: bold;
111}
112
113.hljs-deletion {
114 background: #fdd;
115}
116
117.hljs-addition {
118 background: #dfd;
119}
120
121.diff .hljs-change {
122 background: #0086b3;
123}
124
125.hljs-chunk {
126 color: #aaa;
127}
diff --git a/themes/default/highlightjs/styles/googlecode.css b/themes/default/highlightjs/styles/googlecode.css
new file mode 100644
index 00000000..fd237367
--- /dev/null
+++ b/themes/default/highlightjs/styles/googlecode.css
@@ -0,0 +1,148 @@
1/*
2
3Google Code style (c) Aahan Krish <geekpanth3r@gmail.com>
4
5*/
6
7.hljs {
8 display: block;
9 overflow-x: auto;
10 padding: 0.5em;
11 background: white;
12 color: black;
13}
14
15.hljs-comment,
16.hljs-template_comment,
17.hljs-javadoc {
18 color: #800;
19}
20
21.hljs-keyword,
22.method,
23.hljs-list .hljs-title,
24.clojure .hljs-built_in,
25.nginx .hljs-title,
26.hljs-tag .hljs-title,
27.setting .hljs-value,
28.hljs-winutils,
29.tex .hljs-command,
30.http .hljs-title,
31.hljs-request,
32.hljs-status {
33 color: #008;
34}
35
36.hljs-envvar,
37.tex .hljs-special {
38 color: #660;
39}
40
41.hljs-string,
42.hljs-tag .hljs-value,
43.hljs-cdata,
44.hljs-filter .hljs-argument,
45.hljs-attr_selector,
46.apache .hljs-cbracket,
47.hljs-date,
48.hljs-regexp,
49.coffeescript .hljs-attribute {
50 color: #080;
51}
52
53.hljs-sub .hljs-identifier,
54.hljs-pi,
55.hljs-tag,
56.hljs-tag .hljs-keyword,
57.hljs-decorator,
58.ini .hljs-title,
59.hljs-shebang,
60.hljs-prompt,
61.hljs-hexcolor,
62.hljs-rules .hljs-value,
63.hljs-literal,
64.hljs-symbol,
65.ruby .hljs-symbol .hljs-string,
66.hljs-number,
67.css .hljs-function,
68.clojure .hljs-attribute {
69 color: #066;
70}
71
72.hljs-class .hljs-title,
73.haskell .hljs-type,
74.smalltalk .hljs-class,
75.hljs-javadoctag,
76.hljs-yardoctag,
77.hljs-phpdoc,
78.hljs-typename,
79.hljs-tag .hljs-attribute,
80.hljs-doctype,
81.hljs-class .hljs-id,
82.hljs-built_in,
83.setting,
84.hljs-params,
85.hljs-variable,
86.clojure .hljs-title {
87 color: #606;
88}
89
90.css .hljs-tag,
91.hljs-rules .hljs-property,
92.hljs-pseudo,
93.hljs-subst {
94 color: #000;
95}
96
97.css .hljs-class,
98.css .hljs-id {
99 color: #9b703f;
100}
101
102.hljs-value .hljs-important {
103 color: #ff7700;
104 font-weight: bold;
105}
106
107.hljs-rules .hljs-keyword {
108 color: #c5af75;
109}
110
111.hljs-annotation,
112.apache .hljs-sqbracket,
113.nginx .hljs-built_in {
114 color: #9b859d;
115}
116
117.hljs-preprocessor,
118.hljs-preprocessor *,
119.hljs-pragma {
120 color: #444;
121}
122
123.tex .hljs-formula {
124 background-color: #eee;
125 font-style: italic;
126}
127
128.diff .hljs-header,
129.hljs-chunk {
130 color: #808080;
131 font-weight: bold;
132}
133
134.diff .hljs-change {
135 background-color: #bccff9;
136}
137
138.hljs-addition {
139 background-color: #baeeba;
140}
141
142.hljs-deletion {
143 background-color: #ffc8bd;
144}
145
146.hljs-comment .hljs-yardoctag {
147 font-weight: bold;
148}
diff --git a/themes/default/home.twig b/themes/default/home.twig
index 093c2dc5..59615691 100755
--- a/themes/default/home.twig
+++ b/themes/default/home.twig
@@ -31,13 +31,13 @@
31 {% block pager %} 31 {% block pager %}
32 {% if nb_results > 1 %} 32 {% if nb_results > 1 %}
33 <div class="results"> 33 <div class="results">
34 <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div> 34 <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if searchterm is defined %}{% trans " found for « " %} {{ searchterm }} »{% endif %}</div>
35 {{ page_links | raw }} 35 {{ page_links | raw }}
36 </div> 36 </div>
37 {% elseif nb_results == 1 %} 37 {% elseif nb_results == 1 %}
38 {% if search_term is defined %} 38 {% if searchterm is defined %}
39 <div class="results"> 39 <div class="results">
40 <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div> 40 <div class="nb-results">{% trans "Only one result found for " %} « {{ searchterm }} »</div>
41 </div> 41 </div>
42 {% endif %} 42 {% endif %}
43 {% endif %} 43 {% endif %}
@@ -57,12 +57,22 @@
57 {% endfor %} 57 {% endfor %}
58 58
59 {{ block('pager') }} 59 {{ block('pager') }}
60 {% 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 %}
61 {% 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 %}<br />
60 62
61 {% if view == 'home' %}{% if nb_results > 1 %}<a title="{% trans "mark all the entries as read" %}" href="./?action=archive_all">{% trans "mark all the entries as read" %}</a>{% endif %}{% endif %} 63 {% if tag %}
62 64 <a title="{% trans "Download the articles from this tag in an epub file" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as ePub3" %}</a>
63 {% 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> 65 <a title="{% trans "Download the articles from this tag in a mobi file" %}" href="./?mobi&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as Mobi" %}</a>
64 {% 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> 66 <a title="{% trans "Download the articles from this tag in a pdf file" %}" href="./?pdf&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download as PDF" %}</a>
65 {% 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 %} 67 {% elseif searchterm is defined %}
68 <a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ searchterm }}">{% trans "Download as ePub3" %}</a>
69 <a title="{% trans "Download the articles from this search in a mobi file" %}" href="./?mobi&amp;method=search&amp;value={{ searchterm }}">{% trans "Download as Mobi" %}</a>
70 <a title="{% trans "Download the articles from this search in a pdf file" %}" href="./?pdf&amp;method=search&amp;value={{ searchterm }}">{% trans "Download as PDF" %}</a>
71 {% else %}
72 <a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download as ePub3" %}</a>
73 <a title="{% trans "Download the articles from this category in a mobi file" %}" href="./?mobi&amp;method=category&amp;value={{ view }}">{% trans "Download as Mobi" %}</a>
74 <a title="{% trans "Download the articles from this category in a pdf file" %}" href="./?pdf&amp;method=category&amp;value={{ view }}">{% trans "Download as PDF" %}</a>
75 {% endif %}
66 76
67 {% endif %} 77 {% endif %}
68{% endblock %} 78{% endblock %}
diff --git a/themes/default/img/apple-touch-icon-144x144-precomposed.png b/themes/default/img/apple-touch-icon-144x144-precomposed.png
deleted file mode 100644
index 9e951230..00000000
--- a/themes/default/img/apple-touch-icon-144x144-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/themes/default/img/apple-touch-icon-72x72-precomposed.png b/themes/default/img/apple-touch-icon-72x72-precomposed.png
deleted file mode 100644
index 263419b1..00000000
--- a/themes/default/img/apple-touch-icon-72x72-precomposed.png
+++ /dev/null
Binary files differ
diff --git a/themes/default/img/apple-touch-icon.png b/themes/default/img/apple-touch-icon.png
deleted file mode 100644
index ac8a1cf0..00000000
--- a/themes/default/img/apple-touch-icon.png
+++ /dev/null
Binary files differ
diff --git a/themes/default/img/favicon.ico b/themes/default/img/favicon.ico
deleted file mode 100644
index 0e9ff779..00000000
--- a/themes/default/img/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/themes/default/js/popupForm.js b/themes/default/js/popupForm.js
deleted file mode 100644
index 06be3f0c..00000000
--- a/themes/default/js/popupForm.js
+++ /dev/null
@@ -1,20 +0,0 @@
1$(document).ready(function() {
2
3 $("#search-form").hide();
4
5 function closeSearch() {
6 $("#search-form").toggle();
7 $("#search").toggleClass("current");
8 $("#search-arrow").toggleClass("arrow-down");
9 }
10
11 $("#search").click(function(){
12 closeSearch();
13 });
14
15 $("#search-form-close").click(function(){
16 closeSearch();
17 });
18
19
20}); \ No newline at end of file
diff --git a/themes/default/js/restoreScroll.js b/themes/default/js/restoreScroll.js
deleted file mode 100644
index 331c9e19..00000000
--- a/themes/default/js/restoreScroll.js
+++ /dev/null
@@ -1,25 +0,0 @@
1function supportsLocalStorage() {
2 try {
3 return 'localStorage' in window && window['localStorage'] !== null;
4 } catch (e) {
5 return false;
6 }
7}
8
9function savePercent(id, percent) {
10 if (!supportsLocalStorage()) { return false; }
11 localStorage["poche.article." + id + ".percent"] = percent;
12 return true;
13}
14
15function retrievePercent(id) {
16 if (!supportsLocalStorage()) { return false; }
17
18 var bheight = $(document).height();
19 var percent = localStorage["poche.article." + id + ".percent"];
20 var scroll = bheight * percent;
21
22 $('html,body').animate({scrollTop: scroll}, 'fast');
23
24 return true;
25} \ No newline at end of file
diff --git a/themes/default/view.twig b/themes/default/view.twig
index 90b11839..181e1284 100755
--- a/themes/default/view.twig
+++ b/themes/default/view.twig
@@ -1,6 +1,7 @@
1{% extends "layout.twig" %} 1{% extends "layout.twig" %}
2{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %} 2{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %}
3{% block content %} 3{% block content %}
4 {% include '_highlight.twig' %}
4 {% include '_pocheit-form.twig' %} 5 {% include '_pocheit-form.twig' %}
5 <div id="article_toolbar"> 6 <div id="article_toolbar">
6 <ul> 7 <ul>
@@ -13,7 +14,9 @@
13 {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter" title="{% trans "Tweet" %}"><span>{% trans "Tweet" %}</span></a></li>{% endif %} 14 {% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter" title="{% trans "Tweet" %}"><span>{% trans "Tweet" %}</span></a></li>{% endif %}
14 {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email" title="{% trans "Email" %}"><span>{% trans "Email" %}</span></a></li>{% endif %} 15 {% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email" title="{% trans "Email" %}"><span>{% trans "Email" %}</span></a></li>{% endif %}
15 {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %} 16 {% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %}
16 {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span>{{ flattr.numflattrs }}</a></li>{% endif %}{% endif %} 17 {% if constant('SHARE_DIASPORA') == 1 %}<li><a href="{{ constant('DIASPORA_URL') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora" title="{% trans "diaspora" %}"><span>{% trans "diaspora" %}</span></a></li>{% endif %}
18 {% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span>{{ flattr.numFlattrs }}</a></li>{% endif %}{% endif %}
19 {% if constant('CARROT') == 1 %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon" target="_blank" title="{% trans "carrot" %}"><span>{% trans "carrot" %}</span></a></li>{% endif %}
17 {% if constant('SHOW_PRINTLINK') == 1 %}<li><a title="{% trans "Print" %}" class="tool print" href="javascript: window.print();"><span>{% trans "Print" %}</span></a></li>{% endif %} 20 {% if constant('SHOW_PRINTLINK') == 1 %}<li><a title="{% trans "Print" %}" class="tool print" href="javascript: window.print();"><span>{% trans "Print" %}</span></a></li>{% endif %}
18 <li><a href="./?epub&amp;method=id&amp;value={{ entry.id|e }}" title="Generate epub file">EPUB</a></li> 21 <li><a href="./?epub&amp;method=id&amp;value={{ entry.id|e }}" title="Generate epub file">EPUB</a></li>
19 <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{% trans "Does this article appear wrong?" %}" class="tool bad-display"><span>{% trans "Does this article appear wrong?" %}</span></a></li> 22 <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{% trans "Does this article appear wrong?" %}" class="tool bad-display"><span>{% trans "Does this article appear wrong?" %}</span></a></li>
@@ -34,7 +37,7 @@
34 </article> 37 </article>
35 {{ block('tags') }} 38 {{ block('tags') }}
36 </div> 39 </div>
37 <script src="{{ poche_url }}themes/{{theme}}/js/restoreScroll.js"></script> 40 <script src="{{ poche_url }}themes/_global/js/restoreScroll.js"></script>
38 <script type="text/javascript"> 41 <script type="text/javascript">
39 $(document).ready(function() { 42 $(document).ready(function() {
40 43
@@ -117,4 +120,3 @@
117 }); 120 });
118 </script> 121 </script>
119{% endblock %} 122{% endblock %}
120