portfolyou-jekyll-theme 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +17 -0
- data/_includes/404.html +129 -0
- data/_includes/about/skills.html +11 -0
- data/_includes/about/timeline.html +13 -0
- data/_includes/blog/index.html +76 -0
- data/_includes/blog/search.html +25 -0
- data/_includes/blog/tags.html +31 -0
- data/_includes/elements/button.html +9 -0
- data/_includes/elements/carousel.html +40 -0
- data/_includes/elements/figure.html +6 -0
- data/_includes/elements/highlight.html +1 -0
- data/_includes/elements/list.html +19 -0
- data/_includes/elements/video.html +3 -0
- data/_includes/footer.html +16 -0
- data/_includes/head.html +23 -0
- data/_includes/landing.html +15 -0
- data/_includes/navbar.html +67 -0
- data/_includes/projects/index.html +55 -0
- data/_includes/projects/project-card.html +21 -0
- data/_includes/scripts.html +25 -0
- data/_includes/social.html +20 -0
- data/_layouts/default.html +25 -0
- data/_layouts/element.html +141 -0
- data/_layouts/page.html +7 -0
- data/_layouts/post.html +36 -0
- data/_sass/_404.scss +257 -0
- data/_sass/_base.scss +7 -0
- data/_sass/_blog.scss +144 -0
- data/_sass/_footer.scss +21 -0
- data/_sass/_landing.scss +28 -0
- data/_sass/_navbar.scss +35 -0
- data/_sass/_projects.scss +13 -0
- data/_sass/_skills.scss +73 -0
- data/_sass/_timeline.scss +47 -0
- data/_sass/_variables.scss +10 -0
- data/_sass/autumn.scss +67 -0
- data/_sass/portfolYOU.scss +17 -0
- data/assets/css/style.scss +3 -0
- data/assets/favicon.ico +0 -0
- data/assets/js/card-animation.js +11 -0
- data/assets/js/remote-projects.js +26 -0
- metadata +170 -0
data/_includes/head.html
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
<head>
|
2
|
+
|
3
|
+
<meta charset="utf-8">
|
4
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
6
|
+
<meta name="description" content="{{ site.description }}">
|
7
|
+
|
8
|
+
<title>{{ site.title }}</title>
|
9
|
+
<link rel="shortcut icon" type="image/x-icon" href="{{ '/assets/favicon.ico' | relative_url }}">
|
10
|
+
|
11
|
+
<!-- Font Awesome CDN -->
|
12
|
+
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css">
|
13
|
+
|
14
|
+
<!-- Bootstrap CSS CDN -->
|
15
|
+
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
|
16
|
+
|
17
|
+
<!-- Animate CSS CDN -->
|
18
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.0/animate.css" type="text/css"/>
|
19
|
+
|
20
|
+
<!-- Custom CSS -->
|
21
|
+
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}" type="text/css">
|
22
|
+
|
23
|
+
</head>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="row justify-content-center align-items-center p-4">
|
2
|
+
<div class="col-lg-4 col-md-6 text-center mt-4">
|
3
|
+
|
4
|
+
<!-- Fine Circle Responsive Image -->
|
5
|
+
<div id="container" class="my-2">
|
6
|
+
<div id="dummy"></div>
|
7
|
+
<div id="element">
|
8
|
+
<img src="{{ site.author.image }}" alt="{{ site.title }}" class="circle-image wow animated zoomIn" data-wow-delay=".1s">
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<p class="text-muted wow animated slideInUp" data-wow-delay=".15s">{{ site.description }}</p>
|
13
|
+
|
14
|
+
</div>
|
15
|
+
</div>
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<nav class="navbar navbar-expand-lg navbar-light">
|
2
|
+
|
3
|
+
<a class="navbar-brand" href="{{ site.baseurl }}/"><h5><b>{{ site.title }}</b></h5></a>
|
4
|
+
|
5
|
+
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
|
6
|
+
<span class="navbar-toggler-icon"></span>
|
7
|
+
</button>
|
8
|
+
|
9
|
+
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
10
|
+
<div class="navbar-nav ml-auto">
|
11
|
+
|
12
|
+
{%- assign html_pages = site.html_pages | sort: 'weight' -%}
|
13
|
+
{%- assign filtered_pages = "" | split: "" -%}
|
14
|
+
|
15
|
+
{%- for html_page in html_pages -%}
|
16
|
+
|
17
|
+
{%- assign exclude = false -%}
|
18
|
+
|
19
|
+
{%- for exclude_path in site.nav_exclude -%}
|
20
|
+
|
21
|
+
{%- if html_page.path == exclude_path -%}
|
22
|
+
{%- assign exclude = true -%}
|
23
|
+
{%- break -%}
|
24
|
+
{%- else if exclude_path contains ':num' -%}
|
25
|
+
{%- assign temp = html_page.path -%}
|
26
|
+
{%- assign parts = exclude_path | split: ':num' -%}
|
27
|
+
{%- for part in parts -%}
|
28
|
+
{%- assign temp = temp | remove: part -%}
|
29
|
+
{%- endfor -%}
|
30
|
+
{%- assign test_num = temp | plus: 0 | downcase -%}
|
31
|
+
{%- if temp == test_num -%}
|
32
|
+
{%- assign exclude = true -%}
|
33
|
+
{%- break -%}
|
34
|
+
{%- endif -%}
|
35
|
+
{%- endif -%}
|
36
|
+
|
37
|
+
{%- endfor -%}
|
38
|
+
|
39
|
+
{%- unless exclude -%}
|
40
|
+
{%- assign filtered_pages = filtered_pages | push: html_page -%}
|
41
|
+
{%- endunless -%}
|
42
|
+
|
43
|
+
{%- endfor -%}
|
44
|
+
|
45
|
+
|
46
|
+
{% for html_page in filtered_pages %}
|
47
|
+
|
48
|
+
{%- if page.url contains html_page.url -%}
|
49
|
+
{%- assign active_status = "active" -%}
|
50
|
+
{%- else -%}
|
51
|
+
{%- assign active_status = "" -%}
|
52
|
+
{%- endif -%}
|
53
|
+
|
54
|
+
{%- if html_page.external_url -%}
|
55
|
+
{%- assign url = html_page.external_url -%}
|
56
|
+
{%- else -%}
|
57
|
+
{%- assign url = html_page.url | relative_url -%}
|
58
|
+
{%- endif -%}
|
59
|
+
|
60
|
+
<a class="nav-item nav-link {{ active_status }}" href="{{ url }}">{{ html_page.title }}</a>
|
61
|
+
|
62
|
+
{% endfor %}
|
63
|
+
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
|
67
|
+
</nav>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<!-- Remote Projects JS -->
|
2
|
+
<script src="{{ '/assets/js/remote-projects.js' | relative_url }}"></script>
|
3
|
+
|
4
|
+
<div class="card-columns m-3 mt-5">
|
5
|
+
|
6
|
+
<!-- Remote Projects -->
|
7
|
+
{% for remote_project in page.remote_projects %}
|
8
|
+
|
9
|
+
{%- for repo in site.github.public_repositories -%}
|
10
|
+
{%- if remote_project == repo.name -%}
|
11
|
+
{%- assign project = repo -%}
|
12
|
+
{%- endif -%}
|
13
|
+
{%- endfor -%}
|
14
|
+
|
15
|
+
{%- assign words = project.name | split: '-' -%}
|
16
|
+
{%- capture titlecase -%}
|
17
|
+
{%- for word in words -%}
|
18
|
+
{{ word | capitalize | append: ' ' }}
|
19
|
+
{%- endfor -%}
|
20
|
+
{%- endcapture -%}
|
21
|
+
|
22
|
+
{%- assign project_type = "remote" -%}
|
23
|
+
{%- assign project_id = project.name -%}
|
24
|
+
{%- assign project_img = false -%}
|
25
|
+
{%- assign project_name = titlecase | strip -%}
|
26
|
+
{%- assign project_desc = project.description -%}
|
27
|
+
{%- assign project_url = project.html_url -%}
|
28
|
+
|
29
|
+
{% include projects/project-card.html %}
|
30
|
+
|
31
|
+
<script>get_tools("{{ project_id }}")</script>
|
32
|
+
|
33
|
+
{% endfor %}
|
34
|
+
|
35
|
+
<!-- Local Projects -->
|
36
|
+
{% for project in site.projects %}
|
37
|
+
|
38
|
+
{%- assign project_type = "local" -%}
|
39
|
+
{%- assign project_id = project.name | slugify -%}
|
40
|
+
{%- assign project_img = project.image -%}
|
41
|
+
{%- assign project_name = project.name -%}
|
42
|
+
{%- assign project_desc = project.description -%}
|
43
|
+
{%- assign project_tools = project.tools -%}
|
44
|
+
|
45
|
+
{%- if project.external_url -%}
|
46
|
+
{%- assign project_url = project.external_url -%}
|
47
|
+
{%- else -%}
|
48
|
+
{%- assign project_url = project.url | relative_url -%}
|
49
|
+
{%- endif -%}
|
50
|
+
|
51
|
+
{% include projects/project-card.html %}
|
52
|
+
|
53
|
+
{% endfor %}
|
54
|
+
|
55
|
+
</div>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<div class="wow animated fadeIn" data-wow-delay=".15s">
|
2
|
+
<a href="{{ project_url }}" class="project card text-dark">
|
3
|
+
{%- if project_img -%}
|
4
|
+
<img id="{{ project_id }}-img" class="card-img-top" src="{{ project_img }}" alt="{{ project_name }}" />
|
5
|
+
{%- endif -%}
|
6
|
+
<div class="card-body">
|
7
|
+
<h5 id="{{ project_id }}-name" class="card-title">
|
8
|
+
{%- if project_type == "remote" -%}
|
9
|
+
<i class="fab fa-github" data-toggle="tooltip" data-placement="bottom" data-delay="250" title="GitHub Repository"></i> |
|
10
|
+
{%- endif -%}
|
11
|
+
{{ project_name }}
|
12
|
+
</h5>
|
13
|
+
<p id="{{ project_id }}-desc" class="card-text">{{ project_desc }}</p>
|
14
|
+
<p id="{{ project_id }}-tools" class="card-text">
|
15
|
+
{% for tool in project_tools %}
|
16
|
+
<span class="badge badge-pill text-primary border border-primary">{{ tool }}</span>
|
17
|
+
{% endfor %}
|
18
|
+
</p>
|
19
|
+
</div>
|
20
|
+
</a>
|
21
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!-- GitHub Buttons -->
|
2
|
+
<script async defer src="https://buttons.github.io/buttons.js"></script>
|
3
|
+
|
4
|
+
<!-- jQuery CDN -->
|
5
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
|
6
|
+
|
7
|
+
<!-- Popper.js CDN -->
|
8
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>
|
9
|
+
|
10
|
+
<!-- Bootstrap JS CDN -->
|
11
|
+
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
|
12
|
+
|
13
|
+
<!-- wow.js CDN & Activation -->
|
14
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.js"></script>
|
15
|
+
<script> new WOW().init(); </script>
|
16
|
+
|
17
|
+
<!-- Card Animation jQuery -->
|
18
|
+
<script src="{{ '/assets/js/card-animation.js' | relative_url }}"></script>
|
19
|
+
|
20
|
+
<!-- Initialize all tooltips -->
|
21
|
+
<script>
|
22
|
+
$(function () {
|
23
|
+
$('[data-toggle="tooltip"]').tooltip()
|
24
|
+
})
|
25
|
+
</script>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="container-fluid justify-content-center">
|
2
|
+
|
3
|
+
{%- assign unfocused_color = "6c757d" -%}
|
4
|
+
|
5
|
+
{% for account in site.author %}
|
6
|
+
|
7
|
+
{%- assign service_name = account[0] -%}
|
8
|
+
{%- assign service_data = site.data.social-media[service_name] -%}
|
9
|
+
{%- if service_data -%}
|
10
|
+
<a class="social mx-1" href="{{ service_data.url }}{{ account[1] }}"
|
11
|
+
style="color: #{{ unfocused_color }}"
|
12
|
+
onMouseOver="this.style.color='#{{ service_data.color }}'"
|
13
|
+
onMouseOut="this.style.color='#{{ unfocused_color }}'">
|
14
|
+
<i class="{{ service_data.icon }} fa-1x"></i>
|
15
|
+
</a>
|
16
|
+
{%- endif -%}
|
17
|
+
|
18
|
+
{% endfor %}
|
19
|
+
|
20
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<!--
|
4
|
+
portfolYOU Jekyll theme by Youssef Raafat
|
5
|
+
Free for personal and commercial use under the MIT license
|
6
|
+
https://github.com/YoussefRaafatNasry/portfolYOU
|
7
|
+
-->
|
8
|
+
|
9
|
+
<html lang="en" class="h-100">
|
10
|
+
|
11
|
+
{% include head.html %}
|
12
|
+
|
13
|
+
<body class="d-flex flex-column h-100">
|
14
|
+
|
15
|
+
<main class="flex-shrink-0 container mt-5">
|
16
|
+
{% include navbar.html %}
|
17
|
+
{{ content }}
|
18
|
+
</main>
|
19
|
+
|
20
|
+
{% include footer.html %}
|
21
|
+
{% include scripts.html %}
|
22
|
+
|
23
|
+
</body>
|
24
|
+
|
25
|
+
</html>
|
@@ -0,0 +1,141 @@
|
|
1
|
+
{% assign page_title = page.title | slice: 2, page.title.size %}
|
2
|
+
<h2 id="{{ page_title | slugify }}">{{ page_title }}</h2>
|
3
|
+
|
4
|
+
{%- assign code = content | strip -%}
|
5
|
+
|
6
|
+
{%- if code contains '{% ' -%}
|
7
|
+
|
8
|
+
{%- assign code = code | newline_to_br | split: '<br />' -%}
|
9
|
+
|
10
|
+
{%- assign start_capture = false -%}
|
11
|
+
{%- assign captured_text = '' -%}
|
12
|
+
{%- assign captured_var = '' -%}
|
13
|
+
{%- assign includes = '' | split: '' -%}
|
14
|
+
|
15
|
+
{%- for line in code -%}
|
16
|
+
|
17
|
+
{%- if line contains '{% endcapture' -%}
|
18
|
+
{%- assign start_capture = false -%}
|
19
|
+
{%- elsif start_capture == true -%}
|
20
|
+
{%- assign captured_text = captured_text | append: line -%}
|
21
|
+
{%- elsif line contains '{% capture' -%}
|
22
|
+
{%- assign temp = line | split: ' ' -%}
|
23
|
+
{%- assign captured_var = temp[2] -%}
|
24
|
+
{%- assign start_capture = true -%}
|
25
|
+
{%- elsif line contains '{% include' -%}
|
26
|
+
{%- assign includes = includes | push: line -%}
|
27
|
+
{%- endif -%}
|
28
|
+
|
29
|
+
{%- endfor -%}
|
30
|
+
|
31
|
+
{%- assign list_items = nil -%}
|
32
|
+
{%- assign carousel_images = nil -%}
|
33
|
+
|
34
|
+
{%- case captured_var -%}
|
35
|
+
{%- when 'list_items' -%}
|
36
|
+
{%- assign list_items = captured_text -%}
|
37
|
+
{%- when 'carousel_images' -%}
|
38
|
+
{%- assign carousel_images = captured_text -%}
|
39
|
+
{%- endcase -%}
|
40
|
+
|
41
|
+
{%- for include in includes -%}
|
42
|
+
|
43
|
+
{%- assign incl = include | strip -%}
|
44
|
+
{%- assign incl = incl | remove: '{% include ' -%}
|
45
|
+
{%- assign incl = incl | remove: ' %' | remove: '}' -%}
|
46
|
+
{%- assign incl = incl | replace_first: ' ', '" ' -%}
|
47
|
+
{%- assign temp = incl | split: '" ' -%}
|
48
|
+
|
49
|
+
{%- assign file = temp | first -%}
|
50
|
+
{%- assign params = temp | shift -%}
|
51
|
+
|
52
|
+
{%- assign alt = nil -%}
|
53
|
+
{%- assign block = nil -%}
|
54
|
+
{%- assign caption = nil -%}
|
55
|
+
{%- assign id = nil -%}
|
56
|
+
{%- assign image = nil -%}
|
57
|
+
{%- assign link = nil -%}
|
58
|
+
{%- assign size = nil -%}
|
59
|
+
{%- assign style = nil -%}
|
60
|
+
{%- assign title = nil -%}
|
61
|
+
{%- assign text = nil -%}
|
62
|
+
{%- assign type = nil -%}
|
63
|
+
|
64
|
+
{%- for param in params -%}
|
65
|
+
|
66
|
+
{%- assign pair = param | split: '=' -%}
|
67
|
+
{%- assign key = pair[0] -%}
|
68
|
+
{%- assign value = pair[1] | remove: '"' -%}
|
69
|
+
|
70
|
+
{%- case key -%}
|
71
|
+
{%- when 'alt' -%}
|
72
|
+
{%- assign alt = value -%}
|
73
|
+
{%- when 'block' -%}
|
74
|
+
{%- assign block = value -%}
|
75
|
+
{%- when 'caption' -%}
|
76
|
+
{%- assign caption = value -%}
|
77
|
+
{%- when 'id' -%}
|
78
|
+
{%- assign id = value -%}
|
79
|
+
{%- when 'image' -%}
|
80
|
+
{%- assign image = value -%}
|
81
|
+
{%- when 'link' -%}
|
82
|
+
{%- assign link = value -%}
|
83
|
+
{%- when 'size' -%}
|
84
|
+
{%- assign size = value -%}
|
85
|
+
{%- when 'style' -%}
|
86
|
+
{%- assign style = value -%}
|
87
|
+
{%- when 'title' -%}
|
88
|
+
{%- assign title = value -%}
|
89
|
+
{%- when 'text' -%}
|
90
|
+
{%- assign text = value -%}
|
91
|
+
{%- when 'type' -%}
|
92
|
+
{%- assign type = value -%}
|
93
|
+
{%- endcase -%}
|
94
|
+
|
95
|
+
{%- endfor -%}
|
96
|
+
|
97
|
+
|
98
|
+
{%- include {{ file }}
|
99
|
+
alt=alt
|
100
|
+
block=block
|
101
|
+
caption=caption
|
102
|
+
id=id
|
103
|
+
image=image
|
104
|
+
link=link
|
105
|
+
size=size
|
106
|
+
style=style
|
107
|
+
title=title
|
108
|
+
text=text
|
109
|
+
type=type
|
110
|
+
-%}
|
111
|
+
|
112
|
+
{%- endfor -%}
|
113
|
+
|
114
|
+
{%- else -%}
|
115
|
+
{{ code | markdownify }}
|
116
|
+
{%- endif -%}
|
117
|
+
|
118
|
+
<details>
|
119
|
+
|
120
|
+
<summary class="text-monospace">View Code...</summary>
|
121
|
+
{%- highlight liquid -%}
|
122
|
+
{%- if code contains 'gist.github' -%}
|
123
|
+
{%- assign parts = code | split: '/' -%}
|
124
|
+
{%- assign id = parts[3] | split: '.' | first -%}
|
125
|
+
{%- assign gist = id | prepend: '{%- gist ' -%}
|
126
|
+
{%- assign gist = gist | append: ' %' -%}
|
127
|
+
{%- assign gist = gist | append: '}' -%}
|
128
|
+
{{ gist }}
|
129
|
+
{%- else -%}
|
130
|
+
{{ code }}
|
131
|
+
{%- endif -%}
|
132
|
+
{%- endhighlight -%}
|
133
|
+
|
134
|
+
|
135
|
+
{%- for tip in page.tips -%}
|
136
|
+
<blockquote>
|
137
|
+
{{ tip | markdownify }}
|
138
|
+
</blockquote>
|
139
|
+
{%- endfor -%}
|
140
|
+
|
141
|
+
</details>
|
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
---
|
4
|
+
|
5
|
+
<h1><b>{{ page.title }}</b></h1>
|
6
|
+
|
7
|
+
<p class="post-metadata text-muted">
|
8
|
+
{{ page.date | date_to_long_string }} -
|
9
|
+
<b>
|
10
|
+
{%- assign words = content | number_of_words -%}
|
11
|
+
{%- if words < 360 -%}
|
12
|
+
less than 1 min read time
|
13
|
+
{%- else -%}
|
14
|
+
{{ words | divided_by: 180 }} mins read time
|
15
|
+
{%- endif -%}
|
16
|
+
</b>
|
17
|
+
|
18
|
+
<br>
|
19
|
+
|
20
|
+
{%- if page.tags != empty -%}
|
21
|
+
Tags:
|
22
|
+
{% for tag in page.tags %}
|
23
|
+
<a class="text-decoration-none no-underline" href="{{ tag | slugify | prepend:'/blog/tags#' | relative_url }}">
|
24
|
+
<span class="tag badge badge-pill text-primary border border-primary">{{ tag }}</span>
|
25
|
+
</a>
|
26
|
+
{% endfor %}
|
27
|
+
{%- endif -%}
|
28
|
+
|
29
|
+
</p>
|
30
|
+
|
31
|
+
{{ content }}
|
32
|
+
|
33
|
+
<footer>
|
34
|
+
This page is <b>open source</b>. Noticed a typo? <br />
|
35
|
+
Or something unclear? Improve it on {% github_edit_link "GitHub" %}.
|
36
|
+
</footer>
|