portfolyou-jekyll-theme 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|