cvless 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +97 -0
  4. data/_config.yml +35 -0
  5. data/_includes/archive.html +12 -0
  6. data/_includes/contact.html +12 -0
  7. data/_includes/footer.html +4 -0
  8. data/_includes/head.html +24 -0
  9. data/_includes/header.html +13 -0
  10. data/_includes/iconlink.html +1 -0
  11. data/_includes/pagination.html +12 -0
  12. data/_includes/particles-404.html +7 -0
  13. data/_includes/particles-home.html +33 -0
  14. data/_includes/postlist.html +8 -0
  15. data/_includes/svg/arrow-left-circled.svg +1 -0
  16. data/_includes/svg/arrow-right-circled.svg +1 -0
  17. data/_includes/svg/clarivate-circled.svg +1 -0
  18. data/_includes/svg/cv-circled.svg +1 -0
  19. data/_includes/svg/download-circled-outline.svg +1 -0
  20. data/_includes/svg/download-square-outline.svg +1 -0
  21. data/_includes/svg/facebook.svg +1 -0
  22. data/_includes/svg/github-outline.svg +1 -0
  23. data/_includes/svg/github.svg +1 -0
  24. data/_includes/svg/google-circled.svg +1 -0
  25. data/_includes/svg/instagram.svg +1 -0
  26. data/_includes/svg/internet.svg +1 -0
  27. data/_includes/svg/key-alt-circled.svg +1 -0
  28. data/_includes/svg/lichess-circled.svg +1 -0
  29. data/_includes/svg/linkedin.svg +1 -0
  30. data/_includes/svg/mail.svg +1 -0
  31. data/_includes/svg/nav-arrow-down.svg +1 -0
  32. data/_includes/svg/nav-arrow-left.svg +1 -0
  33. data/_includes/svg/nav-arrow-right.svg +1 -0
  34. data/_includes/svg/open-in-browser.svg +1 -0
  35. data/_includes/svg/open-in-window.svg +1 -0
  36. data/_includes/svg/open-new-window.svg +1 -0
  37. data/_includes/svg/orcid.svg +1 -0
  38. data/_includes/svg/phone.svg +1 -0
  39. data/_includes/svg/pin-alt.svg +1 -0
  40. data/_includes/svg/scopus-circled.svg +1 -0
  41. data/_includes/svg/send-mail-circled.svg +1 -0
  42. data/_includes/svg/stackoverflow.svg +1 -0
  43. data/_includes/svg/twitter.svg +1 -0
  44. data/_includes/svg/user-circle-alt.svg +1 -0
  45. data/_includes/toggler.html +3 -0
  46. data/_layouts/cv.html +11 -0
  47. data/_layouts/default.html +28 -0
  48. data/_layouts/home.html +11 -0
  49. data/_layouts/page.html +11 -0
  50. data/_layouts/post.html +14 -0
  51. data/_sass/_base.scss +74 -0
  52. data/_sass/_code.scss +18 -0
  53. data/_sass/_elements.scss +102 -0
  54. data/_sass/_fonts.scss +159 -0
  55. data/_sass/_headings.scss +42 -0
  56. data/_sass/_media.scss +93 -0
  57. data/_sass/_pagination.scss +47 -0
  58. data/_sass/_particles.scss +99 -0
  59. data/_sass/_pulse.scss +22 -0
  60. data/_sass/_variables.scss +34 -0
  61. data/assets/css/bootstrap.min.css +1 -0
  62. data/assets/css/open-color.min.css +1 -0
  63. data/assets/css/styles.min.scss +15 -0
  64. data/assets/css/syntax.css +280 -0
  65. data/assets/fonts/Piazzolla-Bold.woff2 +0 -0
  66. data/assets/fonts/Piazzolla-BoldItalic.woff2 +0 -0
  67. data/assets/fonts/Piazzolla-Italic.woff2 +0 -0
  68. data/assets/fonts/Piazzolla-Light.woff2 +0 -0
  69. data/assets/fonts/Piazzolla-LightItalic.woff2 +0 -0
  70. data/assets/fonts/Piazzolla-Medium.woff2 +0 -0
  71. data/assets/fonts/Piazzolla-MediumItalic.woff2 +0 -0
  72. data/assets/fonts/Piazzolla-Regular.woff2 +0 -0
  73. data/assets/fonts/PiazzollaSC-Bold.woff2 +0 -0
  74. data/assets/fonts/PiazzollaSC-BoldItalic.woff2 +0 -0
  75. data/assets/fonts/PiazzollaSC-Italic.woff2 +0 -0
  76. data/assets/fonts/PiazzollaSC-Light.woff2 +0 -0
  77. data/assets/fonts/PiazzollaSC-LightItalic.woff2 +0 -0
  78. data/assets/fonts/PiazzollaSC-Medium.woff2 +0 -0
  79. data/assets/fonts/PiazzollaSC-MediumItalic.woff2 +0 -0
  80. data/assets/fonts/PiazzollaSC-Regular.woff2 +0 -0
  81. data/assets/fonts/hack-bold-subset.woff2 +0 -0
  82. data/assets/fonts/hack-bolditalic-subset.woff2 +0 -0
  83. data/assets/fonts/hack-italic-subset.woff2 +0 -0
  84. data/assets/fonts/hack-regular-subset.woff2 +0 -0
  85. data/assets/js/bootstrap.min.js +6 -0
  86. data/assets/js/darkmode.js +59 -0
  87. data/assets/js/main.js +9 -0
  88. data/assets/js/particles.min.js +1 -0
  89. data/assets/json/particles.json +71 -0
  90. metadata +221 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d8e8d3731cc6689ef6884550715c917c185ea4c5be0381dc62ebe1ed54e4dd13
