diff options
Diffstat (limited to 'themes/courgette')
53 files changed, 1155 insertions, 0 deletions
diff --git a/themes/courgette/README.md b/themes/courgette/README.md new file mode 100755 index 00000000..e13d3900 --- /dev/null +++ b/themes/courgette/README.md | |||
@@ -0,0 +1,3 @@ | |||
1 | # Courgette Theme | ||
2 | |||
3 | theme 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 new file mode 100755 index 00000000..57b40f41 --- /dev/null +++ b/themes/courgette/_head.twig | |||
@@ -0,0 +1,11 @@ | |||
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 new file mode 100755 index 00000000..85487f73 --- /dev/null +++ b/themes/courgette/_menu.twig | |||
@@ -0,0 +1,9 @@ | |||
1 | <div id="menuContainer"> | ||
2 | <ul id="links"> | ||
3 | <li><a href="./" {% if view == 'home' %}class="current"{% endif %}>{% trans "home" %}</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=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> | ||
7 | <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> | ||
8 | </ul> | ||
9 | </div> \ No newline at end of file | ||
diff --git a/themes/courgette/_top.twig b/themes/courgette/_top.twig new file mode 100755 index 00000000..792687c0 --- /dev/null +++ b/themes/courgette/_top.twig | |||
@@ -0,0 +1,9 @@ | |||
1 | <header> | ||
2 | <h1> | ||
3 | {% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/logo.svg" alt="logo poche" />{% 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/config.twig b/themes/courgette/config.twig new file mode 100755 index 00000000..26da7289 --- /dev/null +++ b/themes/courgette/config.twig | |||
@@ -0,0 +1,82 @@ | |||
1 | {% extends "layout.twig" %} | ||
2 | |||
3 | {% block title %}{% trans "config" %}{% endblock %} | ||
4 | {% block menu %} | ||
5 | {% include '_menu.twig' %} | ||
6 | {% endblock %} | ||
7 | {% block content %} | ||
8 | <div id="config"> | ||
9 | <h2>{% trans "Poching a link" %}</h2> | ||
10 | <p>{% trans "You can poche a link by several methods:" %} (<a class="special" href="http://doc.wallabag.org" title="{% trans "read the documentation" %}">?</a>)</p> | ||
11 | <ul> | ||
12 | <li>firefox: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.xpi" title="download the firefox extension">{% trans "download the extension" %}</a></li> | ||
13 | <li>chrome: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.crx" title="download the chrome extension">{% trans "download the extension" %}</a></li> | ||
14 | <li>android: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/Poche.apk" title="download the application">{% trans "download the application" %}</a></li> | ||
15 | <li> | ||
16 | <form method="get" action="index.php"> | ||
17 | <label class="addurl" for="plainurl">{% trans "by filling this field" %}:</label> | ||
18 | <input required placeholder="Ex:mywebsite.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> | ||
19 | <input type="submit" value="{% trans "poche it!" %}" /> | ||
20 | </form> | ||
21 | </li> | ||
22 | <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 "poche it!" %}</a></li> | ||
23 | </ul> | ||
24 | |||
25 | <h2>{% trans "Updating poche" %}</h2> | ||
26 | <ul> | ||
27 | <li>{% trans "your version" %} : <strong>{{ constant('POCHE') }}</strong></li> | ||
28 | <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> | ||
29 | {% 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 %} | ||
30 | </ul> | ||
31 | |||
32 | <h2>{% trans "Change your theme" %}</h2> | ||
33 | <form method="post" action="?updatetheme" name="changethemeform"> | ||
34 | <fieldset class="w500p"> | ||
35 | <div class="row"> | ||
36 | <label class="col w150p" for="theme">{% trans "Theme:" %}</label> | ||
37 | <select class="col" id="theme" name="theme"> | ||
38 | {% for key, theme in themes %} | ||
39 | <option value="{{ key }}" {{ theme.current ? 'selected' : '' }}>{{ theme.name }}</option> | ||
40 | {% endfor %} | ||
41 | </select> | ||
42 | </div> | ||
43 | <div class="row mts txtcenter"> | ||
44 | <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button> | ||
45 | </div> | ||
46 | </fieldset> | ||
47 | <input type="hidden" name="returnurl" value="{{ referer }}"> | ||
48 | <input type="hidden" name="token" value="{{ token }}"> | ||
49 | </form> | ||
50 | |||
51 | <h2>{% trans "Change your password" %}</h2> | ||
52 | <form method="post" action="?config" name="loginform"> | ||
53 | <fieldset class="w500p"> | ||
54 | <div class="row"> | ||
55 | <label class="col w150p" for="password">{% trans "New password:" %}</label> | ||
56 | <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2"> | ||
57 | </div> | ||
58 | <div class="row"> | ||
59 | <label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label> | ||
60 | <input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3"> | ||
61 | </div> | ||
62 | <div class="row mts txtcenter"> | ||
63 | <button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button> | ||
64 | </div> | ||
65 | </fieldset> | ||
66 | <input type="hidden" name="returnurl" value="{{ referer }}"> | ||
67 | <input type="hidden" name="token" value="{{ token }}"> | ||
68 | </form> | ||
69 | |||
70 | <h2>{% trans "Import" %}</h2> | ||
71 | <p>{% trans "Please execute the import script locally, it can take a very long time." %}</p> | ||
72 | <p>{% trans "More infos in the official doc:" %} <a href="http://doc.wallabag.org">wallabag.org</a></p> | ||
73 | <ul> | ||
74 | <li><a href="./?import&from=pocket">{% trans "import from Pocket" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCKET_FILE')) }}</li> | ||
75 | <li><a href="./?import&from=readability">{% trans "import from Readability" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('READABILITY_FILE')) }}</li> | ||
76 | <li><a href="./?import&from=instapaper">{% trans "import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li> | ||
77 | </ul> | ||
78 | |||
79 | <h2>{% trans "Export your poche datas" %}</h2> | ||
80 | <p><a href="./?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your poche datas." %}</p> | ||
81 | </div> | ||
82 | {% endblock %} \ No newline at end of file | ||
diff --git a/themes/courgette/css/.DS_Store b/themes/courgette/css/.DS_Store new file mode 100644 index 00000000..c788a093 --- /dev/null +++ b/themes/courgette/css/.DS_Store | |||
Binary files differ | |||
diff --git a/themes/courgette/css/font.css b/themes/courgette/css/font.css new file mode 100755 index 00000000..7c16cce4 --- /dev/null +++ b/themes/courgette/css/font.css | |||
@@ -0,0 +1,10 @@ | |||
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 | } \ No newline at end of file | ||
diff --git a/themes/courgette/css/knacss.css b/themes/courgette/css/knacss.css new file mode 100755 index 00000000..e69de29b --- /dev/null +++ b/themes/courgette/css/knacss.css | |||
diff --git a/themes/courgette/css/messages.css b/themes/courgette/css/messages.css new file mode 100755 index 00000000..fe6fbbe8 --- /dev/null +++ b/themes/courgette/css/messages.css | |||
@@ -0,0 +1,75 @@ | |||
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 new file mode 100755 index 00000000..9aefa779 --- /dev/null +++ b/themes/courgette/css/print.css | |||
@@ -0,0 +1,48 @@ | |||
1 | /* ### Layout ### */ | ||
2 | |||
3 | body { | ||
4 | font-family: Serif; | ||
5 | background-color: #fff; | ||
6 | } | ||
7 | |||
8 | @page { | ||
9 | margin: 1cm; | ||
10 | } | ||
11 | |||
12 | img { | ||
13 | max-width: 100% !important; | ||
14 | } | ||
15 | |||
16 | /* ### Content ### */ | ||
17 | |||
18 | /* Hide useless blocks */ | ||
19 | body > header, | ||
20 | #links, | ||
21 | #sort, | ||
22 | body > footer, | ||
23 | .top_link, | ||
24 | div.tools, | ||
25 | header div, | ||
26 | .messages, | ||
27 | .entrie + .results { | ||
28 | display: none !important; | ||
29 | } | ||
30 | |||
31 | article { | ||
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 */ | ||
41 | abbr[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 new file mode 100755 index 00000000..3377a75b --- /dev/null +++ b/themes/courgette/css/style-default.css | |||
@@ -0,0 +1,59 @@ | |||
1 | a.back span { | ||
2 | background-image: url('../img/default/left.png'); | ||
3 | } | ||
4 | |||
5 | a.top span { | ||
6 | background-image: url('../img/default/top.png'); | ||
7 | } | ||
8 | |||
9 | a.fav span, | ||
10 | a.fav-off span:hover { | ||
11 | background-image: url('../img/default/star-on.png'); | ||
12 | } | ||
13 | |||
14 | a.fav span:hover, | ||
15 | a.fav-off span { | ||
16 | background-image: url('../img/default/star-off.png'); | ||
17 | } | ||
18 | |||
19 | a.archive span, | ||
20 | a.archive-off span:hover { | ||
21 | background-image: url('../img/default/checkmark-on.png'); | ||
22 | } | ||
23 | |||
24 | a.archive span:hover, | ||
25 | a.archive-off span { | ||
26 | background-image: url('../img/default/checkmark-off.png'); | ||
27 | } | ||
28 | |||
29 | a.twitter span { | ||
30 | background-image: url('../img/default/twitter.png'); | ||
31 | } | ||
32 | |||
33 | a.shaarli span { | ||
34 | background-image: url('../img/default/shaarli.png'); | ||
35 | } | ||
36 | |||
37 | a.flattr span { | ||
38 | background-image: url('../img/default/flattr.png'); | ||
39 | } | ||
40 | |||
41 | a.email span { | ||
42 | background-image: url('../img/default/envelop.png'); | ||
43 | } | ||
44 | |||
45 | a.delete span { | ||
46 | background-image: url('../img/default/remove.png'); | ||
47 | } | ||
48 | |||
49 | a.link span { | ||
50 | background-image: url('../img/default/link.png'); | ||
51 | } | ||
52 | |||
53 | a.bad-display span { | ||
54 | background-image: url('../img/default/bad-display.png'); | ||
55 | } | ||
56 | |||
57 | a.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 new file mode 100755 index 00000000..2ba16b71 --- /dev/null +++ b/themes/courgette/css/style.css | |||
@@ -0,0 +1,620 @@ | |||
1 | * { | ||
2 | -webkit-box-sizing: border-box; | ||
3 | -moz-box-sizing: border-box; | ||
4 | box-sizing: border-box; | ||
5 | } | ||
6 | |||
7 | body { | ||
8 | margin: 10px; | ||
9 | font-family: 'Roboto',Verdana,Geneva,sans-serif; | ||
10 | font-size: 16px; | ||
11 | color: #000; | ||
12 | } | ||
13 | |||
14 | h1 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 | |||
25 | h1 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 | #menu:before { | ||
161 | content: "\e801"; | ||
162 | display: block; | ||
163 | text-indent: 0; | ||
164 | } | ||
165 | |||
166 | body > header { | ||
167 | position: fixed; | ||
168 | top: 0; | ||
169 | left: 1em; | ||
170 | z-index: 10; | ||
171 | } | ||
172 | |||
173 | #main { | ||
174 | padding:6em; | ||
175 | } | ||
176 | |||
177 | /* ========================================================================== | ||
178 | entrie | ||
179 | ========================================================================== */ | ||
180 | |||
181 | .entrie, #article { | ||
182 | width: 45em; | ||
183 | margin: auto; | ||
184 | position:relative; | ||
185 | padding: 0 0 1em 0; | ||
186 | margin-bottom: 1.5em; | ||
187 | } | ||
188 | |||
189 | #article a { | ||
190 | text-decoration: underline; | ||
191 | color:#000; | ||
192 | } | ||
193 | |||
194 | #article a:hover, #article a:focus { | ||
195 | text-decoration: none; | ||
196 | } | ||
197 | |||
198 | .entrie:after { | ||
199 | content:""; | ||
200 | position: absolute; | ||
201 | width: 100%; | ||
202 | height: 4px; | ||
203 | background: #000; | ||
204 | bottom:0; | ||
205 | left: -1em; | ||
206 | } | ||
207 | |||
208 | .entrie p { | ||
209 | padding:0 0 0 1.5em; | ||
210 | } | ||
211 | |||
212 | .entrie:before { | ||
213 | content:''; | ||
214 | position: absolute; | ||
215 | top: 0; | ||
216 | left: -1em; | ||
217 | width: 4px; | ||
218 | height: 100%; | ||
219 | background: #000; | ||
220 | } | ||
221 | |||
222 | .entrie h2:after { | ||
223 | content:""; | ||
224 | display: block; | ||
225 | width: 0; | ||
226 | height: 0; | ||
227 | border-color: #000; | ||
228 | border-width:7px; | ||
229 | border-color:transparent transparent transparent #000; | ||
230 | border-style: solid; | ||
231 | position: absolute; | ||
232 | top: 0.8em; | ||
233 | right: -0.58em; | ||
234 | } | ||
235 | |||
236 | .entrie h2 { | ||
237 | margin:0; | ||
238 | display: inline-block; | ||
239 | position: relative; | ||
240 | max-width: 78%; | ||
241 | } | ||
242 | |||
243 | .entrie h2 a { | ||
244 | color:#000; | ||
245 | text-decoration:none; | ||
246 | display: block; | ||
247 | background: #000; | ||
248 | padding: 0.4em 1em; | ||
249 | color:#FFF; | ||
250 | margin-left: -0.5em; | ||
251 | -webkit-transition: all 0.3s ease-out; | ||
252 | -moz-transition: all 0.3s ease-out; | ||
253 | transition: all 0.3s ease-out; | ||
254 | } | ||
255 | |||
256 | .entrie h2 a:hover, .entrie h2 a:focus { | ||
257 | padding:0.4em 1em 0.4em 2em; | ||
258 | } | ||
259 | |||
260 | ul { | ||
261 | padding:0; | ||
262 | margin:0; | ||
263 | } | ||
264 | |||
265 | ul li { | ||
266 | list-style: none; | ||
267 | } | ||
268 | |||
269 | .tools { | ||
270 | display: inline-block; | ||
271 | margin-left: 1em; | ||
272 | vertical-align: top; | ||
273 | padding-top: 1em; | ||
274 | } | ||
275 | |||
276 | .tools a span { | ||
277 | position:absolute; | ||
278 | top: -99999px; | ||
279 | } | ||
280 | |||
281 | .tools li { | ||
282 | display: inline-block; | ||
283 | } | ||
284 | |||
285 | .tools a { | ||
286 | display: block; | ||
287 | color:#FFF; | ||
288 | background: #000; | ||
289 | text-decoration:none; | ||
290 | height: 1.5em; | ||
291 | width: 1.5em; | ||
292 | text-align: center; | ||
293 | line-height:1.5em; | ||
294 | border-radius: 90px; | ||
295 | } | ||
296 | |||
297 | .tools a:hover, .tools a:focus { | ||
298 | background: #FFF; | ||
299 | color:#000; | ||
300 | } | ||
301 | |||
302 | .tools a:before { display: block; font-family: 'fontello'; } | ||
303 | |||
304 | |||
305 | .fav-off:before, .fav:before { content: '\e805'; } /* 'î …' */ | ||
306 | .archive-off:before, .archive:before { content: '\e804'; } /* 'î „' */ | ||
307 | .tools .archive, .tools .fav { | ||
308 | background: #FFF; | ||
309 | color:#000; | ||
310 | } | ||
311 | .link:before { content: '\e800'; } /* 'î €' */ | ||
312 | .delete:before { content: '\e803'; } /* 'î ƒ' */ | ||
313 | .reading-time:before { content: '\e802'; } /* 'î ‚' */ | ||
314 | |||
315 | #article_toolbar a:before { | ||
316 | display: block; | ||
317 | font-family: 'fontello'; | ||
318 | } | ||
319 | |||
320 | #article_toolbar a { | ||
321 | display: block; | ||
322 | color:#000; | ||
323 | background: #FFF; | ||
324 | text-decoration:none; | ||
325 | height: 1.5em; | ||
326 | width: 1.5em; | ||
327 | text-align: center; | ||
328 | line-height:1.5em; | ||
329 | border-radius: 90px; | ||
330 | padding: 0; | ||
331 | } | ||
332 | |||
333 | #article_toolbar a:hover, #article_toolbar a:focus { | ||
334 | background: #000; | ||
335 | color:#FFF; | ||
336 | } | ||
337 | |||
338 | #article_toolbar span { | ||
339 | position: absolute; | ||
340 | top: -99999px; | ||
341 | } | ||
342 | |||
343 | .email:before { content: '\e80a'; } /* 'î Š' */ | ||
344 | .icon-check:before { content: '\e804'; } /* 'î „' */ | ||
345 | .back:before { content: '\e806'; } /* 'î †' */ | ||
346 | .bad-display:before { content: '\e808'; } /* 'î ˆ' */ | ||
347 | .twitter:before { content: '\e807'; } /* 'î ‡' */ | ||
348 | |||
349 | #article_toolbar .flattrli { | ||
350 | display: none; | ||
351 | } | ||
352 | |||
353 | #article_toolbar li { | ||
354 | margin: 0 0 0 1em; | ||
355 | } | ||
356 | |||
357 | |||
358 | footer { | ||
359 | position: fixed; | ||
360 | bottom: 0; | ||
361 | width: 100%; | ||
362 | padding: 0 2%; | ||
363 | left: 0; | ||
364 | text-align:right; | ||
365 | font-size: 0.8em; | ||
366 | font-style: italic; | ||
367 | background: rgba(255,255,255,0.5); | ||
368 | } | ||
369 | |||
370 | footer a { | ||
371 | color:#000; | ||
372 | } | ||
373 | |||
374 | footer a:hover,footer a:focus { | ||
375 | text-decoration: none; | ||
376 | } | ||
377 | |||
378 | footer p:first-child { | ||
379 | float:left; | ||
380 | } | ||
381 | |||
382 | #loginForm fieldset { | ||
383 | border:5px solid #000; | ||
384 | padding: 1.5em; | ||
385 | } | ||
386 | |||
387 | fieldset { | ||
388 | border:0; | ||
389 | padding: 0; | ||
390 | } | ||
391 | |||
392 | #loginForm { | ||
393 | max-width: 25em; | ||
394 | margin: auto; | ||
395 | } | ||
396 | |||
397 | #loginForm .row { | ||
398 | margin-bottom: 0.5em; | ||
399 | } | ||
400 | |||
401 | form h2 { | ||
402 | margin-top: 0; | ||
403 | } | ||
404 | |||
405 | form label { | ||
406 | width: 40%; | ||
407 | display: inline-block; | ||
408 | } | ||
409 | |||
410 | form input[type="text"], form input[type="password"], form input[type='url'], form select { | ||
411 | border:1px solid #000; | ||
412 | padding:0.5em 1em; | ||
413 | } | ||
414 | |||
415 | @media screen and (-webkit-min-device-pixel-ratio:0){ | ||
416 | form select{ | ||
417 | -webkit-appearance: none; | ||
418 | background: url(../img/bg-select.png) no-repeat right center; | ||
419 | padding-right: 2.2em; | ||
420 | border-radius: 0; | ||
421 | } | ||
422 | } | ||
423 | |||
424 | form button, form input[type="submit"] { | ||
425 | background: #000; | ||
426 | color:#FFF; | ||
427 | border:0; | ||
428 | font-size:1em; | ||
429 | padding:0.5em 1em; | ||
430 | margin-top: 1em; | ||
431 | cursor: pointer; | ||
432 | } | ||
433 | |||
434 | form button:hover, form button:focus, form input[type="submit"]:hover, form input[type="submit"]:focus { | ||
435 | background: #FFF; | ||
436 | color: #000; | ||
437 | } | ||
438 | |||
439 | /* ========================================================================== | ||
440 | Config | ||
441 | ========================================================================== */ | ||
442 | |||
443 | #config { | ||
444 | max-width: 60%; | ||
445 | margin: auto; | ||
446 | } | ||
447 | |||
448 | #config a { | ||
449 | background: #000; | ||
450 | text-decoration: none; | ||
451 | color:#FFF; | ||
452 | padding: 0.2em 1em; | ||
453 | } | ||
454 | |||
455 | #config .special { | ||
456 | background: none; | ||
457 | padding:0; | ||
458 | color: #000; | ||
459 | } | ||
460 | |||
461 | #config a:hover, #config a:focus { | ||
462 | background: #FFF; | ||
463 | color:#000; | ||
464 | } | ||
465 | |||
466 | #config li { | ||
467 | margin-bottom: 1em; | ||
468 | } | ||
469 | |||
470 | #plainurl { | ||
471 | font-size: 1em; | ||
472 | } | ||
473 | |||
474 | #config label { | ||
475 | width: 20%; | ||
476 | } | ||
477 | |||
478 | .results { | ||
479 | max-width: 62.5%; | ||
480 | font-style:italic; | ||
481 | margin: 1em auto 2.5em; | ||
482 | } | ||
483 | |||
484 | #sort { | ||
485 | max-width: 62.5%; | ||
486 | margin: 0 auto -2.5em; | ||
487 | text-align: right; | ||
488 | border-bottom:1px dotted #000; | ||
489 | } | ||
490 | |||
491 | #sort li { | ||
492 | display: inline-block; | ||
493 | vertical-align: top; | ||
494 | position: relative; | ||
495 | top: -0.1em; | ||
496 | margin-left: 1em; | ||
497 | } | ||
498 | |||
499 | #sort li img { | ||
500 | display: none; | ||
501 | } | ||
502 | |||
503 | #sort a { | ||
504 | display: inline-block; | ||
505 | font-family: 'fontello'; | ||
506 | color:#000; | ||
507 | text-decoration: none; | ||
508 | } | ||
509 | |||
510 | #sort a:hover, #sort a:focus { | ||
511 | text-decoration: underline; | ||
512 | } | ||
513 | |||
514 | #sort a:before { | ||
515 | display: block; | ||
516 | } | ||
517 | |||
518 | #sort li a:first-child:before { | ||
519 | content: '\e809'; | ||
520 | } | ||
521 | |||
522 | #sort li a:first-child + a:before { | ||
523 | content: '\e80b'; | ||
524 | } | ||
525 | |||
526 | @media screen and (max-width: 860px) { | ||
527 | .entrie, #article { | ||
528 | width: 30em; | ||
529 | } | ||
530 | } | ||
531 | |||
532 | @media screen and (max-width: 650px) { | ||
533 | #menuContainer ul, #article_toolbar ul { | ||
534 | width: 120px; | ||
535 | height: 100%; | ||
536 | } | ||
537 | |||
538 | body > header { | ||
539 | position: static; | ||
540 | } | ||
541 | |||
542 | #main { | ||
543 | padding: 0 0.5em 6em; | ||
544 | } | ||
545 | |||
546 | #menu { | ||
547 | display: none; | ||
548 | } | ||
549 | |||
550 | #main:before { | ||
551 | content:none; | ||
552 | } | ||
553 | |||
554 | #menuContainer, #article_toolbar, #menuContainer ul, #article_toolbar ul { | ||
555 | position: static; | ||
556 | width: 100%; | ||
557 | height: auto; | ||
558 | } | ||
559 | |||
560 | #links li a, #article_toolbar a { | ||
561 | position: static; | ||
562 | color: #000; | ||
563 | } | ||
564 | |||
565 | #links li a { | ||
566 | padding: 1em; | ||
567 | min-width: 120px; | ||
568 | text-align: left; | ||
569 | } | ||
570 | |||
571 | #article_toolbar li { | ||
572 | margin-bottom: 1em; | ||
573 | margin-left: 0.5em; | ||
574 | } | ||
575 | |||
576 | } | ||
577 | |||
578 | @media screen and (max-width: 500px) { | ||
579 | .entrie, #article { | ||
580 | width: 17em; | ||
581 | } | ||
582 | .entrie h2 { | ||
583 | width: 100%; | ||
584 | max-width: none; | ||
585 | } | ||
586 | .entrie h2 a:hover, .entrie h2 a:focus { | ||
587 | padding-left: 1em; | ||
588 | background: #FFF; | ||
589 | color: #000; | ||
590 | } | ||
591 | .entrie h2:after { | ||
592 | content:none; | ||
593 | } | ||
594 | |||
595 | .messages { | ||
596 | width: 100%!important; | ||
597 | } | ||
598 | |||
599 | #sort { | ||
600 | margin: 3em auto 0; | ||
601 | max-width: none; | ||
602 | text-align: center; | ||
603 | } | ||
604 | #config { | ||
605 | margin: 7em auto 0; | ||
606 | max-width: none; | ||
607 | } | ||
608 | #config label { width: 100%; } | ||
609 | .results { | ||
610 | max-width: none; | ||
611 | margin-bottom: 1em; | ||
612 | } | ||
613 | |||
614 | footer p:first-child { | ||
615 | float: none; | ||
616 | } | ||
617 | footer { | ||
618 | position:static; | ||
619 | } | ||
620 | } | ||
diff --git a/themes/courgette/error.twig b/themes/courgette/error.twig new file mode 100755 index 00000000..4d4db1f3 --- /dev/null +++ b/themes/courgette/error.twig | |||
@@ -0,0 +1,6 @@ | |||
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/fontello.eot b/themes/courgette/font/fontello.eot new file mode 100644 index 00000000..3c5603dd --- /dev/null +++ b/themes/courgette/font/fontello.eot | |||
Binary files differ | |||
diff --git a/themes/courgette/font/fontello.svg b/themes/courgette/font/fontello.svg new file mode 100644 index 00000000..0e0118ed --- /dev/null +++ b/themes/courgette/font/fontello.svg | |||
@@ -0,0 +1,23 @@ | |||
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>Copyright (C) 2013 by original authors @ fontello.com</metadata> | ||
5 | <defs> | ||
6 | <font id="fontello" horiz-adv-x="1000" > | ||
7 | <font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" /> | ||
8 | <missing-glyph horiz-adv-x="1000" /> | ||
9 | <glyph glyph-name="mail" unicode="" d="m929 11v428q-18-20-39-37q-149-114-238-188q-28-24-46-38t-48-27t-57-13h-2q-26 0-57 13t-48 27t-46 38q-88 74-238 188q-21 17-39 37v-428q0-8 6-13t12-5h822q7 0 12 5t6 13z m0 586v14t-1 7t-1 7t-3 5t-5 4t-8 2h-822q-7 0-12-6t-6-12q0-94 82-159q108-85 224-177q4-2 20-16t25-21t25-18t28-15t24-5h2q11 0 24 5t28 15t25 18t25 21t20 16q116 92 224 177q30 24 56 65t26 73z m71 21v-607q0-37-26-63t-63-27h-822q-36 0-63 27t-26 63v607q0 37 26 63t63 26h822q37 0 63-26t26-63z" horiz-adv-x="1000" /> | ||
10 | <glyph glyph-name="up-open" unicode="" d="m0 174l352 352l148 148l148-148l352-352l-148-148l-352 351l-352-351z" horiz-adv-x="1000" /> | ||
11 | <glyph glyph-name="star" unicode="" d="m440 790l120-336l320 0l-262-196l94-348l-272 208l-272-208l94 348l-262 196l320 0z" horiz-adv-x="880" /> | ||
12 | <glyph glyph-name="check" unicode="" d="m249 0q-34 0-56 28l-180 236q-16 24-12 52t26 46t51 14t47-28l118-154l296 474q16 24 43 30t53-8q24-16 30-43t-8-53l-350-560q-20-32-56-32z" horiz-adv-x="667" /> | ||
13 | <glyph glyph-name="link" unicode="" d="m294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56q-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0q-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132q0-78-56-134l-158-158q-74-72-150-72q-62 0-112 50q-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64q0 38-28 62q-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z" horiz-adv-x="800" /> | ||
14 | <glyph glyph-name="reply" unicode="" d="m900 10q-86 152-208 197t-330 45l0-218l-362 334l362 322l0-192q90 0 168-27t131-70t96-95t69-104t44-95t24-69z" horiz-adv-x="900" /> | ||
15 | <glyph glyph-name="menu" unicode="" d="m857 100v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 25t25 11h785q15 0 26-11t10-25z m0 286v-72q0-14-10-25t-26-10h-785q-15 0-25 10t-11 25v72q0 14 11 25t25 10h785q15 0 26-10t10-25z m0 285v-71q0-15-10-25t-26-11h-785q-15 0-25 11t-11 25v71q0 15 11 26t25 10h785q15 0 26-10t10-26z" horiz-adv-x="857.1" /> | ||
16 | <glyph glyph-name="clock" unicode="" d="m460 810q190 0 325-135t135-325t-135-325t-325-135t-325 135t-135 325t135 325t325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244l150-150l-50-50l-170 170l0 274l70 0z" horiz-adv-x="920" /> | ||
17 | <glyph glyph-name="block" unicode="" d="m480 830q200 0 340-140t140-340q0-198-140-339t-340-141q-198 0-339 141t-141 339q0 200 141 340t339 140z m258-220z m-622-260q0-132 82-230l514 514q-100 82-232 82q-152 0-258-107t-106-259z m106-258z m258-106q152 0 259 107t107 257q0 130-82 232l-514-514q98-82 230-82z" horiz-adv-x="960" /> | ||
18 | <glyph glyph-name="twitter" unicode="" d="m920 636q-36-54-94-98l0-24q0-130-60-250t-186-203t-290-83q-160 0-290 84q14-2 46-2q132 0 234 80q-62 2-110 38t-66 94q10-4 34-4q26 0 50 6q-66 14-108 66t-42 120l0 2q36-20 84-24q-84 58-84 158q0 48 26 94q154-188 390-196q-6 18-6 42q0 78 55 133t135 55q82 0 136-58q60 12 120 44q-20-66-82-104q56 8 108 30z" horiz-adv-x="920" /> | ||
19 | <glyph glyph-name="down-open" unicode="" d="m0 526l148 148l352-351l352 351l148-148l-352-352l-148-148l-148 148z" horiz-adv-x="1000" /> | ||
20 | <glyph glyph-name="trash" unicode="" d="m50 458q122-70 330-70t330 70l-54-486q-2-14-35-36t-100-43t-141-21t-140 21t-100 43t-36 36z m488 300q94-18 158-55t64-71l0-10q0-58-112-99t-268-41t-268 41t-112 99l0 10q0 34 64 71t158 55l42 48q22 26 70 26l92 0q52 0 70-26z m-54-112l84 0q-92 110-104 126q-14 16-32 16l-102 0q-22 0-32-16l-106-126l84 0l64 66l82 0z" horiz-adv-x="760" /> | ||
21 | </font> | ||
22 | </defs> | ||
23 | </svg> \ No newline at end of file | ||
diff --git a/themes/courgette/font/fontello.ttf b/themes/courgette/font/fontello.ttf new file mode 100644 index 00000000..1967dfaa --- /dev/null +++ b/themes/courgette/font/fontello.ttf | |||
Binary files differ | |||
diff --git a/themes/courgette/font/fontello.woff b/themes/courgette/font/fontello.woff new file mode 100644 index 00000000..c62afa54 --- /dev/null +++ b/themes/courgette/font/fontello.woff | |||
Binary files differ | |||
diff --git a/themes/courgette/home.twig b/themes/courgette/home.twig new file mode 100755 index 00000000..1367ebe8 --- /dev/null +++ b/themes/courgette/home.twig | |||
@@ -0,0 +1,49 @@ | |||
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&view={{ view }}"><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&view={{ view }}"><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&view={{ view }}"><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&view={{ view }}"><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" %}</div> | ||
30 | {{ page_links | raw }} | ||
31 | </div> | ||
32 | {% endif %} | ||
33 | {% endblock %} | ||
34 | {% for entry in entries %} | ||
35 | <div id="entry-{{ entry.id|e }}" class="entrie"> | ||
36 | <h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> | ||
37 | <ul class="tools"> | ||
38 | <li><a title="{% trans "toggle mark as read" %}" class="tool {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li> | ||
39 | <li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li> | ||
40 | <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li> | ||
41 | <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> | ||
42 | <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> | ||
43 | </ul> | ||
44 | <p>{{ entry.content|striptags|slice(0, 300) }}...</p> | ||
45 | </div> | ||
46 | {% endfor %} | ||
47 | {% endif %} | ||
48 | {{ block('pager') }} | ||
49 | {% 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 new file mode 100755 index 00000000..557b479c --- /dev/null +++ b/themes/courgette/img/apple-touch-icon-144x144-precomposed.png | |||
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 new file mode 100755 index 00000000..e167d3a4 --- /dev/null +++ b/themes/courgette/img/apple-touch-icon-72x72-precomposed.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/apple-touch-icon.png b/themes/courgette/img/apple-touch-icon.png new file mode 100755 index 00000000..4d222fba --- /dev/null +++ b/themes/courgette/img/apple-touch-icon.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/bg-select.png b/themes/courgette/img/bg-select.png new file mode 100644 index 00000000..3a77d0eb --- /dev/null +++ b/themes/courgette/img/bg-select.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/backtotop.png b/themes/courgette/img/default/backtotop.png new file mode 100755 index 00000000..051238ef --- /dev/null +++ b/themes/courgette/img/default/backtotop.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/bad-display.png b/themes/courgette/img/default/bad-display.png new file mode 100755 index 00000000..6866799f --- /dev/null +++ b/themes/courgette/img/default/bad-display.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/checkmark-off.png b/themes/courgette/img/default/checkmark-off.png new file mode 100755 index 00000000..3db5a06d --- /dev/null +++ b/themes/courgette/img/default/checkmark-off.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/checkmark-on.png b/themes/courgette/img/default/checkmark-on.png new file mode 100755 index 00000000..cd3abb2c --- /dev/null +++ b/themes/courgette/img/default/checkmark-on.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/clock.png b/themes/courgette/img/default/clock.png new file mode 100755 index 00000000..6164e92b --- /dev/null +++ b/themes/courgette/img/default/clock.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/down.png b/themes/courgette/img/default/down.png new file mode 100755 index 00000000..b9d536a7 --- /dev/null +++ b/themes/courgette/img/default/down.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/envelop.png b/themes/courgette/img/default/envelop.png new file mode 100755 index 00000000..6be1c886 --- /dev/null +++ b/themes/courgette/img/default/envelop.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/flattr.png b/themes/courgette/img/default/flattr.png new file mode 100755 index 00000000..0404aaea --- /dev/null +++ b/themes/courgette/img/default/flattr.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/left.png b/themes/courgette/img/default/left.png new file mode 100755 index 00000000..a0a53631 --- /dev/null +++ b/themes/courgette/img/default/left.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/link.png b/themes/courgette/img/default/link.png new file mode 100755 index 00000000..db62819d --- /dev/null +++ b/themes/courgette/img/default/link.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/remove.png b/themes/courgette/img/default/remove.png new file mode 100755 index 00000000..f8ad56a3 --- /dev/null +++ b/themes/courgette/img/default/remove.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/shaarli.png b/themes/courgette/img/default/shaarli.png new file mode 100755 index 00000000..1eb30f60 --- /dev/null +++ b/themes/courgette/img/default/shaarli.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/star-off.png b/themes/courgette/img/default/star-off.png new file mode 100755 index 00000000..6a0133a7 --- /dev/null +++ b/themes/courgette/img/default/star-off.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/star-on.png b/themes/courgette/img/default/star-on.png new file mode 100755 index 00000000..a9f96eaa --- /dev/null +++ b/themes/courgette/img/default/star-on.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/top.png b/themes/courgette/img/default/top.png new file mode 100755 index 00000000..954a8c0a --- /dev/null +++ b/themes/courgette/img/default/top.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/default/twitter.png b/themes/courgette/img/default/twitter.png new file mode 100755 index 00000000..cfcfe419 --- /dev/null +++ b/themes/courgette/img/default/twitter.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/favicon.ico b/themes/courgette/img/favicon.ico new file mode 100755 index 00000000..0e9ff779 --- /dev/null +++ b/themes/courgette/img/favicon.ico | |||
Binary files differ | |||
diff --git a/themes/courgette/img/logo.png b/themes/courgette/img/logo.png new file mode 100755 index 00000000..5305c77d --- /dev/null +++ b/themes/courgette/img/logo.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/logo.svg b/themes/courgette/img/logo.svg new file mode 100644 index 00000000..865da440 --- /dev/null +++ b/themes/courgette/img/logo.svg | |||
@@ -0,0 +1,8 @@ | |||
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 new file mode 100755 index 00000000..731aa018 --- /dev/null +++ b/themes/courgette/img/messages/close.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/messages/cross.png b/themes/courgette/img/messages/cross.png new file mode 100755 index 00000000..1514d51a --- /dev/null +++ b/themes/courgette/img/messages/cross.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/messages/help.png b/themes/courgette/img/messages/help.png new file mode 100755 index 00000000..5c870176 --- /dev/null +++ b/themes/courgette/img/messages/help.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/messages/tick.png b/themes/courgette/img/messages/tick.png new file mode 100755 index 00000000..a9925a06 --- /dev/null +++ b/themes/courgette/img/messages/tick.png | |||
Binary files differ | |||
diff --git a/themes/courgette/img/messages/warning.png b/themes/courgette/img/messages/warning.png new file mode 100755 index 00000000..628cf2da --- /dev/null +++ b/themes/courgette/img/messages/warning.png | |||
Binary files differ | |||
diff --git a/themes/courgette/js/init.js b/themes/courgette/js/init.js new file mode 100755 index 00000000..dca83906 --- /dev/null +++ b/themes/courgette/js/init.js | |||
@@ -0,0 +1,6 @@ | |||
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/js/restoreScroll.js b/themes/courgette/js/restoreScroll.js new file mode 100755 index 00000000..331c9e19 --- /dev/null +++ b/themes/courgette/js/restoreScroll.js | |||
@@ -0,0 +1,25 @@ | |||
1 | function supportsLocalStorage() { | ||
2 | try { | ||
3 | return 'localStorage' in window && window['localStorage'] !== null; | ||
4 | } catch (e) { | ||
5 | return false; | ||
6 | } | ||
7 | } | ||
8 | |||
9 | function savePercent(id, percent) { | ||
10 | if (!supportsLocalStorage()) { return false; } | ||
11 | localStorage["poche.article." + id + ".percent"] = percent; | ||
12 | return true; | ||
13 | } | ||
14 | |||
15 | function 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/courgette/layout.twig b/themes/courgette/layout.twig new file mode 100755 index 00000000..57c2cc98 --- /dev/null +++ b/themes/courgette/layout.twig | |||
@@ -0,0 +1,32 @@ | |||
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 new file mode 100755 index 00000000..1fec0fc9 --- /dev/null +++ b/themes/courgette/login.twig | |||
@@ -0,0 +1,32 @@ | |||
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 new file mode 100755 index 00000000..44ee4b63 --- /dev/null +++ b/themes/courgette/screenshot.jpg | |||
Binary files differ | |||
diff --git a/themes/courgette/theme.ini b/themes/courgette/theme.ini new file mode 100644 index 00000000..996d171f --- /dev/null +++ b/themes/courgette/theme.ini | |||
@@ -0,0 +1,3 @@ | |||
1 | name = Courgette | ||
2 | description = Responsive black and white theme especially adapted to smartphones. | ||
3 | requirements[] = default | ||
diff --git a/themes/courgette/view.twig b/themes/courgette/view.twig new file mode 100755 index 00000000..e80829ef --- /dev/null +++ b/themes/courgette/view.twig | |||
@@ -0,0 +1,45 @@ | |||
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&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&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li> | ||
10 | <li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&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 }}&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 }}&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="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{% trans "this article appears wrong?" %}" class="tool bad-display"><span>{% trans "this article appears wrong?" %}</span></a></li> | ||
16 | </ul> | ||
17 | </div> | ||
18 | <div id="article"> | ||
19 | <header class="mbm"> | ||
20 | <h1>{{ entry.title|raw }}</h1> | ||
21 | </header> | ||
22 | <article> | ||
23 | {{ content | raw }} | ||
24 | </article> | ||
25 | </div> | ||
26 | <script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/restoreScroll.js"></script> | ||
27 | <script type="text/javascript"> | ||
28 | $(document).ready(function() { | ||
29 | |||
30 | $(window).scroll(function(e){ | ||
31 | var scrollTop = $(window).scrollTop(); | ||
32 | var docHeight = $(document).height(); | ||
33 | var scrollPercent = (scrollTop) / (docHeight); | ||
34 | var scrollPercentRounded = Math.round(scrollPercent*100)/100; | ||
35 | savePercent({{ entry.id|e }}, scrollPercentRounded); | ||
36 | }); | ||
37 | |||
38 | retrievePercent({{ entry.id|e }}); | ||
39 | |||
40 | $(window).resize(function(){ | ||
41 | retrievePercent({{ entry.id|e }}); | ||
42 | }); | ||
43 | }); | ||
44 | </script> | ||
45 | {% endblock %} \ No newline at end of file | ||