kacademic 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>