4
+ data.tar.gz: 7edcb4fc6e76f05f20df8d0eac310f56880c959225d6b7314286efbc74fd4277
5
+ SHA512:
6
+ metadata.gz: a28fba538fd51e17f61cf1c983f6ba630563b4fbb8413947386baaa489fd0a3a6ba5581ecaa7707e1219d3e9eeec9405845934ffe024ea51a4696867b5f425f9
7
+ data.tar.gz: 36d4b778a1b1054a0480e8929d8ef8b64166fe7208853181e4a25890724383688b531c2f7705f72fcffed0f38ee696c53243f7266e421021dd49452ad2dd8b86
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Michele Piazzai
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 all
13
+ 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 THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,97 @@
1
+ # cvless
2
+
3
+ Cvless is a theme for static websites built with Jekyll. It aims for simplicity and readability by following best practices of graphic design, like the use of [high contrast](https://www.contrastrebellion.com), [law of proximity](https://lawsofux.com/law-of-proximity), and responsive layout. Its typography is based on the [Piazzolla system](https://piazzolla.huertatipografica.com/), which performs extremely well over a wide range of font sizes.
4
+
5
+ The main aesthetic feature of the theme is the use of [particles.js](https://vincentgarreau.com/particles.js/) in the home and the 404 pages. In addition, the theme includes a well-designed CV page. Printing this from browser automatically adapts the layout for a more traditional appearance, so you no longer have to maintain a separate CV for offline distribution. Finally, the theme offers a simple and easily extensible blog.
6
+
7
+ Light and dark modes are available. The theme initializes based on system preferences and stores the user's preference for the duration of the session.
8
+
9
+ See the [demo](https://cvless.netlify.app) to get a better sense of what the theme looks like.
10
+
11
+ ![](https://github.com/piazzai/cvless/blob/master/screenshot.png)
12
+
13
+ ## Installation
14
+
15
+ The theme can be installed as usual by cloning this repository and editing the files. However, it is far more convenient to install it as a gem, in which case all the files you do not want or need to customize remain hidden from view, but will still be read and processed during build.
16
+
17
+ If you choose to install the theme as a gem, your site should include at a minimum the following files:
18
+
19
+ ```bash
20
+ .
21
+ ├── 404.md
22
+ ├── _config.yml
23
+ ├── Gemfile
24
+ ├── cv.md
25
+ └── index.md
26
+ ```
27
+
28
+ To install the theme, you can then add this line to your `Gemfile`:
29
+
30
+ ```ruby
31
+ gem "cvless"
32
+ ```
33
+
34
+ And this line to `_config.yml`:
35
+
36
+ ```yaml
37
+ theme: cvless
38
+ ```
39
+
40
+ The easiest way to set up a new website in this way is to clone the contents of the `demo` folder. This provides a working set of files to get you started.
41
+
42
+ After you are done creating the basic files, run bundler:
43
+
44
+ $ bundle
45
+
46
+ Or install the gem yourself as:
47
+
48
+ $ gem install jekyll-nagymaros
49
+
50
+ To customize hidden files, you can create new files with the same names and paths. For example, to change the layout of the index page, you can create a `_layouts` folder and a file `index.html` within this folder that contains your custom code. During build, Jekyll will give priority to your files over the theme's.
51
+
52
+ ## Usage
53
+
54
+ Configuration primarily occurs in four files. First, `_config.yml`, which contains site variables such as title, tagline, url, and repository address, as well as the author's name and email address for inclusion in blog posts. You can also specify the path to an avatar for inclusion in the home (optional).
55
+
56
+ Second, you should update icon links in `_includes/particles-home.html` and add/remove icons as needed. You might want to add icons that are not included in the theme by default. For more information on how to do this, see [this post](https://cvless.netlify.app/2022/08/01/on-the-use-of-icons/).
57
+
58
+ Third, you should customize the file `_includes/contact.html` by inputting your contact details and adding/removing lines as needed. This information is prepended to your CV.
59
+
60
+ Fourth, you might want to edit the style variables specified in `_sass/_variables.scss`. These allow you to customize the theme's color scheme and typefaces. There are many resources on the web to learn the principles of good web design. I personally recommend Matthew Butterick's [Practical Typography](https://practicaltypography.com/websites.html).
61
+
62
+ In addition to these files, you can customize favicons in the `assets` folder. For that, [favicon.io](https://favicon.io/) is an excellent tool. You can also change the particles.js configurations in `assets/json`. The [library homepage](https://vincentgarreau.com/particles.js/) features an interactive tool from which you can export a new configuration.
63
+
64
+ ## Local development
65
+
66
+ The `demo` folder includes a docker-compose file that allows you to quickly setup a container running Jekyll. If you don't already have Docker and Docker Compose installed, you can install them using the following guides:
67
+
68
+ * [Docker](https://docs.docker.com/get-docker/)
69
+ * [Docker Compose](https://docs.docker.com/compose/install/)
70
+
71
+ To start the container simply run:
72
+
73
+ ```
74
+ docker-compose up
75
+ ```
76
+
77
+ Alternatively, you can run the container without Docker Compose using this command on iOS/Linux:
78
+
79
+ ```
80
+ docker run -p 4000:4000 -v $(pwd):/site bretfisher/jekyll-serve
81
+ ```
82
+
83
+ ## Credits
84
+
85
+ The theme draws in one way or another from the following projects:
86
+
87
+ - [Bootstrap](https://getbootstrap.com/)
88
+ - [Hack](https://sourcefoundry.org/hack/)
89
+ - [Iconoir](https://iconoir.com/)
90
+ - [Open Color](https://yeun.github.io/open-color/)
91
+ - [Particles.js](https://vincentgarreau.com/particles.js/)
92
+ - [Piazzolla](https://piazzolla.huertatipografica.com/)
93
+ - [Poole](https://getpoole.com/)
94
+
95
+ ## Bugs
96
+
97
+ If you find any problem using this theme, please [open an issue](https://github.com/piazzai/cvless/issues).
data/_config.yml ADDED
@@ -0,0 +1,35 @@
1
+ title: ""
2
+ description: ""
3
+ baseurl: ""
4
+ url: ""
5
+
6
+ exclude:
7
+ - demo/
8
+ - cvless.gemspec
9
+ - LICENSE
10
+ - README.md
11
+ - screenshot.png
12
+
13
+ plugins:
14
+ - jekyll-feed
15
+ - jekyll-gist
16
+ - jekyll-paginate-v2
17
+ - jekyll-seo-tag
18
+ - jekyll-sitemap
19
+
20
+ sass:
21
+ style: compressed
22
+ sourcemap: never
23
+
24
+ feed:
25
+ path: atom.xml
26
+
27
+ autopages:
28
+ enabled: false
29
+
30
+ pagination:
31
+ enabled: true
32
+ per_page: 1
33
+ sort_reverse: true
34
+ permalink: /:num/
35
+ title: ":title · Page :num"
@@ -0,0 +1,12 @@
1
+ {% assign postsByYearMonth = site.posts | group_by_exp: "post", "post.date | date: '%B %Y'" %}
2
+
3
+ <div class="archive">
4
+ {% for yearMonth in postsByYearMonth %}
5
+ <h2>{{ yearMonth.name }}</h2>
6
+ <ul>
7
+ {% for post in yearMonth.items %}
8
+ <li><a href="{{ post.url }}">{{ post.title }}.</a> <span class="lead">{{ post.lead }}</span></li>
9
+ {% endfor %}
10
+ </ul>
11
+ {% endfor %}
12
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="contact">
2
+ <h2>Contact</h2>
3
+ <ul>
4
+ <li>University of Jekyll</li>
5
+ <li>Department of Themes</li>
6
+ <li>123 Main St, Anytown, USA</li>
7
+ <li><span class="li-icon">{% include svg/pin-alt.svg %}</span><span>Foobar Hall 1.23</span></li>
8
+ <li><span class="li-icon">{% include svg/phone.svg %}</span><span>+1 234 567 890</span></li>
9
+ <li><span class="li-icon">{% include svg/mail.svg %}</span><a href="mailto:username@domain.com">username@domain.com</a></li>
10
+ <li><span class="li-icon">{% include svg/internet.svg %}</span><a href="https://cvless.netlify.app">https://cvless.netlify.app</a></li>
11
+ </ul>
12
+ </div>
@@ -0,0 +1,4 @@
1
+ <footer>
2
+ <small>&copy; <time datetime="{{ site.time | date_to_xmlschema }}">{{ site.time | date: '%Y' }}</time>
3
+ {{ site.author.name }}. All rights reserved.</small>
4
+ </footer>
@@ -0,0 +1,24 @@
1
+ <head>
2
+ <meta charset="UTF-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
4
+
5
+ <title>
6
+ {% if page.layout == "home" %}
7
+ {{ site.title }}
8
+ {% else %}
9
+ {{ site.title }} &middot; {{ page.title }}
10
+ {% endif %}
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="{{ '/assets/css/bootstrap.min.css' | relative_url }}">
14
+ <link rel="stylesheet" href="{{ '/assets/css/open-color.min.css' | relative_url }}">
15
+ <link rel="stylesheet" href="{{ '/assets/css/syntax.css' | relative_url }}">
16
+ <link rel="stylesheet" href="{{ '/assets/css/styles.min.css' | relative_url }}">
17
+ <link rel="apple-touch-icon" sizes="180x180" href="{{ '/assets/apple-touch-icon.png' | relative_url }}">
18
+ <link rel="icon" type="image/png" sizes="32x32" href="{{ '/assets/favicon-32x32.png' | relative_url }}">
19
+ <link rel="icon" type="image/png" sizes="16x16" href="{{ '/assets/favicon-16x16.png' | relative_url }}">
20
+ <link rel="manifest" href="{{ '/assets/site.webmanifest' | relative_url }}">
21
+ <link rel="alternate" type="application/atom+xml" title="{{ site.title }}" href="{{ 'atom.xml' | relative_url }}">
22
+
23
+ {% seo title=false %}
24
+ </head>
@@ -0,0 +1,13 @@
1
+ <header>
2
+ <div>
3
+ <a class="site-title" href="/">{{ site.title }}</a>
4
+ <small>
5
+ {% if site.tagshort %}
6
+ {{ site.tagshort }}
7
+ {% else %}
8
+ {{ site.taglong }}
9
+ {% endif %}
10
+ </small>
11
+ </div>
12
+ <a id="theme-toggle" class="toggle-icon" onclick="modeSwitcher()"></a>
13
+ </header>
@@ -0,0 +1 @@
1
+ <a class="iconlink" href="{{ include.href }}">{% include {{ include.icon }} %}</a>
@@ -0,0 +1,12 @@
1
+ <div class="pagination">
2
+ {% if paginator.next_page %}
3
+ <a class="pagination-item older" href="{{ paginator.next_page_path | relative_url }}">{% include svg/nav-arrow-left.svg %} Older</a>
4
+ {% else %}
5
+ <span class="pagination-item older">{% include svg/nav-arrow-left.svg %} Older</span>
6
+ {% endif %}
7
+ {% if paginator.previous_page %}
8
+ <a class="pagination-item newer" href="{{ paginator.previous_page_path | prepend: relative_url }}">Newer {% include svg/nav-arrow-right.svg %}</a>
9
+ {% else %}
10
+ <span class="pagination-item newer">Newer {% include svg/nav-arrow-right.svg %}</span>
11
+ {% endif %}
12
+ </div>
@@ -0,0 +1,7 @@
1
+ <div id="particles-js" class="fullscreen">
2
+ <div class="jumbotron text-center">
3
+ <h1 class="particles-title">404</h1>
4
+ <h1 class="particles-subtitle">Page not found</h1>
5
+ <a class="particles-icon" href="/">{% include svg/arrow-left-circled.svg %}</a>
6
+ </div>
7
+ </div>
@@ -0,0 +1,33 @@
1
+ <div id="particles-js" class="fullscreen">
2
+ <div class="jumbotron text-center">
3
+ {% if site.photo %}
4
+ <img class="particles-photo" src="{{ site.photo }}" />
5
+ {% endif %}
6
+ <h1 class="particles-title">{{ site.title }}</h1>
7
+ <h1 class="particles-subtitle">{{ site.taglong }}</h1>
8
+ <div class="nowrap">
9
+ {% if site.social.facebook %}
10
+ <a class="particles-icon" href="https://www.facebook.com/{{ site.social.facebook }}">{% include svg/facebook.svg %}</a>
11
+ {% endif %}
12
+ {% if site.social.twitter %}
13
+ <a class="particles-icon" href="https://twitter.com/{{ site.social.twitter }}">{% include svg/twitter.svg %}</a>
14
+ {% endif %}
15
+ {% if site.social.instagram %}
16
+ <a class="particles-icon" href="https://www.instagram.com/{{ site.social.instagram }}">{% include svg/instagram.svg %}</a>
17
+ {% endif %}
18
+ {% if site.social.linkedin %}
19
+ <a class="particles-icon" href="https://www.linkedin.com/in/{{ site.social.linkedin }}">{% include svg/linkedin.svg %}</a>
20
+ {% endif %}
21
+ {% if site.social.stackoverflow %}
22
+ <a class="particles-icon" href="https://stackoverflow.com/users/{{ site.social.stackoverflow }}">{% include svg/stackoverflow.svg %}</a>
23
+ {% endif %}
24
+ {% if site.social.github %}
25
+ <a class="particles-icon" href="https://github.com/{{ site.social.github }}">{% include svg/github.svg %}</a>
26
+ {% endif %}
27
+ <a class="particles-icon" href="cv">{% include svg/cv-circled.svg %}</a>
28
+ </div>
29
+ </div>
30
+ <div class="particles-scroll">
31
+ <a class="particles-icon" href="#scroll">{% include svg/nav-arrow-down.svg %}</a>
32
+ </div>
33
+ </div>
@@ -0,0 +1,8 @@
1
+ <div>
2
+ {% for post in paginator.posts %}
3
+ <h1><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h1>
4
+ <time datetime="{{ post.date | date_to_xmlschema }}" class="post-date">{{ post.date | date: "%B %e, %Y" }}</time>
5
+ <p class="lead">{{ post.lead }}</p>
6
+ {{ post.content }}
7
+ {% endfor %}
8
+ </div>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M16 12H8m0 0l3.5 3.5M8 12l3.5-3.5M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M8 12h8m0 0l-3.5-3.5M16 12l-3.5 3.5M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m 8.4211827,8.1990965 c 0,0 -1.1246946,3.6515105 0.066765,7.7412915" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m 16.925026,11.006029 c 0,0 -2.422701,-2.954486 -6.49009,-4.2202823" stroke="#000000" stroke-width="1.5" stroke-linecap="round" troke-linejoin="round"></path><path d="m 10.318311,17.235419 c 0,0 3.695901,-0.968911 6.543416,-4.13712" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" color="#000000"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /><path d="m 10.743752,9.2133219 c 0,0 -4.5125702,-1.1966648 -4.5125705,2.7561791 -3e-7,4.258147 4.5640215,2.715661 4.5640215,2.715661" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /><path d="m 12.449181,9.1023598 c 0,0 2.137936,5.8060432 2.686032,5.8060432 0.511982,0 2.633605,-5.7961624 2.633605,-5.7961624" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M9 17h6M12 6v7m0 0l3.5-3.5M12 13L8.5 9.5M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M6 18h12M12 6v8m0 0l3.5-3.5M12 14l-3.5-3.5" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3 20.4V3.6a.6.6 0 01.6-.6h16.8a.6.6 0 01.6.6v16.8a.6.6 0 01-.6.6H3.6a.6.6 0 01-.6-.6z" stroke="#000000" stroke-width="1.5"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M17 2h-3a5 5 0 00-5 5v3H6v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3V2z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M14.333 19v-1.863c.025-.31-.018-.62-.126-.913a2.18 2.18 0 00-.5-.781c2.093-.227 4.293-1 4.293-4.544 0-.906-.358-1.778-1-2.434a3.211 3.211 0 00-.06-2.448s-.787-.227-2.607.961a9.152 9.152 0 00-4.666 0c-1.82-1.188-2.607-.96-2.607-.96A3.211 3.211 0 007 8.464a3.482 3.482 0 00-1 2.453c0 3.519 2.2 4.291 4.293 4.544a2.18 2.18 0 00-.496.773 2.134 2.134 0 00-.13.902V19M9.667 17.702c-2 .631-3.667 0-4.667-1.948" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M16 22.027v-2.87a3.37 3.37 0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7a5.44 5.44 0 00-1.5-3.75 5.07 5.07 0 00-.09-3.77s-1.18-.35-3.91 1.48a13.38 13.38 0 00-7 0c-2.73-1.83-3.91-1.48-3.91-1.48A5.07 5.07 0 005 5.797a5.44 5.44 0 00-1.5 3.78c0 5.42 3.3 6.61 6.44 7a3.37 3.37 0 00-.94 2.58v2.87M9 20.027c-3 .973-5.5 0-7-3" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M15.547 8.303A5.148 5.148 0 0012.11 7C9.287 7 7 9.239 7 12s2.287 5 5.109 5c3.47 0 4.751-2.57 4.891-4.583h-4.159" stroke="#000000" stroke-width="1.5"></path><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M12 16a4 4 0 100-8 4 4 0 000 8z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3 16V8a5 5 0 015-5h8a5 5 0 015 5v8a5 5 0 01-5 5H8a5 5 0 01-5-5z" stroke="#000000" stroke-width="1.5"></path><path d="M17.5 6.51l.01-.011" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12s4.477 10 10 10M13 2.05S16 6 16 12" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M11 21.95S8 18 8 12c0-6 3-9.95 3-9.95M2.63 15.5H12M2.63 8.5h18.74" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path clip-rule="evenodd" d="M21.879 17.917c.494.304.463 1.043-.045 1.101l-2.567.291-1.151 2.312c-.228.459-.933.234-1.05-.334l-1.255-6.116c-.099-.48.333-.782.75-.525l5.318 3.271z" stroke="#000000" stroke-width="1.5"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="m 10.65875,12 a 2.6825,2.6825 0 1 1 -5.365,0 2.6825,2.6825 0 0 1 5.365,0 z m 0,0 h 8.0475 v 2.011875 M 16.02375,12 v 2.011875" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M 12,22 C 17.523,22 22,17.523 22,12 22,6.477 17.523,2 12,2 6.4770002,2 1.9999998,6.477 1.9999998,12 1.9999998,17.523 6.4770002,22 12,22 Z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m 10.9571,8.8402603 c 0.11431,2.7038257 2.798255,3.0645557 4.480148,4.7170917 0.726816,0.728975 1.188734,1.129834 1.410111,1.702892 0.221376,0.573061 1.462314,-0.442363 1.704629,-0.782801 0.242316,-0.340437 0.459965,-0.817816 0.411351,-1.207708 -0.04861,-0.389893 -3.692825,-6.4115628 -3.692825,-6.4115628 l 0.346797,-1.870523 c 0,0 -0.576444,0.093028 -1.185611,0.3262455 -0.669564,0.2563406 -1.30528,0.6306111 -1.30528,0.6306111 -3.8837588,-0.7806282 -8.0987515,1.6115714 -8.0987515,5.8443532 0,4.872342 3.8557378,7.210331 6.7146625,7.223481 2.69079,0 3.905406,-0.842829 4.683296,-1.734187" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M21 8v8a5 5 0 01-5 5H8a5 5 0 01-5-5V8a5 5 0 015-5h8a5 5 0 015 5zM7 17v-7" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M11 17v-3.25M11 10v3.75m0 0c0-3.75 6-3.75 6 0V17M7 7.01l.01-.011" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M7 9l5 3.5L17 9" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M2 17V7a2 2 0 012-2h16a2 2 0 012 2v10a2 2 0 01-2 2H4a2 2 0 01-2-2z" stroke="#000000" stroke-width="1.5"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M6 9l6 6 6-6" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M15 6l-6 6 6 6" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M9 6l6 6-6 6" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M8 21h12.4a.6.6 0 00.6-.6V3.6a.6.6 0 00-.6-.6H3.6a.6.6 0 00-.6.6V16M10 6h8M6 6h1M3.5 20.5L12 12m0 0v4m0-4H8" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M8 21h12.4a.6.6 0 00.6-.6V3.6a.6.6 0 00-.6-.6H3.6a.6.6 0 00-.6.6V16M3.5 20.5L12 12m0 0v4m0-4H8" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M21 3h-6m6 0l-9 9m9-9v6" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M21 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h6" stroke="#000000" stroke-width="1.5" stroke-linecap="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M 7.8763327,16.222994 V 8.7429329 Z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m 11.132614,8.7423752 v 7.4803878 h 2.838065 c 2.125861,0.06783 4.039396,-1.453986 4.020787,-3.718707 -0.01927,-2.343704 -1.749172,-3.772333 -4.158006,-3.772333 z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m 7.8763748,6.3814588 -8.42e-5,0.1064568 z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M18.118 14.702L14 15.5c-2.782-1.396-4.5-3-5.5-5.5l.77-4.13L7.815 2H4.064c-1.128 0-2.016.932-1.847 2.047.42 2.783 1.66 7.83 5.283 11.453 3.805 3.805 9.286 5.456 12.302 6.113 1.165.253 2.198-.655 2.198-1.848v-3.584l-3.882-1.479z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M20 10c0 4.418-8 12-8 12s-8-7.582-8-12a8 8 0 1116 0z" stroke="#000000" stroke-width="1.5"></path><path d="M12 11a1 1 0 100-2 1 1 0 000 2z" fill="#000000" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m 6.5821609,15.224947 c 1.6250214,0.779962 3.4727501,0.17243 3.4704571,-1.383108 C 10.06372,12.031003 6.2565163,11.977395 6.6984136,9.7723719 7.4460867,7.541128 9.9513196,8.7730583 9.9513196,8.7730583" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="m 17.268242,8.8549081 c 0,0 -5.163441,-1.2313444 -5.123719,3.1952179 0.03902,4.347022 5.273316,3.106801 5.273316,3.106801" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><path d="M 9.7311762,9.9546413 12.799215,12 15.867253,9.9546413 M 5.6404582,13.022679 H 7.0040309 M 4.2768855,10.97732 h 2.7271454" stroke="#000000" stroke-width="1.02268" stroke-linecap="round" stroke-linejoin="round"></path><path d="M 7.0040309,8.9319615 V 8.5910684 A 1.3635727,1.3635727 0 0 1 8.3676036,7.2274957 h 8.8632224 a 1.3635727,1.3635727 0 0 1 1.363573,1.3635727 v 6.8178626 a 1.3635727,1.3635727 0 0 1 -1.363573,1.363573 H 8.3676036 A 1.3635727,1.3635727 0 0 1 7.0040309,15.408931 v -0.340893" stroke="#000000" stroke-width="1.02268" stroke-linecap="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" viewBox="0 0 24 24" stroke-width="1.5" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M19 15v6H5v-6M16 17H8M15.913 14.663L8.087 13M16.713 12.38L9.463 9M18.173 10.642L12.044 5.5M20.034 8.804L15.109 2.5" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M23 3.01s-2.018 1.192-3.14 1.53a4.48 4.48 0 00-7.86 3v1a10.66 10.66 0 01-9-4.53s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5 0-.278-.028-.556-.08-.83C21.94 5.674 23 3.01 23 3.01z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>
@@ -0,0 +1 @@
1
+ <svg width="24px" height="24px" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" color="#000000"><path d="M7 18v-1a5 5 0 015-5v0a5 5 0 015 5v1" stroke="#000000" stroke-width="1.5" stroke-linecap="round"></path><path d="M12 12a3 3 0 100-6 3 3 0 000 6z" stroke="#000000" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path><circle cx="12" cy="12" r="10" stroke="#000000" stroke-width="1.5"></circle></svg>
@@ -0,0 +1,3 @@
1
+ <div id="scroll" class="toggle-bar">
2
+ <a id="theme-toggle" class="toggle-icon" onclick="modeSwitcher()"></a>
3
+ </div>
data/_layouts/cv.html ADDED
@@ -0,0 +1,11 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article id="cv">
6
+ {% include header.html %}
7
+ <main>
8
+ {{ content }}
9
+ </main>
10
+ {% include footer.html %}
11
+ </article>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {% if page.title == "Home" %}{% include particles-home.html %}{% endif %}
9
+ {% if page.title == "404" %}{% include particles-404.html %}{% endif %}
10
+
11
+ <div class="container">
12
+ <div class="row justify-content-center">
13
+ <div class="col col-sm-10 col-md-8 col-lg-6">
14
+ {{ content }}
15
+ </div>
16
+ </div>
17
+ </div>
18
+ <script src="{{ '/assets/js/bootstrap.min.js' | relative_url }}"></script>
19
+ {% if page.title != "404" %}
20
+ <script src="{{ '/assets/js/darkmode.js' | relative_url }}"></script>
21
+ {% endif %}
22
+ {% if page.title == "Home" or page.title == "404" %}
23
+ <script src="{{ '/assets/js/particles.min.js' | relative_url }}"></script>
24
+ <script src="{{ '/assets/js/main.js' | relative_url }}"></script>
25
+ {% endif %}
26
+ </body>
27
+
28
+ </html>
@@ -0,0 +1,11 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article id="home">
6
+ {% include toggler.html %}
7
+ <main>
8
+ {{ content }}
9
+ </main>
10
+ {% include footer.html %}
11
+ </article>
@@ -0,0 +1,11 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article>
6
+ {% include header.html %}
7
+ <main>
8
+ {{ content }}
9
+ </main>
10
+ {% include footer.html %}
11
+ </article>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <article>
6
+ {% include header.html %}
7
+ <main>
8
+ <h1 class="post-title">{{ page.title }}</h1>
9
+ <time datetime="{{ page.date | date_to_xmlschema }}" class="post-date">{{ page.date | date: "%B %e, %Y" }}</time>
10
+ <p class="lead">{{ page.lead }}</p>
11
+ {{ content }}
12
+ </main>
13
+ {% include footer.html %}
14
+ </article>
data/_sass/_base.scss ADDED
@@ -0,0 +1,74 @@
1
+ body {
2
+ font-family: var(--type-serif);
3
+ font-size: var(--type-size);
4
+ font-weight: var(--type-weight);
5
+ line-height: var(--type-height);
6
+ font-variant-numeric: var(--type-numeric);
7
+ background-color: var(--color-background);
8
+ color: var(--color-text);
9
+ }
10
+
11
+ svg circle,
12
+ svg path {
13
+ stroke: var(--color-text);
14
+ stroke-width: 0.075em;
15
+ }
16
+
17
+ a {
18
+ text-decoration: none;
19
+ color: var(--color-link);
20
+
21
+ &:focus,
22
+ &:hover {
23
+ border-bottom: calc(var(--type-size) / 10) dotted var(--color-link);
24
+ color: var(--color-link);
25
+ }
26
+ }
27
+
28
+ header {
29
+ display: flex;
30
+ justify-content: space-between;
31
+ margin-top: 1.5em;
32
+ margin-bottom: 2em;
33
+ }
34
+
35
+ footer {
36
+ margin: 2em 0;
37
+ }
38
+
39
+ small {
40
+ font-weight: 300;
41
+ }
42
+
43
+ abbr {
44
+ text-transform: lowercase;
45
+ font-family: var(--type-caps);
46
+ }
47
+
48
+ blockquote {
49
+ padding-left: 1em;
50
+ border-left: 0.1em solid var(--color-border);
51
+ font-weight: 300;
52
+ }
53
+
54
+ mark {
55
+ padding: 0.1em;
56
+ border-radius: 0.25em;
57
+ background-color: var(--color-mark);
58
+ color: var(--color-text);
59
+ }
60
+
61
+ hr {
62
+ border-top: 0.1em solid var(--color-text);
63
+ }
64
+
65
+ img {
66
+ display: block;
67
+ max-width: 100%;
68
+ margin: 1em 0;
69
+ border-radius: 0.25em;
70
+ }
71
+
72
+ table.table {
73
+ color: var(--color-text);
74
+ }
data/_sass/_code.scss ADDED
@@ -0,0 +1,18 @@
1
+ pre,code {
2
+ font-family: var(--type-mono);
3
+ }
4
+
5
+ .highlight {
6
+ padding: 0 1em;
7
+ border-radius: 0.25em;
8
+ color: var(--color-chunk);
9
+
10
+ pre {
11
+ padding: 0;
12
+ margin: 0;
13
+ }
14
+
15
+ .highlight {
16
+ padding: 0;
17
+ }
18
+ }