Compare commits
	
		
			8 Commits
		
	
	
		
			5a91907f4c
			...
			786418496b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 786418496b | |||
| 6bed384805 | |||
| 6d2247b210 | |||
| dd44ff4c6d | |||
| 32d76be296 | |||
| 3dc90a272d | |||
| 809806c8cd | |||
| 975484a03c | 
							
								
								
									
										104
									
								
								content/linux-flavour.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								content/linux-flavour.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,104 @@
 | 
				
			|||||||
 | 
					Title: Choosing a Linux Flavour
 | 
				
			||||||
 | 
					Date: 2020-10-31
 | 
				
			||||||
 | 
					Category: Writing
 | 
				
			||||||
 | 
					Summary: A recommendation on which flavour of Linux to run.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[TOC]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					People often ask me which flavour of Linux they should install. In summary,
 | 
				
			||||||
 | 
					choose Ubuntu if it's your first time. Once you are comfortable, install Debian
 | 
				
			||||||
 | 
					the next time you need to install Linux.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					I run Debian on my computers and servers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Linux Distributions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					When people refer to the "flavour of Linux" they are talking about a Linux
 | 
				
			||||||
 | 
					distribution (distro). It mostly describes what software is distributed in its
 | 
				
			||||||
 | 
					software repository.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"A typical Linux distribution comprises a Linux kernel, GNU tools and
 | 
				
			||||||
 | 
					libraries, additional software, documentation, a window system, a window
 | 
				
			||||||
 | 
					manager, and a desktop environment." [Wikipedia]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The major Linux distros are practically all the same. If you master one it's
 | 
				
			||||||
 | 
					easy to pick up the others. The main differences you'll run into are which
 | 
				
			||||||
 | 
					tools you use to install new software, and the desktop environment, which is
 | 
				
			||||||
 | 
					what all the windows and buttons look like.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					I recommend two Linux distros, Debian and Ubuntu. Ubuntu is based off of
 | 
				
			||||||
 | 
					Debian, so they are very similar. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Pros of Debian
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Debian is one of the oldest distros and many other distros are based off it.
 | 
				
			||||||
 | 
					You can see a timeline visualization of all its derivatives here:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This image is what originally convinced me to use Debian. Scroll down until you
 | 
				
			||||||
 | 
					see it and zoom out so you grasp how many derivatives it has.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Debian is also non-commercial and requires that all software in its main
 | 
				
			||||||
 | 
					repository is free and open source. This is important because that grants you
 | 
				
			||||||
 | 
					the right to study, change, and distribute the software and source code to
 | 
				
			||||||
 | 
					anyone and for any purpose. They also follow a strong social contract you can
 | 
				
			||||||
 | 
					see here:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<https://www.debian.org/social_contract>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It's also a very stable Linux distro since they freeze all software features on
 | 
				
			||||||
 | 
					each release. This makes it great for servers because nothing will break when
 | 
				
			||||||
 | 
					it updates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The main Raspberry Pi distro is nearly identical to Debian, so you'll also gain
 | 
				
			||||||
 | 
					familiarity with it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Cons of Debian
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Since Debian requires all its software to be free and open source, proprietary
 | 
				
			||||||
 | 
					hardware drivers aren't included in its main repo. This can make installing
 | 
				
			||||||
 | 
					Debian difficult if your hardware requires non-free drivers. You'll need to use
 | 
				
			||||||
 | 
					a non-free installation image found here:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The fact that Debian freezes software features can also mean that your software
 | 
				
			||||||
 | 
					gets old until the next Debian release. If you want versions that are bleeding
 | 
				
			||||||
 | 
					edge, you'll need to use Debian Unstable as described here:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<https://wiki.debian.org/DebianUnstable#Installation>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Don't be fooled by the name "unstable". I use it for my personal computers and
 | 
				
			||||||
 | 
					it runs fine.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Pros of Ubuntu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ubuntu is incredibly easy to install. You can also try it out before deciding
 | 
				
			||||||
 | 
					to install it. The distro pretty much just works on what ever hardware you
 | 
				
			||||||
 | 
					have.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It's very beginner friendly because it's so popular. Any problem you search for
 | 
				
			||||||
 | 
					will reveal dozens of threads with people solving the same problem.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Cons of Ubuntu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unfortunately Ubuntu is developed by a commercial company, Canonical. The
 | 
				
			||||||
 | 
					company's interests come first, before the users' and they have a track record
 | 
				
			||||||
 | 
					of betraying their users' trust and privacy. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Years ago Ubuntu had a feature enabled by default that would send your desktop
 | 
				
			||||||
 | 
					searches to Amazon so they could suggest products for you to buy:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<https://www.pcworld.com/article/2840401/ubuntus-unity-8-desktop-removes-the-amazon-search-spyware.html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Currently whenever you remote login to your Ubuntu machine, it phones home to
 | 
				
			||||||
 | 
					Canonical and they collect info about your system:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<https://ubuntu.com/legal/motd>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					While these reasons are fairly minor, they are quite frowned upon in the Linux
 | 
				
			||||||
 | 
					community and are reason enough to switch to Debian once you are comfortable
 | 
				
			||||||
 | 
					with using Linux.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Wikipedia]: https://en.wikipedia.org/wiki/Linux_distribution
 | 
				
			||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
