simple-material 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/README.md +181 -0
- data/_includes/adsense_head.html +3 -0
- data/_includes/analytics_head.html +13 -0
- data/_includes/analytics_head_legacy.html +25 -0
- data/_includes/appbar.html +60 -0
- data/_includes/disqus.html +18 -0
- data/_includes/drawer.html +10 -0
- data/_includes/footer.html +64 -0
- data/_includes/github_head.html +6 -0
- data/_includes/list_blog_categories.html +26 -0
- data/_includes/list_blog_posts.html +74 -0
- data/_includes/list_posts.html +25 -0
- data/_includes/list_projects_featured.html +14 -0
- data/_includes/list_services.html +13 -0
- data/_includes/meta.html +47 -0
- data/_includes/nav_drawer.html +32 -0
- data/_includes/nav_footer.html +23 -0
- data/_includes/nav_social.html +71 -0
- data/_includes/pullquote.html +1 -0
- data/_includes/widget_feedback.html +15 -0
- data/_includes/widget_github.html +28 -0
- data/_includes/widget_goodreads.html +50 -0
- data/_includes/widget_search.html +15 -0
- data/_includes/widget_share.html +14 -0
- data/_layouts/default.html +190 -0
- data/_layouts/page.html +13 -0
- data/_layouts/post.html +35 -0
- data/_layouts/project.html +109 -0
- data/_sass/_code.scss +53 -0
- data/_sass/_colors.scss +124 -0
- data/_sass/_typography.scss +140 -0
- data/assets/images/icons/192.png +0 -0
- data/assets/images/logo.png +0 -0
- data/assets/raw/search.json +13 -0
- data/assets/scripts/navigation.js +54 -0
- data/assets/scripts/projects.js +72 -0
- data/assets/scripts/script.js +0 -0
- data/assets/scripts/service-worker.js +14 -0
- data/assets/scripts/simple-jekyll-search.min.js +6 -0
- data/assets/scripts/webapp.js +22 -0
- data/assets/styles/app.scss +1008 -0
- data/assets/styles/github.css +73 -0
- data/assets/styles/style.css +0 -0
- data/assets/vendors/isotope/isotope-min.js +12 -0
- data/pwabuilder-sw.js +23 -0
- metadata +204 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
{% if site.navigation_footer %}
|
2
|
+
{% if site.menu_main %}
|
3
|
+
<nav>
|
4
|
+
<ul class="sitemap">
|
5
|
+
{% for item in site.menu_main %}
|
6
|
+
|
7
|
+
{% if item.url contains '://' %}
|
8
|
+
{% assign url = item.url %}
|
9
|
+
{% else %}
|
10
|
+
{% assign url = item.url | relative_url %}
|
11
|
+
{% endif %}
|
12
|
+
|
13
|
+
{% if item.title %}
|
14
|
+
<li>
|
15
|
+
<a class="muted" href="{{ url }}">{{ item.title }}</a>
|
16
|
+
</li>
|
17
|
+
{% endif %}
|
18
|
+
|
19
|
+
{% endfor %}
|
20
|
+
</ul>
|
21
|
+
</nav>
|
22
|
+
{% endif %}
|
23
|
+
{% endif %}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
{% if site.menu_social.dribbble %}
|
2
|
+
<a href="https://dribbble.com/{{ site.menu_social.dribbble }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
3
|
+
<i class="fab fa-dribbble-square" style="color: var(--mdc-theme-on-surface)"></i>
|
4
|
+
</a>
|
5
|
+
{% endif %}
|
6
|
+
|
7
|
+
{% if site.menu_social.email %}
|
8
|
+
<a href="mailto:{{ site.menu_social.email }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
9
|
+
<i class="fas fa-envelope-square" style="color: var(--mdc-theme-on-surface)"></i>
|
10
|
+
</a>
|
11
|
+
{% endif %}
|
12
|
+
|
13
|
+
{% if site.menu_social.facebook %}
|
14
|
+
<a href="https://www.facebook.com/{{ site.menu_social.facebook }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
15
|
+
<i class="fab fa-facebook-square" style="color: var(--mdc-theme-on-surface)"></i>
|
16
|
+
</a>
|
17
|
+
{% endif %}
|
18
|
+
|
19
|
+
{% if site.menu_social.flickr %}
|
20
|
+
<a href="https://www.flickr.com/{{ site.menu_social.flickr }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
21
|
+
<i class="fab fa-flickr" style="color: var(--mdc-theme-on-surface)"></i>
|
22
|
+
</a>
|
23
|
+
{% endif %}
|
24
|
+
|
25
|
+
{% if site.menu_social.github %}
|
26
|
+
<a href="https://github.com/{{ site.menu_social.github }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
27
|
+
<i class="fab fa-github-square" style="color: var(--mdc-theme-on-surface)"></i>
|
28
|
+
</a>
|
29
|
+
{% endif %}
|
30
|
+
|
31
|
+
{% if site.menu_social.instagram %}
|
32
|
+
<a href="https://instagram.com/{{ site.menu_social.instagram }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
33
|
+
<i class="fab fa-instagram-square" style="color: var(--mdc-theme-on-surface)"></i>
|
34
|
+
</a>
|
35
|
+
{% endif %}
|
36
|
+
|
37
|
+
{% if site.menu_social.linkedin %}
|
38
|
+
<a href="https://www.linkedin.com/in/{{ site.menu_social.linkedin }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
39
|
+
<i class="fab fa-linkedin" style="color: var(--mdc-theme-on-surface)"></i>
|
40
|
+
</a>
|
41
|
+
{% endif %}
|
42
|
+
|
43
|
+
{% if site.menu_social.pinterest %}
|
44
|
+
<a href="https://www.pinterest.com/{{ site.menu_social.pinterest }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
45
|
+
<i class="fab fa-pinterest-square" style="color: var(--mdc-theme-on-surface)"></i>
|
46
|
+
</a>
|
47
|
+
{% endif %}
|
48
|
+
|
49
|
+
{% if site.menu_social.twitter %}
|
50
|
+
<a href="https://www.twitter.com/{{ site.menu_social.twitter }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
51
|
+
<i class="fab fa-twitter-square" style="color: var(--mdc-theme-on-surface)"></i>
|
52
|
+
</a>
|
53
|
+
{% endif %}
|
54
|
+
|
55
|
+
{% if site.menu_social.stackoverflow %}
|
56
|
+
<a href="http://stackoverflow.com/users/{{ site.menu_social.stackoverflow }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
57
|
+
<i class="fab fa-stack-overflow" style="color: var(--mdc-theme-on-surface)"></i>
|
58
|
+
</a>
|
59
|
+
{% endif %}
|
60
|
+
|
61
|
+
{% if site.menu_social.youtube %}
|
62
|
+
<a href="https://youtube.com/{{ site.menu_social.youtube }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
63
|
+
<i class="fab fa-youtube-square" style="color: var(--mdc-theme-on-surface)"></i>
|
64
|
+
</a>
|
65
|
+
{% endif %}
|
66
|
+
|
67
|
+
{% if site.menu_social.playconsole %}
|
68
|
+
<a href="https://play.google.com/store/apps/dev?id={{ site.menu_social.playconsole }}" rel="noopener" target="_blank" style="padding-right: 4px;">
|
69
|
+
<i class="fab fa-google-play" style="color: var(--mdc-theme-on-surface)"></i>
|
70
|
+
</a>
|
71
|
+
{% endif %}
|
@@ -0,0 +1 @@
|
|
1
|
+
{{ include.quote }}<span data-pullquote="{{ include.quote }}"></span>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{% if site.github %}
|
2
|
+
<section class="mdc-card mdc-card--outlined">
|
3
|
+
<div class="mdc-card__content">
|
4
|
+
<p>
|
5
|
+
This page is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a> on GitHub{% if site.github.license.name %} under the {{ site.github.license.name }}{% endif %}.
|
6
|
+
</p>
|
7
|
+
{% unless site.github.private %}
|
8
|
+
<p>
|
9
|
+
Is there a problem? You can <a href="{{ site.github.issues_url }}" target="
|
10
|
+
">submit an issue</a> or help us <a href="{{ site.github.repository_url }}/edit/{{ site.github.source.branch }}/{{ page.path }}" target="_blank">improve this page</a>.
|
11
|
+
</p>
|
12
|
+
{% endunless %}
|
13
|
+
</div>
|
14
|
+
</section>
|
15
|
+
{% endif %}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
{% if site.menu_social.github and page.github_stats %}
|
2
|
+
<section class="mdc-card mdc-card--outlined">
|
3
|
+
<div class="mdc-card__content">
|
4
|
+
<h2>Coding Stats</h2>
|
5
|
+
<p>
|
6
|
+
Summary of my recent activity on GitHub where I contribute to open-source projects and manage my workflow.
|
7
|
+
</p>
|
8
|
+
<div class="calendar"></div>
|
9
|
+
</div>
|
10
|
+
<div class="mdc-card__actions">
|
11
|
+
<div class="mdc-card__action-icons">
|
12
|
+
<a class="mdc-button mdc-card__action mdc-card__action--button" href="https://github.com/{{ site.menu_social.github }}/">
|
13
|
+
<span class="mdc-button__ripple"></span>
|
14
|
+
<span class="mdc-button__label">Visit my profile</span>
|
15
|
+
</a>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</section>
|
19
|
+
|
20
|
+
<script type="application/javascript">
|
21
|
+
(function() {
|
22
|
+
// Load GitHub contributions calendar
|
23
|
+
new GitHubCalendar(".calendar", "{{ site.menu_social.github }}", {
|
24
|
+
responsive: true
|
25
|
+
});
|
26
|
+
})();
|
27
|
+
</script>
|
28
|
+
{% endif %}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
{% if site.menu_social.goodreads %}
|
2
|
+
<style type="text/css" media="screen">
|
3
|
+
.gr_custom_container_1614243637 {
|
4
|
+
/* customize your Goodreads widget container here*/
|
5
|
+
background-color: transparent;
|
6
|
+
color: var(--mdc-theme-on-surface);
|
7
|
+
}
|
8
|
+
|
9
|
+
.gr_custom_container_1614243637 * {
|
10
|
+
color: var(--mdc-theme-on-surface) !important;
|
11
|
+
}
|
12
|
+
|
13
|
+
.gr_custom_each_container_1614243637 {
|
14
|
+
/* customize each individual book container here */
|
15
|
+
border: 1px solid var(--mdc-theme-border);
|
16
|
+
border-radius: var(--card-radius);
|
17
|
+
width: 100%;
|
18
|
+
clear: both;
|
19
|
+
margin-bottom: 8px;
|
20
|
+
padding: 8px;
|
21
|
+
overflow: auto;
|
22
|
+
font-weight: bold;
|
23
|
+
}
|
24
|
+
|
25
|
+
.gr_custom_book_container_1614243637 {
|
26
|
+
/* customize your book covers here */
|
27
|
+
overflow: hidden;
|
28
|
+
height: 60px;
|
29
|
+
float: left;
|
30
|
+
margin-right: 4px;
|
31
|
+
width: 39px;
|
32
|
+
}
|
33
|
+
|
34
|
+
.gr_custom_author_1614243637 {
|
35
|
+
/* customize your author names here */
|
36
|
+
font-weight: 300 !important;
|
37
|
+
}
|
38
|
+
|
39
|
+
.gr_custom_rating_1614243637 {
|
40
|
+
/* customize your rating stars here */
|
41
|
+
float: right;
|
42
|
+
}
|
43
|
+
</style>
|
44
|
+
|
45
|
+
<section>
|
46
|
+
<script
|
47
|
+
src="https://www.goodreads.com/review/custom_widget/{{ site.menu_social.goodreads }}.Recently%20Read%20Books?cover_position=left&cover_size=small&num_books=5&order=d&shelf=read&show_author=1&show_cover=1&show_rating=1&show_review=0&show_tags=0&show_title=1&sort=date_added&widget_bg_color=FFFFFF&widget_bg_transparent=true&widget_border_width=1&widget_id=1614243637&widget_text_color=000000&widget_title_size=small&widget_width=full"
|
48
|
+
type="text/javascript" charset="utf-8"></script>
|
49
|
+
</section>
|
50
|
+
{% endif %}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div id="search-container">
|
2
|
+
<input class="input" type="text" id="search-input" placeholder="Search for a post..." autocomplete="off">
|
3
|
+
<ul class="mdc-list mdc-list--two-line" id="results-container"></ul>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<script src="{{ site.baseurl }}/assets/scripts/simple-jekyll-search.min.js" type="text/javascript"></script>
|
7
|
+
|
8
|
+
<script>
|
9
|
+
SimpleJekyllSearch({
|
10
|
+
searchInput: document.getElementById('search-input'),
|
11
|
+
resultsContainer: document.getElementById('results-container'),
|
12
|
+
searchResultTemplate: '<li class="mdc-list-item"><span class="mdc-list-item__ripple"></span><span class="mdc-list-item__text"><span class="mdc-list-item__primary-text"><a href="{url}">{title}</a></span><span class="mdc-list-item__secondary-text">{date}</span></span></li>',
|
13
|
+
json: '{{ site.baseurl }}/assets/raw/search.json'
|
14
|
+
});
|
15
|
+
</script>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<span class="mdc-touch-target-wrapper">
|
2
|
+
<a class="mdc-top-app-bar__action-item mdc-icon-button" aria-label="Share on Twitter" href="http://twitter.com/share?text={{ page.title }}&url={{ page.url | absolute_url }}" rel="noopner" target="_blank">
|
3
|
+
<span class="mdc-button__ripple"></span>
|
4
|
+
<span class="mdc-button__label"><i class="fab fa-twitter"></i></span>
|
5
|
+
<span class="mdc-button__touch"></span>
|
6
|
+
</a>
|
7
|
+
</span>
|
8
|
+
<span class="mdc-touch-target-wrapper">
|
9
|
+
<a class="mdc-top-app-bar__action-item mdc-icon-button" aria-label="Share on Facebook" href="https://www.facebook.com/sharer.php?u={{page.url | absolute_url }}" rel="noopner" target="_blank">
|
10
|
+
<span class="mdc-button__ripple"></span>
|
11
|
+
<span class="mdc-button__label"><i class="fab fa-facebook"></i></span>
|
12
|
+
<span class="mdc-button__touch"></span>
|
13
|
+
</a>
|
14
|
+
</span>
|
@@ -0,0 +1,190 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="{{ site.data.manifest.lang | default: "en-US" }}">
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
|
7
|
+
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0'>
|
8
|
+
|
9
|
+
{% if site.data.manifest.name %}
|
10
|
+
{% assign title = site.data.manifest.name %}
|
11
|
+
{% if page.title and site.data.manifest.short_name %}
|
12
|
+
{% assign title = site.data.manifest.short_name %}
|
13
|
+
{% endif %}
|
14
|
+
{% else %}
|
15
|
+
{% assign title = site.title %}
|
16
|
+
{% endif %}
|
17
|
+
<title>{% if page.title %}{{ page.title }} | {% endif %}{{ title }}{% unless page.title %}{% if site.data.manifest.tagline %} - {{ site.data.manifest.tagline }}{% endif %}{% endunless %}</title>
|
18
|
+
|
19
|
+
{% seo title=false %}
|
20
|
+
{% include meta.html %}
|
21
|
+
|
22
|
+
<link rel="alternate" type="application/rss+xml" title="{{ title }}{% if site.data.manifest.tagline %} - {{ site.data.manifest.tagline }}{% endif %}" href="{{ site.baseurl }}/feed.xml" />
|
23
|
+
|
24
|
+
<!-- Website icon -->
|
25
|
+
<link rel="shortcut icon" href="{{ site.baseurl}}{% if site.data.manifest.icons[0] %}{{ site.data.manifest.icons[0].src }}{% else %}{{ site.logo }}{% endif %}">
|
26
|
+
|
27
|
+
<!-- Manifest -->
|
28
|
+
<link rel="manifest" href="{{ site.baseurl }}/manifest.json">
|
29
|
+
<meta name="theme-color" content="{{ site.data.manifest.theme_color | default: '#854fee' }}" />
|
30
|
+
|
31
|
+
<!-- Material Components for Web -->
|
32
|
+
<link href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" rel="stylesheet">
|
33
|
+
<script src="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js"></script>
|
34
|
+
|
35
|
+
<!-- Icon Fonts (FontAwesome, Material Icons, etc.) -->
|
36
|
+
{% if site.icons or page.icons %}
|
37
|
+
<script async src="https://kit.fontawesome.com/a8beec66c1.js" crossorigin="anonymous"></script>
|
38
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
39
|
+
{% endif %}
|
40
|
+
|
41
|
+
<!-- Stylesheets -->
|
42
|
+
<link rel="stylesheet" type="text/css" href="{{ site.baseurl }}/assets/styles/app.css" />
|
43
|
+
<link rel="stylesheet" type="text/css" href="{{ site.baseurl }}/assets/styles/style.css" />
|
44
|
+
|
45
|
+
<!-- Installable PWA -->
|
46
|
+
{% if site.installable %}
|
47
|
+
<script async type="module" src="https://cdn.jsdelivr.net/npm/@pwabuilder/pwainstall@latest/dist/pwa-install.min.js"></script>
|
48
|
+
{% endif %}
|
49
|
+
|
50
|
+
<!-- jQuery -->
|
51
|
+
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
52
|
+
|
53
|
+
{% include github_head.html %}
|
54
|
+
{% include adsense_head.html %}
|
55
|
+
{% include analytics_head.html %}
|
56
|
+
|
57
|
+
<!-- Syntax Highlighting for Code Samples -->
|
58
|
+
{% if site.syntax or page.syntax %}
|
59
|
+
<script src="https://unpkg.com/@highlightjs/cdn-assets@10.5.0/highlight.min.js"></script>
|
60
|
+
<script>
|
61
|
+
hljs.initHighlightingOnLoad();
|
62
|
+
</script>
|
63
|
+
{% endif %}
|
64
|
+
</head>
|
65
|
+
|
66
|
+
<body class="layout-{{ page.layout }}{% if page.title %} {{ page.title | slugify }}{% endif %}">
|
67
|
+
{% include appbar.html %}
|
68
|
+
|
69
|
+
<main class="mdc-top-app-bar--fixed-adjust">
|
70
|
+
{% unless page.id %}
|
71
|
+
{% include drawer.html %}
|
72
|
+
{% endunless %}
|
73
|
+
|
74
|
+
<!-- Content -->
|
75
|
+
<div class="main-content">
|
76
|
+
<article class="about-section">
|
77
|
+
<header>
|
78
|
+
{% if site.breadcrubms %}
|
79
|
+
<!-- Breadcrumbs -->
|
80
|
+
<section>
|
81
|
+
<nav class="breadcrumbs" aria-label="breadcrumb">
|
82
|
+
<li class='breadcrumb-item active'>{{ page.title }}</li>
|
83
|
+
</nav>
|
84
|
+
</section>
|
85
|
+
{% endif %}
|
86
|
+
|
87
|
+
<!-- Cover Image -->
|
88
|
+
{% if page.cover %}
|
89
|
+
{% if page.cover contains '://' %}
|
90
|
+
{% assign cover_url = page.cover %}
|
91
|
+
{% else %}
|
92
|
+
{% assign cover_url = page.cover | relative_url %}
|
93
|
+
{% endif %}
|
94
|
+
<div class="page-cover" style="background-image: url('{{ cover_url }}')">
|
95
|
+
{% endif %}
|
96
|
+
|
97
|
+
<!-- Summary -->
|
98
|
+
<section class="{% if page.cover %}align-bottom{% endif %}">
|
99
|
+
<div class="project-summary">
|
100
|
+
{% if page.icon %}
|
101
|
+
{% if page.icon contains '.' %}
|
102
|
+
<img class="project-logo" src="{{ site.baseurl}}{{ page.icon }}" alt="{{ page.title | slice: 0 }}" />
|
103
|
+
{% else %}
|
104
|
+
<span class="material-icons project-logo">{{ page.icon }}</span>
|
105
|
+
{% endif %}
|
106
|
+
{% endif %}
|
107
|
+
<div>
|
108
|
+
{% if page.title %}<h1 class="project-title">{{ page.title }}</h1>{% endif %}
|
109
|
+
{% unless page.icon %}
|
110
|
+
<span class="project-type">{% if page.date %}{{ page.date | date: "%B %e, %Y" }}{% endif %}</span>
|
111
|
+
{% endunless %}
|
112
|
+
<div class="project-tags">
|
113
|
+
{% if post %}
|
114
|
+
{% assign categories = post.categories %}
|
115
|
+
{% else %}
|
116
|
+
{% assign categories = page.categories %}
|
117
|
+
{% endif %}
|
118
|
+
{% for category in categories %}
|
119
|
+
<a href="{{site.baseurl}}/categories/#{{category|slugify|replace:",",""}}"><span class="project-tag"><i class="material-icons">sell</i>{{ category | replace: ",", "" }}</span></a>
|
120
|
+
{% endfor %}
|
121
|
+
</div>
|
122
|
+
{% if page.device %}
|
123
|
+
<p class="project-type"><span class="material-icons">devices</span> {{ page.device }}</p>
|
124
|
+
{% endif %}
|
125
|
+
</div>
|
126
|
+
</div>
|
127
|
+
{% if page.id %}
|
128
|
+
<div>
|
129
|
+
{% include widget_share.html %}
|
130
|
+
</div>
|
131
|
+
{% endif %}
|
132
|
+
</section>
|
133
|
+
|
134
|
+
{% if page.cover %}
|
135
|
+
</div>
|
136
|
+
{% endif %}
|
137
|
+
</header>
|
138
|
+
|
139
|
+
<!-- Page Content -->
|
140
|
+
{% if page.title %}
|
141
|
+
{{ content | replace_first: "h1", "h1 style='display: none;'" }}
|
142
|
+
{% else %}
|
143
|
+
{{ content }}
|
144
|
+
{% endif %}
|
145
|
+
|
146
|
+
<div id="status-bar" class="mdc-snackbar">
|
147
|
+
<div class="mdc-snackbar__surface" role="status" aria-relevant="additions">
|
148
|
+
<div class="mdc-snackbar__label" aria-atomic="false">
|
149
|
+
</div>
|
150
|
+
<div class="mdc-snackbar__actions" aria-atomic="true">
|
151
|
+
<button type="button" class="mdc-button mdc-snackbar__action">
|
152
|
+
<div class="mdc-button__ripple"></div>
|
153
|
+
<span class="mdc-button__label"></span>
|
154
|
+
</button>
|
155
|
+
</div>
|
156
|
+
</div>
|
157
|
+
</div>
|
158
|
+
|
159
|
+
<script>
|
160
|
+
function showSnackbar(text, action = null, callback = null, timeout = 5000) {
|
161
|
+
const snackbar = new mdc.snackbar.MDCSnackbar(document.querySelector('.mdc-snackbar'));
|
162
|
+
snackbar.timeoutMs = timeout
|
163
|
+
$('#status-bar .mdc-snackbar__label').text(text);
|
164
|
+
if (action != null && callback != null) {
|
165
|
+
$('#status-bar .mdc-snackbar__action').on('click', function() {
|
166
|
+
snackbar.close();
|
167
|
+
callback();
|
168
|
+
});
|
169
|
+
$('#status-bar .mdc-button__label').text(action);
|
170
|
+
}
|
171
|
+
snackbar.open();
|
172
|
+
}
|
173
|
+
</script>
|
174
|
+
</article>
|
175
|
+
{% include footer.html %}
|
176
|
+
</div>
|
177
|
+
</main>
|
178
|
+
|
179
|
+
<script>
|
180
|
+
$('#toc .mdc-list-item a').addClass('mdc-list-item__text');
|
181
|
+
</script>
|
182
|
+
|
183
|
+
<!-- user-defined JavaScript -->
|
184
|
+
<script async src="{{ site.baseurl }}/assets/scripts/script.js"></script>
|
185
|
+
|
186
|
+
<!-- Other global scripts -->
|
187
|
+
<script async src="{{ site.baseurl }}/assets/scripts/navigation.js"></script>
|
188
|
+
</body>
|
189
|
+
|
190
|
+
</html>
|
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<style>
|
6
|
+
article img {
|
7
|
+
border-radius: 8px;
|
8
|
+
width: 100%;
|
9
|
+
margin: auto;
|
10
|
+
}
|
11
|
+
</style>
|
12
|
+
|
13
|
+
<!-- Page Content -->
|
14
|
+
<div class="col-md-8">
|
15
|
+
{% if page.toc %}
|
16
|
+
<section>
|
17
|
+
<h2>Table of Contents</h2>
|
18
|
+
{{ content | toc_only }}
|
19
|
+
</section>
|
20
|
+
|
21
|
+
<script type="text/javascript">
|
22
|
+
findElementById("toc").addClass("mdc-list-item__text");
|
23
|
+
</script>
|
24
|
+
{% endif %}
|
25
|
+
|
26
|
+
<section>
|
27
|
+
{{ content | inject_anchors }}
|
28
|
+
</section>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<aside class="col-md-4">
|
32
|
+
{% include list_posts.html %}
|
33
|
+
<br>
|
34
|
+
{% include disqus.html %}
|
35
|
+
</aside>
|
@@ -0,0 +1,109 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<!-- Page Content -->
|
6
|
+
<div class="col-md-8">
|
7
|
+
<!-- Overview -->
|
8
|
+
<section>
|
9
|
+
<p>{{ page.description }}</p>
|
10
|
+
</section>
|
11
|
+
|
12
|
+
<!-- Media -->
|
13
|
+
{% if page.demo %}
|
14
|
+
<section class="embed-container">
|
15
|
+
<iframe src="https://www.youtube-nocookie.com/embed/{{ page.demo }}?controls=0" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope;" allowfullscreen></iframe>
|
16
|
+
</section>
|
17
|
+
{% elsif page.image %}
|
18
|
+
{% if page.image contains '://' %}
|
19
|
+
{% assign image_url = page.image %}
|
20
|
+
{% else %}
|
21
|
+
{% assign image_url = page.image | relative_url %}
|
22
|
+
{% endif %}
|
23
|
+
<section>
|
24
|
+
<img class="project-portfolio-img" src="{{ image_url }}" alt="{{ page.title }}" />
|
25
|
+
</section>
|
26
|
+
{% endif %}
|
27
|
+
|
28
|
+
{{ content }}
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<aside class="col-md-4">
|
32
|
+
<!-- Client-->
|
33
|
+
{% if page.client %}
|
34
|
+
<section>
|
35
|
+
<h2>About the Client</h2>
|
36
|
+
{{ page.client }}
|
37
|
+
</section>
|
38
|
+
{% endif %}
|
39
|
+
|
40
|
+
<!-- Source Code -->
|
41
|
+
{% if page.code %}
|
42
|
+
<section>
|
43
|
+
<h2>Source Code</h2>
|
44
|
+
<p>The source code of this project is publicly available on <a href="https://github.com/{{ page.code }}">Github</a>{% if page.license %} under {{ page.license }} License{% endif %}.</p>
|
45
|
+
<div class="github-card" data-github="{{ page.code }}" data-theme="medium" data-width="100%"></div>
|
46
|
+
<script src="https://cdn.jsdelivr.net/github-cards/latest/widget.js"></script>
|
47
|
+
</section>
|
48
|
+
{% endif %}
|
49
|
+
|
50
|
+
<!-- Download -->
|
51
|
+
{% if page.download %}
|
52
|
+
<section>
|
53
|
+
<h2>Get it now</h2>
|
54
|
+
<div>
|
55
|
+
{% if page.download.android %}
|
56
|
+
<span>
|
57
|
+
<a href='https://play.google.com/store/apps/details?id={{ page.download.android }}&hl=en&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1' rel="noopener" target="_blank">
|
58
|
+
<img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' height="64px" />
|
59
|
+
</a>
|
60
|
+
</span>
|
61
|
+
{% endif %}
|
62
|
+
{% if page.download.bintray %}
|
63
|
+
<p>This project can be used as a Maven and Gradle library via JCenter. It is published on Bintray.</p>
|
64
|
+
<a href='https://bintray.com/{{ page.download.bintray }}/_latestVersion' rel="noopener" target="_blank"><img src='https://api.bintray.com/packages/{{ page.download.bintray }}/images/download.svg'></a>
|
65
|
+
{% endif %}
|
66
|
+
{% if page.download.gem %}
|
67
|
+
<a href='https://badge.fury.io/rb/{{ page.download.gem }}' rel="noopener" target="_blank"><img src='https://badge.fury.io/rb/{{ page.download.gem }}.svg'></a>
|
68
|
+
{% endif %}
|
69
|
+
</div>
|
70
|
+
</section>
|
71
|
+
{% endif %}
|
72
|
+
|
73
|
+
{% include widget_feedback.html %}
|
74
|
+
</aside>
|
75
|
+
|
76
|
+
<script>
|
77
|
+
$(function() {
|
78
|
+
$('article ol').addClass('mdc-list');
|
79
|
+
$('article ol li').each(function(index) {
|
80
|
+
$(this).addClass('mdc-list-item');
|
81
|
+
$(this).html('<span class="mdc-list-item__text">' + $(this).text() + '</span>');
|
82
|
+
});
|
83
|
+
|
84
|
+
$('article ul').addClass('mdc-chip-set');
|
85
|
+
$('article ul li').each(function(index) {
|
86
|
+
$(this).addClass('mdc-chip');
|
87
|
+
|
88
|
+
var html = "<div class='mdc-chip__ripple'></div><span role='gridcell'>"
|
89
|
+
html += "<span role='button' class='mdc-chip__primary-action><span class='mdc-chip__text'>"
|
90
|
+
$(this).html(html + $(this).text() + '</span></span>');
|
91
|
+
});
|
92
|
+
|
93
|
+
$('.highlighter-rouge').each(function(index) {
|
94
|
+
var pre = $(this);
|
95
|
+
var code = $(this).find('code');
|
96
|
+
|
97
|
+
var classList = pre.attr('class').split(/\s+/);
|
98
|
+
$.each(classList, function(i, item) {
|
99
|
+
if (item.startsWith('language-')) {
|
100
|
+
code.addClass(item.substring(9));
|
101
|
+
}
|
102
|
+
});
|
103
|
+
|
104
|
+
$(this).removeClass();
|
105
|
+
$(this).children().removeClass();
|
106
|
+
$(this).find('pre').removeClass();
|
107
|
+
});
|
108
|
+
})
|
109
|
+
</script>
|
data/_sass/_code.scss
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
/*
|
2
|
+
*------------------------------------------------
|
3
|
+
* code syntax highlighting styles
|
4
|
+
*------------------------------------------------
|
5
|
+
*/
|
6
|
+
@import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap');
|
7
|
+
@import url('https://unpkg.com/@highlightjs/cdn-assets@10.5.0/styles/dark.min.css');
|
8
|
+
|
9
|
+
.code,
|
10
|
+
.gist-file,
|
11
|
+
code {
|
12
|
+
border-radius: 4px;
|
13
|
+
}
|
14
|
+
|
15
|
+
.code,
|
16
|
+
.gist-file *,
|
17
|
+
code {
|
18
|
+
font-family: 'Source Code Pro', monospace;
|
19
|
+
font-size: 11pt;
|
20
|
+
}
|
21
|
+
|
22
|
+
.code,
|
23
|
+
code {
|
24
|
+
background-color: var(--mdc-theme-background);
|
25
|
+
padding: 2px 4px;
|
26
|
+
margin: 0 2px;
|
27
|
+
}
|
28
|
+
|
29
|
+
.gist-data,
|
30
|
+
pre code {
|
31
|
+
border-radius: 8px;
|
32
|
+
background-color: var(--mdc-theme-background);
|
33
|
+
box-sizing: border-box;
|
34
|
+
display: block;
|
35
|
+
width: 100%;
|
36
|
+
padding: 16px !important;
|
37
|
+
margin-bottom: 16px;
|
38
|
+
}
|
39
|
+
|
40
|
+
.gist-file,
|
41
|
+
.gist-file * {
|
42
|
+
background-color: var(--mdc-theme-background) !important;
|
43
|
+
border-color: var(--mdc-theme-border) !important;
|
44
|
+
}
|
45
|
+
|
46
|
+
.gist-data .blob-num,
|
47
|
+
.gist-meta {
|
48
|
+
color: var(--mdc-theme-on-surface) !important;
|
49
|
+
}
|
50
|
+
|
51
|
+
.gist-meta {
|
52
|
+
display: none;
|
53
|
+
}
|