Add new files from upstream
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{% if site.cloudflare_analytics %}
|
||||
<!-- Cloudflare Web Analytics -->
|
||||
<script defer
|
||||
src='https://static.cloudflareinsights.com/beacon.min.js'
|
||||
data-cf-beacon='{"token": "{{ site.cloudflare_analytics}}"}'>
|
||||
</script>
|
||||
<!-- End Cloudflare Web Analytics -->
|
||||
{% endif %}
|
||||
7
blog.bryanroessler.com/_includes/commentbox.html
Normal file
7
blog.bryanroessler.com/_includes/commentbox.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{% if site.commentbox %}
|
||||
|
||||
<div class="commentbox"></div>
|
||||
<script src="https://unpkg.com/commentbox.io/dist/commentBox.min.js"></script>
|
||||
<script>commentBox('{{ site.commentbox }}')</script>
|
||||
|
||||
{% endif %}
|
||||
16
blog.bryanroessler.com/_includes/giscus-comment.html
Normal file
16
blog.bryanroessler.com/_includes/giscus-comment.html
Normal file
@@ -0,0 +1,16 @@
|
||||
{% if site.giscus.repository and site.giscus.hostname %}
|
||||
|
||||
<script src="https://{{ site.giscus.hostname }}/client.js"
|
||||
data-repo="{{ site.giscus.repository }}"
|
||||
data-repo-id="{{ site.giscus.repository-id }}"
|
||||
data-category="{{ site.giscus.category }}"
|
||||
data-category-id="{{ site.giscus.category-id }}"
|
||||
data-mapping="{{ site.giscus.mapping }}"
|
||||
data-reactions-enabled="{{ site.giscus.reactions-enabled }}"
|
||||
data-emit-metadata="{{ site.giscus.emit-metadata }}"
|
||||
data-theme="{{ site.giscus.theme }}"
|
||||
crossorigin="anonymous"
|
||||
async>
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
39
blog.bryanroessler.com/_includes/search.html
Normal file
39
blog.bryanroessler.com/_includes/search.html
Normal file
@@ -0,0 +1,39 @@
|
||||
{% if site.post_search %}
|
||||
|
||||
<div id="beautifuljekyll-search-overlay">
|
||||
|
||||
<div id="nav-search-exit" title="Exit search">✕</div>
|
||||
<input type="text" id="nav-search-input" placeholder="Search">
|
||||
<ul id="search-results-container"></ul>
|
||||
|
||||
<script src="https://unpkg.com/simple-jekyll-search@latest/dest/simple-jekyll-search.min.js"></script>
|
||||
<script>
|
||||
var searchjson = '[ \
|
||||
{% for post in site.posts %} \
|
||||
{ \
|
||||
"title" : "{% if post.title != "" %}{{ post.title | strip_html | escape }}{% else %}{{ post.excerpt | strip_html | escape | strip }}{%endif%}", \
|
||||
"category" : "{{ post.tags | join: \', \' }}", \
|
||||
"url" : "{{ site.baseurl }}{{ post.url }}", \
|
||||
"date" : "{{ post.date | date: "%B %e, %Y" | default: "January 1, 1970" }}" \
|
||||
}, \
|
||||
{% endfor %} \
|
||||
{% for page in site.html_pages %}{% if page.title != "{title}" and page.title != "404 - Page not found" %} \
|
||||
{ \
|
||||
"title" : "{% if page.title != "" %}{{ page.title | strip_html | escape }}{% else %}{{ page.excerpt | strip_html | escape | strip }}{% endif %}", \
|
||||
"category" : "{% if page.tags %}{{ page.tags | join: \', \' }}{% else %}page{% endif %}", \
|
||||
"url" : "{{ site.baseurl }}{{ page.url }}", \
|
||||
"date" : "{{ page.date | date: '%B %e, %Y' | default: "January 1, 1970" }}" \
|
||||
}{% unless forloop.last %},{% endunless %} \
|
||||
{% endif %}{% endfor %} \
|
||||
]';
|
||||
searchjson = JSON.parse(searchjson);
|
||||
|
||||
var sjs = SimpleJekyllSearch({
|
||||
searchInput: document.getElementById('nav-search-input'),
|
||||
resultsContainer: document.getElementById('search-results-container'),
|
||||
json: searchjson
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
@@ -0,0 +1,13 @@
|
||||
.main-content {
|
||||
padding-bottom: 3.125rem;
|
||||
}
|
||||
|
||||
footer.footer-min {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
padding: 0.1875rem;
|
||||
background-color: #f5f5f5;
|
||||
border-top: 1px solid #eeeeee;
|
||||
text-align: center;
|
||||
}
|
||||
1120
blog.bryanroessler.com/assets/css/beautifuljekyll.css
Normal file
1120
blog.bryanroessler.com/assets/css/beautifuljekyll.css
Normal file
File diff suppressed because it is too large
Load Diff
142
blog.bryanroessler.com/assets/js/beautifuljekyll.js
Normal file
142
blog.bryanroessler.com/assets/js/beautifuljekyll.js
Normal file
@@ -0,0 +1,142 @@
|
||||
// Dean Attali / Beautiful Jekyll 2020
|
||||
|
||||
var BeautifulJekyllJS = {
|
||||
|
||||
bigImgEl : null,
|
||||
numImgs : null,
|
||||
|
||||
init : function() {
|
||||
setTimeout(BeautifulJekyllJS.initNavbar, 10);
|
||||
|
||||
// Shorten the navbar after scrolling a little bit down
|
||||
$(window).scroll(function() {
|
||||
if ($(".navbar").offset().top > 50) {
|
||||
$(".navbar").addClass("top-nav-short");
|
||||
} else {
|
||||
$(".navbar").removeClass("top-nav-short");
|
||||
}
|
||||
});
|
||||
|
||||
// On mobile, hide the avatar when expanding the navbar menu
|
||||
$('#main-navbar').on('show.bs.collapse', function () {
|
||||
$(".navbar").addClass("top-nav-expanded");
|
||||
});
|
||||
$('#main-navbar').on('hidden.bs.collapse', function () {
|
||||
$(".navbar").removeClass("top-nav-expanded");
|
||||
});
|
||||
|
||||
// show the big header image
|
||||
BeautifulJekyllJS.initImgs();
|
||||
|
||||
BeautifulJekyllJS.initSearch();
|
||||
},
|
||||
|
||||
initNavbar : function() {
|
||||
// Set the navbar-dark/light class based on its background color
|
||||
const rgb = $('.navbar').css("background-color").replace(/[^\d,]/g,'').split(",");
|
||||
const brightness = Math.round(( // http://www.w3.org/TR/AERT#color-contrast
|
||||
parseInt(rgb[0]) * 299 +
|
||||
parseInt(rgb[1]) * 587 +
|
||||
parseInt(rgb[2]) * 114
|
||||
) / 1000);
|
||||
if (brightness <= 125) {
|
||||
$(".navbar").removeClass("navbar-light").addClass("navbar-dark");
|
||||
} else {
|
||||
$(".navbar").removeClass("navbar-dark").addClass("navbar-light");
|
||||
}
|
||||
},
|
||||
|
||||
initImgs : function() {
|
||||
// If the page was large images to randomly select from, choose an image
|
||||
if ($("#header-big-imgs").length > 0) {
|
||||
BeautifulJekyllJS.bigImgEl = $("#header-big-imgs");
|
||||
BeautifulJekyllJS.numImgs = BeautifulJekyllJS.bigImgEl.attr("data-num-img");
|
||||
|
||||
// 2fc73a3a967e97599c9763d05e564189
|
||||
// set an initial image
|
||||
var imgInfo = BeautifulJekyllJS.getImgInfo();
|
||||
var src = imgInfo.src;
|
||||
var desc = imgInfo.desc;
|
||||
BeautifulJekyllJS.setImg(src, desc);
|
||||
|
||||
// For better UX, prefetch the next image so that it will already be loaded when we want to show it
|
||||
var getNextImg = function() {
|
||||
var imgInfo = BeautifulJekyllJS.getImgInfo();
|
||||
var src = imgInfo.src;
|
||||
var desc = imgInfo.desc;
|
||||
|
||||
var prefetchImg = new Image();
|
||||
prefetchImg.src = src;
|
||||
// if I want to do something once the image is ready: `prefetchImg.onload = function(){}`
|
||||
|
||||
setTimeout(function(){
|
||||
var img = $("<div></div>").addClass("big-img-transition").css("background-image", 'url(' + src + ')');
|
||||
$(".intro-header.big-img").prepend(img);
|
||||
setTimeout(function(){ img.css("opacity", "1"); }, 50);
|
||||
|
||||
// after the animation of fading in the new image is done, prefetch the next one
|
||||
//img.one("transitioned webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
|
||||
setTimeout(function() {
|
||||
BeautifulJekyllJS.setImg(src, desc);
|
||||
img.remove();
|
||||
getNextImg();
|
||||
}, 1000);
|
||||
//});
|
||||
}, 6000);
|
||||
};
|
||||
|
||||
// If there are multiple images, cycle through them
|
||||
if (BeautifulJekyllJS.numImgs > 1) {
|
||||
getNextImg();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getImgInfo : function() {
|
||||
var randNum = Math.floor((Math.random() * BeautifulJekyllJS.numImgs) + 1);
|
||||
var src = BeautifulJekyllJS.bigImgEl.attr("data-img-src-" + randNum);
|
||||
var desc = BeautifulJekyllJS.bigImgEl.attr("data-img-desc-" + randNum);
|
||||
|
||||
return {
|
||||
src : src,
|
||||
desc : desc
|
||||
}
|
||||
},
|
||||
|
||||
setImg : function(src, desc) {
|
||||
$(".intro-header.big-img").css("background-image", 'url(' + src + ')');
|
||||
if (typeof desc !== typeof undefined && desc !== false) {
|
||||
$(".img-desc").text(desc).show();
|
||||
} else {
|
||||
$(".img-desc").hide();
|
||||
}
|
||||
},
|
||||
|
||||
initSearch : function() {
|
||||
if (!document.getElementById("beautifuljekyll-search-overlay")) {
|
||||
return;
|
||||
}
|
||||
|
||||
$("#nav-search-link").click(function(e) {
|
||||
e.preventDefault();
|
||||
$("#beautifuljekyll-search-overlay").show();
|
||||
$("#nav-search-input").focus().select();
|
||||
$("body").addClass("overflow-hidden");
|
||||
});
|
||||
$("#nav-search-exit").click(function(e) {
|
||||
e.preventDefault();
|
||||
$("#beautifuljekyll-search-overlay").hide();
|
||||
$("body").removeClass("overflow-hidden");
|
||||
});
|
||||
$(document).on('keyup', function(e) {
|
||||
if (e.key == "Escape") {
|
||||
$("#beautifuljekyll-search-overlay").hide();
|
||||
$("body").removeClass("overflow-hidden");
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 2fc73a3a967e97599c9763d05e564189
|
||||
|
||||
document.addEventListener('DOMContentLoaded', BeautifulJekyllJS.init);
|
||||
7
cv.bryanroessler.com/.dockerignore
Normal file
7
cv.bryanroessler.com/.dockerignore
Normal file
@@ -0,0 +1,7 @@
|
||||
.git
|
||||
.git/
|
||||
.gitignore
|
||||
_site
|
||||
.sass-cache
|
||||
.DS_Store
|
||||
_vendor
|
||||
11
cv.bryanroessler.com/Dockerfile
Normal file
11
cv.bryanroessler.com/Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
||||
FROM ruby:2.7
|
||||
|
||||
WORKDIR /home/app
|
||||
|
||||
COPY Gemfile* ./
|
||||
|
||||
RUN bundle install
|
||||
|
||||
COPY . .
|
||||
|
||||
CMD [ "bundle", "exec", "jekyll", "serve" ]
|
||||
@@ -0,0 +1,8 @@
|
||||
{% if site.cloudflare_analytics %}
|
||||
<!-- Cloudflare Web Analytics -->
|
||||
<script defer
|
||||
src='https://static.cloudflareinsights.com/beacon.min.js'
|
||||
data-cf-beacon='{"token": "{{ site.cloudflare_analytics}}"}'>
|
||||
</script>
|
||||
<!-- End Cloudflare Web Analytics -->
|
||||
{% endif %}
|
||||
7
landing.bryanroessler.com/_includes/commentbox.html
Normal file
7
landing.bryanroessler.com/_includes/commentbox.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{% if site.commentbox %}
|
||||
|
||||
<div class="commentbox"></div>
|
||||
<script src="https://unpkg.com/commentbox.io/dist/commentBox.min.js"></script>
|
||||
<script>commentBox('{{ site.commentbox }}')</script>
|
||||
|
||||
{% endif %}
|
||||
16
landing.bryanroessler.com/_includes/giscus-comment.html
Normal file
16
landing.bryanroessler.com/_includes/giscus-comment.html
Normal file
@@ -0,0 +1,16 @@
|
||||
{% if site.giscus.repository and site.giscus.hostname %}
|
||||
|
||||
<script src="https://{{ site.giscus.hostname }}/client.js"
|
||||
data-repo="{{ site.giscus.repository }}"
|
||||
data-repo-id="{{ site.giscus.repository-id }}"
|
||||
data-category="{{ site.giscus.category }}"
|
||||
data-category-id="{{ site.giscus.category-id }}"
|
||||
data-mapping="{{ site.giscus.mapping }}"
|
||||
data-reactions-enabled="{{ site.giscus.reactions-enabled }}"
|
||||
data-emit-metadata="{{ site.giscus.emit-metadata }}"
|
||||
data-theme="{{ site.giscus.theme }}"
|
||||
crossorigin="anonymous"
|
||||
async>
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
39
landing.bryanroessler.com/_includes/search.html
Normal file
39
landing.bryanroessler.com/_includes/search.html
Normal file
@@ -0,0 +1,39 @@
|
||||
{% if site.post_search %}
|
||||
|
||||
<div id="beautifuljekyll-search-overlay">
|
||||
|
||||
<div id="nav-search-exit" title="Exit search">✕</div>
|
||||
<input type="text" id="nav-search-input" placeholder="Search">
|
||||
<ul id="search-results-container"></ul>
|
||||
|
||||
<script src="https://unpkg.com/simple-jekyll-search@latest/dest/simple-jekyll-search.min.js"></script>
|
||||
<script>
|
||||
var searchjson = '[ \
|
||||
{% for post in site.posts %} \
|
||||
{ \
|
||||
"title" : "{% if post.title != "" %}{{ post.title | strip_html | escape }}{% else %}{{ post.excerpt | strip_html | escape | strip }}{%endif%}", \
|
||||
"category" : "{{ post.tags | join: \', \' }}", \
|
||||
"url" : "{{ site.baseurl }}{{ post.url }}", \
|
||||
"date" : "{{ post.date | date: "%B %e, %Y" | default: "January 1, 1970" }}" \
|
||||
}, \
|
||||
{% endfor %} \
|
||||
{% for page in site.html_pages %}{% if page.title != "{title}" and page.title != "404 - Page not found" %} \
|
||||
{ \
|
||||
"title" : "{% if page.title != "" %}{{ page.title | strip_html | escape }}{% else %}{{ page.excerpt | strip_html | escape | strip }}{% endif %}", \
|
||||
"category" : "{% if page.tags %}{{ page.tags | join: \', \' }}{% else %}page{% endif %}", \
|
||||
"url" : "{{ site.baseurl }}{{ page.url }}", \
|
||||
"date" : "{{ page.date | date: '%B %e, %Y' | default: "January 1, 1970" }}" \
|
||||
}{% unless forloop.last %},{% endunless %} \
|
||||
{% endif %}{% endfor %} \
|
||||
]';
|
||||
searchjson = JSON.parse(searchjson);
|
||||
|
||||
var sjs = SimpleJekyllSearch({
|
||||
searchInput: document.getElementById('nav-search-input'),
|
||||
resultsContainer: document.getElementById('search-results-container'),
|
||||
json: searchjson
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
@@ -0,0 +1,13 @@
|
||||
.main-content {
|
||||
padding-bottom: 3.125rem;
|
||||
}
|
||||
|
||||
footer.footer-min {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
padding: 0.1875rem;
|
||||
background-color: #f5f5f5;
|
||||
border-top: 1px solid #eeeeee;
|
||||
text-align: center;
|
||||
}
|
||||
1120
landing.bryanroessler.com/assets/css/beautifuljekyll.css
Normal file
1120
landing.bryanroessler.com/assets/css/beautifuljekyll.css
Normal file
File diff suppressed because it is too large
Load Diff
142
landing.bryanroessler.com/assets/js/beautifuljekyll.js
Normal file
142
landing.bryanroessler.com/assets/js/beautifuljekyll.js
Normal file
@@ -0,0 +1,142 @@
|
||||
// Dean Attali / Beautiful Jekyll 2020
|
||||
|
||||
var BeautifulJekyllJS = {
|
||||
|
||||
bigImgEl : null,
|
||||
numImgs : null,
|
||||
|
||||
init : function() {
|
||||
setTimeout(BeautifulJekyllJS.initNavbar, 10);
|
||||
|
||||
// Shorten the navbar after scrolling a little bit down
|
||||
$(window).scroll(function() {
|
||||
if ($(".navbar").offset().top > 50) {
|
||||
$(".navbar").addClass("top-nav-short");
|
||||
} else {
|
||||
$(".navbar").removeClass("top-nav-short");
|
||||
}
|
||||
});
|
||||
|
||||
// On mobile, hide the avatar when expanding the navbar menu
|
||||
$('#main-navbar').on('show.bs.collapse', function () {
|
||||
$(".navbar").addClass("top-nav-expanded");
|
||||
});
|
||||
$('#main-navbar').on('hidden.bs.collapse', function () {
|
||||
$(".navbar").removeClass("top-nav-expanded");
|
||||
});
|
||||
|
||||
// show the big header image
|
||||
BeautifulJekyllJS.initImgs();
|
||||
|
||||
BeautifulJekyllJS.initSearch();
|
||||
},
|
||||
|
||||
initNavbar : function() {
|
||||
// Set the navbar-dark/light class based on its background color
|
||||
const rgb = $('.navbar').css("background-color").replace(/[^\d,]/g,'').split(",");
|
||||
const brightness = Math.round(( // http://www.w3.org/TR/AERT#color-contrast
|
||||
parseInt(rgb[0]) * 299 +
|
||||
parseInt(rgb[1]) * 587 +
|
||||
parseInt(rgb[2]) * 114
|
||||
) / 1000);
|
||||
if (brightness <= 125) {
|
||||
$(".navbar").removeClass("navbar-light").addClass("navbar-dark");
|
||||
} else {
|
||||
$(".navbar").removeClass("navbar-dark").addClass("navbar-light");
|
||||
}
|
||||
},
|
||||
|
||||
initImgs : function() {
|
||||
// If the page was large images to randomly select from, choose an image
|
||||
if ($("#header-big-imgs").length > 0) {
|
||||
BeautifulJekyllJS.bigImgEl = $("#header-big-imgs");
|
||||
BeautifulJekyllJS.numImgs = BeautifulJekyllJS.bigImgEl.attr("data-num-img");
|
||||
|
||||
// 2fc73a3a967e97599c9763d05e564189
|
||||
// set an initial image
|
||||
var imgInfo = BeautifulJekyllJS.getImgInfo();
|
||||
var src = imgInfo.src;
|
||||
var desc = imgInfo.desc;
|
||||
BeautifulJekyllJS.setImg(src, desc);
|
||||
|
||||
// For better UX, prefetch the next image so that it will already be loaded when we want to show it
|
||||
var getNextImg = function() {
|
||||
var imgInfo = BeautifulJekyllJS.getImgInfo();
|
||||
var src = imgInfo.src;
|
||||
var desc = imgInfo.desc;
|
||||
|
||||
var prefetchImg = new Image();
|
||||
prefetchImg.src = src;
|
||||
// if I want to do something once the image is ready: `prefetchImg.onload = function(){}`
|
||||
|
||||
setTimeout(function(){
|
||||
var img = $("<div></div>").addClass("big-img-transition").css("background-image", 'url(' + src + ')');
|
||||
$(".intro-header.big-img").prepend(img);
|
||||
setTimeout(function(){ img.css("opacity", "1"); }, 50);
|
||||
|
||||
// after the animation of fading in the new image is done, prefetch the next one
|
||||
//img.one("transitioned webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
|
||||
setTimeout(function() {
|
||||
BeautifulJekyllJS.setImg(src, desc);
|
||||
img.remove();
|
||||
getNextImg();
|
||||
}, 1000);
|
||||
//});
|
||||
}, 6000);
|
||||
};
|
||||
|
||||
// If there are multiple images, cycle through them
|
||||
if (BeautifulJekyllJS.numImgs > 1) {
|
||||
getNextImg();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getImgInfo : function() {
|
||||
var randNum = Math.floor((Math.random() * BeautifulJekyllJS.numImgs) + 1);
|
||||
var src = BeautifulJekyllJS.bigImgEl.attr("data-img-src-" + randNum);
|
||||
var desc = BeautifulJekyllJS.bigImgEl.attr("data-img-desc-" + randNum);
|
||||
|
||||
return {
|
||||
src : src,
|
||||
desc : desc
|
||||
}
|
||||
},
|
||||
|
||||
setImg : function(src, desc) {
|
||||
$(".intro-header.big-img").css("background-image", 'url(' + src + ')');
|
||||
if (typeof desc !== typeof undefined && desc !== false) {
|
||||
$(".img-desc").text(desc).show();
|
||||
} else {
|
||||
$(".img-desc").hide();
|
||||
}
|
||||
},
|
||||
|
||||
initSearch : function() {
|
||||
if (!document.getElementById("beautifuljekyll-search-overlay")) {
|
||||
return;
|
||||
}
|
||||
|
||||
$("#nav-search-link").click(function(e) {
|
||||
e.preventDefault();
|
||||
$("#beautifuljekyll-search-overlay").show();
|
||||
$("#nav-search-input").focus().select();
|
||||
$("body").addClass("overflow-hidden");
|
||||
});
|
||||
$("#nav-search-exit").click(function(e) {
|
||||
e.preventDefault();
|
||||
$("#beautifuljekyll-search-overlay").hide();
|
||||
$("body").removeClass("overflow-hidden");
|
||||
});
|
||||
$(document).on('keyup', function(e) {
|
||||
if (e.key == "Escape") {
|
||||
$("#beautifuljekyll-search-overlay").hide();
|
||||
$("body").removeClass("overflow-hidden");
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// 2fc73a3a967e97599c9763d05e564189
|
||||
|
||||
document.addEventListener('DOMContentLoaded', BeautifulJekyllJS.init);
|
||||
Reference in New Issue
Block a user