hacked-jekyll 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 34e681eaa3481ae8f89e8ae1cae02c124b6ab6210c58bf23025253670605db22
4
+ data.tar.gz: 5343e2b1276b294ce86374513a7f7c4378e3e8cb4f3a01e5f7509d38bc6eff50
5
+ SHA512:
6
+ metadata.gz: 9a30db51617639a5762254958546534fde63a0c7248e37900f7cc25c329ca06eba40459682bdf40db00a9a1fc1618b9746e9ef82854e741bf72c13abd7cfafbb
7
+ data.tar.gz: b082a2ec877c161846dba820c279d45cb89cac9755750ab531accfa8d6521fc7654fa044a1e0cdaac5f3496e949ed10a6d3c57fa9949aae565cff8be79061e5f
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 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,69 @@
1
+ # hacked-jekyll
2
+
3
+ Hacked Jekyll is a responsive, minimalistic Jekyll theme for a tiny (163kb!) personal website. It consists of a homepage and a 404 page. The homepage lists information set within the configuration file in a format that resembles JSON, giving the website a "hacked" appearance. The user description features [typed.js](https://mattboldt.com/demos/typed-js/) to cycle through multiple lines of text, as long as multiple lines are provided in the configuration.
4
+
5
+ The style is rebooted through [normalize.css](https://necolas.github.io/normalize.css/) and based on the [Open Color](https://yeun.github.io/open-color/) library. The monospaced typeface [Hack](https://sourcefoundry.org/hack/) is served together with the website. The favicons are generated by [favicon.io](https://favicon.io/).
6
+
7
+ See the [demo](https://hacked-jekyll.netlify.app) to check the end result.
8
+
9
+ ![](https://github.com/piazzai/hacked-jekyll/blob/master/screenshot.png)
10
+
11
+ ## Installation
12
+
13
+ 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.
14
+
15
+ To install the theme as a gem, you can then add this line to your `Gemfile`:
16
+
17
+ ```ruby
18
+ gem "hacked-jekyll"
19
+ ```
20
+
21
+ And this line to `_config.yml`:
22
+
23
+ ```yaml
24
+ theme: hacked-jekyll
25
+ ```
26
+
27
+ 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.
28
+
29
+ After you are done creating the basic files, run bundler:
30
+
31
+ $ bundle
32
+
33
+ Or install the gem yourself as:
34
+
35
+ $ gem install hacked-jekyll
36
+
37
+ 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.
38
+
39
+ ## Usage
40
+
41
+ All customization happens in the `json` section of `_config.yml`. Eight variables can be set, including the user's name and description (note that this is not the same as site description), path to the CV, address and contact details, homepage, repository, and social profiles. All of these variables are optional.
42
+
43
+ The user description and address variables can be set as arrays (default) or single strings. The contact variable can be set as a hash (default) or single string. The profiles variable must necessarily be a hash.
44
+
45
+ It is possible to set up the site so that all links open in the same tab (default) or in a new tab. To make links open in a new tab, just add the following line to your `_config.yml` file.
46
+
47
+ ```yaml
48
+ newtab: true
49
+ ```
50
+
51
+ It is also possible to change the color scheme. If you want to do so, you should create a file called `_sass/base.scss` with the following code:
52
+
53
+ ```scss
54
+ body {
55
+ background-color: var(--oc-gray-9); // background color
56
+ color: var(--oc-green-4); // color of main text and links
57
+ }
58
+
59
+ a:hover,
60
+ a:active {
61
+ color: var(--oc-green-5); // hover color of links
62
+ }
63
+ ```
64
+
65
+ The values above are defaults. You can change them to any color you want using hexadecimal codes, base CSS names, or Open Color names as in the example above. In the latter case, please [read the docs](https://yeun.github.io/open-color/documents.html) of the Open Color library to familiarize with the naming convention.
66
+
67
+ ## Bugs
68
+
69
+ If you find any problem using the theme, please [open an issue](https://github.com/piazzai/hacked-jekyll/issues).
data/_config.yml ADDED
@@ -0,0 +1,21 @@
1
+ title: ""
2
+ description: ""
3
+ baseurl: ""
4
+ url: ""
5
+
6
+ newtab: false
7
+
8
+ exclude:
9
+ - demo/
10
+ - hacked-jekyll.gemspec
11
+ - LICENSE
12
+ - README.md
13
+ - screenshot.png
14
+
15
+ plugins:
16
+ - jekyll-seo-tag
17
+ - jekyll-sitemap
18
+
19
+ sass:
20
+ style: compressed
21
+ sourcemap: never
@@ -0,0 +1,18 @@
1
+ <head>
2
+ <meta charset="UTF-8" />
3
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
4
+
5
+ {% seo %}
6
+
7
+ <link rel="icon" type="image/x-icon" href="{{ '/assets/favicon.ico' | relative_url }}" />
8
+ <link rel="apple-touch-icon" sizes="180x180" href="{{ '/assets/apple-touch-icon.png' | relative_url }}">
9
+ <link rel="icon" type="image/png" sizes="32x32" href="{{ '/assets/favicon-32x32.png' | relative_url }}">
10
+ <link rel="icon" type="image/png" sizes="16x16" href="{{ '/assets/favicon-16x16.png' | relative_url }}">
11
+ <link rel="manifest" href="{{ '/assets/site.webmanifest' | relative_url }}">
12
+
13
+ <link rel="stylesheet" href="{{ '/assets/css/normalize.min.css' | relative_url }}" />
14
+ <link rel="stylesheet" href="{{ '/assets/css/open-color.min.css' | relative_url }}" />
15
+ <link rel="stylesheet" href="{{ '/assets/css/styles.min.css' | relative_url }}" />
16
+
17
+ <script src="{{ '/assets/js/typed.min.js' | relative_url }}"></script>
18
+ </head>
@@ -0,0 +1,12 @@
1
+ <span id="typed"></span>
2
+
3
+ <script>
4
+ var typed = new Typed("#typed", {
5
+ stringsElement: "#typed-strings",
6
+ backSpeed: 10,
7
+ typeSpeed: 30,
8
+ backDelay: 1000,
9
+ loop: true,
10
+ smartBackspace: true,
11
+ });
12
+ </script>
data/_layouts/404.html ADDED
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <main>
6
+ <div class="block">
7
+ <p>404</p>
8
+ <p>Page not found</p>
9
+ </div>
10
+ <div class="block">
11
+ {% assign home = site.url | split: "//" | slice: 1 %}
12
+ <a href="{{ site.url }}">{{ home }}</a>
13
+ </div>
14
+ </main>
@@ -0,0 +1,10 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html lang="en">
4
+ {% include head.html %}
5
+
6
+ <body>
7
+ {{ content }}
8
+ </body>
9
+
10
+ </html>
@@ -0,0 +1,88 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% assign target = 'target="_self"' %}
6
+ {% if site.newtab %}
7
+ {% assign target = 'target="_blank"' %}
8
+ {% endif %}
9
+
10
+ <main class="json">
11
+ <div class="block">
12
+ {% if site.json.name %}
13
+ <p><span class="key">name</span><span class="attr">{{ site.json.name }}</span></p>
14
+ {% else %}
15
+ <p><span class="key">name</span><span class="attr">{{ site.title }}</span></p>
16
+ {% endif %}
17
+ {% if site.json.description %}
18
+ {% if site.json.description.first %}
19
+ <div id="typed-strings">
20
+ {% for i in site.json.description %}
21
+ <span>{{ i | prepend: '"' | append: '",'}}</span>
22
+ {% endfor %}
23
+ </div>
24
+ <p><span class="key">description</span>{% include typed.html %}</p>
25
+ {% else %}
26
+ <p><span class="key">description</span><span class="attr">{{ site.json.description }}</span></p>
27
+ {% endif %}
28
+ {% else %}
29
+ <p><span class="key">description</span><span class="attr">{{ site.description }}</span></p>
30
+ {% endif %}
31
+ </div>
32
+ <div class="block">
33
+ {% if site.json.cv %}
34
+ {% assign cv = site.json.cv | split: "/" | slice: -1 %}
35
+ <p><span class="key">cv</span><span class="attr"><a href="{{ site.json.cv | relative_url }}" {{ target }}>{{ cv }}</a></span></p>
36
+ {% endif %}
37
+ </div>
38
+ <div class="block">
39
+ {% if site.json.address %}
40
+ {% if site.json.address.first %}
41
+ <p><span class="array-key">address</span></p>
42
+ <div class="array">
43
+ {% for i in site.json.address %}
44
+ <p class="array-attr">{{ i }}</p>
45
+ {% endfor %}
46
+ </div>
47
+ {% else %}
48
+ <p><span class="key">address</span><span class="attr">{{ site.json.address }}</span></p>
49
+ {% endif %}
50
+ {% endif %}
51
+ </div>
52
+ <div class="block">
53
+ {% if site.json.contact %}
54
+ {% if site.json.contact.first %}
55
+ <p><span class="list-key">contact</span></p>
56
+ <div class="list">
57
+ {% for i in site.json.contact %}
58
+ <p><span class="list-subkey">{{ i | slice: 0 }}</span><span class="list-attr">{{ i | slice: 1 }}</span></p>
59
+ {% endfor %}
60
+ </div>
61
+ {% else %}
62
+ <p><span class="key">contact</span><span class="attr">{{ site.json.contact }}</span></p>
63
+ {% endif %}
64
+ {% endif %}
65
+ </div>
66
+ <div class="block">
67
+ {% if site.json.demo %}
68
+ {% assign demo = site.json.demo | split: "//" | slice: 1 %}
69
+ <p><span class="key">demo</span><span class="attr"><a href="{{ site.json.demo }}" {{ target }}>{{ demo }}</a></span>
70
+ </p>
71
+ {% endif %}
72
+ {% if site.json.source %}
73
+ {% assign source = site.json.source | split: "github.com/" | slice: 1 %}
74
+ <p><span class="key">source</span><span class="attr"><a href="{{ site.json.source }}" {{ target }}>{{ source
75
+ }}</a></span></p>
76
+ {% endif %}
77
+ </div>
78
+ <div class="block">
79
+ {% if site.json.profiles %}
80
+ <span class="array-key">profiles</span>
81
+ <div class="array">
82
+ {% for i in site.json.profiles %}
83
+ <p class="array-attr"><a href="{{ i | slice: 1 }}" {{ target }}>{{ i | slice: 0 }}</a></p>
84
+ {% endfor %}
85
+ </div>
86
+ {% endif %}
87
+ </div>
88
+ </main>
data/_sass/_base.scss ADDED
@@ -0,0 +1,40 @@
1
+ body {
2
+ font-family: "hack", monospace;
3
+ font-size: 16px;
4
+ font-weight: 400;
5
+ background-color: var(--oc-gray-9);
6
+ color: var(--oc-green-4);
7
+ }
8
+
9
+ main {
10
+ position: absolute;
11
+ width: 100%;
12
+ top: 50%;
13
+ left: 50%;
14
+ transform: translate(-50%, -50%);
15
+ text-transform: lowercase;
16
+
17
+ @media (min-width: 576px) {
18
+ font-size: 18px;
19
+ width: 80%;
20
+ }
21
+
22
+ @media (min-width: 768px) {
23
+ font-size: 20px;
24
+ width: 60%
25
+ }
26
+ }
27
+
28
+ p {
29
+ margin: 0;
30
+ }
31
+
32
+ a {
33
+ color: inherit;
34
+ font-style: italic;
35
+
36
+ &:hover,
37
+ &:active {
38
+ color: var(--oc-green-5);
39
+ }
40
+ }
data/_sass/_fonts.scss ADDED
@@ -0,0 +1,15 @@
1
+ @font-face {
2
+ font-family: "hack";
3
+ src: url("../fonts/hack-regular-subset.woff2") format("woff2");
4
+ font-style: normal;
5
+ font-weight: 400;
6
+ text-rendering: optimizeLegibility;
7
+ }
8
+
9
+ @font-face {
10
+ font-family: "hack";
11
+ src: url("../fonts/hack-italic-subset.woff2") format("woff2");
12
+ font-style: italic;
13
+ font-weight: 400;
14
+ text-rendering: optimizeLegibility;
15
+ }
data/_sass/_json.scss ADDED
@@ -0,0 +1,65 @@
1
+ .json {
2
+ white-space: nowrap;
3
+
4
+ &:before {
5
+ content: "{";
6
+ }
7
+ &:after {
8
+ content: "}";
9
+ }
10
+ }
11
+
12
+ .block {
13
+ margin-left: 1.5rem;
14
+ margin-top: 1rem;
15
+ margin-bottom: 1rem;
16
+ }
17
+
18
+ .key:after {
19
+ content: ": ";
20
+ }
21
+
22
+ .attr,
23
+ .list-attr {
24
+ &:before {
25
+ content: '"';
26
+ }
27
+ &:after {
28
+ content: '",';
29
+ }
30
+ }
31
+
32
+ .array-key:after {
33
+ content: ": [";
34
+ }
35
+
36
+ .array-attr {
37
+ margin-left: 1.5rem;
38
+
39
+ &:before {
40
+ content: '"';
41
+ }
42
+ &:after {
43
+ content: '",';
44
+ }
45
+ }
46
+
47
+ .array:after {
48
+ content: "],";
49
+ }
50
+
51
+ .list-key:after {
52
+ content: ": {";
53
+ }
54
+
55
+ .list:after {
56
+ content: "},";
57
+ }
58
+
59
+ .list-subkey {
60
+ margin-left: 1.5rem;
61
+
62
+ &:after {
63
+ content: ": ";
64
+ }
65
+ }
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;}main{display:block;}h1{font-size:2em;margin:.67em 0;}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder;}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-.25em;}sup{top:-.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible;}button,select{text-transform:none;}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText;}fieldset{padding:.35em .75em .625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block;}summary{display:list-item;}template{display:none;}[hidden]{display:none;}
@@ -0,0 +1 @@
1
+ :root{--oc-white:#ffffff;--oc-white-rgb:255,255,255;--oc-black:#000000;--oc-black-rgb:0,0,0;--oc-gray-0:#f8f9fa;--oc-gray-0-rgb:248,249,250;--oc-gray-1:#f1f3f5;--oc-gray-1-rgb:241,243,245;--oc-gray-2:#e9ecef;--oc-gray-2-rgb:233,236,239;--oc-gray-3:#dee2e6;--oc-gray-3-rgb:222,226,230;--oc-gray-4:#ced4da;--oc-gray-4-rgb:206,212,218;--oc-gray-5:#adb5bd;--oc-gray-5-rgb:173,181,189;--oc-gray-6:#868e96;--oc-gray-6-rgb:134,142,150;--oc-gray-7:#495057;--oc-gray-7-rgb:73,80,87;--oc-gray-8:#343a40;--oc-gray-8-rgb:52,58,64;--oc-gray-9:#212529;--oc-gray-9-rgb:33,37,41;--oc-red-0:#fff5f5;--oc-red-0-rgb:255,245,245;--oc-red-1:#ffe3e3;--oc-red-1-rgb:255,227,227;--oc-red-2:#ffc9c9;--oc-red-2-rgb:255,201,201;--oc-red-3:#ffa8a8;--oc-red-3-rgb:255,168,168;--oc-red-4:#ff8787;--oc-red-4-rgb:255,135,135;--oc-red-5:#ff6b6b;--oc-red-5-rgb:255,107,107;--oc-red-6:#fa5252;--oc-red-6-rgb:250,82,82;--oc-red-7:#f03e3e;--oc-red-7-rgb:240,62,62;--oc-red-8:#e03131;--oc-red-8-rgb:224,49,49;--oc-red-9:#c92a2a;--oc-red-9-rgb:201,42,42;--oc-pink-0:#fff0f6;--oc-pink-0-rgb:255,240,246;--oc-pink-1:#ffdeeb;--oc-pink-1-rgb:255,222,235;--oc-pink-2:#fcc2d7;--oc-pink-2-rgb:252,194,215;--oc-pink-3:#faa2c1;--oc-pink-3-rgb:250,162,193;--oc-pink-4:#f783ac;--oc-pink-4-rgb:247,131,172;--oc-pink-5:#f06595;--oc-pink-5-rgb:240,101,149;--oc-pink-6:#e64980;--oc-pink-6-rgb:230,73,128;--oc-pink-7:#d6336c;--oc-pink-7-rgb:214,51,108;--oc-pink-8:#c2255c;--oc-pink-8-rgb:194,37,92;--oc-pink-9:#a61e4d;--oc-pink-9-rgb:166,30,77;--oc-grape-0:#f8f0fc;--oc-grape-0-rgb:248,240,252;--oc-grape-1:#f3d9fa;--oc-grape-1-rgb:243,217,250;--oc-grape-2:#eebefa;--oc-grape-2-rgb:238,190,250;--oc-grape-3:#e599f7;--oc-grape-3-rgb:229,153,247;--oc-grape-4:#da77f2;--oc-grape-4-rgb:218,119,242;--oc-grape-5:#cc5de8;--oc-grape-5-rgb:204,93,232;--oc-grape-6:#be4bdb;--oc-grape-6-rgb:190,75,219;--oc-grape-7:#ae3ec9;--oc-grape-7-rgb:174,62,201;--oc-grape-8:#9c36b5;--oc-grape-8-rgb:156,54,181;--oc-grape-9:#862e9c;--oc-grape-9-rgb:134,46,156;--oc-violet-0:#f3f0ff;--oc-violet-0-rgb:243,240,255;--oc-violet-1:#e5dbff;--oc-violet-1-rgb:229,219,255;--oc-violet-2:#d0bfff;--oc-violet-2-rgb:208,191,255;--oc-violet-3:#b197fc;--oc-violet-3-rgb:177,151,252;--oc-violet-4:#9775fa;--oc-violet-4-rgb:151,117,250;--oc-violet-5:#845ef7;--oc-violet-5-rgb:132,94,247;--oc-violet-6:#7950f2;--oc-violet-6-rgb:121,80,242;--oc-violet-7:#7048e8;--oc-violet-7-rgb:112,72,232;--oc-violet-8:#6741d9;--oc-violet-8-rgb:103,65,217;--oc-violet-9:#5f3dc4;--oc-violet-9-rgb:95,61,196;--oc-indigo-0:#edf2ff;--oc-indigo-0-rgb:237,242,255;--oc-indigo-1:#dbe4ff;--oc-indigo-1-rgb:219,228,255;--oc-indigo-2:#bac8ff;--oc-indigo-2-rgb:186,200,255;--oc-indigo-3:#91a7ff;--oc-indigo-3-rgb:145,167,255;--oc-indigo-4:#748ffc;--oc-indigo-4-rgb:116,143,252;--oc-indigo-5:#5c7cfa;--oc-indigo-5-rgb:92,124,250;--oc-indigo-6:#4c6ef5;--oc-indigo-6-rgb:76,110,245;--oc-indigo-7:#4263eb;--oc-indigo-7-rgb:66,99,235;--oc-indigo-8:#3b5bdb;--oc-indigo-8-rgb:59,91,219;--oc-indigo-9:#364fc7;--oc-indigo-9-rgb:54,79,199;--oc-blue-0:#e7f5ff;--oc-blue-0-rgb:231,245,255;--oc-blue-1:#d0ebff;--oc-blue-1-rgb:208,235,255;--oc-blue-2:#a5d8ff;--oc-blue-2-rgb:165,216,255;--oc-blue-3:#74c0fc;--oc-blue-3-rgb:116,192,252;--oc-blue-4:#4dabf7;--oc-blue-4-rgb:77,171,247;--oc-blue-5:#339af0;--oc-blue-5-rgb:51,154,240;--oc-blue-6:#228be6;--oc-blue-6-rgb:34,139,230;--oc-blue-7:#1c7ed6;--oc-blue-7-rgb:28,126,214;--oc-blue-8:#1971c2;--oc-blue-8-rgb:25,113,194;--oc-blue-9:#1864ab;--oc-blue-9-rgb:24,100,171;--oc-cyan-0:#e3fafc;--oc-cyan-0-rgb:227,250,252;--oc-cyan-1:#c5f6fa;--oc-cyan-1-rgb:197,246,250;--oc-cyan-2:#99e9f2;--oc-cyan-2-rgb:153,233,242;--oc-cyan-3:#66d9e8;--oc-cyan-3-rgb:102,217,232;--oc-cyan-4:#3bc9db;--oc-cyan-4-rgb:59,201,219;--oc-cyan-5:#22b8cf;--oc-cyan-5-rgb:34,184,207;--oc-cyan-6:#15aabf;--oc-cyan-6-rgb:21,170,191;--oc-cyan-7:#1098ad;--oc-cyan-7-rgb:16,152,173;--oc-cyan-8:#0c8599;--oc-cyan-8-rgb:12,133,153;--oc-cyan-9:#0b7285;--oc-cyan-9-rgb:11,114,133;--oc-teal-0:#e6fcf5;--oc-teal-0-rgb:230,252,245;--oc-teal-1:#c3fae8;--oc-teal-1-rgb:195,250,232;--oc-teal-2:#96f2d7;--oc-teal-2-rgb:150,242,215;--oc-teal-3:#63e6be;--oc-teal-3-rgb:99,230,190;--oc-teal-4:#38d9a9;--oc-teal-4-rgb:56,217,169;--oc-teal-5:#20c997;--oc-teal-5-rgb:32,201,151;--oc-teal-6:#12b886;--oc-teal-6-rgb:18,184,134;--oc-teal-7:#0ca678;--oc-teal-7-rgb:12,166,120;--oc-teal-8:#099268;--oc-teal-8-rgb:9,146,104;--oc-teal-9:#087f5b;--oc-teal-9-rgb:8,127,91;--oc-green-0:#ebfbee;--oc-green-0-rgb:235,251,238;--oc-green-1:#d3f9d8;--oc-green-1-rgb:211,249,216;--oc-green-2:#b2f2bb;--oc-green-2-rgb:178,242,187;--oc-green-3:#8ce99a;--oc-green-3-rgb:140,233,154;--oc-green-4:#69db7c;--oc-green-4-rgb:105,219,124;--oc-green-5:#51cf66;--oc-green-5-rgb:81,207,102;--oc-green-6:#40c057;--oc-green-6-rgb:64,192,87;--oc-green-7:#37b24d;--oc-green-7-rgb:55,178,77;--oc-green-8:#2f9e44;--oc-green-8-rgb:47,158,68;--oc-green-9:#2b8a3e;--oc-green-9-rgb:43,138,62;--oc-lime-0:#f4fce3;--oc-lime-0-rgb:244,252,227;--oc-lime-1:#e9fac8;--oc-lime-1-rgb:233,250,200;--oc-lime-2:#d8f5a2;--oc-lime-2-rgb:216,245,162;--oc-lime-3:#c0eb75;--oc-lime-3-rgb:192,235,117;--oc-lime-4:#a9e34b;--oc-lime-4-rgb:169,227,75;--oc-lime-5:#94d82d;--oc-lime-5-rgb:148,216,45;--oc-lime-6:#82c91e;--oc-lime-6-rgb:130,201,30;--oc-lime-7:#74b816;--oc-lime-7-rgb:116,184,22;--oc-lime-8:#66a80f;--oc-lime-8-rgb:102,168,15;--oc-lime-9:#5c940d;--oc-lime-9-rgb:92,148,13;--oc-yellow-0:#fff9db;--oc-yellow-0-rgb:255,249,219;--oc-yellow-1:#fff3bf;--oc-yellow-1-rgb:255,243,191;--oc-yellow-2:#ffec99;--oc-yellow-2-rgb:255,236,153;--oc-yellow-3:#ffe066;--oc-yellow-3-rgb:255,224,102;--oc-yellow-4:#ffd43b;--oc-yellow-4-rgb:255,212,59;--oc-yellow-5:#fcc419;--oc-yellow-5-rgb:252,196,25;--oc-yellow-6:#fab005;--oc-yellow-6-rgb:250,176,5;--oc-yellow-7:#f59f00;--oc-yellow-7-rgb:245,159,0;--oc-yellow-8:#f08c00;--oc-yellow-8-rgb:240,140,0;--oc-yellow-9:#e67700;--oc-yellow-9-rgb:230,119,0;--oc-orange-0:#fff4e6;--oc-orange-0-rgb:255,244,230;--oc-orange-1:#ffe8cc;--oc-orange-1-rgb:255,232,204;--oc-orange-2:#ffd8a8;--oc-orange-2-rgb:255,216,168;--oc-orange-3:#ffc078;--oc-orange-3-rgb:255,192,120;--oc-orange-4:#ffa94d;--oc-orange-4-rgb:255,169,77;--oc-orange-5:#ff922b;--oc-orange-5-rgb:255,146,43;--oc-orange-6:#fd7e14;--oc-orange-6-rgb:253,126,20;--oc-orange-7:#f76707;--oc-orange-7-rgb:247,103,7;--oc-orange-8:#e8590c;--oc-orange-8-rgb:232,89,12;--oc-orange-9:#d9480f;--oc-orange-9-rgb:217,72,15;}
@@ -0,0 +1,8 @@
1
+ ---
2
+ # Use a comment to ensure Jekyll reads the file to be transformed into CSS later
3
+ # only main files contain this front matter, not partials.
4
+ ---
5
+
6
+ @import "fonts";
7
+ @import "base";
8
+ @import "json";
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typed=e():t.Typed=e()}(this,(function(){return function(t){var e={};function s(n){if(e[n])return e[n].exports;var i=e[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,s),i.loaded=!0,i.exports}return s.m=t,s.c=e,s.p="",s(0)}([function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var s=0;s<e.length;s++){var n=e[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,s,n){return s&&t(e.prototype,s),n&&t(e,n),e}}(),i=s(1),r=s(3),o=function(){function t(e,s){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),i.initializer.load(this,s,e),this.begin()}return n(t,[{key:"toggle",value:function(){this.pause.status?this.start():this.stop()}},{key:"stop",value:function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))}},{key:"start",value:function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))}},{key:"destroy",value:function(){this.reset(!1),this.options.onDestroy(this)}},{key:"reset",value:function(){var t=arguments.length<=0||void 0===arguments[0]||arguments[0];clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,t&&(this.insertCursor(),this.options.onReset(this),this.begin())}},{key:"begin",value:function(){var t=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout((function(){t.currentElContent&&0!==t.currentElContent.length?t.backspace(t.currentElContent,t.currentElContent.length):t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos)}),this.startDelay)}},{key:"typewrite",value:function(t,e){var s=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var n=this.humanizer(this.typeSpeed),i=1;!0!==this.pause.status?this.timeout=setTimeout((function(){e=r.htmlParser.typeHtmlChars(t,e,s);var n=0,o=t.substr(e);if("^"===o.charAt(0)&&/^\^\d+/.test(o)){var a=1;a+=(o=/\d+/.exec(o)[0]).length,n=parseInt(o),s.temporaryPause=!0,s.options.onTypingPaused(s.arrayPos,s),t=t.substring(0,e)+t.substring(e+a),s.toggleBlinking(!0)}if("`"===o.charAt(0)){for(;"`"!==t.substr(e+i).charAt(0)&&(i++,!(e+i>t.length)););var u=t.substring(0,e),l=t.substring(u.length+1,e+i),c=t.substring(e+i+1);t=u+l+c,i--}s.timeout=setTimeout((function(){s.toggleBlinking(!1),e>=t.length?s.doneTyping(t,e):s.keepTyping(t,e,i),s.temporaryPause&&(s.temporaryPause=!1,s.options.onTypingResumed(s.arrayPos,s))}),n)}),n):this.setPauseStatus(t,e,!0)}},{key:"keepTyping",value:function(t,e,s){0===e&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this)),e+=s;var n=t.substr(0,e);this.replaceText(n),this.typewrite(t,e)}},{key:"doneTyping",value:function(t,e){var s=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout((function(){s.backspace(t,e)}),this.backDelay))}},{key:"backspace",value:function(t,e){var s=this;if(!0!==this.pause.status){if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var n=this.humanizer(this.backSpeed);this.timeout=setTimeout((function(){e=r.htmlParser.backSpaceHtmlChars(t,e,s);var n=t.substr(0,e);if(s.replaceText(n),s.smartBackspace){var i=s.strings[s.arrayPos+1];i&&n===i.substr(0,e)?s.stopNum=e:s.stopNum=0}e>s.stopNum?(e--,s.backspace(t,e)):e<=s.stopNum&&(s.arrayPos++,s.arrayPos===s.strings.length?(s.arrayPos=0,s.options.onLastStringBackspaced(),s.shuffleStringsIfNeeded(),s.begin()):s.typewrite(s.strings[s.sequence[s.arrayPos]],e))}),n)}else this.setPauseStatus(t,e,!1)}},{key:"complete",value:function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0}},{key:"setPauseStatus",value:function(t,e,s){this.pause.typewrite=s,this.pause.curString=t,this.pause.curStrPos=e}},{key:"toggleBlinking",value:function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))}},{key:"humanizer",value:function(t){return Math.round(Math.random()*t/2)+t}},{key:"shuffleStringsIfNeeded",value:function(){this.shuffle&&(this.sequence=this.sequence.sort((function(){return Math.random()-.5})))}},{key:"initFadeOut",value:function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout((function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)}),this.fadeOutDelay)}},{key:"replaceText",value:function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t}},{key:"bindFocusEvents",value:function(){var t=this;this.isInput&&(this.el.addEventListener("focus",(function(e){t.stop()})),this.el.addEventListener("blur",(function(e){t.el.value&&0!==t.el.value.length||t.start()})))}},{key:"insertCursor",value:function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))}}]),t}();e.default=o,t.exports=e.default},function(t,e,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(t[n]=s[n])}return t},r=function(){function t(t,e){for(var s=0;s<e.length;s++){var n=e[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,s,n){return s&&t(e.prototype,s),n&&t(e,n),e}}(),o=(n=s(2))&&n.__esModule?n:{default:n},a=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return r(t,[{key:"load",value:function(t,e,s){if(t.el="string"==typeof s?document.querySelector(s):s,t.options=i({},o.default,e),t.isInput="input"===t.el.tagName.toLowerCase(),t.attr=t.options.attr,t.bindInputFocusEvents=t.options.bindInputFocusEvents,t.showCursor=!t.isInput&&t.options.showCursor,t.cursorChar=t.options.cursorChar,t.cursorBlinking=!0,t.elContent=t.attr?t.el.getAttribute(t.attr):t.el.textContent,t.contentType=t.options.contentType,t.typeSpeed=t.options.typeSpeed,t.startDelay=t.options.startDelay,t.backSpeed=t.options.backSpeed,t.smartBackspace=t.options.smartBackspace,t.backDelay=t.options.backDelay,t.fadeOut=t.options.fadeOut,t.fadeOutClass=t.options.fadeOutClass,t.fadeOutDelay=t.options.fadeOutDelay,t.isPaused=!1,t.strings=t.options.strings.map((function(t){return t.trim()})),"string"==typeof t.options.stringsElement?t.stringsElement=document.querySelector(t.options.stringsElement):t.stringsElement=t.options.stringsElement,t.stringsElement){t.strings=[],t.stringsElement.style.display="none";var n=Array.prototype.slice.apply(t.stringsElement.children),r=n.length;if(r)for(var a=0;a<r;a+=1){var u=n[a];t.strings.push(u.innerHTML.trim())}}for(var a in t.strPos=0,t.arrayPos=0,t.stopNum=0,t.loop=t.options.loop,t.loopCount=t.options.loopCount,t.curLoop=0,t.shuffle=t.options.shuffle,t.sequence=[],t.pause={status:!1,typewrite:!0,curString:"",curStrPos:0},t.typingComplete=!1,t.strings)t.sequence[a]=a;t.currentElContent=this.getCurrentElContent(t),t.autoInsertCss=t.options.autoInsertCss,this.appendAnimationCss(t)}},{key:"getCurrentElContent",value:function(t){return t.attr?t.el.getAttribute(t.attr):t.isInput?t.el.value:"html"===t.contentType?t.el.innerHTML:t.el.textContent}},{key:"appendAnimationCss",value:function(t){var e="data-typed-js-css";if(t.autoInsertCss&&(t.showCursor||t.fadeOut)&&!document.querySelector("["+e+"]")){var s=document.createElement("style");s.type="text/css",s.setAttribute(e,!0);var n="";t.showCursor&&(n+="\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n "),t.fadeOut&&(n+="\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n "),0!==s.length&&(s.innerHTML=n,document.body.appendChild(s))}}}]),t}();e.default=a;var u=new a;e.initializer=u},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={strings:["These are the default values...","You know what you should do?","Use your own!","Have a great day!"],stringsElement:null,typeSpeed:0,startDelay:0,backSpeed:0,smartBackspace:!0,shuffle:!1,backDelay:700,fadeOut:!1,fadeOutClass:"typed-fade-out",fadeOutDelay:500,loop:!1,loopCount:1/0,showCursor:!0,cursorChar:"|",autoInsertCss:!0,attr:null,bindInputFocusEvents:!1,contentType:"html",onBegin:function(t){},onComplete:function(t){},preStringTyped:function(t,e){},onStringTyped:function(t,e){},onLastStringBackspaced:function(t){},onTypingPaused:function(t,e){},onTypingResumed:function(t,e){},onReset:function(t){},onStop:function(t,e){},onStart:function(t,e){},onDestroy:function(t){}},t.exports=e.default},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var s=0;s<e.length;s++){var n=e[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,s,n){return s&&t(e.prototype,s),n&&t(e,n),e}}(),n=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}return s(t,[{key:"typeHtmlChars",value:function(t,e,s){if("html"!==s.contentType)return e;var n=t.substr(e).charAt(0);if("<"===n||"&"===n){var i;for(i="<"===n?">":";";t.substr(e+1).charAt(0)!==i&&!(1+ ++e>t.length););e++}return e}},{key:"backSpaceHtmlChars",value:function(t,e,s){if("html"!==s.contentType)return e;var n=t.substr(e).charAt(0);if(">"===n||";"===n){var i;for(i=">"===n?"<":"&";t.substr(e-1).charAt(0)!==i&&!(--e<0););e--}return e}}]),t}();e.default=n;var i=new n;e.htmlParser=i}])}));
@@ -0,0 +1 @@
1
+ {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hacked-jekyll
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.0
5
+ platform: ruby
6
+ authors:
7
+ - piazzai
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-01-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.3'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 4.3.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '4.3'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 4.3.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: jekyll-seo-tag
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.8'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.8'
47
+ - !ruby/object:Gem::Dependency
48
+ name: jekyll-sitemap
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.4'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.4'
61
+ description:
62
+ email:
63
+ - 42124135+piazzai@users.noreply.github.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - LICENSE
69
+ - README.md
70
+ - _config.yml
71
+ - _includes/head.html
72
+ - _includes/typed.html
73
+ - _layouts/404.html
74
+ - _layouts/default.html
75
+ - _layouts/home.html
76
+ - _sass/_base.scss
77
+ - _sass/_fonts.scss
78
+ - _sass/_json.scss
79
+ - assets/android-chrome-192x192.png
80
+ - assets/android-chrome-512x512.png
81
+ - assets/apple-touch-icon.png
82
+ - assets/css/normalize.min.css
83
+ - assets/css/open-color.min.css
84
+ - assets/css/styles.min.scss
85
+ - assets/favicon-16x16.png
86
+ - assets/favicon-32x32.png
87
+ - assets/favicon.ico
88
+ - assets/fonts/hack-italic-subset.woff2
89
+ - assets/fonts/hack-regular-subset.woff2
90
+ - assets/js/typed.min.js
91
+ - assets/site.webmanifest
92
+ homepage: https://github.com/piazzai/hacked-jekyll
93
+ licenses:
94
+ - MIT
95
+ metadata: {}
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubygems_version: 3.3.5
112
+ signing_key:
113
+ specification_version: 4
114
+ summary: Jekyll microtheme that looks like JSON
115
+ test_files: []