kacademic 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +338 -0
- data/_data/academic_i18n.yml +61 -0
- data/_includes/_i18n/date.html +11 -0
- data/_includes/_i18n/i18n.html +17 -0
- data/_includes/_i18n/lang_selector.html +42 -0
- data/_includes/_i18n/last_modified_at.html +29 -0
- data/_includes/_i18n/link.html +10 -0
- data/_includes/_i18n/sitetitle.html +19 -0
- data/_includes/_icons/Spotify-Icon-Black-Logo.wine.svg +1 -0
- data/_includes/_icons/email.html +1 -0
- data/_includes/_icons/email.svg +1 -0
- data/_includes/_icons/file.html +11 -0
- data/_includes/_icons/file.svg +1 -0
- data/_includes/_icons/github.html +1 -0
- data/_includes/_icons/github.svg +1 -0
- data/_includes/_icons/keybase.html +1 -0
- data/_includes/_icons/keybase.svg +1 -0
- data/_includes/_icons/linkedin.html +1 -0
- data/_includes/_icons/linkedin.svg +1 -0
- data/_includes/_icons/rss.html +7 -0
- data/_includes/_icons/rss.svg +5 -0
- data/_includes/_icons/spotify.html +1 -0
- data/_includes/_icons/spotify.svg +2 -0
- data/_includes/_icons/website.html +2 -0
- data/_includes/_icons/website.svg +6 -0
- data/_includes/calltoaction.html +19 -0
- data/_includes/contactlist.html +34 -0
- data/_includes/footer.html +80 -0
- data/_includes/head.html +77 -0
- data/_includes/header.html +35 -0
- data/_includes/image.html +9 -0
- data/_includes/nav_menu.html +26 -0
- data/_includes/piwik.html +15 -0
- data/_includes/post-li.html +19 -0
- data/_includes/post-ul.html +19 -0
- data/_includes/sitemap-url.html +30 -0
- data/_layouts/about.html +46 -0
- data/_layouts/archive.html +17 -0
- data/_layouts/default.html +24 -0
- data/_layouts/home.html +31 -0
- data/_layouts/page.html +7 -0
- data/_layouts/pagenotfound.html +11 -0
- data/_layouts/post.html +51 -0
- data/_layouts/sitemap.html +5 -0
- data/_sass/.DS_Store +0 -0
- data/_sass/academic/_base.scss +347 -0
- data/_sass/academic/_layout.scss +797 -0
- data/_sass/academic/_syntax-highlighting.scss +61 -0
- data/_sass/academic.scss +124 -0
- data/assets/main.scss +46 -0
- data/assets/opensans/OpenSans-Bold.ttf +0 -0
- data/assets/opensans/OpenSans-Italic.ttf +0 -0
- data/assets/opensans/OpenSans-Regular.ttf +0 -0
- 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,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>
|