kacademic 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +338 -0
  4. data/_data/academic_i18n.yml +61 -0
  5. data/_includes/_i18n/date.html +11 -0
  6. data/_includes/_i18n/i18n.html +17 -0
  7. data/_includes/_i18n/lang_selector.html +42 -0
  8. data/_includes/_i18n/last_modified_at.html +29 -0
  9. data/_includes/_i18n/link.html +10 -0
  10. data/_includes/_i18n/sitetitle.html +19 -0
  11. data/_includes/_icons/Spotify-Icon-Black-Logo.wine.svg +1 -0
  12. data/_includes/_icons/email.html +1 -0
  13. data/_includes/_icons/email.svg +1 -0
  14. data/_includes/_icons/file.html +11 -0
  15. data/_includes/_icons/file.svg +1 -0
  16. data/_includes/_icons/github.html +1 -0
  17. data/_includes/_icons/github.svg +1 -0
  18. data/_includes/_icons/keybase.html +1 -0
  19. data/_includes/_icons/keybase.svg +1 -0
  20. data/_includes/_icons/linkedin.html +1 -0
  21. data/_includes/_icons/linkedin.svg +1 -0
  22. data/_includes/_icons/rss.html +7 -0
  23. data/_includes/_icons/rss.svg +5 -0
  24. data/_includes/_icons/spotify.html +1 -0
  25. data/_includes/_icons/spotify.svg +2 -0
  26. data/_includes/_icons/website.html +2 -0
  27. data/_includes/_icons/website.svg +6 -0
  28. data/_includes/calltoaction.html +19 -0
  29. data/_includes/contactlist.html +34 -0
  30. data/_includes/footer.html +80 -0
  31. data/_includes/head.html +77 -0
  32. data/_includes/header.html +35 -0
  33. data/_includes/image.html +9 -0
  34. data/_includes/nav_menu.html +26 -0
  35. data/_includes/piwik.html +15 -0
  36. data/_includes/post-li.html +19 -0
  37. data/_includes/post-ul.html +19 -0
  38. data/_includes/sitemap-url.html +30 -0
  39. data/_layouts/about.html +46 -0
  40. data/_layouts/archive.html +17 -0
  41. data/_layouts/default.html +24 -0
  42. data/_layouts/home.html +31 -0
  43. data/_layouts/page.html +7 -0
  44. data/_layouts/pagenotfound.html +11 -0
  45. data/_layouts/post.html +51 -0
  46. data/_layouts/sitemap.html +5 -0
  47. data/_sass/.DS_Store +0 -0
  48. data/_sass/academic/_base.scss +347 -0
  49. data/_sass/academic/_layout.scss +797 -0
  50. data/_sass/academic/_syntax-highlighting.scss +61 -0
  51. data/_sass/academic.scss +124 -0
  52. data/assets/main.scss +46 -0
  53. data/assets/opensans/OpenSans-Bold.ttf +0 -0
  54. data/assets/opensans/OpenSans-Italic.ttf +0 -0
  55. data/assets/opensans/OpenSans-Regular.ttf +0 -0
  56. metadata +153 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c636ba8d709de41a71ba5dc274902f4f31fd079f7c5c5a0b5e2c7b9b3752310e
