arco 0.1.1
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/_config.yml +2 -0
- data/_includes/cover.html +9 -0
- data/_includes/footer.html +3 -0
- data/_includes/mathjax.html +22 -0
- data/_includes/sidebar.html +23 -0
- data/_layouts/default.html +16 -0
- data/_layouts/landing.html +11 -0
- data/_layouts/post-list.html +30 -0
- data/_layouts/post.html +23 -0
- data/_layouts/resume.html +5 -0
- data/_sass/arco.scss +149 -0
- data/_sass/constants.scss +19 -0
- data/_sass/cover.scss +113 -0
- data/_sass/fonts.scss +55 -0
- data/_sass/footer.scss +3 -0
- data/_sass/normalize.scss +349 -0
- data/_sass/post-list.scss +66 -0
- data/_sass/post.scss +37 -0
- data/_sass/sidebar.scss +190 -0
- data/_sass/syntax-highlighting.scss +129 -0
- data/assets/css/main.scss +11 -0
- data/assets/flexmasonry/flexmasonry.css +77 -0
- data/assets/flexmasonry/flexmasonry.js +7 -0
- data/assets/fonts/open-sans/LICENSE.txt +202 -0
- data/assets/fonts/open-sans/OpenSans-Bold.ttf +0 -0
- data/assets/fonts/open-sans/OpenSans-BoldItalic.ttf +0 -0
- data/assets/fonts/open-sans/OpenSans-Italic.ttf +0 -0
- data/assets/fonts/open-sans/OpenSans-Regular.ttf +0 -0
- data/assets/fonts/roboto-mono/LICENSE.txt +202 -0
- data/assets/fonts/roboto-mono/RobotoMono-Bold.ttf +0 -0
- data/assets/fonts/roboto-mono/RobotoMono-BoldItalic.ttf +0 -0
- data/assets/fonts/roboto-mono/RobotoMono-Italic.ttf +0 -0
- data/assets/fonts/roboto-mono/RobotoMono-Regular.ttf +0 -0
- data/assets/js/cover-transitions.js +16 -0
- data/assets/js/fade-transitions.js +49 -0
- data/assets/js/post-grid-init.js +4 -0
- data/assets/js/sidebar.js +11 -0
- metadata +96 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 860a024f04415c6e0d8650dbcd4cdb11413b5fdd0ae5097a1fd843d81c4bf92d
|
4
|
+
data.tar.gz: 245a865ff73a7b353aabd0cdb176a4d3191f82320f5d3843578dcfa8d3efbddd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 984f567c79b653a1de26f90d8e81d32d68a7bd53361d899169bee115c45d992c39f2ad1b6fd9bd5d83b766e34fee25624628f2f9e96e51fbe3693420f6015e32
|
7
|
+
data.tar.gz: 3351f049130df6f552c283a1b3cc8e45342641ca54ebb39346a1207c7e139bf90eba472839c71d831e8e9fe5c490cd5ed7fb024ba21ede2f2f2ce7d32246516e
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2020
|
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/_config.yml
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
<section id="cover" class="cover">
|
2
|
+
<div class="cover-text">
|
3
|
+
<h1><a href="{{ "/" | absolute_url }}">{{ site.title | default: site.github.repository_name }}</a></h1>
|
4
|
+
<h6>{{ site.description | default: site.github.project_tagline }}</h6>
|
5
|
+
</div>
|
6
|
+
<div id="open-button-container" class="open-button-container">
|
7
|
+
<a href="/projects/" class="open-button">See my projects →</a>
|
8
|
+
</div>
|
9
|
+
</section>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{% if page.mathjax %}
|
2
|
+
<script type="text/x-mathjax-config">
|
3
|
+
MathJax.Hub.Config({
|
4
|
+
tex2jax: {
|
5
|
+
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
|
6
|
+
processEscapes: true
|
7
|
+
}
|
8
|
+
});
|
9
|
+
</script>
|
10
|
+
<script
|
11
|
+
type="text/javascript"
|
12
|
+
charset="utf-8"
|
13
|
+
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
|
14
|
+
>
|
15
|
+
</script>
|
16
|
+
<script
|
17
|
+
type="text/javascript"
|
18
|
+
charset="utf-8"
|
19
|
+
src="https://vincenttam.github.io/javascripts/MathJaxLocal.js"
|
20
|
+
>
|
21
|
+
</script>
|
22
|
+
{% endif %}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<section id="sidebar" class="sidebar">
|
2
|
+
<svg id="sidebar-fader"></svg>
|
3
|
+
<div class="sidebar-text">
|
4
|
+
<h1><a href="{{ "/projects/" | absolute_url }}" class="fade-onclick">{{ site.title | default: site.github.repository_name }}</a></h1>
|
5
|
+
<h6>{{ site.description | default: site.github.project_tagline }}</h6>
|
6
|
+
</div>
|
7
|
+
<div class="sidebar-links">
|
8
|
+
{% assign identifier = page.url | split: "/" | last %}
|
9
|
+
{% if identifier == "completed" %}
|
10
|
+
completed
|
11
|
+
{% else %}
|
12
|
+
<a href="{{ "/projects/completed" }}" class="fade-onclick">completed</a>
|
13
|
+
{% endif %}
|
14
|
+
/
|
15
|
+
{% if identifier == "ongoing" %}
|
16
|
+
ongoing
|
17
|
+
{% else %}
|
18
|
+
<a href="{{ "/projects/ongoing" }}" class="fade-onclick">ongoing</a>
|
19
|
+
{% endif %}
|
20
|
+
/
|
21
|
+
{% if site.github %}<a href="{{ site.github }}">github</a> {% endif %}{% if site.resume %} / <a href="{{ "/resume" }}" class="fade-onclick">resume</a> {% endif %}
|
22
|
+
</div>
|
23
|
+
</section>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en-AU">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<link rel="stylesheet" href="/assets/css/main.css">
|
6
|
+
<link rel="stylesheet" href="/assets/flexmasonry/flexmasonry.css">
|
7
|
+
<script src="/assets/flexmasonry/flexmasonry.js"></script>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
{% include sidebar.html %}
|
11
|
+
{{ content }}
|
12
|
+
</body>
|
13
|
+
<script src="/assets/js/sidebar.js"></script>
|
14
|
+
<script src="/assets/js/fade-transitions.js"></script>
|
15
|
+
<script>fadeInPage();</script>
|
16
|
+
</html>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<section class="content">
|
6
|
+
<svg id="content-fader"></svg>
|
7
|
+
<div class="list-posts">
|
8
|
+
{% assign posts = site.categories[page.category] | default: site.posts %}
|
9
|
+
{% for post in posts %}
|
10
|
+
<div class="list-post">
|
11
|
+
<a href="{{ post.url }}" class="fade-onclick">
|
12
|
+
<div class="list-post-link">
|
13
|
+
<img class="list-post-image" src="{{ post.cover-image }}" />
|
14
|
+
<div class="list-post-info">
|
15
|
+
<div class="list-post-title">{{ post.title }}</div>
|
16
|
+
<div class="list-post-summary">{{ post.summary }}</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</a>
|
20
|
+
<div class="list-post-footer">
|
21
|
+
<span class="list-post-date">{{ post.date | date_to_string}}</span>
|
22
|
+
·
|
23
|
+
<a href="{{ "/projects/" }}{{ post.category }}" class="fade-onclick"><span class="list-post-category">{{ post.category }}</span></a>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
{% endfor %}
|
27
|
+
</div>
|
28
|
+
{% include footer.html %}
|
29
|
+
</section>
|
30
|
+
<script src="/assets/js/post-grid-init.js"></script>
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include mathjax.html %}
|
6
|
+
|
7
|
+
<section class="content">
|
8
|
+
<svg id="content-fader"></svg>
|
9
|
+
<div class="post">
|
10
|
+
<div class="post-title"><h1>{{ page.title }}</h1></div>
|
11
|
+
<div class="post-header">
|
12
|
+
<span class="post-date">{{ page.date | date_to_string}}</span>
|
13
|
+
·
|
14
|
+
<a href="{{ "/projects/" }}{{ page.category }}" class="fade-onclick"><span class="post-category">{{ page.category }}</span></a>
|
15
|
+
</div>
|
16
|
+
<img class="post-image" src="{{ page.top-image }}" />
|
17
|
+
|
18
|
+
<div class="post-content">
|
19
|
+
{{ content }}
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
{% include footer.html %}
|
23
|
+
</section>
|
data/_sass/arco.scss
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
@import "constants";
|
2
|
+
@import "fonts";
|
3
|
+
|
4
|
+
html, body {
|
5
|
+
margin: 0px;
|
6
|
+
padding: 0px;
|
7
|
+
height: 100%;
|
8
|
+
box-sizing: border-box;
|
9
|
+
font-family: "Open Sans", Arial, sans-serif;
|
10
|
+
-webkit-font-smoothing: antialiased;
|
11
|
+
text-rendering: optimizeLegibility;
|
12
|
+
}
|
13
|
+
|
14
|
+
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
|
15
|
+
font-weight: inherit;
|
16
|
+
color: $text-colour-dark;
|
17
|
+
:hover, :focus {
|
18
|
+
color: lighten($text-colour-dark, 24%);
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
h1 {
|
23
|
+
font-size: 2rem;
|
24
|
+
margin: 0.5em 0 1em 0;
|
25
|
+
font-weight: bold;
|
26
|
+
line-height: 1.7;
|
27
|
+
}
|
28
|
+
|
29
|
+
h2 {
|
30
|
+
font-size: 1.75rem;
|
31
|
+
margin: 2em 0 0.8em;
|
32
|
+
padding-bottom: 0.7em;
|
33
|
+
border-bottom: 1px solid #ddd;
|
34
|
+
font-weight: bold;
|
35
|
+
line-height: 1.7;
|
36
|
+
}
|
37
|
+
|
38
|
+
h3 {
|
39
|
+
font-size: 1.5rem;
|
40
|
+
margin: 1.75em 0 1.2em;
|
41
|
+
font-weight: bold;
|
42
|
+
line-height: 1.7;
|
43
|
+
}
|
44
|
+
|
45
|
+
h4 {
|
46
|
+
font-size: 1.25rem;
|
47
|
+
margin: (1.25rem / 2) 0 (1.25rem / 2.5) 0;
|
48
|
+
font-weight: bold;
|
49
|
+
line-height: 1.7;
|
50
|
+
}
|
51
|
+
|
52
|
+
h5 {
|
53
|
+
font-size: 1.15rem;
|
54
|
+
margin: (1.15rem / 2) 0 (1.15rem / 2.5) 0;
|
55
|
+
font-weight: bold;
|
56
|
+
line-height: 1.7;
|
57
|
+
}
|
58
|
+
|
59
|
+
h6 {
|
60
|
+
font-size: 1rem;
|
61
|
+
margin: (1rem / 2) 0 (1rem / 2.5) 0;
|
62
|
+
text-transform: uppercase;
|
63
|
+
}
|
64
|
+
|
65
|
+
a {
|
66
|
+
text-decoration: none;
|
67
|
+
color: $primary-highlight;
|
68
|
+
&:hover, &:focus {
|
69
|
+
color: lighten($primary-highlight, 14%);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
blockquote {
|
74
|
+
display: block;
|
75
|
+
position: relative;
|
76
|
+
padding-left: 20px;
|
77
|
+
font-style: italic;
|
78
|
+
border-left: 5px solid $secondary-highlight;
|
79
|
+
}
|
80
|
+
|
81
|
+
.notice {
|
82
|
+
border: 1px solid $sidebar-colour;
|
83
|
+
border-radius: 0.4em;
|
84
|
+
padding: 0.5em 1em;
|
85
|
+
}
|
86
|
+
|
87
|
+
table, th, td {
|
88
|
+
border: none;
|
89
|
+
}
|
90
|
+
|
91
|
+
.table {
|
92
|
+
display: table;
|
93
|
+
}
|
94
|
+
|
95
|
+
.table-cell {
|
96
|
+
display: table-cell;
|
97
|
+
}
|
98
|
+
|
99
|
+
.table-top {
|
100
|
+
vertical-align: top;
|
101
|
+
}
|
102
|
+
|
103
|
+
.table-middle {
|
104
|
+
vertical-align: middle;
|
105
|
+
}
|
106
|
+
|
107
|
+
.table-bottom {
|
108
|
+
vertical-align: bottom;
|
109
|
+
}
|
110
|
+
|
111
|
+
table {
|
112
|
+
display: table;
|
113
|
+
&.striped > tbody {
|
114
|
+
> tr:nth-child(odd) {
|
115
|
+
background-color: $table-background-colour;
|
116
|
+
}
|
117
|
+
> tr > td {
|
118
|
+
border-radius: 0;
|
119
|
+
}
|
120
|
+
}
|
121
|
+
&.centered {
|
122
|
+
thead tr th, tbody tr td, tfoot tr td {
|
123
|
+
text-align: center;
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
td, th {
|
129
|
+
padding: 10px 5px;
|
130
|
+
display: table-cell;
|
131
|
+
text-align: left;
|
132
|
+
vertical-align: middle;
|
133
|
+
border-radius: 2px;
|
134
|
+
}
|
135
|
+
|
136
|
+
|
137
|
+
li, ul {
|
138
|
+
line-height: 1.5em;
|
139
|
+
}
|
140
|
+
|
141
|
+
.content {
|
142
|
+
width: auto;
|
143
|
+
height: auto;
|
144
|
+
}
|
145
|
+
|
146
|
+
.footer {
|
147
|
+
flex-shrink: 0;
|
148
|
+
}
|
149
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// Colours
|
2
|
+
|
3
|
+
$primary-highlight: #f2777a;
|
4
|
+
$secondary-highlight: #66cccc;
|
5
|
+
$tertiary-highlight: #ffcc66;
|
6
|
+
|
7
|
+
$sidebar-colour: #1a2a38;
|
8
|
+
$hover-colour: #e5e5e5;
|
9
|
+
$summary-colour: #474747;
|
10
|
+
$text-colour-light: white;
|
11
|
+
$text-colour-dark: black;
|
12
|
+
|
13
|
+
$table-background-colour: #e5e5e5;
|
14
|
+
|
15
|
+
// Sizes
|
16
|
+
|
17
|
+
$sidebar-width: 330px;
|
18
|
+
$sidebar-height-min: 100px;
|
19
|
+
$sidebar-height: 150px;
|
data/_sass/cover.scss
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
@import "constants";
|
2
|
+
@import "fonts";
|
3
|
+
|
4
|
+
.cover-text {
|
5
|
+
h1 {
|
6
|
+
margin: 0;
|
7
|
+
:hover {
|
8
|
+
color: lighten($primary-highlight, 14%);
|
9
|
+
}
|
10
|
+
}
|
11
|
+
h6 {
|
12
|
+
text-transform: uppercase;
|
13
|
+
font-size: .9rem;
|
14
|
+
color: $text-colour-light;
|
15
|
+
}
|
16
|
+
a {
|
17
|
+
color: $primary-highlight;
|
18
|
+
:hover {
|
19
|
+
color: lighten($primary-highlight, 24%);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
.open-button {
|
25
|
+
height: 50px;
|
26
|
+
width: 200px;
|
27
|
+
border: 2px solid white;
|
28
|
+
border-radius: 5px;
|
29
|
+
transition: all .25s ease;
|
30
|
+
display: flex;
|
31
|
+
flex-direction: column;
|
32
|
+
justify-content: center;
|
33
|
+
text-align: center;
|
34
|
+
background-color: $sidebar-colour;
|
35
|
+
color: white;
|
36
|
+
&:hover, &:focus {
|
37
|
+
background-color: white;
|
38
|
+
color: $sidebar-colour
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
.open-button-container {
|
43
|
+
width: 100%;
|
44
|
+
margin-top: 20px;
|
45
|
+
display: flex;
|
46
|
+
justify-content: center;
|
47
|
+
}
|
48
|
+
|
49
|
+
.cover {
|
50
|
+
height: 100%;
|
51
|
+
width: 100%;
|
52
|
+
display: flex;
|
53
|
+
top: 0;
|
54
|
+
position: fixed;
|
55
|
+
z-index: 9999;
|
56
|
+
background: $sidebar-colour;
|
57
|
+
color: $text-colour-light;
|
58
|
+
transition: all .25s ease;
|
59
|
+
}
|
60
|
+
|
61
|
+
/* vertical layout */
|
62
|
+
@media only screen and (max-width: calc(2 * #{$sidebar-width - 1})), (orientation: portrait) {
|
63
|
+
#cover {
|
64
|
+
flex-direction: row;
|
65
|
+
justify-content: space-evenly;
|
66
|
+
align-items: center;
|
67
|
+
text-align: center;
|
68
|
+
}
|
69
|
+
|
70
|
+
.cover-text {
|
71
|
+
display: flex;
|
72
|
+
flex-direction: column;
|
73
|
+
}
|
74
|
+
|
75
|
+
.slide {
|
76
|
+
height: $sidebar-height;
|
77
|
+
animation-name: slide-up;
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
/* horizontal layout */
|
82
|
+
@media only screen and (min-width: calc(2 * #{$sidebar-width})) and (orientation: landscape) {
|
83
|
+
#cover {
|
84
|
+
flex-direction: column;
|
85
|
+
text-align: center;
|
86
|
+
justify-content: center;
|
87
|
+
}
|
88
|
+
|
89
|
+
.slide {
|
90
|
+
width: $sidebar-width;
|
91
|
+
animation-name: slide-left;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
@keyframes slide-left {
|
96
|
+
from {
|
97
|
+
width: 100%;
|
98
|
+
}
|
99
|
+
|
100
|
+
to {
|
101
|
+
width: $sidebar-width;
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
@keyframes slide-up {
|
106
|
+
from {
|
107
|
+
height: 100%;
|
108
|
+
}
|
109
|
+
|
110
|
+
to {
|
111
|
+
height: $sidebar-height;
|
112
|
+
}
|
113
|
+
}
|
data/_sass/fonts.scss
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
@font-face {
|
2
|
+
font-family: 'Open Sans';
|
3
|
+
font-weight: 400;
|
4
|
+
font-style: normal;
|
5
|
+
src: url('../fonts/open-sans/OpenSans-Regular.ttf') format('truetype');
|
6
|
+
}
|
7
|
+
|
8
|
+
@font-face {
|
9
|
+
font-family: 'Open Sans';
|
10
|
+
font-weight: 700;
|
11
|
+
font-style: normal;
|
12
|
+
src: url('../fonts/open-sans/OpenSans-Bold.ttf') format('truetype');
|
13
|
+
}
|
14
|
+
|
15
|
+
@font-face {
|
16
|
+
font-family: 'Open Sans';
|
17
|
+
font-weight: 400;
|
18
|
+
font-style: italic;
|
19
|
+
src: url('../fonts/open-sans/OpenSans-Italic.ttf') format('truetype');
|
20
|
+
}
|
21
|
+
|
22
|
+
@font-face {
|
23
|
+
font-family: 'Open Sans';
|
24
|
+
font-weight: 700;
|
25
|
+
font-style: italic;
|
26
|
+
src: url('../fonts/open-sans/OpenSans-BoldItalic.ttf') format('truetype');
|
27
|
+
}
|
28
|
+
|
29
|
+
@font-face {
|
30
|
+
font-family: 'Roboto Mono';
|
31
|
+
font-weight: 400;
|
32
|
+
font-style: normal;
|
33
|
+
src: url('../fonts/roboto-mono/RobotoMono-Regular.ttf') format('truetype');
|
34
|
+
}
|
35
|
+
|
36
|
+
@font-face {
|
37
|
+
font-family: 'Roboto Mono';
|
38
|
+
font-weight: 700;
|
39
|
+
font-style: normal;
|
40
|
+
src: url('../fonts/roboto-mono/RobotoMono-Bold.ttf') format('truetype');
|
41
|
+
}
|
42
|
+
|
43
|
+
@font-face {
|
44
|
+
font-family: 'Roboto Mono';
|
45
|
+
font-weight: 400;
|
46
|
+
font-style: italic;
|
47
|
+
src: url('../fonts/roboto-mono/RobotoMono-Italic.ttf') format('truetype');
|
48
|
+
}
|
49
|
+
|
50
|
+
@font-face {
|
51
|
+
font-family: 'Roboto Mono';
|
52
|
+
font-weight: 700;
|
53
|
+
font-style: italic;
|
54
|
+
src: url('../fonts/roboto-mono/RobotoMono-BoldItalic.ttf') format('truetype');
|
55
|
+
}
|
data/_sass/footer.scss
ADDED