# -*- coding: utf-8 -*- #
 | 
					# -*- coding: utf-8 -*- #
 | 
				
			||||||
from __future__ import unicode_literals
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AUTHOR = 'Tanner'
 | 
					AUTHOR = 'Tanner Collin'
 | 
				
			||||||
SITENAME = 'Tanner Collin'
 | 
					SITENAME = 'Tanner Collin'
 | 
				
			||||||
SITEURL = ''
 | 
					SITEURL = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,3 +38,14 @@ MARKDOWN = {
 | 
				
			|||||||
#RELATIVE_URLS = True
 | 
					#RELATIVE_URLS = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
THEME = 'themes/theme'
 | 
					THEME = 'themes/theme'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# turn off useless outputs
 | 
				
			||||||
 | 
					TAG_SAVE_AS = ''
 | 
				
			||||||
 | 
					CATEGORY_SAVE_AS = ''
 | 
				
			||||||
 | 
					AUTHOR_SAVE_AS = ''
 | 
				
			||||||
 | 
					ARCHIVES_SAVE_AS = ''
 | 
				
			||||||
 | 
					AUTHORS_SAVE_AS = ''
 | 
				
			||||||
 | 
					CATEGORIES_SAVE_AS = ''
 | 
				
			||||||
 | 
					TAGS_SAVE_AS = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PROD = False
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,24 +2,56 @@
 | 
				
			|||||||
# -*- coding: utf-8 -*- #
 | 
					# -*- coding: utf-8 -*- #
 | 
				
			||||||
from __future__ import unicode_literals
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This file is only used if you use `make publish` or
 | 
					AUTHOR = 'Tanner Collin'
 | 
				
			||||||
# explicitly specify it as your config file.
 | 
					SITENAME = 'Tanner Collin'
 | 
				
			||||||
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
sys.path.append(os.curdir)
 | 
					 | 
				
			||||||
from pelicanconf import *
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# If your site is available via HTTPS, make sure SITEURL begins with https://
 | 
					 | 
				
			||||||
SITEURL = ''
 | 
					SITEURL = ''
 | 
				
			||||||
RELATIVE_URLS = False
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
FEED_ALL_ATOM = 'feeds/all.atom.xml'
 | 
					PATH = 'content'
 | 
				
			||||||
CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
DELETE_OUTPUT_DIRECTORY = True
 | 
					TIMEZONE = 'Canada/Mountain'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Following items are often useful when publishing
 | 
					DEFAULT_LANG = 'en'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#DISQUS_SITENAME = ""
 | 
					# Feed generation is usually not desired when developing
 | 
				
			||||||
#GOOGLE_ANALYTICS = ""
 | 
					FEED_ALL_ATOM = None
 | 
				
			||||||
 | 
					CATEGORY_FEED_ATOM = None
 | 
				
			||||||
 | 
					TRANSLATION_FEED_ATOM = None
 | 
				
			||||||
 | 
					AUTHOR_FEED_ATOM = None
 | 
				
			||||||
 | 
					AUTHOR_FEED_RSS = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFAULT_PAGINATION = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MARKDOWN = {
 | 
				
			||||||
 | 
					    'extension_configs': {
 | 
				
			||||||
 | 
					        'markdown.extensions.codehilite': {'css_class': 'highlight'},
 | 
				
			||||||
 | 
					        'markdown.extensions.extra': {},
 | 
				
			||||||
 | 
					        'markdown.extensions.meta': {},
 | 
				
			||||||
 | 
					        'markdown.extensions.toc': {
 | 
				
			||||||
 | 
					            'toc_depth': '2-3',
 | 
				
			||||||
 | 
					            'anchorlink': True,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    'output_format': 'html5',
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Uncomment following line if you want document-relative URLs when developing
 | 
				
			||||||
 | 
					#RELATIVE_URLS = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THEME = 'themes/theme'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# turn off useless outputs
 | 
				
			||||||
 | 
					TAG_SAVE_AS = ''
 | 
				
			||||||
 | 
					CATEGORY_SAVE_AS = ''
 | 
				
			||||||
 | 
					AUTHOR_SAVE_AS = ''
 | 
				
			||||||
 | 
					ARCHIVES_SAVE_AS = ''
 | 
				
			||||||
 | 
					AUTHORS_SAVE_AS = ''
 | 
				
			||||||
 | 
					CATEGORIES_SAVE_AS = ''
 | 
				
			||||||
 | 
					TAGS_SAVE_AS = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INDEX_SAVE_AS = 'index.php'
 | 
				
			||||||
 | 
					ARTICLE_URL = '{slug}/'
 | 
				
			||||||
 | 
					ARTICLE_SAVE_AS = '{slug}/index.php'
 | 
				
			||||||
 | 
					PAGE_URL = '{slug}/'
 | 
				
			||||||
 | 
					PAGE_SAVE_AS = '{slug}/index.php'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PROD = True
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								themes/theme/static/darkmode-js.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								themes/theme/static/darkmode-js.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								themes/theme/static/instant-page.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								themes/theme/static/instant-page.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					/*! instant.page v5.1.0 - (C) 2019-2020 Alexandre Dieulot - https://instant.page/license */
 | 
				
			||||||
 | 
					let t,e;const n=new Set,o=document.createElement("link"),i=o.relList&&o.relList.supports&&o.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype,s="instantAllowQueryString"in document.body.dataset,a="instantAllowExternalLinks"in document.body.dataset,r="instantWhitelist"in document.body.dataset,c="instantMousedownShortcut"in document.body.dataset,d=1111;let l=65,u=!1,f=!1,m=!1;if("instantIntensity"in document.body.dataset){const t=document.body.dataset.instantIntensity;if("mousedown"==t.substr(0,"mousedown".length))u=!0,"mousedown-only"==t&&(f=!0);else if("viewport"==t.substr(0,"viewport".length))navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g"))||("viewport"==t?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(m=!0):"viewport-all"==t&&(m=!0));else{const e=parseInt(t);isNaN(e)||(l=e)}}if(i){const n={capture:!0,passive:!0};if(f||document.addEventListener("touchstart",function(t){e=performance.now();const n=t.target.closest("a");if(!h(n))return;v(n.href)},n),u?c||document.addEventListener("mousedown",function(t){const e=t.target.closest("a");if(!h(e))return;v(e.href)},n):document.addEventListener("mouseover",function(n){if(performance.now()-e<d)return;const o=n.target.closest("a");if(!h(o))return;o.addEventListener("mouseout",p,{passive:!0}),t=setTimeout(()=>{v(o.href),t=void 0},l)},n),c&&document.addEventListener("mousedown",function(t){if(performance.now()-e<d)return;const n=t.target.closest("a");if(t.which>1||t.metaKey||t.ctrlKey)return;if(!n)return;n.addEventListener("click",function(t){1337!=t.detail&&t.preventDefault()},{capture:!0,passive:!1,once:!0});const o=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});n.dispatchEvent(o)},n),m){let t;(t=window.requestIdleCallback?t=>{requestIdleCallback(t,{timeout:1500})}:t=>{t()})(()=>{const t=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){const n=e.target;t.unobserve(n),v(n.href)}})});document.querySelectorAll("a").forEach(e=>{h(e)&&t.observe(e)})})}}function p(e){e.relatedTarget&&e.target.closest("a")==e.relatedTarget.closest("a")||t&&(clearTimeout(t),t=void 0)}function h(t){if(t&&t.href&&(!r||"instant"in t.dataset)&&(a||t.origin==location.origin||"instant"in t.dataset)&&["http:","https:"].includes(t.protocol)&&("http:"!=t.protocol||"https:"!=location.protocol)&&(s||!t.search||"instant"in t.dataset)&&!(t.hash&&t.pathname+t.search==location.pathname+location.search||"noInstant"in t.dataset))return!0}function v(t){if(n.has(t))return;const e=document.createElement("link");e.rel="prefetch",e.href=t,document.head.appendChild(e),n.add(t)}
 | 
				
			||||||
@@ -1,5 +1,29 @@
 | 
				
			|||||||
{% extends "base.html" %}
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block title %}{{ SITENAME }} - {{ article.title|striptags  }}{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block head %}
 | 
				
			||||||
 | 
						{{ super() }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{% if article.date %}
 | 
				
			||||||
 | 
							<meta name="date" content="{{article.date}}" />
 | 
				
			||||||
 | 
						{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{% if article.summary %}
 | 
				
			||||||
 | 
							<meta name="description" content="{{article.summary|striptags}}" />
 | 
				
			||||||
 | 
							<meta name="summary" content="{{article.summary|striptags}}" />
 | 
				
			||||||
 | 
						{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{% if article.category %}
 | 
				
			||||||
 | 
							<meta name="category" content="{{article.category}}" />
 | 
				
			||||||
 | 
						{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{% for tag in article.tags %}
 | 
				
			||||||
 | 
							<meta name="tags" content="{{tag}}" />
 | 
				
			||||||
 | 
						{% endfor %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% block content %}
 | 
					{% block content %}
 | 
				
			||||||
<p><a href="/">← Return to Home</a></p>
 | 
					<p><a href="/">← Return to Home</a></p>
 | 
				
			||||||
<header>
 | 
					<header>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,19 +1,54 @@
 | 
				
			|||||||
 | 
					{% if PROD %}
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
						$themeClass = '';
 | 
				
			||||||
 | 
						if (!empty($_COOKIE['theme'])) {
 | 
				
			||||||
 | 
							$themeClass = $_COOKIE['theme'];
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html lang="en">
 | 
					<html lang="en">
 | 
				
			||||||
	<head>
 | 
						<head>
 | 
				
			||||||
 | 
							{% block head %}
 | 
				
			||||||
		<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
							<meta name="viewport" content="width=device-width, initial-scale=1">
 | 
				
			||||||
		<meta charset="utf-8"/>
 | 
							<meta charset="utf-8"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
 | 
				
			||||||
 | 
							<meta name="author" content="{{ AUTHOR }}" />
 | 
				
			||||||
 | 
							{% endblock head %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/AppSILB.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/AppSILBI.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/AppSILI.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/AppSILR.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/Lato-Bold.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/Lato-BoldItalic.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/Lato-Italic.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
							<link rel="preload" href="/theme/fonts/Lato-Regular.ttf" as="font" type="font/ttf" crossorigin="anonymous">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<style>
 | 
							<style>
 | 
				
			||||||
		{% include 'style.css' %}
 | 
							{% include 'style.css' %}
 | 
				
			||||||
 | 
							{% include 'fonts.css' %}
 | 
				
			||||||
		</style>
 | 
							</style>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<link rel="stylesheet" type="text/css" href="/theme/fonts/fonts.css" />
 | 
							<script defer src="/theme/instant-page.js"></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<title>Tanner Collin</title>
 | 
							<noscript>
 | 
				
			||||||
 | 
								<style type="text/css">
 | 
				
			||||||
 | 
									.theme-select {
 | 
				
			||||||
 | 
										display: none !important;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								</style>
 | 
				
			||||||
 | 
							</noscript>
 | 
				
			||||||
	</head>
 | 
						</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if PROD %}
 | 
				
			||||||
 | 
						<body class="<?php echo $themeClass; ?>">
 | 
				
			||||||
 | 
					{% else %}
 | 
				
			||||||
	<body>
 | 
						<body>
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
		<div class="container">
 | 
							<div class="container">
 | 
				
			||||||
			<div class="sidebar">
 | 
								<div class="sidebar">
 | 
				
			||||||
				<img src="/theme/me.jpg" class="me" alt="A picture of me smiling" />
 | 
									<img src="/theme/me.jpg" class="me" alt="A picture of me smiling" />
 | 
				
			||||||
@@ -22,9 +57,12 @@
 | 
				
			|||||||
						Tanner Collin
 | 
											Tanner Collin
 | 
				
			||||||
					</p>
 | 
										</p>
 | 
				
			||||||
					<p class="contact-icons">
 | 
										<p class="contact-icons">
 | 
				
			||||||
						<a href="mailto:site@tannercollin.com"><img src="/theme/mail.svg" /></a>
 | 
											<a href="mailto:site@tannercollin.com" rel="noreferrer noopener"><img alt="email icon" src="/theme/mail.svg" /></a>
 | 
				
			||||||
						<a href="https://t.me/tannercollin" target="_blank"><img src="/theme/telegram.svg" /></a>
 | 
											<a href="https://t.me/tannercollin" target="_blank" rel="noreferrer noopener"><img alt="telegram logo" src="/theme/telegram.svg" /></a>
 | 
				
			||||||
						<a href="https://github.com/tannercollin" target="_blank"><img src="/theme/github.svg" /></a>
 | 
											<a href="https://github.com/tannercollin" target="_blank" rel="noreferrer noopener"><img alt="github logo" src="/theme/github.svg" /></a>
 | 
				
			||||||
 | 
										</p>
 | 
				
			||||||
 | 
										<p class='theme-select'>
 | 
				
			||||||
 | 
											<a onClick="setTheme('light')">Light</a> / <a onClick="setTheme('dark')">Dark</a>
 | 
				
			||||||
					</p>
 | 
										</p>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
@@ -34,9 +72,12 @@
 | 
				
			|||||||
					<div class="info">
 | 
										<div class="info">
 | 
				
			||||||
						Tanner Collin
 | 
											Tanner Collin
 | 
				
			||||||
						<p class="contact-icons">
 | 
											<p class="contact-icons">
 | 
				
			||||||
							<a href="mailto:site@tannercollin.com"><img src="/theme/mail.svg" /></a>
 | 
												<a href="mailto:site@tannercollin.com" rel="noreferrer noopener"><img alt="email icon" src="/theme/mail.svg" /></a>
 | 
				
			||||||
							<a href="https://t.me/tannercollin" target="_blank"><img src="/theme/telegram.svg" /></a>
 | 
												<a href="https://t.me/tannercollin" target="_blank" rel="noreferrer noopener"><img alt="telegram logo" src="/theme/telegram.svg" /></a>
 | 
				
			||||||
							<a href="https://github.com/tannercollin" target="_blank"><img src="/theme/github.svg" /></a>
 | 
												<a href="https://github.com/tannercollin" target="_blank" rel="noreferrer noopener"><img alt="github logo" src="/theme/github.svg" /></a>
 | 
				
			||||||
 | 
											</p>
 | 
				
			||||||
 | 
											<p class='theme-select'>
 | 
				
			||||||
 | 
												<a onClick="setTheme('light')">Light</a> / <a onClick="setTheme('dark')">Dark</a>
 | 
				
			||||||
						</p>
 | 
											</p>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
@@ -45,17 +86,22 @@
 | 
				
			|||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<script src="/theme/darkmode-js.min.js"></script>
 | 
					 | 
				
			||||||
	<script>
 | 
						<script>
 | 
				
			||||||
			const options = {
 | 
							function setTheme(theme) {
 | 
				
			||||||
				bottom: '16px',
 | 
								console.log('Setting theme to', theme);
 | 
				
			||||||
				right: '16px',
 | 
					
 | 
				
			||||||
				buttonColorDark: '#666',
 | 
								if (theme == 'dark') {
 | 
				
			||||||
				buttonColorLight: '#aaa',
 | 
									document.body.classList.add('dark');
 | 
				
			||||||
				label: '🌙',
 | 
									document.body.classList.remove('light');
 | 
				
			||||||
			};
 | 
								} else if (theme == 'light') {
 | 
				
			||||||
			new Darkmode(options).showWidget();
 | 
									document.body.classList.add('light');
 | 
				
			||||||
 | 
									document.body.classList.remove('dark');
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								document.cookie = 'theme=' + theme + '; Max-Age=31536000; Path=/; SameSite=Lax';
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	</script>
 | 
						</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</body>
 | 
						</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,20 @@
 | 
				
			|||||||
@font-face {
 | 
					@font-face {
 | 
				
			||||||
	font-family: 'Apparatus SIL';
 | 
						font-family: 'Apparatus SIL';
 | 
				
			||||||
	src: url('AppSILR.ttf') format('truetype');
 | 
						src: url('/theme/fonts/AppSILR.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@font-face {
 | 
					@font-face {
 | 
				
			||||||
	font-family: 'Apparatus SIL';
 | 
						font-family: 'Apparatus SIL';
 | 
				
			||||||
	font-style: italic;
 | 
						font-style: italic;
 | 
				
			||||||
	src: url('AppSILI.ttf') format('truetype');
 | 
						src: url('/theme/fonts/AppSILI.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@font-face {
 | 
					@font-face {
 | 
				
			||||||
	font-family: 'Apparatus SIL';
 | 
						font-family: 'Apparatus SIL';
 | 
				
			||||||
	font-weight: bold;
 | 
						font-weight: bold;
 | 
				
			||||||
	src: url('AppSILB.ttf') format('truetype');
 | 
						src: url('/theme/fonts/AppSILB.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -22,7 +22,7 @@
 | 
				
			|||||||
	font-family: 'Apparatus SIL';
 | 
						font-family: 'Apparatus SIL';
 | 
				
			||||||
	font-weight: bold;
 | 
						font-weight: bold;
 | 
				
			||||||
	font-style: italic;
 | 
						font-style: italic;
 | 
				
			||||||
	src: url('AppSILBI.ttf') format('truetype');
 | 
						src: url('/theme/fonts/AppSILBI.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -30,7 +30,7 @@
 | 
				
			|||||||
	font-family: 'Lato';
 | 
						font-family: 'Lato';
 | 
				
			||||||
	font-style: italic;
 | 
						font-style: italic;
 | 
				
			||||||
	font-weight: 400;
 | 
						font-weight: 400;
 | 
				
			||||||
	src: local('Lato Italic'), local('Lato-Italic'), url('Lato-Italic.ttf') format('truetype');
 | 
						src: local('Lato Italic'), local('Lato-Italic'), url('/theme/fonts/Lato-Italic.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,7 +38,7 @@
 | 
				
			|||||||
	font-family: 'Lato';
 | 
						font-family: 'Lato';
 | 
				
			||||||
	font-style: italic;
 | 
						font-style: italic;
 | 
				
			||||||
	font-weight: 700;
 | 
						font-weight: 700;
 | 
				
			||||||
	src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('Lato-BoldItalic.ttf') format('truetype');
 | 
						src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('/theme/fonts/Lato-BoldItalic.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -46,7 +46,7 @@
 | 
				
			|||||||
	font-family: 'Lato';
 | 
						font-family: 'Lato';
 | 
				
			||||||
	font-style: normal;
 | 
						font-style: normal;
 | 
				
			||||||
	font-weight: 400;
 | 
						font-weight: 400;
 | 
				
			||||||
	src: local('Lato Regular'), local('Lato-Regular'), url('Lato-Regular.ttf') format('truetype');
 | 
						src: local('Lato Regular'), local('Lato-Regular'), url('/theme/fonts/Lato-Regular.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -54,6 +54,6 @@
 | 
				
			|||||||
	font-family: 'Lato';
 | 
						font-family: 'Lato';
 | 
				
			||||||
	font-style: normal;
 | 
						font-style: normal;
 | 
				
			||||||
	font-weight: 700;
 | 
						font-weight: 700;
 | 
				
			||||||
	src: local('Lato Bold'), local('Lato-Bold'), url('Lato-Bold.ttf') format('truetype');
 | 
						src: local('Lato Bold'), local('Lato-Bold'), url('/theme/fonts/Lato-Bold.ttf') format('truetype');
 | 
				
			||||||
	font-display: swap;
 | 
						font-display: swap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,24 +1,31 @@
 | 
				
			|||||||
{% extends "base.html" %}
 | 
					{% extends "base.html" %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block head %}
 | 
				
			||||||
 | 
						{{ super() }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<meta name="description" content="The personal website of Tanner Collin." />
 | 
				
			||||||
 | 
						<meta name="summary" content="The personal website of Tanner Collin." />
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% block content %}
 | 
					{% block content %}
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
	Hi, I'm Tanner! I do firmware design and web development.
 | 
						Hi, I'm Tanner! I do firmware and web development in Calgary.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>Contact Info</h2>
 | 
					<h2>Contact Info</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
	Email: <a href="mailto:site@tannercollin.com">site@tannercollin.com</a> <br />
 | 
						Email: <a href="mailto:site@tannercollin.com">site@tannercollin.com</a> <br />
 | 
				
			||||||
	Telegram: <a href="https://t.me/tannercollin" target="_blank">@tannercollin</a>
 | 
						Telegram: <a href="https://t.me/tannercollin" target="_blank" rel="noreferrer noopener">@tannercollin</a>
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>Resume</h2>
 | 
					<h2>Resume</h2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
	<li>Firmware Engineer at <a href="https://cabanablockchain.com" target="_blank">Cabana Blockchain</a>, 2018–</li>
 | 
						<li>Firmware Engineer at <a href="https://cabanablockchain.com" target="_blank" rel="noreferrer noopener">Cabana Blockchain</a>, 2018–</li>
 | 
				
			||||||
	<li>Lead Hardware Engineer at <a href="https://criticalcontrol.com/" target="_blank">Critical Control</a>, 2016–2018</li>
 | 
						<li>Lead Hardware Engineer at <a href="https://criticalcontrol.com/" target="_blank" rel="noreferrer noopener">Critical Control</a>, 2016–2018</li>
 | 
				
			||||||
	<li>Electrical Engineer at <a href="https://www.opener.aero/" target="_blank">Opener Aero</a>, 2016–2016</li>
 | 
						<li>Electrical Engineer at <a href="https://www.opener.aero/" target="_blank" rel="noreferrer noopener">Opener Aero</a>, 2016–2016</li>
 | 
				
			||||||
	<li>Electrical Engineer Intern at <a href="https://www.pason.com/" target="_blank">Pason Systems</a>, 2014–2015</li>
 | 
						<li>Electrical Engineer Intern at <a href="https://www.pason.com/" target="_blank" rel="noreferrer noopener">Pason Systems</a>, 2014–2015</li>
 | 
				
			||||||
	<li>BSc. Electrical Engineering from University of Calgary</li>
 | 
						<li>BSc. Electrical Engineering from University of Calgary</li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -30,10 +37,10 @@
 | 
				
			|||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
	You can find my code on <a href="https://github.com/tannercollin" target="_blank">GitHub</a>.
 | 
						You can find my code on <a href="https://github.com/tannercollin" target="_blank" rel="noreferrer noopener">GitHub</a>.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% for article in articles_page.object_list %}
 | 
					{% for article in articles_page.object_list if article.category.name == 'Projects' %}
 | 
				
			||||||
<h3><a href="{{ article.url }}">{{ article.title }}</a></h3>
 | 
					<h3><a href="{{ article.url }}">{{ article.title }}</a></h3>
 | 
				
			||||||
<div class="summary">
 | 
					<div class="summary">
 | 
				
			||||||
	{{ article.summary }}
 | 
						{{ article.summary }}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,20 +5,15 @@ html {
 | 
				
			|||||||
body {
 | 
					body {
 | 
				
			||||||
	text-rendering: optimizeLegibility;
 | 
						text-rendering: optimizeLegibility;
 | 
				
			||||||
	font: 1.2rem/1.0 Lato,sans-serif;
 | 
						font: 1.2rem/1.0 Lato,sans-serif;
 | 
				
			||||||
	background-color: rgb(245, 245, 245);
 | 
					 | 
				
			||||||
	background-color: white;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
a {
 | 
					a {
 | 
				
			||||||
	color: #000000;
 | 
					 | 
				
			||||||
	text-decoration: none;
 | 
						text-decoration: none;
 | 
				
			||||||
	outline: none;
 | 
						outline: none;
 | 
				
			||||||
	border-bottom: 1px solid #000;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pre {
 | 
					pre {
 | 
				
			||||||
	font-size: 1rem;
 | 
						font-size: 1rem;
 | 
				
			||||||
	background-color: #eee;
 | 
					 | 
				
			||||||
	padding: 1rem;
 | 
						padding: 1rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,6 +22,12 @@ pre {
 | 
				
			|||||||
	margin: 2rem auto 0 auto;
 | 
						margin: 2rem auto 0 auto;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.theme-select {
 | 
				
			||||||
 | 
						font-size: 1rem;
 | 
				
			||||||
 | 
						margin-bottom: 0;
 | 
				
			||||||
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.sidebar {
 | 
					.sidebar {
 | 
				
			||||||
	margin-top: 2px;
 | 
						margin-top: 2px;
 | 
				
			||||||
	float: left;
 | 
						float: left;
 | 
				
			||||||
@@ -63,7 +64,7 @@ pre {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.topbar .me {
 | 
					.topbar .me {
 | 
				
			||||||
	float: left;
 | 
						float: left;
 | 
				
			||||||
	height: 6rem;
 | 
						height: 6.5rem;
 | 
				
			||||||
	width: auto;
 | 
						width: auto;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -74,7 +75,6 @@ pre {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.topbar .contact-icons {
 | 
					.topbar .contact-icons {
 | 
				
			||||||
	margin-top: 1.5rem;
 | 
					 | 
				
			||||||
	margin-left: 0.25rem;
 | 
						margin-left: 0.25rem;
 | 
				
			||||||
	margin-bottom: 0;
 | 
						margin-bottom: 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -89,11 +89,15 @@ pre {
 | 
				
			|||||||
	margin-right: 1rem;
 | 
						margin-right: 1rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.topbar .theme-select {
 | 
				
			||||||
 | 
						margin-top: 0.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.toc {
 | 
					.toc {
 | 
				
			||||||
	float: right;
 | 
						float: right;
 | 
				
			||||||
	background-color: #eee;
 | 
					 | 
				
			||||||
	padding: 0.75rem;
 | 
						padding: 0.75rem;
 | 
				
			||||||
	padding-top: 0;
 | 
						padding-top: 0;
 | 
				
			||||||
 | 
						margin-left: 0.75rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.toc ul {
 | 
					.toc ul {
 | 
				
			||||||
@@ -106,7 +110,6 @@ pre {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.content p.metadata {
 | 
					.content p.metadata {
 | 
				
			||||||
	color: #555;
 | 
					 | 
				
			||||||
	font: 1rem/1.0 Apparatus SIL,serif;
 | 
						font: 1rem/1.0 Apparatus SIL,serif;
 | 
				
			||||||
	font-style: italic;
 | 
						font-style: italic;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -163,18 +166,118 @@ pre {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.darkmode-toggle {
 | 
					
 | 
				
			||||||
	z-index: 500;
 | 
					
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
						background-color: #fff;
 | 
				
			||||||
 | 
						color: #000;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.darkmode--activated .content img {
 | 
					a {
 | 
				
			||||||
 | 
						color: #000;
 | 
				
			||||||
 | 
						border-bottom: 1px solid #000;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pre {
 | 
				
			||||||
 | 
						background-color: #eee;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.toc {
 | 
				
			||||||
 | 
						background-color: #eee;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.content p.metadata {
 | 
				
			||||||
 | 
						color: #555;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body.dark {
 | 
				
			||||||
 | 
						background-color: #000;
 | 
				
			||||||
 | 
						color: #fff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body.dark a {
 | 
				
			||||||
 | 
						color: #fff;
 | 
				
			||||||
 | 
						border-bottom: 1px solid #fff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body.dark pre {
 | 
				
			||||||
 | 
						background-color: #222;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body.dark .toc {
 | 
				
			||||||
 | 
						background-color: #222;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body.dark .content p.metadata {
 | 
				
			||||||
 | 
						color: #aaa;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body.dark .content img {
 | 
				
			||||||
	filter: brightness(75%);
 | 
						filter: brightness(75%);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.darkmode--activated video {
 | 
					body.dark .contact-icons img {
 | 
				
			||||||
	mix-blend-mode: difference;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.darkmode--activated .contact-icons img {
 | 
					 | 
				
			||||||
	filter: invert(1);
 | 
						filter: invert(1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@media (prefers-color-scheme: dark) {
 | 
				
			||||||
 | 
						body.light {
 | 
				
			||||||
 | 
							background-color: #fff;
 | 
				
			||||||
 | 
							color: #000;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body.light a {
 | 
				
			||||||
 | 
							color: #000;
 | 
				
			||||||
 | 
							border-bottom: 1px solid #000;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body.light pre {
 | 
				
			||||||
 | 
							background-color: #eee;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body.light .toc {
 | 
				
			||||||
 | 
							background-color: #eee;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body.light .content p.metadata {
 | 
				
			||||||
 | 
							color: #555;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body.light .contact-icons img {
 | 
				
			||||||
 | 
							filter: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body.light .content img {
 | 
				
			||||||
 | 
							filter: none;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						body {
 | 
				
			||||||
 | 
							background-color: #000;
 | 
				
			||||||
 | 
							color: #fff;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						a {
 | 
				
			||||||
 | 
							color: #fff;
 | 
				
			||||||
 | 
							border-bottom: 1px solid #fff;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pre {
 | 
				
			||||||
 | 
							background-color: #222;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.toc {
 | 
				
			||||||
 | 
							background-color: #222;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.content p.metadata {
 | 
				
			||||||
 | 
							color: #aaa;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.content img {
 | 
				
			||||||
 | 
							filter: brightness(75%);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.contact-icons img {
 | 
				
			||||||
 | 
							filter: invert(1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user