Commit 684f1d51 authored by Thomas Jensen's avatar Thomas Jensen

redesign

parent f6a65311
[submodule "themes/beautifulhugo"]
path = themes/beautifulhugo
url = https://github.com/halogenica/beautifulhugo.git
[submodule "themes/aether"]
path = themes/aether
url = https://github.com/josephhutch/aether.git
---
title: "{{ replace .Name "-" " " | title }}"
subtitle:
description:
draft: true
bigimg: {attr: Andrew Neel, attrurl: https://unsplash.com/@andrewtneel, desc: "Hello"}
discussionId: {{ now.Unix }}
tags:
- WIP
---
Lorem ipsum.
---
title: "{{ replace .Name "-" " " | title }}"
subtitle:
description:
draft: true
heading: ""
link_title:
weight:
type: doc
tags:
---
Lorem ipsum.
---
title: "{{ replace .Name "-" " " | title }}"
subtitle:
description:
date: {{ .Date }}
draft: true
bigimg: {attr: Andrew Neel, attrurl: "https://unsplash.com/@andrewtneel", desc: "Hello"}
discussionId: {{ now.Unix }}
tags:
- WIP
---
Lorem ipsum.
......
---
title: "{{ replace .Name "-" " " | title }}"
subtitle:
description:
date: {{ .Date }}
heading: ""
draft: true
bigimg: {attr: Andrew Neel, attrurl: "https://unsplash.com/@andrewtneel", desc: "Hello"}
discussionId: {{ now.Unix }}
tags:
- WIP
---
Lorem ipsum.
......
---
title: "{{ replace .Name "-" " " | title }}"
description:
date: {{ .Date }}
type: update
severity: major #partial, degraded, major, maintenance
resolved: false
private: true
headless: true
updates:
#- header: Resolved
# text:
# date:
#- header: Monitoring
# text:
# date:
#- header: Investigating
# text: Looking into the issue.
# date: {{ .Date }}
---
TBD
../../node_modules/bootstrap/dist/css/bootstrap.css
\ No newline at end of file
../../themes/beautifulhugo/static/css/codeblock.css
\ No newline at end of file
......@@ -6,11 +6,15 @@ video {
}
/* Fix responsive images having the original height when scaled */
img {
.post-figure img {
height: auto;
width: auto;
max-width: 100%;
margin: 0;
}
/* Blur up lq placeholder images, before they are lazy loaded */
/*
.blur-up {
-webkit-filter: blur(10px);
filter: blur(10px);
......@@ -22,34 +26,22 @@ img {
filter: blur(0);
}
/* Use same heading style for categories as for tags and pages */
.intro-header .categories-heading {
text-align: center;
}
.intro-header .categories-heading h1 {
margin-top: 0;
font-size: 50px;
}
@media only screen and (min-width: 768px) {
.intro-header .categories-heading h1 {
font-size: 80px;
}
}
/*
code {
color: #202020;
background-color: #d0d0d0;
}
*/
figure {
padding: 10px 0;
}
figcaption {
/*
font-size: 12px;
line-height: 1.3;
*/
display: block;
width: 100%;
margin-top: 5px;
......@@ -60,3 +52,53 @@ figcaption {
div.highlight {
margin: 10px 0;
}
code {
color: #d0d0d0;
background-color: #202020;
}
pre code {
color: #d0d0d0;
}
.entry-toc nav > ul {
margin: 0;
}
.entry-toc ul {
list-style: none;
}
.logo-cursor {
display: inline-block;
width: 10px;
height: 1rem;
background: gray;
margin-left: 5px;
border-radius: 1px;
-webkit-animation: cursor 1s infinite;
animation: cursor 1s infinite;
}
@-webkit-keyframes cursor {
0% {
/*! opacity:0 */
}
50% {
/*! opacity:1 */
}
to {
/*! opacity:0 */
}
}
@keyframes cursor {
0% {
opacity:0;
}
50% {
opacity:1;
}
to {
opacity:0;
}
}
../../node_modules/@fortawesome/fontawesome-free/css/all.css
\ No newline at end of file
/* lora-regular - latin */
@font-face {
font-family: 'Lora';
font-style: normal;
font-weight: 400;
src: local('Lora Regular'), local('Lora-Regular'),
url('../fonts/lora-v12-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/lora-v12-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* lora-italic - latin */
@font-face {
font-family: 'Lora';
font-style: italic;
font-weight: 400;
src: local('Lora Italic'), local('Lora-Italic'),
url('../fonts/lora-v12-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/lora-v12-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* lora-700 - latin */
@font-face {
font-family: 'Lora';
font-style: normal;
font-weight: 700;
src: local('Lora Bold'), local('Lora-Bold'),
url('../fonts/lora-v12-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/lora-v12-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* lora-700italic - latin */
@font-face {
font-family: 'Lora';
font-style: italic;
font-weight: 700;
src: local('Lora Bold Italic'), local('Lora-BoldItalic'),
url('../fonts/lora-v12-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/lora-v12-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-300 - latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'),
url('../fonts/open-sans-v15-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-300italic - latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
src: local('Open Sans Light Italic'), local('OpenSans-LightItalic'),
url('../fonts/open-sans-v15-latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-regular - latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans Regular'), local('OpenSans-Regular'),
url('../fonts/open-sans-v15-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-italic - latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'),
url('../fonts/open-sans-v15-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-600 - latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans SemiBold'), local('OpenSans-SemiBold'),
url('../fonts/open-sans-v15-latin-600.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-600italic - latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: local('Open Sans SemiBold Italic'), local('OpenSans-SemiBoldItalic'),
url('../fonts/open-sans-v15-latin-600italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-600italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-700 - latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'),
url('../fonts/open-sans-v15-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-700italic - latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'),
url('../fonts/open-sans-v15-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-800 - latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: local('Open Sans ExtraBold'), local('OpenSans-ExtraBold'),
url('../fonts/open-sans-v15-latin-800.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-800.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* open-sans-800italic - latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: local('Open Sans ExtraBold Italic'), local('OpenSans-ExtraBoldItalic'),
url('../fonts/open-sans-v15-latin-800italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('../fonts/open-sans-v15-latin-800italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
../../node_modules/normalize.css/normalize.css
\ No newline at end of file
/* Dont hide img inside gallery */
.gallery img {
display: block;
}
../../../themes/beautifulhugo/static/css/hugo-easy-gallery.css
\ No newline at end of file
../../../node_modules/instantsearch.js/dist/instantsearch-theme-algolia.css
\ No newline at end of file
../../../node_modules/instantsearch.js/dist/instantsearch.css
\ No newline at end of file
.ais-search-box {
max-width: none;
}
../../themes/beautifulhugo/static/css/main.css
\ No newline at end of file
../../node_modules/bootstrap/dist/js/bootstrap.js
\ No newline at end of file
../../node_modules/instantsearch.js/dist/instantsearch.min.js
\ No newline at end of file
// Dean Attali / Beautiful Jekyll 2016
var main = {
init : function() {
// 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");
});
// On mobile, when clicking on a multi-level navbar menu, show the child links
$('#main-navbar').on("click", ".navlinks-parent", function(e) {
var target = e.target;
$.each($(".navlinks-parent"), function(key, value) {
if (value == target) {
$(value).parent().toggleClass("show-children");
} else {
$(value).parent().removeClass("show-children");
}
});
});
// Ensure nested navbar menus are not longer than the menu header
var menus = $(".navlinks-container");
if (menus.length > 0) {
var navbar = $("#main-navbar").find("ul");
var fakeMenuHtml = "<li class='fake-menu' style='display:none;'><a></a></li>";
navbar.append(fakeMenuHtml);
var fakeMenu = $(".fake-menu");
$.each(menus, function(i) {
var parent = $(menus[i]).find(".navlinks-parent");
var children = $(menus[i]).find(".navlinks-children a");
var words = [];
$.each(children, function(idx, el) { words = words.concat($(el).text().trim().split(/\s+/)); });
var maxwidth = 0;
$.each(words, function(id, word) {
fakeMenu.html("<a>" + word + "</a>");
var width = fakeMenu.width();
if (width > maxwidth) {
maxwidth = width;
}
});
$(menus[i]).css('min-width', maxwidth + 'px')
});
fakeMenu.remove();
}
}
};
// 2fc73a3a967e97599c9763d05e564189
document.addEventListener('DOMContentLoaded', main.init);
......@@ -12,7 +12,7 @@ $( document ).ready(function() {
// for every figure element on the page:
$('figure').each( function() {
if ($(this).attr('class') == 'no-photoswipe') return true; // ignore any figures where class="no-photoswipe"
if ($(this).attr('class') == 'no-photoswipe post-figure') return true; // ignore any figures where class="no-photoswipe"
// get properties from child a/img/figcaption elements,
var $figure = $(this),
......@@ -29,7 +29,7 @@ $( document ).ready(function() {
w : $size[0],
h : $size[1],
title : $title,
msrc : $msrc
//msrc : $msrc
};
// Save the index of this image then add it to the array
......@@ -44,7 +44,8 @@ $( document ).ready(function() {
var options = {
index: index,
bgOpacity: 0.8,
showHideOpacity: true
showHideOpacity: true,
getThumbBoundsFn: false
}
new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options).init();
});
......
......@@ -3,9 +3,10 @@ table.parts-list {
td {
vertical-align: middle !important;
border: 0 !important;
padding: 0.5em !important;
&.parts-image-column {
min-width: 48px;
// min-width: 24px;
max-width: 72px;
}
......@@ -19,4 +20,8 @@ table.parts-list {
}
}
img {
margin: 0;
}
}
baseURL = "https://uctrl.dev/"
languageCode = "en-us"
baseurl = "https://uctrl.dev"
title = "uCtrl"
theme = "beautifulhugo"
author = "Thomas Jensen"
canonifyurls = true
paginate = 10
theme = "aether"
pygmentsCodeFences = true
pygmentsUseClasses = true
timeout = 300000
enableRobotsTXT = true
enableGitInfo = true
copyright = "Work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License."
[taxonomies]
tag = "tags"
......@@ -17,91 +17,9 @@ copyright = "Work is licensed under a Creative Commons Attribution-ShareAlike 4.
project = "/:filename/"
[imaging]
# Default JPEG quality setting. Default is 75.
quality = 80
[related]
threshold = 80
includeNewer = true
toLower = true
[[related.indices]]
name = "tags"
weight = 100
[[related.indices]]
name = "date"
weight = 10
[Params]
# homeTitle = "Beautiful Hugo Theme" # Set a different text for the header on the home page
subtitle = "linux | homelab | electronics"
logo = "/img/dev-prisma.jpg" # Expecting square dimensions
topAvatar = "/img/dev-prisma-100.jpg"
favicon = "/img/favicon.ico"
dateFormat = "January 2, 2006"
commit = false
rss = true
readingTime = true
# wordCount = true
useHLJS = false
showRelatedPosts = true
#[Params.bigimg]
# src = "/img/home"
[Author]
name = "Thomas Jensen"
website = "https://uctrl.dev"
email = "thomas@uctrl.dev"
github = "thomasjsn"
# gitlab = "thomasjsn"
twitter = "thomasjsn"
reddit = "HebronNor"
# stackoverflow = "users/3903565/thomas-jensen"
# youtube = "user/rackbron" # or channel/channelname
unsplash = "thomasjsn"
[outputFormats.Algolia]
baseName = "algolia"
isPlainText = true
mediaType = "application/json"
notAlternative = true
[params.algolia]
vars = ["title", "content", "date", "publishdate", "expirydate", "permalink"]
params = ["categories", "tags"]
[outputs]
home = ["HTML", "RSS", "Algolia"]
[[menu.main]]
name = "Archives"
weight = 1
[[menu.main]]
parent = "Archives"
name = "Posts"
url = "/posts/"
weight = 1
[[menu.main]]
parent = "Archives"
name = "Projects"
url = "/projects/"
weight = 2
[[menu.main]]
name = "Homelab"
url = "/homelab/"
weight = 2
[[menu.main]]
name = "Electronics lab"
url = "/electronics-lab/"
weight = 3
[[menu.main]]
name = "About"
url = "/about/"
weight = 4
[params]
brand = "uctrl"
description = "linux | homelab | electronics"
bgimg = "img/texturetastic_gray.png"
---
title: "About"
subtitle: "Me and the website"
description: "Who am I, and what is this website? I'm Thomas, and I like electronics and computers."
date: 2019-01-02
bigimg: {desc: "Whisky and sigar, a great duo"}
tags:
- Meta
#date: 2019-01-02
displayInList: false
displayInMenu: true
weight: 30
#tags:
#- Meta
aliases:
- /@thomas/
- /@hebron/
......@@ -64,11 +65,9 @@ My parents will tell you that my interest in computers and electronics started p
When I was 9, I started building a cycle trolley with a car battery, lights, and switches. Which I dragged around and improved for years until it eventually became "uncool."
{{< gallery >}}
{{< figure "vogna-1" Fill 250x250 >}}
{{< figure "vogna-3" Fill 250x250 >}}
{{< figure "vogna-4" Fill 250x250 >}}
{{< /gallery >}}
{{< figure "vogna-1" Resize 800x >}}
{{< figure "vogna-3" Resize 800x >}}
{{< figure "vogna-4" Resize 800x >}}
The year after, in 1993, the family got an [x86 PC](https://en.wikipedia.org/wiki/X86), with a color monitor and [dot matrix](https://en.wikipedia.org/wiki/Dot_matrix) printer. It was awesome; I stopped playing outside after that...
......@@ -76,41 +75,33 @@ The year after, in 1993, the family got an [x86 PC](https://en.wikipedia.org/wik
I moved into my own apartment and started to build [AVR](/tags/avr/) microcontroller modules in my early 20's, and it quickly became an obsession. I put them all into a control cabinet that controlled the apartment, and monitored itself; every voltage level, fuse, and module had some kind of monitoring and alert system. After a few years, it had gotten pretty big.
{{< gallery >}}
{{< figure "desk090111-2" Fill 250x250 >}}
{{< figure "cabinet-with-parts-and-my-rack-box-project-eqmzz4" Fill 250x250 >}}
{{< figure "the-rack-box-project-3gze1g" Fill 250x250 >}}
{{< /gallery >}}
{{< figure "desk090111-2" Resize 800x >}}
{{< figure "cabinet-with-parts-and-my-rack-box-project-eqmzz4" Resize 800x >}}
{{< figure "the-rack-box-project-3gze1g" Resize 800x >}}
I went to school for two years and improved my electronics skills. After I graduated, I sold the apartment and bought a house.
{{< gallery >}}
{{< figure "20110414_085301" Fill 250x250 >}}
{{< figure "20110904_095648" Fill 250x250 >}}
{{< figure "20110418_110757" Fill 250x250 >}}
{{< /gallery >}}
{{< figure "20110414_085301" Resize 800x >}}
{{< figure "20110904_095648" Resize 800x >}}
{{< figure "20110418_110757" Resize 800x >}}
### Family man
After living on my own in the house for about two years, I met my girlfriend. We dated for a short while, then we rented an apartment and moved in together in her hometown. Almost a year later the twins were born — hectic times and not a lot of time for projects. In 2014, when the twins were about a year old, we bought the house where we still live.
I called dibs on a room in the basement, where I am sitting now; typing this. It's my combined home office, man-cave, workshop, electronics lab, and server room. 10.5 m2 (113 ft2) of pure awesomeness!
{{< gallery >}}
{{< figure "IMG_20181001_210232" Fill 250x250 >}}
{{< figure "IMG_20180914_235155" Fill 250x250 >}}
{{< figure "IMG_20190102_165623" Fill 250x250 >}}
{{< /gallery >}}
{{< figure "IMG_20181001_210232" Resize 800x >}}
{{< figure "IMG_20180914_235155" Resize 800x >}}
{{< figure "IMG_20190102_165623" Resize 800x >}}
In 2018 our youngest son was born, and the family was complete. I try ever so gently to push the kids towards the right interests of course; it seems to be working.
{{< gallery >}}
{{< figure "toddler-twins-on-computer" Fill 250x250 >}}
{{< figure "boys-drawing-with-blue-strobe-on-table" Fill 250x250 >}}
{{< figure "20180330_183910" Fill 250x250 >}}
{{< figure "alexander-looking-in-fireman-alarm-49lkw4" Fill 250x250 >}}
{{< figure "niklas-looking-in-fireman-alarm-gr5164" Fill 250x250 >}}