4
+ data.tar.gz: d41159b9cf790f4a0cc2c50b0de0e3cad727d0a2510d6cb7450720f2ebdc03e0
5
+ SHA512:
6
+ metadata.gz: dfe879b2f5ea626e0513fdb5be33be903f912753aa48316a87925123e0398c92e861c33da89179991440f3c588fd4929712fddf55c90bea0bb7d1865e2887805
7
+ data.tar.gz: 0c34c4dc9f624ede43d7e38dc8ba9aa402ab949bc9f4419fb4d9af88ddc17ef12197660f9b47eba7e15dba5a3afd1eb6a665cf79f4bf723b6cb3d5c660baacbd
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 batlab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,338 @@
1
+ # academic
2
+
3
+ Academic is a [Jekyll](http://jekyllrb.com/) theme with a focus on simplicity, typography and flexibility.
4
+ I originally designed it for my personal blog during my PhD thesis.
5
+
6
+ Check out my [personal website](https://gaalcaras.com) or my [blog](https://sociologs.com) to get a better feel for the Academic theme.
7
+
8
+ ![Academic screenshot](screenshot.png)
9
+
10
+ **Simplicity**: both in design and configuration, Academic aims to let the writer and its readers focus on the content.
11
+ Almost all of the theme configuration happens in the `_config.yml` file.
12
+
13
+ **Typography**: the goal of Academic is to let the author write very long and detailed posts, while being kind to its readers' eyes.
14
+
15
+ **Flexibility**: Academic can be used to generate different layouts while keeping the same look and feel.
16
+ All features require you to *opt in*, which means that you can either use a very lean `_config.yml` or a very detailed one if you want to use more features.
17
+
18
+ ---
19
+
20
+ Table of contents:
21
+
22
+
23
+ * [Features](#features)
24
+ * [Installation](#installation)
25
+ * [Usage](#usage)
26
+ * [Change the brand color](#change-the-brand-color)
27
+ * [Setup your `_config.yml` file](#setup-your-_config-yml-file)
28
+ * [General settings](#general-settings)
29
+ * [Author](#author)
30
+ * [Navigation menu](#navigation-menu)
31
+ * [Multilingual and i18n support](#multilingual-and-i18n-support)
32
+ * [Plugins](#plugins)
33
+ * [Layouts](#layouts)
34
+ * [Post layout](#post-layout)
35
+ * [Page layout](#page-layout)
36
+ * [About layout](#about-layout)
37
+ * [Archive layout](#archive-layout)
38
+ * [404 layout](#404-layout)
39
+ * [Sitemap layout](#sitemap-layout)
40
+ * [Contributing](#contributing)
41
+ * [Release log](#release-log)
42
+ * [License](#license)
43
+
44
+ ## Features
45
+
46
+ + **Responsive design** on every page
47
+ + Designed with **typography best practices** (and my own tastes) in mind:
48
+ + Simple but elegant fonts, with modular scale
49
+ + 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))
50
+ + Comfortable line length (around 66 characters, [read more](http://webtypography.net/2.1.2))
51
+ + Attention to vertical rhythm, law of proximity and so on ([read more](http://typographyhandbook.com/))
52
+ + If you'd like a **multilingual** website, Academic has basic **i18n** support (no plugin required):
53
+ + *Supported languages* : English, French
54
+ + Lang selector to change languages automatically added in header and footer
55
+ + Basic SEO support for multilingual pages (sitemap and `<head>`)
56
+ + Posts layout allows you to:
57
+ + Add an **image thumbnail** and a **summary**
58
+ + Use mathematical notations with **MathJax** (loaded only on posts)
59
+ + **Tables and footnotes** styled by default (with the `redcarpet` markdown engine)
60
+ + Add your name and a shortbio at the end of each post
61
+ + Easily add a "call to action" (RSS feed, Twitter, etc.) at the end of each post and on your homepage
62
+ + **Add a Creative Commons license** to your website directly from your `_config.yml` file
63
+ + **Sitemap** and **404 page** layout
64
+ + Piwik tracking
65
+ + **About page** layout:
66
+ + Responsive two-columns layout
67
+ + Just fill out your usernames for Twitter, Github, LinkedIn, Keybase ; contact email or personal website ; link to your curriculum vitae.
68
+ + Academic automatically loads your Github profile picture.
69
+ + Choose between a **navigation menu** at the top or a **short pitch** for your blog
70
+ + Navigation menu:
71
+ + Hide pages from the navigation menu
72
+ + Add external links in the menu from the `_config.yml` file
73
+
74
+ ## Installation
75
+
76
+ Add this line to your Jekyll site's Gemfile:
77
+
78
+ ```ruby
79
+ gem "academic"
80
+ ```
81
+
82
+ And add this line to your Jekyll site's `_config.yml`:
83
+
84
+ ```yaml
85
+ theme: academic
86
+ ```
87
+
88
+ And then execute:
89
+
90
+ ```
91
+ $ bundle
92
+ ```
93
+
94
+ Or install it yourself as:
95
+
96
+ ```
97
+ $ gem install academic
98
+ ```
99
+
100
+ Then add the `jekyll-data` plugin to your `Gemfile` ([see also](https://github.com/ashmaroli/jekyll-data#installation)):
101
+
102
+ ```ruby
103
+ group :jekyll_plugins do
104
+ gem 'jekyll-data'
105
+ end
106
+ ```
107
+
108
+ I suggest you install and use `redcarpet` to generate your markdown ([read more](http://jekyllrb.com/docs/configuration/#redcarpet)).
109
+
110
+ ## Usage
111
+
112
+ ### Change the brand color
113
+
114
+ Academic uses 4 shades of grey (very dark grey for the main content, ligther greys to lessen the emphasis on some elements) and a single "brand" color.
115
+
116
+ By default, the brand color is `#d33682` (purple). If it's not to your taste, you can easily change it by overriding the `$brand-color` variable in `/assets/styles.scss`.
117
+
118
+ ```scss
119
+ $brand-color: red;
120
+ ```
121
+
122
+ ### Setup your `_config.yml` file
123
+
124
+ #### General settings
125
+
126
+ `title_html`: [optional] you can style the title of your website with html elements.
127
+
128
+ Example:
129
+
130
+ ```html
131
+ title_html: "<b>hello</b>world"
132
+ ```
133
+
134
+ `pitch`: [optional] a small sentence or motto to quickly describe your blog. If no pitch is detected, Academic will fill the top bar with a navigation menu. If you want to display a short pitch in the top bar, Academic will put thput the navigation menu in the footer. Please note that `pitch` is only used in the top bar ; it is different from the `description` field (used in the footer and the meta tags for search engines).
135
+
136
+ `description`: [recommended] short description for search engines. It's displayed in the footer of every page. Not to be confused with `pitch`.
137
+
138
+ `cc`: [optional] choose among the [Creative Commons](https://creativecommons.org/licenses/) licenses (v4). Accepted values are : `by`, `by-sa`, `by-nd`, `by-nc`, `by-nc-sa`, `by-nc-nd`. Defining the `cc` variable will add a small sentence in the footer. If no value is given, a small copyright is added instead.
139
+
140
+ `nb_posts_page`: [optional] number of posts to display on the homepage. By default, all posts are listed. Note that you should create a page with the archive layout.
141
+
142
+ `archive_permalink`: [optional] permalink of the archive page. Set to `"/archive"` by default.
143
+
144
+ `repo`: [optional] link to your website repo. If defined, it's added in the footer. Nothing is displayed otherwise.
145
+
146
+ `piwik`: [optional]
147
+
148
+ + `url`: [mandatory] URL of your Piwik Instance without a trailing slash (like `mywebsite.com/piwik`)
149
+ + `site_id`: [mandatory] The ID of your website in your Piwik instance
150
+
151
+ #### Author
152
+
153
+ `email`: [optional] add email address in about layout.
154
+
155
+ `curriculum`: [optional]
156
+
157
+ + `name`: [optional] text of the link. Default : Curriculum Vitae.
158
+ + `url`: [mandatory] url of the curriculum file.
159
+
160
+ `shortbio`: [optional] describe yourself in a sentence or two. If `shortbio` is defined, a small element is added at the end of the post to introduce the author to the readers.
161
+
162
+ `author_display`: [optional] if `true`, the author's name (and `author_website`) is added in the footer. `false` by default.
163
+
164
+ `author_website`: [optional] url to the external website of the author. If `author_website` exists, it is added in the about layout and in the footer (if `author_display` is `true`).
165
+
166
+ `twitter_username`: [optional] your Twitter username. If it exists, your account will be linked in the "call to action" boxes (homepage and posts), in the footer and on the about page.
167
+
168
+ `github_username`: [optional] your Github username. If it exists, your account will be linked in the footer and on the about page.
169
+
170
+ `keybase_username`: [optional] your Keybase username. If it exists, your account will be linked on the about page.
171
+
172
+ `linkedin_username`: [optional] your LinkedIn username. If it exists, your account will be linked on the about page.
173
+
174
+ #### Navigation menu
175
+
176
+ `nav_ext_links`: [optional] you can choose to add external links in the top bar. Each item has two attributes:
177
+
178
+ + `name`: [mandatory] text for the link
179
+ + `url`: [mandatory] url
180
+
181
+ Example:
182
+
183
+ ```yaml
184
+ nav_ext_links:
185
+ - name: Link 1
186
+ url: http://jupiterbroadcasting.com/
187
+ - name: Link 2
188
+ url: http://wallabag.org/
189
+ ```
190
+
191
+ #### Multilingual and i18n support
192
+
193
+ Academic works perfectly well as a single language website.
194
+ By default, Academic is in English.
195
+ You can easily switch to another supported language :
196
+
197
+ ```yaml
198
+ langs: ["fr"]
199
+ ```
200
+
201
+ If you need to translate part of your pages or posts, Academic also supports basic i18n and multilingual features.
202
+
203
+ To enable multilingual mode, just add the following to your `_config.yml`:
204
+
205
+ ```yaml
206
+ langs: ["fr", "en"]
207
+ defaults:
208
+ - scope:
209
+ path: ""
210
+ values:
211
+ lang: "fr"
212
+ ```
213
+
214
+ The `langs` variable should be an array containing your languages.
215
+ 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).
216
+ The double quotes around the language *do* matter.
217
+
218
+ Don't forget to define a default lang for your whole website.
219
+
220
+ If you want to translate some of the variables in your `_config.yml`, you can just do this:
221
+
222
+ ```yaml
223
+ title:
224
+ fr: "Nom du site en Français"
225
+ en: "English name of the website"
226
+ ```
227
+
228
+ Translating posts and pages is very easy.
229
+ Let's say my default lang is `fr` and I want to translate `_posts/billet-au-hasard.md` to English.
230
+
231
+ ```yaml
232
+ ---
233
+ layout: post
234
+ title: "Billet au hasard"
235
+ permalink: /fr/billet-au-hasard/
236
+ date: 2017-02-14 15:32:29 +0100
237
+ ---
238
+ ```
239
+
240
+ First, I'll create a new file named `_posts/billet-au-hasard.en.md`.
241
+ 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.
242
+
243
+ Then, in `_posts/billet-au-hasard.en.md`, add the lang and change the permalink in your frontmatter:
244
+
245
+ ```yaml
246
+ layout: post
247
+ title: "Random post"
248
+ permalink: /en/random-post
249
+ date: 2017-02-14 15:32:29 +0100
250
+ lang: en
251
+ ```
252
+
253
+ That's it!
254
+ Academic will handle the lang selector and will add `<link />` to the `<head>` section to improve SEO.
255
+
256
+ Note that you have to handle the permalinks manually.
257
+ I recommend that you use the subdirectory `/lang/` naming convention everywhere, as exemplified above.
258
+ You should at least take care of your homepage URL.
259
+
260
+ If you'd like Academic to support more languages, please contribute by adding the appropriate translations in `/_data/i18n_academic.yml`.
261
+
262
+ #### Plugins
263
+
264
+ 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.
265
+
266
+ If you specified a Github `repo`, the last modified date will point to the revision history of the file.
267
+
268
+ ### Layouts
269
+
270
+ #### Post layout
271
+
272
+ In the yaml header, you can add some tags to help Academic.
273
+
274
+ `summary`: [optional] a short text or abstract. Used in the posts lists and on the post page.
275
+
276
+ `thumbnail`: [optional] relative path to image or absolute url to an image that describes your post. Used in the posts lists and on the post page.
277
+
278
+ #### Page layout
279
+
280
+ In the yaml header, you can add some tags to help Academic.
281
+
282
+ `invisible`: [optional] if `true`, then this page will not be listed in the navigation menu.
283
+
284
+ #### About layout
285
+
286
+ Will automatically put the content of the page on the right column. The left column will automatically be filled with the author info provided in the `_config.yml`.
287
+
288
+ #### Archive layout
289
+
290
+ Create a `archive.md` page, choose the "archive" layout. You don't need to write anything in this file, all posts published will be listed in reverse chronological order.
291
+
292
+ #### 404 layout
293
+
294
+ Create a `404.md` page, set the layout:
295
+
296
+ ```
297
+ layout: pagenotfound
298
+ ```
299
+
300
+ The content of the page will be used in the 404 page.
301
+
302
+ #### Sitemap layout
303
+
304
+ Create a `sitemap.xml` page, set the layout:
305
+
306
+ ```
307
+ layout: sitemap
308
+ ```
309
+
310
+ You now have a sitemap you can feed to the search engines.
311
+
312
+ ### Includes
313
+
314
+ Sometimes you need to use figures and images in your posts, with detailed captions and maybe even the source of the image.
315
+ The `image.html` allows you to do just that without all the HTML markup.
316
+
317
+ ```
318
+ {% include image.html src="/assets/img/zotero-archives-numeriques/screencast.gif"
319
+ caption="Notre solution en action"
320
+ desc="Screencast de capture Zotero"
321
+ source="Google"
322
+ href="http://google.com"%}
323
+ ```
324
+
325
+ ## Contributing
326
+
327
+ Bug reports and pull requests are welcome on GitHub at https://github.com/gaalcaras/academic. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
328
+
329
+ ## Release log
330
+
331
+ + 0.1.3 [2016-12]: design refinements (page and about layouts)
332
+ + 0.1.2 [2016-12]: bug fixes (footer, assets and gemfile cleaning) + `repo` var
333
+ + 0.1.1 [2016-12]: bug fixes (404 page layout, footer, posts list)
334
+ + 0.1.0 [2016-12]: first release of the theme.
335
+
336
+ ## License
337
+
338
+ The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -0,0 +1,61 @@
1
+ months:
2
+ fr: ["janvier", "février", "mars", "avril", "mai", "juin",
3
+ "juillet", "août", "septembre", "octobre", "novembre", "décembre"]
4
+ dateformat:
5
+ fr: "%e %B %Y"
6
+ en: "%b %-d, %Y"
7
+ lastupdated:
8
+ fr: "mis à jour le"
9
+ en: "last updated on"
10
+ revhistory:
11
+ fr: "Voir l'historique des révisions de ce billet"
12
+ en: "See the revision history for this post"
13
+ cta:
14
+ like:
15
+ fr: "Le blog vous intéresse ?"
16
+ en: "Do you enjoy the blog?"
17
+ post:
18
+ fr: "Le post vous a plu ?"
19
+ en: "Did you like that post?"
20
+ rss:
21
+ fr: ["Vous pouvez vous abonner au", "fil RSS", "du blog"]
22
+ en: ["You can suscribe to the", "RSS feed", ""]
23
+ spotify:
24
+ fr: ["ou suivre", "sur Spotify"]
25
+ en: ["or follow", "on Spotify"]
26
+ links:
27
+ fr: "Liens :"
28
+ en: "Links :"
29
+ by:
30
+ fr: "par"
31
+ en: "by"
32
+ legal:
33
+ fr: ["par", "est placé sous licence"]
34
+ en: ["by", "is available under the license"]
35
+ feed:
36
+ fr: "flux RSS"
37
+ en: "RSS feed"
38
+ menu:
39
+ fr: "Menu :"
40
+ en: "Menu:"
41
+ archive:
42
+ fr: "Bienvenue dans les archives de ce blog. Vous trouverez ci-dessous la liste complète des billets publiés, ordonnés du plus récent au plus ancien."
43
+ en: "Welcome to the archives of this blog. Below, you will find all published posts listed in reverse chronological order."
44
+ all_posts:
45
+ fr: ["Voir", "tous les articles publiés"]
46
+ en: ["See", "all published posts"]
47
+ notfound:
48
+ fr: "Cette page a probablement déménagé vers une nouvelle adresse..."
49
+ en: "I guess this page has moved somewhere else..."
50
+ versions:
51
+ fr: "Version française :"
52
+ en: "English version:"
53
+ no_versions:
54
+ fr: "La version française de cette page n'existe pas encore :("
55
+ en: "The English version of this page doesn't exist yet :("
56
+ langs_avail:
57
+ fr: "Langues :"
58
+ en: "Languages:"
59
+ cv:
60
+ fr: "Curriculum Vitae"
61
+ en: "Curriculum"
@@ -0,0 +1,11 @@
1
+ {% assign plang = page.lang | default: site.langs[0] | default: "en" %}
2
+ {% if plang != "en" %}
3
+ {% assign dateformat = site.data.academic_i18n.dateformat[plang] %}
4
+ {% assign date = include.date | date: dateformat %}
5
+ {% assign eng_month = include.date | date: "%B" %}
6
+ {% assign num_month = include.date | date: "%m" | minus: 1 %}
7
+
8
+ {{ date | replace:eng_month, site.data.academic_i18n.months[plang][num_month] }}
9
+ {% else %}
10
+ {{ include.date | date: site.data.academic_i18n.dateformat[plang] }}
11
+ {% endif %}
@@ -0,0 +1,17 @@
1
+ {% capture text %}
2
+ {% assign plang = page.lang | default: site.langs[0] | default: "en" %}
3
+ {% assign val = include.value %}
4
+
5
+ {% if val[plang] %}
6
+ {% assign v = val[plang] %}
7
+ {% else %}
8
+ {% assign v = val %}
9
+ {% endif %}
10
+
11
+ {% if include.escape %}
12
+ {{ v | escape | strip_newlines }}
13
+ {% else %}
14
+ {{ v | strip_newlines }}
15
+ {% endif %}
16
+ {% endcapture %}
17
+ {{ text | strip_newlines }}
@@ -0,0 +1,42 @@
1
+ {% assign plang = page.lang | default: site.langs[0] | default: "en" %}
2
+ {% assign pagename = page.path | split:"." | first %}
3
+ {% assign versions = site.data.academic_i18n.versions %}
4
+ {% assign no_versions = site.data.academic_i18n.no_versions %}
5
+
6
+ {% if page.layout == "post" %}
7
+ {% assign i18n_posts = site.posts | where_exp:"p","p.path contains pagename" %}
8
+ {% else %}
9
+ {% assign i18n_posts = site.pages | where_exp:"p","p.path contains pagename" %}
10
+ {% endif %}
11
+
12
+ <ul class="lang-selector">
13
+ <span class="lang-intro">
14
+ {{ site.data.academic_i18n.langs_avail[plang] }}
15
+ </span>
16
+ <li class="lang">
17
+ <a href="{{ page.url }}" title="{{ versions[plang] }} {{ page.title }}">
18
+ {{ plang }}
19
+ </a>
20
+ </li>
21
+
22
+ {% for t_lang in site.langs %}
23
+ {% unless t_lang == plang %}
24
+ {% assign t = i18n_posts | where:"lang",t_lang | first %}
25
+ <li class="lang">
26
+ {% if t %}
27
+ <a href="{{ t.url }}" rel="alternate" title="{{ versions[t_lang] }} {{ t.title }}">
28
+ {% else %}
29
+ <span class="no-version" title="{{ no_versions[t_lang] }}">
30
+ {% endif %}
31
+
32
+ {{ t_lang }}
33
+
34
+ {% if t %}
35
+ </a>
36
+ {% else %}
37
+ </span>
38
+ {% endif %}
39
+ </li>
40
+ {% endunless %}
41
+ {% endfor %}
42
+ </ul>
@@ -0,0 +1,29 @@
1
+ {% assign plang = page.lang | default: site.langs[0] | default: "en" %}
2
+ {% assign object = include.object %}
3
+
4
+ {% if object.last_modified_at %}
5
+
6
+
7
+ {% assign last = object.last_modified_at | date: '%Y%m%d' %}
8
+ {% assign created = object.date | date: '%Y%m%d' %}
9
+
10
+ {% if last != created %}
11
+ <span class="last-update">·
12
+
13
+ {% if site.repo %}
14
+ <a title="{{ site.data.academic_i18n.revhistory[plang] }}"
15
+ href="{{site.repo}}/commits/master/{{object.path}}">
16
+ {% endif %}
17
+
18
+ {{ site.data.academic_i18n.lastupdated[plang] }}
19
+ {% include _i18n/date.html date=object.last_modified_at %}
20
+
21
+ {% if site.repo %}
22
+ </a>
23
+ {% endif %}
24
+
25
+ </span>
26
+ {% endif %}
27
+
28
+
29
+ {% endif %}
@@ -0,0 +1,10 @@
1
+ {% assign plang = page.lang | default: site.langs[0] | default: "en" %}
2
+ {% assign nblangs = site.langs | size %}
3
+ {% assign objects = site.pages | where_exp:"p","p.path contains include.path" %}
4
+
5
+ {% if nblangs > 1 %}
6
+ {% assign object = objects | where:"lang",plang | first %}
7
+ {% else %}
8
+ {% assign object = objects | first %}
9
+ {% endif %}
10
+ {{ object.url }}
@@ -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/i18n.html value=site.title_html escape=false %}
14
+ {% else %}
15
+ {% include _i18n/i18n.html value=site.title %}
16
+ {% endif %}
17
+ {% endcapture %}
18
+
19
+ <a class="{{ title_class }}" href="{% include _i18n/link.html path="index" %}">{{ title }}</a>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="800" width="1200" viewBox="-33.4974 -55.829 290.3108 334.974"><path d="M177.707 98.987c-35.992-21.375-95.36-23.34-129.719-12.912-5.519 1.674-11.353-1.44-13.024-6.958-1.672-5.521 1.439-11.352 6.96-13.029 39.443-11.972 105.008-9.66 146.443 14.936 4.964 2.947 6.59 9.356 3.649 14.31-2.944 4.963-9.359 6.6-14.31 3.653m-1.178 31.658c-2.525 4.098-7.883 5.383-11.975 2.867-30.005-18.444-75.762-23.788-111.262-13.012-4.603 1.39-9.466-1.204-10.864-5.8a8.717 8.717 0 015.805-10.856c40.553-12.307 90.968-6.347 125.432 14.833 4.092 2.52 5.38 7.88 2.864 11.968m-13.663 30.404a6.954 6.954 0 01-9.569 2.316c-26.22-16.025-59.223-19.644-98.09-10.766a6.955 6.955 0 01-8.331-5.232 6.95 6.95 0 015.233-8.334c42.533-9.722 79.017-5.538 108.448 12.446a6.96 6.96 0 012.31 9.57M111.656 0C49.992 0 0 49.99 0 111.656c0 61.672 49.992 111.66 111.657 111.66 61.668 0 111.659-49.988 111.659-111.66C223.316 49.991 173.326 0 111.657 0" fill="#191414"/></svg>
@@ -0,0 +1 @@
1
+ <a href="mailto:{{site.email}}" title="Email"><span class="icon icon--email">{% include _icons/email.svg %}</span><span class="username">contact</span></span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" width="16px" height="16px"><path fill="#828282" d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
@@ -0,0 +1,11 @@
1
+ {% assign plang = page.lang | default: site.langs[0] | default: "en" %}
2
+ <a href="{% include _i18n/i18n.html value=include.curriculum.url %}" title="Curriculum Vitae"><span class="icon icon--cv">{% include _icons/file.svg %}</span>
3
+ <span class="username">
4
+ {% if include.curriculum.name %}
5
+ {% include _i18n/i18n.html value=include.curriculum.name %}
6
+ {% else %}
7
+ {{ site.data.academic_i18n.cv[plang] }}
8
+ {% endif %}
9
+ </span>
10
+ </a>
11
+
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" width="16px" height="16px"><path fill="#828282" d="M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"/></svg>
@@ -0,0 +1 @@
1
+ <a target="_blank" href="https://github.com/{{ include.username }}" title="Github"><span class="icon icon--github">{% include _icons/github.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 16 16" width="16px" height="16px"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
@@ -0,0 +1 @@
1
+ <a target="_blank" href="https://keybase.io/{{ include.username }}" title="Keybase"><span class="icon icon--keybase">{% include _icons/keybase.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" width="16px" height="16px"><path fill="#828282" d="M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></svg>
@@ -0,0 +1 @@
1
+ <a target="_blank" href="https://www.linkedin.com/in/{{ include.username }}" title="LinkedIn"><span class="icon icon--linkedin">{% include _icons/linkedin.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" width="16px" height="16px"><path fill="#828282" d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg>
@@ -0,0 +1,7 @@
1
+ {% assign plang = page.lang | default: site.langs[0] | default: "en" %}
2
+ <a href="/feed.xml" title="RSS"><span class="icon icon--feed">{% include _icons/rss.svg %}</span>
3
+ <span class="username">
4
+ {{ site.data.academic_i18n.feed[plang] }}
5
+ </span>
6
+ </a>
7
+
@@ -0,0 +1,5 @@
1
+ <svg fill="#000000" height="16" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 0h24v24H0z" fill="none"/>
3
+ <circle cx="6.18" cy="17.82" r="2.18"/>
4
+ <path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/>
5
+ </svg>
@@ -0,0 +1 @@
1
+ <a target="_blank" href="https://open.spotify.com/user/{{ include.username }}" title="spotify"><span class="icon icon--spotify">{% include _icons/spotify.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1,2 @@
1
+ <!-- <svg viewBox="0 0 16 16" width="16px" height="16px"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg> -->
2
+ <svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 235 235"><path d="M177.707 98.987c-35.992-21.375-95.36-23.34-129.719-12.912-5.519 1.674-11.353-1.44-13.024-6.958-1.672-5.521 1.439-11.352 6.96-13.029 39.443-11.972 105.008-9.66 146.443 14.936 4.964 2.947 6.59 9.356 3.649 14.31-2.944 4.963-9.359 6.6-14.31 3.653m-1.178 31.658c-2.525 4.098-7.883 5.383-11.975 2.867-30.005-18.444-75.762-23.788-111.262-13.012-4.603 1.39-9.466-1.204-10.864-5.8a8.717 8.717 0 015.805-10.856c40.553-12.307 90.968-6.347 125.432 14.833 4.092 2.52 5.38 7.88 2.864 11.968m-13.663 30.404a6.954 6.954 0 01-9.569 2.316c-26.22-16.025-59.223-19.644-98.09-10.766a6.955 6.955 0 01-8.331-5.232 6.95 6.95 0 015.233-8.334c42.533-9.722 79.017-5.538 108.448 12.446a6.96 6.96 0 012.31 9.57M111.656 0C49.992 0 0 49.99 0 111.656c0 61.672 49.992 111.66 111.657 111.66 61.668 0 111.659-49.988 111.659-111.66C223.316 49.991 173.326 0 111.657 0" fill="#191414"/></svg>
@@ -0,0 +1,2 @@
1
+ {% capture url %}{% include _i18n/i18n.html value=include.url %}{% endcapture %}
2
+ <a target="_blank" href="{{ url }}" title="Site"><span class="icon icon--website">{% include _icons/website.svg %}</span><span class="username">{{ url | replace:'https://','' | replace: 'http://','' }}</span></a>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generated by IcoMoon.io -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
5
+ <path d="M8 0c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zM8 15c-0.984 0-1.92-0.203-2.769-0.57l3.643-4.098c0.081-0.092 0.126-0.21 0.126-0.332v-1.5c0-0.276-0.224-0.5-0.5-0.5-1.765 0-3.628-1.835-3.646-1.854-0.094-0.094-0.221-0.146-0.354-0.146h-2c-0.276 0-0.5 0.224-0.5 0.5v3c0 0.189 0.107 0.363 0.276 0.447l1.724 0.862v2.936c-1.813-1.265-3-3.366-3-5.745 0-1.074 0.242-2.091 0.674-3h1.826c0.133 0 0.26-0.053 0.354-0.146l2-2c0.094-0.094 0.146-0.221 0.146-0.354v-1.21c0.634-0.189 1.305-0.29 2-0.29 1.1 0 2.141 0.254 3.067 0.706-0.065 0.055-0.128 0.112-0.188 0.172-0.567 0.567-0.879 1.32-0.879 2.121s0.312 1.555 0.879 2.121c0.569 0.569 1.332 0.879 2.119 0.879 0.049 0 0.099-0.001 0.149-0.004 0.216 0.809 0.605 2.917-0.131 5.818-0.007 0.027-0.011 0.055-0.013 0.082-1.271 1.298-3.042 2.104-5.002 2.104z"></path>
6
+ </svg>