academic 0.4.0 → 0.4.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +71 -1
- data/_includes/calltoaction.html +14 -4
- data/_includes/contactlist.html +3 -1
- data/_includes/date.html +5 -5
- data/_includes/footer.html +17 -12
- data/_includes/head.html +22 -4
- data/_includes/header.html +8 -14
- data/_includes/i18n.html +13 -0
- data/_includes/icon-rss.html +2 -1
- data/_includes/lang_selector.html +41 -0
- data/_includes/last_modified_at.html +3 -2
- data/_includes/link.html +2 -0
- data/_includes/nav_menu.html +7 -3
- data/_includes/post-li.html +0 -1
- data/_includes/post-ul.html +12 -0
- data/_includes/sitetitle.html +19 -0
- data/_layouts/archive.html +3 -7
- data/_layouts/default.html +1 -1
- data/_layouts/home.html +8 -15
- data/_layouts/pagenotfound.html +1 -1
- data/_layouts/post.html +2 -2
- data/_sass/academic/_layout.scss +163 -2
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1b98e3240cbb368e4a3e2bc415ae7fbf8a8aa32
|
4
|
+
data.tar.gz: fe1e0fc52265bcc43416b340875a5359509f1393
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a378a6bee5b4580591f427b447195a3d7786156d009389c7f5c5dced3c30595c889dfa619fac41bcdc57c7fddbeb6fd5d2edcaad13949b737d4d98d4d603f32
|
7
|
+
data.tar.gz: 13ea3dbc4a36af78fc687f864a8fe7f723502578847f8a6741bee87df37e0c6c0286a6e54030f60f756c502dcffec503e5fb7851acc75a3dbc340b91bb6db4a3
|
data/README.md
CHANGED
@@ -17,7 +17,6 @@ Check out my [personal website](https://gaalcaras.com) or my [blog](https://soci
|
|
17
17
|
|
18
18
|
Table of contents:
|
19
19
|
|
20
|
-
|
21
20
|
* [Features](#features)
|
22
21
|
* [Installation](#installation)
|
23
22
|
* [Usage](#usage)
|
@@ -26,6 +25,8 @@ Table of contents:
|
|
26
25
|
* [General settings](#general-settings)
|
27
26
|
* [Author](#author)
|
28
27
|
* [Navigation menu](#navigation-menu)
|
28
|
+
* [Multilingual and i18n support](#multilingual-and-i18n-support)
|
29
|
+
* [Plugins](#plugins)
|
29
30
|
* [Layouts](#layouts)
|
30
31
|
* [Post layout](#post-layout)
|
31
32
|
* [Page layout](#page-layout)
|
@@ -44,6 +45,10 @@ Table of contents:
|
|
44
45
|
+ High contrast colors and backgrounds as much as possible ([read more](http://contrastrebellion.com/), [and more](https://backchannel.com/how-the-web-became-unreadable-a781ddc711b6))
|
45
46
|
+ Comfortable line length (around 66 characters, [read more](http://webtypography.net/2.1.2))
|
46
47
|
+ Attention to vertical rhythm, law of proximity and so on ([read more](http://typographyhandbook.com/))
|
48
|
+
+ If you'd like a **multilingual** website, Academic has basic **i18n** support (no plugin required):
|
49
|
+
+ English and French translations are included in the theme
|
50
|
+
+ Lang selector to change languages automatically added in header and footer
|
51
|
+
+ Basic SEO support for multilingual pages
|
47
52
|
+ Add an **image thumbnail** to illustrate your posts. It's displayed both on the post list and on the post itself.
|
48
53
|
+ Add a **summary** to your posts. It's used in the posts lists and on the post itself.
|
49
54
|
+ **MathJax** support (loaded only on posts layouts)
|
@@ -173,6 +178,71 @@ nav_ext_links:
|
|
173
178
|
- name: Link 2
|
174
179
|
url: http://wallabag.org/
|
175
180
|
```
|
181
|
+
|
182
|
+
#### Multilingual and i18n support
|
183
|
+
|
184
|
+
Academic works perfectly well as a single language website.
|
185
|
+
But if you need to translate part of your pages or posts, it also supports basic i18n and multilingual features.
|
186
|
+
The theme includes French and English versions as of now.
|
187
|
+
|
188
|
+
To enable multilingual mode, just add the following to your `_config.yml`:
|
189
|
+
|
190
|
+
```yaml
|
191
|
+
langs: ["fr", "en"]
|
192
|
+
defaults:
|
193
|
+
- scope:
|
194
|
+
path: ""
|
195
|
+
values:
|
196
|
+
lang: "fr"
|
197
|
+
```
|
198
|
+
|
199
|
+
The `langs` variable should be an array containing your languages.
|
200
|
+
Important: the first item should be your "default" language (ie the language that you translate posts from or/and that has the largest content available).
|
201
|
+
|
202
|
+
Don't forget to define a default lang for your whole website.
|
203
|
+
|
204
|
+
If you want to translate some of the variables in your `_config.yml`, you can just do this:
|
205
|
+
|
206
|
+
```yaml
|
207
|
+
title:
|
208
|
+
fr: "Nom du site en Français"
|
209
|
+
en: "English name of the website"
|
210
|
+
```
|
211
|
+
|
212
|
+
Translating posts and pages is very easy.
|
213
|
+
Let's say my default lang is `fr` and I want to translate `_posts/billet-au-hasard.md` to English.
|
214
|
+
|
215
|
+
```yaml
|
216
|
+
---
|
217
|
+
layout: post
|
218
|
+
title: "Billet au hasard"
|
219
|
+
permalink: /fr/billet-au-hasard/
|
220
|
+
date: 2017-02-14 15:32:29 +0100
|
221
|
+
---
|
222
|
+
```
|
223
|
+
|
224
|
+
First, I'll create a new file named `_posts/billet-au-hasard.en.md`.
|
225
|
+
Both files have to share the *exact same name before the first extension* (`.md` or `.en.md`) in order to signal to Academic that these posts are translations of eachother.
|
226
|
+
|
227
|
+
Then, in `_posts/billet-au-hasard.en.md`, add the lang and change the permalink in your frontmatter:
|
228
|
+
|
229
|
+
```yaml
|
230
|
+
layout: post
|
231
|
+
title: "Random post"
|
232
|
+
permalink: /en/random-post
|
233
|
+
date: 2017-02-14 15:32:29 +0100
|
234
|
+
lang: en
|
235
|
+
```
|
236
|
+
|
237
|
+
That's it!
|
238
|
+
Academic will handle the lang selector and will add `<link />` to the `<head>` section to improve SEO.
|
239
|
+
|
240
|
+
Note that you have to handle the permalinks manually.
|
241
|
+
I recommend that you use the subdirectory `/lang/` naming convention everywhere, as exemplified above.
|
242
|
+
You should at least take care of your homepage URL.
|
243
|
+
|
244
|
+
If you'd like Academic to support more languages, please contribute by adding the appropriate translations in `/_data/i18n_academic.yml`.
|
245
|
+
|
176
246
|
#### Plugins
|
177
247
|
|
178
248
|
Academic is compatible with the `jekyll-last-modified-at` plugin ([repo](https://github.com/gjtorikian/jekyll-last-modified-at)). If installed, the last modified date will be (discretely) displayed in the posts lists and in the post layout.
|
data/_includes/calltoaction.html
CHANGED
@@ -1,9 +1,19 @@
|
|
1
1
|
<div class="colored-block">
|
2
|
-
{%
|
3
|
-
{
|
2
|
+
{% assign cta = site.data.academic_i18n.cta %}
|
3
|
+
{% if page.layout == "home" or page.layout == "archive" %}
|
4
|
+
{{ cta.like[page.lang] | escape }}
|
5
|
+
{% else if page.layout == "post" %}
|
6
|
+
{{ cta.post[page.lang] | escape }}
|
7
|
+
{% else %}
|
4
8
|
{% endif %}
|
5
|
-
|
9
|
+
|
10
|
+
{{ cta.rss[page.lang][0] }}
|
11
|
+
<a href="/feed.xml">{{ cta.rss[page.lang][1]}}</a>
|
12
|
+
{{ cat.rss[page.lang][2]}}
|
13
|
+
|
6
14
|
{% if site.twitter_username %}
|
7
|
-
|
15
|
+
{{ cta.twitter[page.lang][0] }}
|
16
|
+
<a href="https://twitter.com/{{ site.twitter_username }}">@{{ site.twitter_username }}</a>
|
17
|
+
{{ cta.twitter[page.lang][1] }}
|
8
18
|
{% endif %}.
|
9
19
|
</div>
|
data/_includes/contactlist.html
CHANGED
data/_includes/date.html
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
{% if
|
2
|
-
{% assign
|
3
|
-
{% assign date = include.date | date:
|
1
|
+
{% if page.lang != "en" %}
|
2
|
+
{% assign dateformat = site.data.academic_i18n.dateformat[page.lang] %}
|
3
|
+
{% assign date = include.date | date: dateformat %}
|
4
4
|
{% assign eng_month = include.date | date: "%B" %}
|
5
5
|
{% assign num_month = include.date | date: "%m" | minus: 1 %}
|
6
6
|
|
7
|
-
{{ date | replace:eng_month, months[num_month] }}
|
7
|
+
{{ date | replace:eng_month, site.data.academic_i18n.months[page.lang][num_month] }}
|
8
8
|
{% else %}
|
9
|
-
{{ include.date | date:
|
9
|
+
{{ include.date | date: site.data.academic_i18n.dateformat[page.lang] }}
|
10
10
|
{% endif %}
|
data/_includes/footer.html
CHANGED
@@ -1,17 +1,15 @@
|
|
1
|
+
{% assign i18n = site.data.academic_i18n %}
|
1
2
|
<footer class="site-footer">
|
2
3
|
|
3
4
|
<div class="wrapper">
|
4
5
|
|
5
6
|
<ul class="footer-col footer-col-1">
|
6
7
|
<li>
|
7
|
-
|
8
|
-
<a href="{{ "/" | relative_url}}">{{ site.title_html }}</a>
|
9
|
-
{% else %}
|
10
|
-
<a href="{{ "/" | relative_url}}"><b>{{ site.title }}</b></a>
|
11
|
-
{% endif %}
|
8
|
+
{% include sitetitle.html %}
|
12
9
|
|
13
10
|
{% if site.author_display %}
|
14
|
-
<span class="author">
|
11
|
+
<span class="author">
|
12
|
+
{{ i18n.by[page.lang] }}
|
15
13
|
{% if site.author_website %}
|
16
14
|
<a target="_blank" href="{{ site.author_website }}">{{ site.author }}</a>
|
17
15
|
{% else %}
|
@@ -22,7 +20,7 @@
|
|
22
20
|
{% endif %}
|
23
21
|
|
24
22
|
{% if site.description %}
|
25
|
-
<li>{
|
23
|
+
<li>{% include i18n.html value=site.description %}</li>
|
26
24
|
{% endif %}
|
27
25
|
|
28
26
|
</ul>
|
@@ -37,6 +35,11 @@
|
|
37
35
|
{% endif %}
|
38
36
|
|
39
37
|
<div class="bottom">
|
38
|
+
|
39
|
+
{% if site.langs %}
|
40
|
+
{% include lang_selector.html %}
|
41
|
+
{% endif %}
|
42
|
+
|
40
43
|
<div class="tech">
|
41
44
|
<a target="_blank" href="https://jekyllrb.com/">Jekyll</a> + <a target="_blank" href="https://github.com/gaalcaras/academic">Academic</a>
|
42
45
|
{% if site.repo %}
|
@@ -46,18 +49,20 @@
|
|
46
49
|
|
47
50
|
<div class="legal">
|
48
51
|
{% if site.cc == null %}©{% endif %}
|
49
|
-
|
50
|
-
<a href="{{ "/" | relative_url}}">{{ site.title | escape }}</a>
|
51
|
-
{% endif %}
|
52
|
+
{% include sitetitle.html %}
|
52
53
|
{% assign oldest_post = site.posts reversed | first %}
|
53
54
|
{% assign oldest = oldest_post.date | date: "%Y" %}
|
54
55
|
{% assign newest = site.time | date: "%Y" %}
|
55
56
|
({% if oldest != newest %}{{ oldest }}-{% endif %}{{ newest }})
|
56
57
|
{% if site.author and site.author_display %}
|
57
|
-
|
58
|
+
{{ i18n.legal[page.lang][0] }}
|
59
|
+
<a target="_blank" href="{{ site.author_website }}">{{ site.author }}</a>
|
58
60
|
{% endif %}
|
59
61
|
{% if site.cc %}
|
60
|
-
|
62
|
+
{{ i18n.legal[page.lang][1] }}
|
63
|
+
<a target="_blank" rel="license" href="https://creativecommons.org/licenses/{{ site.cc }}/4.0/" class="cc-licence">
|
64
|
+
CC {{ site.cc }}
|
65
|
+
</a>
|
61
66
|
{% endif %}
|
62
67
|
</div>
|
63
68
|
</div>
|
data/_includes/head.html
CHANGED
@@ -3,13 +3,31 @@
|
|
3
3
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
4
4
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
5
|
|
6
|
-
<title>{
|
7
|
-
<meta name="description" content="{
|
6
|
+
<title>{{ page.title }} | {% include i18n.html value=site.title %}</title>
|
7
|
+
<meta name="description" content="{% include i18n.html value=site.description %}">
|
8
8
|
|
9
9
|
<link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}">
|
10
10
|
<link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
|
11
|
-
<link rel="alternate" type="application/rss+xml" title="{
|
12
|
-
|
11
|
+
<link rel="alternate" type="application/rss+xml" title="{% include i18n.html value=site.title %}" href="{{ "/feed.xml" | relative_url }}">
|
12
|
+
|
13
|
+
{% assign pagename = page.path | split:"." | first %}
|
14
|
+
|
15
|
+
{% if page.layout == "post" %}
|
16
|
+
{% assign i18n_posts = site.posts | where_exp:"p","p.path contains pagename" %}
|
17
|
+
{% else %}
|
18
|
+
{% assign i18n_posts = site.pages | where_exp:"p","p.path contains pagename" %}
|
19
|
+
{% endif %}
|
20
|
+
|
21
|
+
{% for t_lang in site.langs %}
|
22
|
+
{% unless t_lang == page.lang %}
|
23
|
+
{% assign t = i18n_posts | where:"lang",t_lang | first %}
|
24
|
+
|
25
|
+
{% if t %}
|
26
|
+
<link rel="alternate" hreflang="{{ t_lang }}" href="{{ site.url }}{{ t.url }}" />
|
27
|
+
{% endif %}
|
28
|
+
{% endunless %}
|
29
|
+
{% endfor %}
|
30
|
+
|
13
31
|
{% if site.piwik %}
|
14
32
|
{% include piwik.html %}
|
15
33
|
{% endif %}
|
data/_includes/header.html
CHANGED
@@ -2,21 +2,10 @@
|
|
2
2
|
|
3
3
|
<div class="wrapper">
|
4
4
|
|
5
|
+
<div class="site-header-float">
|
6
|
+
{% include sitetitle.html class=true %}
|
5
7
|
{% if site.pitch %}
|
6
|
-
{%
|
7
|
-
{% else %}
|
8
|
-
{% assign title_class = "site-title" %}
|
9
|
-
{% endif %}
|
10
|
-
|
11
|
-
{% if site.title_html %}
|
12
|
-
{% assign title = site.title_html %}
|
13
|
-
{% else %}
|
14
|
-
{% assign title = site.title escape %}
|
15
|
-
{% endif %}
|
16
|
-
|
17
|
-
<a class="{{ title_class }}" href="{{ "/" | relative_url}}">{{ title }}</a>
|
18
|
-
{% if site.pitch %}
|
19
|
-
<span class="site-pitch">{{ site.pitch | espace }}</span>
|
8
|
+
<span class="site-pitch">{% include i18n.html value=site.pitch %}</span>
|
20
9
|
{% endif %}
|
21
10
|
|
22
11
|
{% if site.pitch == null %}
|
@@ -34,6 +23,11 @@
|
|
34
23
|
</div>
|
35
24
|
</nav>
|
36
25
|
{% endif %}
|
26
|
+
</div>
|
27
|
+
|
28
|
+
{% if site.langs %}
|
29
|
+
{% include lang_selector.html %}
|
30
|
+
{% endif %}
|
37
31
|
|
38
32
|
</div>
|
39
33
|
|
data/_includes/i18n.html
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
{% assign val = include.value %}
|
2
|
+
|
3
|
+
{% if val[page.lang] %}
|
4
|
+
{% assign v = val[page.lang] %}
|
5
|
+
{% else %}
|
6
|
+
{% assign v = val %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{% if include.escape %}
|
10
|
+
{{ v | escape | strip_newlines }}
|
11
|
+
{% else %}
|
12
|
+
{{ v | strip_newlines }}
|
13
|
+
{% endif %}
|
data/_includes/icon-rss.html
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
{% assign pagename = page.path | split:"." | first %}
|
2
|
+
{% assign versions = site.data.academic_i18n.versions %}
|
3
|
+
{% assign no_versions = site.data.academic_i18n.no_versions %}
|
4
|
+
|
5
|
+
{% if page.layout == "post" %}
|
6
|
+
{% assign i18n_posts = site.posts | where_exp:"p","p.path contains pagename" %}
|
7
|
+
{% else %}
|
8
|
+
{% assign i18n_posts = site.pages | where_exp:"p","p.path contains pagename" %}
|
9
|
+
{% endif %}
|
10
|
+
|
11
|
+
<ul class="lang-selector">
|
12
|
+
<span class="lang-intro">
|
13
|
+
{{ site.data.academic_i18n.langs_avail[page.lang] }}
|
14
|
+
</span>
|
15
|
+
<li class="lang">
|
16
|
+
<a href="{{ page.url }}" title="{{ versions[page.lang] }} {{ page.title }}">
|
17
|
+
{{ page.lang }}
|
18
|
+
</a>
|
19
|
+
</li>
|
20
|
+
|
21
|
+
{% for t_lang in site.langs %}
|
22
|
+
{% unless t_lang == page.lang %}
|
23
|
+
{% assign t = i18n_posts | where:"lang",t_lang | first %}
|
24
|
+
<li class="lang">
|
25
|
+
{% if t %}
|
26
|
+
<a href="{{ t.url }}" rel="alternate" title="{{ versions[t_lang] }} {{ t.title }}">
|
27
|
+
{% else %}
|
28
|
+
<span class="no-version" title="{{ no_versions[t_lang] }}">
|
29
|
+
{% endif %}
|
30
|
+
|
31
|
+
{{ t_lang }}
|
32
|
+
|
33
|
+
{% if t %}
|
34
|
+
</a>
|
35
|
+
{% else %}
|
36
|
+
</span>
|
37
|
+
{% endif %}
|
38
|
+
</li>
|
39
|
+
{% endunless %}
|
40
|
+
{% endfor %}
|
41
|
+
</ul>
|
@@ -10,11 +10,12 @@
|
|
10
10
|
<span class="last-update">·
|
11
11
|
|
12
12
|
{% if site.repo %}
|
13
|
-
<a title="
|
13
|
+
<a title="{{ site.data.academic_i18n.revhistory[page.lang] }}"
|
14
14
|
href="{{site.repo}}/commits/master/{{object.path}}">
|
15
15
|
{% endif %}
|
16
16
|
|
17
|
-
|
17
|
+
{{ site.data.academic_i18n.lastupdated[page.lang] }}
|
18
|
+
{% include date.html date=object.last_modified_at %}
|
18
19
|
|
19
20
|
{% if site.repo %}
|
20
21
|
</a>
|
data/_includes/link.html
ADDED
data/_includes/nav_menu.html
CHANGED
@@ -1,12 +1,16 @@
|
|
1
|
-
<span class="nav-list-title">
|
1
|
+
<span class="nav-list-title">{{ site.data.academic_i18n.menu[page.lang] }}</span>
|
2
2
|
<ul class="nav-list {{ include.class }}">
|
3
3
|
{% for link in site.nav_ext_links %}
|
4
4
|
{% if link.url and link.name %}
|
5
|
-
<li><a target="_blank" class="page-link" href="{{ link.url }}">
|
5
|
+
<li><a target="_blank" class="page-link" href="{{ link.url }}">
|
6
|
+
{% include i18n.html value=link.name %}
|
7
|
+
</a></li>
|
6
8
|
{% endif %}
|
7
9
|
{% endfor %}
|
8
10
|
|
9
|
-
{%
|
11
|
+
{% assign pages = site.pages | where:"lang",page.lang %}
|
12
|
+
|
13
|
+
{% for my_page in pages %}
|
10
14
|
{% unless my_page.invisible %}
|
11
15
|
{% if my_page.title %}
|
12
16
|
<li><a class="page-link" href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a></li>
|
data/_includes/post-li.html
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
{% if include.limit %}
|
2
|
+
{% assign limit = site.nb_posts_page %}
|
3
|
+
{% else %}
|
4
|
+
{% assign limit = 1000000 %}
|
5
|
+
{% endif %}
|
6
|
+
|
7
|
+
<ul class="post-list">
|
8
|
+
{% assign posts = site.posts | where:"lang",page.lang %}
|
9
|
+
{% for post in posts limit:limit %}
|
10
|
+
{% include post-li.html %}
|
11
|
+
{% endfor %}
|
12
|
+
</ul>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{% if include.class %}
|
2
|
+
{% if site.pitch %}
|
3
|
+
{% assign title_class = "site-title with-pitch" %}
|
4
|
+
{% else %}
|
5
|
+
{% assign title_class = "site-title" %}
|
6
|
+
{% endif %}
|
7
|
+
{% else %}
|
8
|
+
{% assign title_class = "" %}
|
9
|
+
{% endif %}
|
10
|
+
|
11
|
+
{% capture title %}
|
12
|
+
{% if site.title_html %}
|
13
|
+
{% include i18n.html value=site.title_html escape=false %}
|
14
|
+
{% else %}
|
15
|
+
{% include i18n.html value=site.title %}
|
16
|
+
{% endif %}
|
17
|
+
{% endcapture %}
|
18
|
+
|
19
|
+
<a class="{{ title_class }}" href="{% include link.html path="index" %}">{{ title }}</a>
|
data/_layouts/archive.html
CHANGED
@@ -4,17 +4,13 @@ layout: default
|
|
4
4
|
|
5
5
|
<div class="home">
|
6
6
|
<div class="colored-block">
|
7
|
-
|
7
|
+
{{ site.data.academic_i18n.archive[page.lang] }}
|
8
8
|
</div>
|
9
9
|
|
10
10
|
{{ content }}
|
11
11
|
|
12
|
-
|
13
|
-
{% for post in site.posts %}
|
14
|
-
{% include post-li.html %}
|
15
|
-
{% endfor %}
|
16
|
-
</ul>
|
12
|
+
{% include post-ul.html %}
|
17
13
|
|
18
|
-
{% include calltoaction.html
|
14
|
+
{% include calltoaction.html %}
|
19
15
|
|
20
16
|
</div>
|
data/_layouts/default.html
CHANGED
data/_layouts/home.html
CHANGED
@@ -9,29 +9,22 @@ layout: default
|
|
9
9
|
{% endif %}
|
10
10
|
|
11
11
|
<div class="{{ div_class }}">
|
12
|
-
{%
|
13
|
-
<p>{
|
14
|
-
{%
|
12
|
+
{% unless site.pitch %}
|
13
|
+
<p>{% include i18n.html value=site.description %}</p>
|
14
|
+
{% endunless %}
|
15
15
|
|
16
16
|
{{ content }}
|
17
17
|
|
18
|
-
|
19
|
-
{% for post in site.posts limit:site.nb_posts_page %}
|
20
|
-
{% include post-li.html %}
|
21
|
-
{% endfor %}
|
22
|
-
</ul>
|
18
|
+
{% include post-ul.html limit=true %}
|
23
19
|
|
24
|
-
{% include calltoaction.html
|
20
|
+
{% include calltoaction.html %}
|
25
21
|
|
26
22
|
{% assign nb_posts = site.posts | size %}
|
27
|
-
{% if site.archive_permalink %}
|
28
|
-
{% assign archive_link = site.archive_permalink %}
|
29
|
-
{% else %}
|
30
|
-
{% assign archive_link = "/archive" %}
|
31
|
-
{% endif %}
|
32
23
|
|
33
24
|
{% if nb_posts > site.nb_posts_page %}
|
34
|
-
<div class="archive">
|
25
|
+
<div class="archive">
|
26
|
+
{{ site.data.academic_i18n.all_posts[page.lang][0] }}
|
27
|
+
<a href="{% include link.html path="archive" %}">{{ site.data.academic_i18n.all_posts[page.lang][1] }}</a>.</div>
|
35
28
|
{% endif %}
|
36
29
|
|
37
30
|
</div>
|
data/_layouts/pagenotfound.html
CHANGED
@@ -4,7 +4,7 @@ layout: default
|
|
4
4
|
|
5
5
|
<div class="msg-404">
|
6
6
|
<div class="title">404</div>
|
7
|
-
<div class="description">
|
7
|
+
<div class="description">{{ site.data.academic_i18n.notfound[page.lang] }}</div>
|
8
8
|
</div>
|
9
9
|
|
10
10
|
{{ page.content }}
|
data/_layouts/post.html
CHANGED
@@ -30,7 +30,7 @@ layout: default
|
|
30
30
|
{{ content }}
|
31
31
|
</div>
|
32
32
|
|
33
|
-
{% include calltoaction.html
|
33
|
+
{% include calltoaction.html %}
|
34
34
|
|
35
35
|
{% if site.shortbio %}
|
36
36
|
<div class="post-author">
|
@@ -43,7 +43,7 @@ layout: default
|
|
43
43
|
<li class="user-name">
|
44
44
|
{{ site.author }}
|
45
45
|
</li>
|
46
|
-
<li class="user-shortbio">{
|
46
|
+
<li class="user-shortbio">{% include i18n.html value=site.shortbio %}</li>
|
47
47
|
</ul>
|
48
48
|
</div>
|
49
49
|
{% endif %}
|
data/_sass/academic/_layout.scss
CHANGED
@@ -4,10 +4,127 @@
|
|
4
4
|
.site-header {
|
5
5
|
border-top: 5px solid $grey-color;
|
6
6
|
border-bottom: 1px solid $grey-color-light;
|
7
|
-
|
7
|
+
|
8
|
+
@include media-query($on-laptop) {
|
9
|
+
min-height: 100px;
|
10
|
+
}
|
8
11
|
|
9
12
|
// Positioning context for the mobile navigation icon
|
10
13
|
position: relative;
|
14
|
+
|
15
|
+
.site-header-float {
|
16
|
+
min-height: 60px;
|
17
|
+
}
|
18
|
+
|
19
|
+
.lang-selector {
|
20
|
+
position: absolute;
|
21
|
+
z-index: 900;
|
22
|
+
top: 0px;
|
23
|
+
right: 0px;
|
24
|
+
width: 30px;
|
25
|
+
text-align: center;
|
26
|
+
margin-right: 10px;
|
27
|
+
padding: 10px;
|
28
|
+
|
29
|
+
.lang-intro {
|
30
|
+
display: none;
|
31
|
+
}
|
32
|
+
|
33
|
+
.lang {
|
34
|
+
font-variant: small-caps;
|
35
|
+
text-transform: capitalize;
|
36
|
+
list-style: none;
|
37
|
+
line-height: 40px;
|
38
|
+
|
39
|
+
&:nth-child(n+3) {
|
40
|
+
display: none;
|
41
|
+
padding: 10px 0 10px 0;
|
42
|
+
}
|
43
|
+
|
44
|
+
&:nth-child(2) {
|
45
|
+
padding-bottom: 10px;
|
46
|
+
}
|
47
|
+
|
48
|
+
a {
|
49
|
+
color: $grey-color-light;
|
50
|
+
}
|
51
|
+
|
52
|
+
}
|
53
|
+
|
54
|
+
&:hover {
|
55
|
+
padding-bottom: 0px;
|
56
|
+
background: $grey-color;
|
57
|
+
|
58
|
+
.lang:first-child {
|
59
|
+
padding-bottom: 10px;
|
60
|
+
}
|
61
|
+
|
62
|
+
.lang a {
|
63
|
+
color: $brand-color;
|
64
|
+
|
65
|
+
&:hover {
|
66
|
+
text-decoration: none;
|
67
|
+
color: $grey-color-light;
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
.lang:nth-child(n+3) {
|
72
|
+
border-top: 1px solid $grey-color-light;
|
73
|
+
display: block;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
@include media-query($on-laptop) {
|
78
|
+
position: relative;
|
79
|
+
left: 0;
|
80
|
+
width: auto;
|
81
|
+
clear: both;
|
82
|
+
margin: 0 -$spacing-unit/2 0 -$spacing-unit/2;
|
83
|
+
padding: 5px 5px 5px $spacing-unit/2;
|
84
|
+
background: $grey-color-lighter;
|
85
|
+
text-align: left;
|
86
|
+
@include size(small);
|
87
|
+
|
88
|
+
.lang-intro {
|
89
|
+
display: inline-block;
|
90
|
+
}
|
91
|
+
|
92
|
+
.lang:nth-child(n+1) {
|
93
|
+
padding: 5px 5px 5px 0;
|
94
|
+
line-height: normal;
|
95
|
+
display: inline-block;
|
96
|
+
|
97
|
+
a {
|
98
|
+
color: $grey-color-dark;
|
99
|
+
|
100
|
+
&:hover {
|
101
|
+
text-decoration: underline
|
102
|
+
}
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
.lang:nth-child(n+3):before {
|
107
|
+
content: "| ";
|
108
|
+
}
|
109
|
+
|
110
|
+
&:hover {
|
111
|
+
background: $grey-color-lighter;
|
112
|
+
padding: 5px 5px 5px $spacing-unit/2;
|
113
|
+
|
114
|
+
.lang:nth-child(n+1) {
|
115
|
+
padding: 5px 5px 5px 0;
|
116
|
+
display: inline-block;
|
117
|
+
border: none;
|
118
|
+
|
119
|
+
a { color: $grey-color-dark; }
|
120
|
+
}
|
121
|
+
}
|
122
|
+
|
123
|
+
@include media-query($on-palm) {
|
124
|
+
margin-top: 0px;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
}
|
11
128
|
}
|
12
129
|
|
13
130
|
.site-title {
|
@@ -17,7 +134,6 @@
|
|
17
134
|
line-height: 55px;
|
18
135
|
letter-spacing: -1px;
|
19
136
|
margin-bottom: -5px;
|
20
|
-
float: left;
|
21
137
|
|
22
138
|
&,
|
23
139
|
&:visited {
|
@@ -68,6 +184,7 @@
|
|
68
184
|
.site-nav {
|
69
185
|
float: right;
|
70
186
|
line-height: 60px;
|
187
|
+
z-index: 1000;
|
71
188
|
|
72
189
|
.menu-icon {
|
73
190
|
display: none;
|
@@ -237,6 +354,10 @@
|
|
237
354
|
a .username:hover {
|
238
355
|
text-decoration: underline;
|
239
356
|
}
|
357
|
+
|
358
|
+
@include media-query($on-palm) {
|
359
|
+
margin-bottom: $spacing-unit / 2;
|
360
|
+
}
|
240
361
|
}
|
241
362
|
|
242
363
|
.bottom {
|
@@ -248,6 +369,10 @@
|
|
248
369
|
margin-top: $spacing-unit;
|
249
370
|
margin-bottom: $spacing-unit;
|
250
371
|
|
372
|
+
@include media-query($on-palm) {
|
373
|
+
margin-top: 0px;
|
374
|
+
}
|
375
|
+
|
251
376
|
a {
|
252
377
|
color: $grey-color-light;
|
253
378
|
}
|
@@ -256,6 +381,38 @@
|
|
256
381
|
text-transform: uppercase;
|
257
382
|
}
|
258
383
|
|
384
|
+
.lang-selector {
|
385
|
+
display: inline-block;
|
386
|
+
list-style: none;
|
387
|
+
color: $grey-color;
|
388
|
+
margin: $spacing-unit / 4 0 0 0;
|
389
|
+
padding: 10px;
|
390
|
+
|
391
|
+
@include media-query($on-palm) {
|
392
|
+
text-align: left;
|
393
|
+
padding-left: 0px;
|
394
|
+
margin: 0px 0px $spacing-unit/2 0px;
|
395
|
+
|
396
|
+
.lang-intro {
|
397
|
+
font-weight: bold;
|
398
|
+
}
|
399
|
+
}
|
400
|
+
|
401
|
+
.lang {
|
402
|
+
display: inline-block;
|
403
|
+
text-transform: lowercase;
|
404
|
+
|
405
|
+
a {
|
406
|
+
color: $grey-color;
|
407
|
+
}
|
408
|
+
|
409
|
+
&:nth-child(n+3) {
|
410
|
+
&:before {
|
411
|
+
content:"|"
|
412
|
+
}
|
413
|
+
}
|
414
|
+
}
|
415
|
+
}
|
259
416
|
}
|
260
417
|
|
261
418
|
}
|
@@ -607,3 +764,7 @@
|
|
607
764
|
font-family: $base-font-family;
|
608
765
|
}
|
609
766
|
}
|
767
|
+
|
768
|
+
.no-version {
|
769
|
+
cursor: default;
|
770
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: academic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- gaalcaras
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- _includes/footer.html
|
68
68
|
- _includes/head.html
|
69
69
|
- _includes/header.html
|
70
|
+
- _includes/i18n.html
|
70
71
|
- _includes/icon-email.html
|
71
72
|
- _includes/icon-email.svg
|
72
73
|
- _includes/icon-file.html
|
@@ -83,10 +84,14 @@ files:
|
|
83
84
|
- _includes/icon-twitter.svg
|
84
85
|
- _includes/icon-website.html
|
85
86
|
- _includes/icon-website.svg
|
87
|
+
- _includes/lang_selector.html
|
86
88
|
- _includes/last_modified_at.html
|
89
|
+
- _includes/link.html
|
87
90
|
- _includes/nav_menu.html
|
88
91
|
- _includes/piwik.html
|
89
92
|
- _includes/post-li.html
|
93
|
+
- _includes/post-ul.html
|
94
|
+
- _includes/sitetitle.html
|
90
95
|
- _layouts/about.html
|
91
96
|
- _layouts/archive.html
|
92
97
|
- _layouts/default.html
|