First pass
This commit is contained in:
parent
61cf2835e6
commit
ea4e51f23e
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[submodule "themes/ananke"]
|
||||||
|
path = themes/ananke
|
||||||
|
url = https://github.com/theNewDynamic/gohugo-theme-ananke.git
|
||||||
|
[submodule "themes/PaperModX"]
|
||||||
|
path = themes/PaperModX
|
||||||
|
url = https://github.com/reorx/hugo-PaperModX.git
|
0
.hugo_build.lock
Normal file
0
.hugo_build.lock
Normal file
5
archetypes/default.md
Normal file
5
archetypes/default.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
+++
|
||||||
|
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||||
|
date = {{ .Date }}
|
||||||
|
draft = true
|
||||||
|
+++
|
54
config.yml
Normal file
54
config.yml
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
baseURL: "https://hibbian.org/"
|
||||||
|
languageCode: en-GB
|
||||||
|
theme: PaperModX
|
||||||
|
enableRobotsTXT: true
|
||||||
|
|
||||||
|
params:
|
||||||
|
author: Hibby
|
||||||
|
title: Hibbian Linux
|
||||||
|
description: Debian, tailored for hams
|
||||||
|
defaultTheme: auto
|
||||||
|
homeInfoParams:
|
||||||
|
Title: "Hibbian"
|
||||||
|
Content: |
|
||||||
|
Linux, tailored to hams.
|
||||||
|
|
||||||
|
- Built on Strong Foundations
|
||||||
|
- Shipping up-to-date software
|
||||||
|
|
||||||
|
To get started, please head to the [Guide](https://guide.foxk.it/repo).
|
||||||
|
|
||||||
|
|
||||||
|
outputFormats:
|
||||||
|
RSS:
|
||||||
|
mediatype: "application/rss"
|
||||||
|
baseName: "feed"
|
||||||
|
|
||||||
|
menu:
|
||||||
|
main:
|
||||||
|
- name: Home
|
||||||
|
url: /
|
||||||
|
weight: 1
|
||||||
|
- name: Guide
|
||||||
|
url: "https://guide.hibbian.org"
|
||||||
|
weight: 2
|
||||||
|
- name: Git
|
||||||
|
url: "https://git.hibbian.org"
|
||||||
|
weight: 3
|
||||||
|
- name: Posts
|
||||||
|
url: /posts/
|
||||||
|
weight: 4
|
||||||
|
|
||||||
|
languages:
|
||||||
|
en:
|
||||||
|
languageName: "English"
|
||||||
|
|
||||||
|
markup:
|
||||||
|
goldmark:
|
||||||
|
renderer:
|
||||||
|
unsafe: true
|
||||||
|
highlight:
|
||||||
|
style: dracula
|
||||||
|
lineNos: false
|
||||||
|
noClasses: false
|
||||||
|
|
87
content/posts/hibbian-announce.md
Normal file
87
content/posts/hibbian-announce.md
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
+++
|
||||||
|
title = 'Introducing Hibbian Linux'
|
||||||
|
date = 2024-08-26T23:34:26+01:00
|
||||||
|
draft = false
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Introduction
|
||||||
|
|
||||||
|
Finally, I've managed to pull together enough disparate components for the
|
||||||
|
project to come together!
|
||||||
|
|
||||||
|
Please welcome:
|
||||||
|
|
||||||
|
**Hibbian Linux**, a distribution aimed at ham radio operators.
|
||||||
|
|
||||||
|
# Another one?
|
||||||
|
|
||||||
|
I know - there's plenty of options for radio operators to choose from.
|
||||||
|
What makes this one different?
|
||||||
|
|
||||||
|
## Strong Foundations & Long Term Support
|
||||||
|
|
||||||
|
The system is built from the ground up on Debian Linux's Stable release. This
|
||||||
|
provides a strong foundation backed with years of security and support.
|
||||||
|
|
||||||
|
## Modern Software & Fast Updates
|
||||||
|
|
||||||
|
Debian's strength is in its stability, but for some of the software we want to
|
||||||
|
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
|
||||||
|
Hibbian offers the latest packages from our community to keep on top of shifting
|
||||||
|
standards and best practises.
|
||||||
|
|
||||||
|
Some packages I maintain aren't in Debian, but still deserve to be distributed
|
||||||
|
easily to users. You'll find them here!
|
||||||
|
|
||||||
|
## Deep Experience & Active Operation
|
||||||
|
|
||||||
|
Hibbian is the work of me - [hibby](https://foxk.it). I'm a core member of the
|
||||||
|
[Debian Hamradio](https://debian.org) team, maintaining software to be
|
||||||
|
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I've
|
||||||
|
been running a repository of software for the [UK packet radio
|
||||||
|
network](https://ukpacketradio.network/), and the lessons, sore points and work
|
||||||
|
from this has naturally expanded into Hibbian.
|
||||||
|
|
||||||
|
I run the software I maintain, I run software maintained by others and I try to
|
||||||
|
make computers do interesting things over radio. In other words, I eat my own
|
||||||
|
dog food.
|
||||||
|
|
||||||
|
Where possible, contributions and modifications will go back to Debian and
|
||||||
|
software authors.
|
||||||
|
|
||||||
|
## Stand-Alone Principles
|
||||||
|
|
||||||
|
I don't believe in trusting other companies to host the code, data or the packages on
|
||||||
|
my behalf - everything is owned and run as 'Hibbian'.
|
||||||
|
|
||||||
|
- You will find the code on our own [git
|
||||||
|
forge](https://git.hibbian.org/Hibbian/), where bug reports and issues are
|
||||||
|
welcomed.
|
||||||
|
- You'll find email communication hosted on Hibbian infrastructure
|
||||||
|
- You won't find Hibbian on Discord - try JS8 or Packet.
|
||||||
|
|
||||||
|
When all else fails, somehow I'll still be able to continue and communicate.
|
||||||
|
|
||||||
|
# Two Ways to Install
|
||||||
|
|
||||||
|
There are two ways to run the Hibbian collection of software - as a repository
|
||||||
|
for your existing OS, or as a complete OS itself.
|
||||||
|
|
||||||
|
## Repo
|
||||||
|
|
||||||
|
Can't run the whole thing or don't want to commit? Don't worry - I ship software
|
||||||
|
in the 'repo' for Debian & Raspberry Pi. You can pick and choose the latest
|
||||||
|
packages to be delivered straight to your computer and not have to reinstall
|
||||||
|
anything.
|
||||||
|
|
||||||
|
* Bullseye - 11 - Oldstable
|
||||||
|
* Bookworm - 12 - Stable
|
||||||
|
* Trixie - 13 Testing
|
||||||
|
|
||||||
|
To learn more, see the installation pages on the
|
||||||
|
[guide](https://guide.hibbian.org/repo/).
|
||||||
|
|
||||||
|
## Full Distro
|
||||||
|
|
||||||
|
For those who want a more convenient option, the full Hibbian distribution based
|
||||||
|
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.
|
281
public/404.html
Normal file
281
public/404.html
Normal file
|
@ -0,0 +1,281 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head><meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<title>404 Page not found | </title>
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<meta name="description" content="Debian, tailored for hams">
|
||||||
|
<meta name="author" content="Hibby">
|
||||||
|
<link rel="canonical" href="https://hibbian.org/404.html">
|
||||||
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity="sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel="preload stylesheet" as="style">
|
||||||
|
<link rel="icon" href="https://hibbian.org/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="https://hibbian.org/apple-touch-icon.png">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://hibbian.org/404.html">
|
||||||
|
|
||||||
|
<meta name="twitter:title" content="404 Page not found | " />
|
||||||
|
<meta name="twitter:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:title" content="404 Page not found | " />
|
||||||
|
<meta property="og:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://hibbian.org/404.html" />
|
||||||
|
<meta property="og:site_name" content="Hibbian Linux" />
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
#theme-toggle,
|
||||||
|
.top-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary-bg: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-track {
|
||||||
|
background: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-thumb {
|
||||||
|
border-color: var(--theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="list-page type-page kind-404 layout-" id="top"><script data-no-instant>
|
||||||
|
function switchTheme(theme) {
|
||||||
|
switch (theme) {
|
||||||
|
case 'light':
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
break;
|
||||||
|
case 'dark':
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDarkTheme() {
|
||||||
|
return document.body.className.includes("dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPrefTheme() {
|
||||||
|
return localStorage.getItem("pref-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPrefTheme(theme) {
|
||||||
|
switchTheme(theme)
|
||||||
|
localStorage.setItem("pref-theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleThemeCallbacks = {}
|
||||||
|
toggleThemeCallbacks['main'] = (isDark) => {
|
||||||
|
|
||||||
|
if (isDark) {
|
||||||
|
setPrefTheme('light');
|
||||||
|
} else {
|
||||||
|
setPrefTheme('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener('toggle-theme', function() {
|
||||||
|
|
||||||
|
const isDark = isDarkTheme()
|
||||||
|
for (const key in toggleThemeCallbacks) {
|
||||||
|
toggleThemeCallbacks[key](isDark)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function toggleThemeListener() {
|
||||||
|
|
||||||
|
window.dispatchEvent(new CustomEvent('toggle-theme'));
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const defaultTheme = 'auto';
|
||||||
|
const prefTheme = getPrefTheme();
|
||||||
|
const theme = prefTheme ? prefTheme : defaultTheme;
|
||||||
|
|
||||||
|
switchTheme(theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav">
|
||||||
|
<div class="logo">
|
||||||
|
<span class="logo-switches">
|
||||||
|
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||||
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||||
|
</svg>
|
||||||
|
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<circle cx="12" cy="12" r="5"></circle>
|
||||||
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||||
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||||
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||||
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||||
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||||
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||||
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||||
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<ul id="menu">
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/" title="Home" class="active"
|
||||||
|
>Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://guide.hibbian.org/" title="Guide"
|
||||||
|
>Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.hibbian.org/" title="Git"
|
||||||
|
>Git
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/posts/" title="Posts"
|
||||||
|
>Posts
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="main">
|
||||||
|
<div class="not-found">404</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<span>© 2024 <a href="https://hibbian.org/"></a></span><span style="display: inline-block; margin-left: 1em;">
|
||||||
|
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
|
||||||
|
</span>
|
||||||
|
<span style="display: inline-block; margin-left: 1em;">
|
||||||
|
Powered by
|
||||||
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
|
<a href="https://github.com/reorx/hugo-PaperModX/" rel="noopener" target="_blank">PaperModX</a>
|
||||||
|
</span>
|
||||||
|
</footer>
|
||||||
|
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||||
|
<path d="M12 6H0l6-6z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
const disableThemeToggle = '' == '1';
|
||||||
|
if (disableThemeToggle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let button = document.getElementById("theme-toggle")
|
||||||
|
|
||||||
|
button.removeEventListener('click', toggleThemeListener)
|
||||||
|
|
||||||
|
button.addEventListener('click', toggleThemeListener)
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
let menu = document.getElementById('menu')
|
||||||
|
if (menu) {
|
||||||
|
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||||
|
menu.onscroll = function () {
|
||||||
|
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const disableSmoothScroll = '' == '1';
|
||||||
|
const enableInstantClick = '' == '1';
|
||||||
|
|
||||||
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = this.getAttribute("href").substr(1);
|
||||||
|
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
if (id === "top") {
|
||||||
|
history.replaceState(null, null, " ");
|
||||||
|
} else {
|
||||||
|
history.pushState(null, null, `#${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var mybutton = document.getElementById("top-link");
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||||
|
mybutton.style.visibility = "visible";
|
||||||
|
mybutton.style.opacity = "1";
|
||||||
|
} else {
|
||||||
|
mybutton.style.visibility = "hidden";
|
||||||
|
mybutton.style.opacity = "0";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
if (window.scrollListeners) {
|
||||||
|
|
||||||
|
for (const listener of scrollListeners) {
|
||||||
|
window.removeEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.scrollListeners = []
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/medium-zoom.min.js" data-no-instant
|
||||||
|
></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
13
public/ananke/css/main.css.map
Normal file
13
public/ananke/css/main.css.map
Normal file
File diff suppressed because one or more lines are too long
1
public/ananke/css/main.min.css
vendored
Normal file
1
public/ananke/css/main.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
10
public/categories/feed.xml
Normal file
10
public/categories/feed.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>Categories on </title>
|
||||||
|
<link>https://hibbian.org/categories/</link>
|
||||||
|
<description>Recent content in Categories on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en</language><atom:link href="https://hibbian.org/categories/feed.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
287
public/categories/index.html
Normal file
287
public/categories/index.html
Normal file
|
@ -0,0 +1,287 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head><meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<title>Categories | </title>
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<meta name="description" content="Debian, tailored for hams">
|
||||||
|
<meta name="author" content="Hibby">
|
||||||
|
<link rel="canonical" href="https://hibbian.org/categories/">
|
||||||
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity="sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel="preload stylesheet" as="style">
|
||||||
|
<link rel="icon" href="https://hibbian.org/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="https://hibbian.org/apple-touch-icon.png">
|
||||||
|
<link rel="alternate" type="application/rss+xml" href="https://hibbian.org/categories/feed.xml">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://hibbian.org/categories/">
|
||||||
|
|
||||||
|
<meta name="twitter:title" content="Categories | " />
|
||||||
|
<meta name="twitter:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:title" content="Categories | " />
|
||||||
|
<meta property="og:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://hibbian.org/categories/" />
|
||||||
|
<meta property="og:site_name" content="Hibbian Linux" />
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
#theme-toggle,
|
||||||
|
.top-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary-bg: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-track {
|
||||||
|
background: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-thumb {
|
||||||
|
border-color: var(--theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="list-page type-categories kind-taxonomy layout-" id="top"><script data-no-instant>
|
||||||
|
function switchTheme(theme) {
|
||||||
|
switch (theme) {
|
||||||
|
case 'light':
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
break;
|
||||||
|
case 'dark':
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDarkTheme() {
|
||||||
|
return document.body.className.includes("dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPrefTheme() {
|
||||||
|
return localStorage.getItem("pref-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPrefTheme(theme) {
|
||||||
|
switchTheme(theme)
|
||||||
|
localStorage.setItem("pref-theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleThemeCallbacks = {}
|
||||||
|
toggleThemeCallbacks['main'] = (isDark) => {
|
||||||
|
|
||||||
|
if (isDark) {
|
||||||
|
setPrefTheme('light');
|
||||||
|
} else {
|
||||||
|
setPrefTheme('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener('toggle-theme', function() {
|
||||||
|
|
||||||
|
const isDark = isDarkTheme()
|
||||||
|
for (const key in toggleThemeCallbacks) {
|
||||||
|
toggleThemeCallbacks[key](isDark)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function toggleThemeListener() {
|
||||||
|
|
||||||
|
window.dispatchEvent(new CustomEvent('toggle-theme'));
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const defaultTheme = 'auto';
|
||||||
|
const prefTheme = getPrefTheme();
|
||||||
|
const theme = prefTheme ? prefTheme : defaultTheme;
|
||||||
|
|
||||||
|
switchTheme(theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav">
|
||||||
|
<div class="logo">
|
||||||
|
<span class="logo-switches">
|
||||||
|
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||||
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||||
|
</svg>
|
||||||
|
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<circle cx="12" cy="12" r="5"></circle>
|
||||||
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||||
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||||
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||||
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||||
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||||
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||||
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||||
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<ul id="menu">
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/" title="Home" class="active"
|
||||||
|
>Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://guide.hibbian.org/" title="Guide"
|
||||||
|
>Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.hibbian.org/" title="Git"
|
||||||
|
>Git
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/posts/" title="Posts"
|
||||||
|
>Posts
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="main">
|
||||||
|
<header class="page-header">
|
||||||
|
<h1>Categories</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<ul class="terms-tags">
|
||||||
|
</ul>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<span>© 2024 <a href="https://hibbian.org/"></a></span><span style="display: inline-block; margin-left: 1em;">
|
||||||
|
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
|
||||||
|
</span>
|
||||||
|
<span style="display: inline-block; margin-left: 1em;">
|
||||||
|
Powered by
|
||||||
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
|
<a href="https://github.com/reorx/hugo-PaperModX/" rel="noopener" target="_blank">PaperModX</a>
|
||||||
|
</span>
|
||||||
|
</footer>
|
||||||
|
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||||
|
<path d="M12 6H0l6-6z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
const disableThemeToggle = '' == '1';
|
||||||
|
if (disableThemeToggle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let button = document.getElementById("theme-toggle")
|
||||||
|
|
||||||
|
button.removeEventListener('click', toggleThemeListener)
|
||||||
|
|
||||||
|
button.addEventListener('click', toggleThemeListener)
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
let menu = document.getElementById('menu')
|
||||||
|
if (menu) {
|
||||||
|
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||||
|
menu.onscroll = function () {
|
||||||
|
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const disableSmoothScroll = '' == '1';
|
||||||
|
const enableInstantClick = '' == '1';
|
||||||
|
|
||||||
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = this.getAttribute("href").substr(1);
|
||||||
|
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
if (id === "top") {
|
||||||
|
history.replaceState(null, null, " ");
|
||||||
|
} else {
|
||||||
|
history.pushState(null, null, `#${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var mybutton = document.getElementById("top-link");
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||||
|
mybutton.style.visibility = "visible";
|
||||||
|
mybutton.style.opacity = "1";
|
||||||
|
} else {
|
||||||
|
mybutton.style.visibility = "hidden";
|
||||||
|
mybutton.style.opacity = "0";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
if (window.scrollListeners) {
|
||||||
|
|
||||||
|
for (const listener of scrollListeners) {
|
||||||
|
window.removeEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.scrollListeners = []
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/medium-zoom.min.js" data-no-instant
|
||||||
|
></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
10
public/categories/index.xml
Normal file
10
public/categories/index.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>Categories on </title>
|
||||||
|
<link>http://localhost:1313/categories/</link>
|
||||||
|
<description>Recent content in Categories on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-GB</language><atom:link href="http://localhost:1313/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
84
public/feed.xml
Normal file
84
public/feed.xml
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title></title>
|
||||||
|
<link>https://hibbian.org/</link>
|
||||||
|
<description>Recent content on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en</language>
|
||||||
|
<lastBuildDate>Mon, 26 Aug 2024 23:34:26 +0100</lastBuildDate><atom:link href="https://hibbian.org/feed.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Introducing Hibbian Linux</title>
|
||||||
|
<link>https://hibbian.org/posts/hibbian-announce/</link>
|
||||||
|
<pubDate>Mon, 26 Aug 2024 23:34:26 +0100</pubDate>
|
||||||
|
|
||||||
|
<guid>https://hibbian.org/posts/hibbian-announce/</guid>
|
||||||
|
<description>Introduction Finally, I&rsquo;ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there&rsquo;s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations &amp; Long Term Support The system is built from the ground up on Debian Linux&rsquo;s Stable release. This provides a strong foundation backed with years of security and support.</description>
|
||||||
|
<content:encoded><![CDATA[<h1 id="introduction">Introduction</h1>
|
||||||
|
<p>Finally, I’ve managed to pull together enough disparate components for the
|
||||||
|
project to come together!</p>
|
||||||
|
<p>Please welcome:</p>
|
||||||
|
<p><strong>Hibbian Linux</strong>, a distribution aimed at ham radio operators.</p>
|
||||||
|
<h1 id="another-one">Another one?</h1>
|
||||||
|
<p>I know - there’s plenty of options for radio operators to choose from.
|
||||||
|
What makes this one different?</p>
|
||||||
|
<h2 id="strong-foundations--long-term-support">Strong Foundations & Long Term Support</h2>
|
||||||
|
<p>The system is built from the ground up on Debian Linux’s Stable release. This
|
||||||
|
provides a strong foundation backed with years of security and support.</p>
|
||||||
|
<h2 id="modern-software--fast-updates">Modern Software & Fast Updates</h2>
|
||||||
|
<p>Debian’s strength is in its stability, but for some of the software we want to
|
||||||
|
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
|
||||||
|
Hibbian offers the latest packages from our community to keep on top of shifting
|
||||||
|
standards and best practises.</p>
|
||||||
|
<p>Some packages I maintain aren’t in Debian, but still deserve to be distributed
|
||||||
|
easily to users. You’ll find them here!</p>
|
||||||
|
<h2 id="deep-experience--active-operation">Deep Experience & Active Operation</h2>
|
||||||
|
<p>Hibbian is the work of me - <a href="https://foxk.it">hibby</a>. I’m a core member of the
|
||||||
|
<a href="https://debian.org">Debian Hamradio</a> team, maintaining software to be
|
||||||
|
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I’ve
|
||||||
|
been running a repository of software for the <a href="https://ukpacketradio.network/">UK packet radio
|
||||||
|
network</a>, and the lessons, sore points and work
|
||||||
|
from this has naturally expanded into Hibbian.</p>
|
||||||
|
<p>I run the software I maintain, I run software maintained by others and I try to
|
||||||
|
make computers do interesting things over radio. In other words, I eat my own
|
||||||
|
dog food.</p>
|
||||||
|
<p>Where possible, contributions and modifications will go back to Debian and
|
||||||
|
software authors.</p>
|
||||||
|
<h2 id="stand-alone-principles">Stand-Alone Principles</h2>
|
||||||
|
<p>I don’t believe in trusting other companies to host the code, data or the packages on
|
||||||
|
my behalf - everything is owned and run as ‘Hibbian’.</p>
|
||||||
|
<ul>
|
||||||
|
<li>You will find the code on our own <a href="https://git.hibbian.org/Hibbian/">git
|
||||||
|
forge</a>, where bug reports and issues are
|
||||||
|
welcomed.</li>
|
||||||
|
<li>You’ll find email communication hosted on Hibbian infrastructure</li>
|
||||||
|
<li>You won’t find Hibbian on Discord - try JS8 or Packet.</li>
|
||||||
|
</ul>
|
||||||
|
<p>When all else fails, somehow I’ll still be able to continue and communicate.</p>
|
||||||
|
<h1 id="two-ways-to-install">Two Ways to Install</h1>
|
||||||
|
<p>There are two ways to run the Hibbian collection of software - as a repository
|
||||||
|
for your existing OS, or as a complete OS itself.</p>
|
||||||
|
<h2 id="repo">Repo</h2>
|
||||||
|
<p>Can’t run the whole thing or don’t want to commit? Don’t worry - I ship software
|
||||||
|
in the ‘repo’ for Debian & Raspberry Pi. You can pick and choose the latest
|
||||||
|
packages to be delivered straight to your computer and not have to reinstall
|
||||||
|
anything.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Bullseye - 11 - Oldstable</li>
|
||||||
|
<li>Bookworm - 12 - Stable</li>
|
||||||
|
<li>Trixie - 13 Testing</li>
|
||||||
|
</ul>
|
||||||
|
<p>To learn more, see the installation pages on the
|
||||||
|
<a href="https://guide.hibbian.org/repo/">guide</a>.</p>
|
||||||
|
<h2 id="full-distro">Full Distro</h2>
|
||||||
|
<p>For those who want a more convenient option, the full Hibbian distribution based
|
||||||
|
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.</p>
|
||||||
|
]]></content:encoded>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
BIN
public/images/gohugo-default-sample-hero-image.jpg
Normal file
BIN
public/images/gohugo-default-sample-hero-image.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 276 KiB |
337
public/index.html
Normal file
337
public/index.html
Normal file
|
@ -0,0 +1,337 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta name="generator" content="Hugo 0.128.2"><meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<title></title>
|
||||||
|
|
||||||
|
<meta name="description" content="Debian, tailored for hams">
|
||||||
|
<meta name="author" content="Hibby">
|
||||||
|
<link rel="canonical" href="https://hibbian.org/">
|
||||||
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity="sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel="preload stylesheet" as="style">
|
||||||
|
<link rel="icon" href="https://hibbian.org/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="https://hibbian.org/apple-touch-icon.png">
|
||||||
|
<link rel="alternate" type="application/rss+xml" href="https://hibbian.org/feed.xml">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://hibbian.org/">
|
||||||
|
|
||||||
|
<meta name="twitter:title" content="" />
|
||||||
|
<meta name="twitter:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:title" content="" />
|
||||||
|
<meta property="og:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://hibbian.org/" />
|
||||||
|
<meta property="og:site_name" content="Hibbian Linux" />
|
||||||
|
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "Organization",
|
||||||
|
"name": "",
|
||||||
|
"url": "https://hibbian.org/",
|
||||||
|
"description": "Debian, tailored for hams",
|
||||||
|
"thumbnailUrl": "https://hibbian.org/favicon.ico",
|
||||||
|
"sameAs": [
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
#theme-toggle,
|
||||||
|
.top-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary-bg: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-track {
|
||||||
|
background: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-thumb {
|
||||||
|
border-color: var(--theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="list-page type-page kind-home layout-" id="top"><script data-no-instant>
|
||||||
|
function switchTheme(theme) {
|
||||||
|
switch (theme) {
|
||||||
|
case 'light':
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
break;
|
||||||
|
case 'dark':
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDarkTheme() {
|
||||||
|
return document.body.className.includes("dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPrefTheme() {
|
||||||
|
return localStorage.getItem("pref-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPrefTheme(theme) {
|
||||||
|
switchTheme(theme)
|
||||||
|
localStorage.setItem("pref-theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleThemeCallbacks = {}
|
||||||
|
toggleThemeCallbacks['main'] = (isDark) => {
|
||||||
|
|
||||||
|
if (isDark) {
|
||||||
|
setPrefTheme('light');
|
||||||
|
} else {
|
||||||
|
setPrefTheme('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener('toggle-theme', function() {
|
||||||
|
|
||||||
|
const isDark = isDarkTheme()
|
||||||
|
for (const key in toggleThemeCallbacks) {
|
||||||
|
toggleThemeCallbacks[key](isDark)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function toggleThemeListener() {
|
||||||
|
|
||||||
|
window.dispatchEvent(new CustomEvent('toggle-theme'));
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const defaultTheme = 'auto';
|
||||||
|
const prefTheme = getPrefTheme();
|
||||||
|
const theme = prefTheme ? prefTheme : defaultTheme;
|
||||||
|
|
||||||
|
switchTheme(theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav">
|
||||||
|
<div class="logo">
|
||||||
|
<span class="logo-switches">
|
||||||
|
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||||
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||||
|
</svg>
|
||||||
|
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<circle cx="12" cy="12" r="5"></circle>
|
||||||
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||||
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||||
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||||
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||||
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||||
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||||
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||||
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<ul id="menu">
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/" title="Home" class="active"
|
||||||
|
>Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://guide.hibbian.org/" title="Guide"
|
||||||
|
>Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.hibbian.org/" title="Git"
|
||||||
|
>Git
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/posts/" title="Posts"
|
||||||
|
>Posts
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="main">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<article class="first-entry home-info">
|
||||||
|
<header class="entry-header">
|
||||||
|
<h1>Hibbian</h1>
|
||||||
|
</header>
|
||||||
|
<section class="entry-content"><p>Linux, tailored to hams.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Built on Strong Foundations</li>
|
||||||
|
<li>Shipping up-to-date software</li>
|
||||||
|
</ul>
|
||||||
|
<p>To get started, please head to the <a href="https://guide.foxk.it/repo">Guide</a>.</p>
|
||||||
|
</section>
|
||||||
|
<footer class="entry-footer"><div class="social-icons">
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
<article class="post-entry">
|
||||||
|
<header class="entry-header">
|
||||||
|
<h2>Introducing Hibbian Linux
|
||||||
|
</h2>
|
||||||
|
</header>
|
||||||
|
<section class="entry-content">
|
||||||
|
|
||||||
|
<p>Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support....</p>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<footer class="entry-footer"><span class="meta-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar" style="user-select: text;"><rect x="3" y="4" width="18" height="18" rx="2" ry="2" style="user-select: text;"></rect><line x1="16" y1="2" x2="16" y2="6" style="user-select: text;"></line><line x1="8" y1="2" x2="8" y2="6" style="user-select: text;"></line><line x1="3" y1="10" x2="21" y2="10" style="user-select: text;"></line></svg>
|
||||||
|
<span>August 26, 2024</span></span>
|
||||||
|
</footer>
|
||||||
|
<a class="entry-link" aria-label="post link to Introducing Hibbian Linux" href="https://hibbian.org/posts/hibbian-announce/"></a>
|
||||||
|
</article>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<span>© 2024 <a href="https://hibbian.org/"></a></span><span style="display: inline-block; margin-left: 1em;">
|
||||||
|
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
|
||||||
|
</span>
|
||||||
|
<span style="display: inline-block; margin-left: 1em;">
|
||||||
|
Powered by
|
||||||
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
|
<a href="https://github.com/reorx/hugo-PaperModX/" rel="noopener" target="_blank">PaperModX</a>
|
||||||
|
</span>
|
||||||
|
</footer>
|
||||||
|
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||||
|
<path d="M12 6H0l6-6z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
const disableThemeToggle = '' == '1';
|
||||||
|
if (disableThemeToggle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let button = document.getElementById("theme-toggle")
|
||||||
|
|
||||||
|
button.removeEventListener('click', toggleThemeListener)
|
||||||
|
|
||||||
|
button.addEventListener('click', toggleThemeListener)
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
let menu = document.getElementById('menu')
|
||||||
|
if (menu) {
|
||||||
|
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||||
|
menu.onscroll = function () {
|
||||||
|
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const disableSmoothScroll = '' == '1';
|
||||||
|
const enableInstantClick = '' == '1';
|
||||||
|
|
||||||
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = this.getAttribute("href").substr(1);
|
||||||
|
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
if (id === "top") {
|
||||||
|
history.replaceState(null, null, " ");
|
||||||
|
} else {
|
||||||
|
history.pushState(null, null, `#${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var mybutton = document.getElementById("top-link");
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||||
|
mybutton.style.visibility = "visible";
|
||||||
|
mybutton.style.opacity = "1";
|
||||||
|
} else {
|
||||||
|
mybutton.style.visibility = "hidden";
|
||||||
|
mybutton.style.opacity = "0";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
if (window.scrollListeners) {
|
||||||
|
|
||||||
|
for (const listener of scrollListeners) {
|
||||||
|
window.removeEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.scrollListeners = []
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/medium-zoom.min.js" data-no-instant
|
||||||
|
></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
82
public/index.xml
Normal file
82
public/index.xml
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title></title>
|
||||||
|
<link>http://localhost:1313/</link>
|
||||||
|
<description>Recent content on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-GB</language>
|
||||||
|
<lastBuildDate>Mon, 26 Aug 2024 23:34:26 +0100</lastBuildDate><atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Hibbian Linux</title>
|
||||||
|
<link>http://localhost:1313/posts/first-post/</link>
|
||||||
|
<pubDate>Mon, 26 Aug 2024 23:34:26 +0100</pubDate>
|
||||||
|
|
||||||
|
<guid>http://localhost:1313/posts/first-post/</guid>
|
||||||
|
<description>Introduction Finally, I&rsquo;ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there&rsquo;s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations &amp; Long Term Support The system is built from the ground up on Debian Linux&rsquo;s Stable release. This provides a strong foundation backed with years of security and support.</description>
|
||||||
|
<content:encoded><![CDATA[<h1 id="introduction">Introduction</h1>
|
||||||
|
<p>Finally, I’ve managed to pull together enough disparate components for the
|
||||||
|
project to come together!</p>
|
||||||
|
<p>Please welcome:</p>
|
||||||
|
<p><strong>Hibbian Linux</strong>, a distribution aimed at ham radio operators.</p>
|
||||||
|
<h1 id="another-one">Another one?</h1>
|
||||||
|
<p>I know - there’s plenty of options for radio operators to choose from.
|
||||||
|
What makes this one different?</p>
|
||||||
|
<h2 id="strong-foundations--long-term-support">Strong Foundations & Long Term Support</h2>
|
||||||
|
<p>The system is built from the ground up on Debian Linux’s Stable release. This
|
||||||
|
provides a strong foundation backed with years of security and support.</p>
|
||||||
|
<h2 id="modern-software--fast-updates">Modern Software & Fast Updates</h2>
|
||||||
|
<p>Debian’s strength is in its stability, but for some of the software we want to
|
||||||
|
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
|
||||||
|
Hibbian offers the latest packages from our community to keep on top of shifting
|
||||||
|
standards and best practises.</p>
|
||||||
|
<p>Some packages I maintain aren’t in Debian, but still deserve to be distributed
|
||||||
|
easily to users. You’ll find them here!</p>
|
||||||
|
<h2 id="deep-experience--active-operation">Deep Experience & Active Operation</h2>
|
||||||
|
<p>Hibbian is the work of me - <a href="https://foxk.it">hibby</a>. I’m a core member of the
|
||||||
|
<a href="https://debian.org">Debian Hamradio</a> team, maintaining software to be
|
||||||
|
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I’ve
|
||||||
|
been running a repository of software for the <a href="https://ukpacketradio.network/">UK packet radio
|
||||||
|
network</a>, and the lessons, sore points and work
|
||||||
|
from this has naturally expanded into Hibbian.</p>
|
||||||
|
<p>I run the software I maintain, I run software maintained by others and I try to
|
||||||
|
make computers do interesting things over radio. In other words, I eat my own
|
||||||
|
dog food.</p>
|
||||||
|
<p>Where possible, contributions and modifications will go back to Debian and
|
||||||
|
software authors.</p>
|
||||||
|
<h2 id="stand-alone-principles">Stand-Alone Principles</h2>
|
||||||
|
<p>I don’t believe in trusting other companies to host the code, data or the packages on
|
||||||
|
my behalf - everything is owned and run as ‘Hibbian’.</p>
|
||||||
|
<ul>
|
||||||
|
<li>You will find the code on our own <a href="https://git.hibbian.org/Hibbian/">git
|
||||||
|
forge</a>, where bug reports and issues are
|
||||||
|
welcomed.</li>
|
||||||
|
<li>You’ll find email communication hosted on Hibbian infrastructure</li>
|
||||||
|
<li>You won’t find Hibbian on Discord - try JS8 or Packet.</li>
|
||||||
|
</ul>
|
||||||
|
<p>When all else fails, somehow I’ll still be able to continue and communicate.</p>
|
||||||
|
<h1 id="two-ways-to-install">Two Ways to Install</h1>
|
||||||
|
<p>Can’t run the whole thing or don’t want to commit?</p>
|
||||||
|
<h2 id="repo">Repo</h2>
|
||||||
|
<p>Don’t worry - I ship software in the ‘repo’ for Debian & Raspberry Pi. You can
|
||||||
|
pick and choose the latest packages to be delivered straight to your computer
|
||||||
|
and not have to reinstall anything.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Bullseye - 11 - Oldstable</li>
|
||||||
|
<li>Bookworm - 12 - Stable</li>
|
||||||
|
<li>Trixie - 13 Testing</li>
|
||||||
|
</ul>
|
||||||
|
<p>To learn more, see the installation pages on the
|
||||||
|
<a href="https://guide.hibbian.org/repo/">guide</a>.</p>
|
||||||
|
<h2 id="full-distro">Full Distro</h2>
|
||||||
|
<p>For those who want a more convenient option, the full Hibbian distribution based
|
||||||
|
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.</p>
|
||||||
|
]]></content:encoded>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
2
public/js/medium-zoom.min.js
vendored
Normal file
2
public/js/medium-zoom.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
public/page/1/index.html
Normal file
10
public/page/1/index.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>https://hibbian.org/</title>
|
||||||
|
<link rel="canonical" href="https://hibbian.org/">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="refresh" content="0; url=https://hibbian.org/">
|
||||||
|
</head>
|
||||||
|
</html>
|
84
public/posts/feed.xml
Normal file
84
public/posts/feed.xml
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>Posts on </title>
|
||||||
|
<link>https://hibbian.org/posts/</link>
|
||||||
|
<description>Recent content in Posts on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en</language>
|
||||||
|
<lastBuildDate>Mon, 26 Aug 2024 23:34:26 +0100</lastBuildDate><atom:link href="https://hibbian.org/posts/feed.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Introducing Hibbian Linux</title>
|
||||||
|
<link>https://hibbian.org/posts/hibbian-announce/</link>
|
||||||
|
<pubDate>Mon, 26 Aug 2024 23:34:26 +0100</pubDate>
|
||||||
|
|
||||||
|
<guid>https://hibbian.org/posts/hibbian-announce/</guid>
|
||||||
|
<description>Introduction Finally, I&rsquo;ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there&rsquo;s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations &amp; Long Term Support The system is built from the ground up on Debian Linux&rsquo;s Stable release. This provides a strong foundation backed with years of security and support.</description>
|
||||||
|
<content:encoded><![CDATA[<h1 id="introduction">Introduction</h1>
|
||||||
|
<p>Finally, I’ve managed to pull together enough disparate components for the
|
||||||
|
project to come together!</p>
|
||||||
|
<p>Please welcome:</p>
|
||||||
|
<p><strong>Hibbian Linux</strong>, a distribution aimed at ham radio operators.</p>
|
||||||
|
<h1 id="another-one">Another one?</h1>
|
||||||
|
<p>I know - there’s plenty of options for radio operators to choose from.
|
||||||
|
What makes this one different?</p>
|
||||||
|
<h2 id="strong-foundations--long-term-support">Strong Foundations & Long Term Support</h2>
|
||||||
|
<p>The system is built from the ground up on Debian Linux’s Stable release. This
|
||||||
|
provides a strong foundation backed with years of security and support.</p>
|
||||||
|
<h2 id="modern-software--fast-updates">Modern Software & Fast Updates</h2>
|
||||||
|
<p>Debian’s strength is in its stability, but for some of the software we want to
|
||||||
|
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
|
||||||
|
Hibbian offers the latest packages from our community to keep on top of shifting
|
||||||
|
standards and best practises.</p>
|
||||||
|
<p>Some packages I maintain aren’t in Debian, but still deserve to be distributed
|
||||||
|
easily to users. You’ll find them here!</p>
|
||||||
|
<h2 id="deep-experience--active-operation">Deep Experience & Active Operation</h2>
|
||||||
|
<p>Hibbian is the work of me - <a href="https://foxk.it">hibby</a>. I’m a core member of the
|
||||||
|
<a href="https://debian.org">Debian Hamradio</a> team, maintaining software to be
|
||||||
|
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I’ve
|
||||||
|
been running a repository of software for the <a href="https://ukpacketradio.network/">UK packet radio
|
||||||
|
network</a>, and the lessons, sore points and work
|
||||||
|
from this has naturally expanded into Hibbian.</p>
|
||||||
|
<p>I run the software I maintain, I run software maintained by others and I try to
|
||||||
|
make computers do interesting things over radio. In other words, I eat my own
|
||||||
|
dog food.</p>
|
||||||
|
<p>Where possible, contributions and modifications will go back to Debian and
|
||||||
|
software authors.</p>
|
||||||
|
<h2 id="stand-alone-principles">Stand-Alone Principles</h2>
|
||||||
|
<p>I don’t believe in trusting other companies to host the code, data or the packages on
|
||||||
|
my behalf - everything is owned and run as ‘Hibbian’.</p>
|
||||||
|
<ul>
|
||||||
|
<li>You will find the code on our own <a href="https://git.hibbian.org/Hibbian/">git
|
||||||
|
forge</a>, where bug reports and issues are
|
||||||
|
welcomed.</li>
|
||||||
|
<li>You’ll find email communication hosted on Hibbian infrastructure</li>
|
||||||
|
<li>You won’t find Hibbian on Discord - try JS8 or Packet.</li>
|
||||||
|
</ul>
|
||||||
|
<p>When all else fails, somehow I’ll still be able to continue and communicate.</p>
|
||||||
|
<h1 id="two-ways-to-install">Two Ways to Install</h1>
|
||||||
|
<p>There are two ways to run the Hibbian collection of software - as a repository
|
||||||
|
for your existing OS, or as a complete OS itself.</p>
|
||||||
|
<h2 id="repo">Repo</h2>
|
||||||
|
<p>Can’t run the whole thing or don’t want to commit? Don’t worry - I ship software
|
||||||
|
in the ‘repo’ for Debian & Raspberry Pi. You can pick and choose the latest
|
||||||
|
packages to be delivered straight to your computer and not have to reinstall
|
||||||
|
anything.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Bullseye - 11 - Oldstable</li>
|
||||||
|
<li>Bookworm - 12 - Stable</li>
|
||||||
|
<li>Trixie - 13 Testing</li>
|
||||||
|
</ul>
|
||||||
|
<p>To learn more, see the installation pages on the
|
||||||
|
<a href="https://guide.hibbian.org/repo/">guide</a>.</p>
|
||||||
|
<h2 id="full-distro">Full Distro</h2>
|
||||||
|
<p>For those who want a more convenient option, the full Hibbian distribution based
|
||||||
|
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.</p>
|
||||||
|
]]></content:encoded>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
500
public/posts/first-post/index.html
Normal file
500
public/posts/first-post/index.html
Normal file
|
@ -0,0 +1,500 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="robots" content="noindex, nofollow">
|
||||||
|
<title>Introducing Hibbian Linux | </title>
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<meta name="description" content="Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support.">
|
||||||
|
<meta name="author" content="Hibby">
|
||||||
|
<link rel="canonical" href="http://localhost:1313/posts/first-post/">
|
||||||
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity="sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel="preload stylesheet" as="style">
|
||||||
|
<link rel="icon" href="http://localhost:1313/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="http://localhost:1313/apple-touch-icon.png">
|
||||||
|
<link rel="alternate" hreflang="en" href="http://localhost:1313/posts/first-post/">
|
||||||
|
|
||||||
|
<meta name="twitter:title" content="Introducing Hibbian Linux | " />
|
||||||
|
<meta name="twitter:description" content="Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support." />
|
||||||
|
<meta property="og:title" content="Introducing Hibbian Linux | " />
|
||||||
|
<meta property="og:description" content="Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support." />
|
||||||
|
<meta property="og:type" content="article" />
|
||||||
|
<meta property="og:url" content="http://localhost:1313/posts/first-post/" />
|
||||||
|
<meta property="article:section" content="posts" />
|
||||||
|
<meta property="article:published_time" content="2024-08-26T23:34:26+01:00" />
|
||||||
|
<meta property="article:modified_time" content="2024-08-26T23:34:26+01:00" /><meta property="og:site_name" content="Hibbian Linux" />
|
||||||
|
|
||||||
|
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BreadcrumbList",
|
||||||
|
"itemListElement": [
|
||||||
|
{
|
||||||
|
"@type": "ListItem",
|
||||||
|
"position": 1 ,
|
||||||
|
"name": "Posts",
|
||||||
|
"item": "http://localhost:1313/posts/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "ListItem",
|
||||||
|
"position": 2 ,
|
||||||
|
"name": "Introducing Hibbian Linux",
|
||||||
|
"item": "http://localhost:1313/posts/first-post/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BlogPosting",
|
||||||
|
"headline": "Introducing Hibbian Linux | ",
|
||||||
|
"name": "Introducing Hibbian Linux",
|
||||||
|
"description": "Introduction Finally, I\u0026rsquo;ve managed to pull together enough disparate components for the project to come together!\nPlease welcome:\nHibbian Linux, a distribution aimed at ham radio operators.\nAnother one? I know - there\u0026rsquo;s plenty of options for radio operators to choose from. What makes this one different?\nStrong Foundations \u0026amp; Long Term Support The system is built from the ground up on Debian Linux\u0026rsquo;s Stable release. This provides a strong foundation backed with years of security and support.",
|
||||||
|
"keywords": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"wordCount" : "464",
|
||||||
|
"inLanguage": "en",
|
||||||
|
"datePublished": "2024-08-26T23:34:26+01:00",
|
||||||
|
"dateModified": "2024-08-26T23:34:26+01:00",
|
||||||
|
"author":{
|
||||||
|
"@type": "Person",
|
||||||
|
"name": "Hibby"
|
||||||
|
},
|
||||||
|
"mainEntityOfPage": {
|
||||||
|
"@type": "WebPage",
|
||||||
|
"@id": "http://localhost:1313/posts/first-post/"
|
||||||
|
},
|
||||||
|
"publisher": {
|
||||||
|
"@type": "Organization",
|
||||||
|
"name": "",
|
||||||
|
"logo": {
|
||||||
|
"@type": "ImageObject",
|
||||||
|
"url": "http://localhost:1313/favicon.ico"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
#theme-toggle,
|
||||||
|
.top-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary-bg: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-track {
|
||||||
|
background: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-thumb {
|
||||||
|
border-color: var(--theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class=" type-posts kind-page layout-" id="top"><script data-no-instant>
|
||||||
|
function switchTheme(theme) {
|
||||||
|
switch (theme) {
|
||||||
|
case 'light':
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
break;
|
||||||
|
case 'dark':
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDarkTheme() {
|
||||||
|
return document.body.className.includes("dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPrefTheme() {
|
||||||
|
return localStorage.getItem("pref-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPrefTheme(theme) {
|
||||||
|
switchTheme(theme)
|
||||||
|
localStorage.setItem("pref-theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleThemeCallbacks = {}
|
||||||
|
toggleThemeCallbacks['main'] = (isDark) => {
|
||||||
|
|
||||||
|
if (isDark) {
|
||||||
|
setPrefTheme('light');
|
||||||
|
} else {
|
||||||
|
setPrefTheme('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener('toggle-theme', function() {
|
||||||
|
|
||||||
|
const isDark = isDarkTheme()
|
||||||
|
for (const key in toggleThemeCallbacks) {
|
||||||
|
toggleThemeCallbacks[key](isDark)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function toggleThemeListener() {
|
||||||
|
|
||||||
|
window.dispatchEvent(new CustomEvent('toggle-theme'));
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const defaultTheme = 'auto';
|
||||||
|
const prefTheme = getPrefTheme();
|
||||||
|
const theme = prefTheme ? prefTheme : defaultTheme;
|
||||||
|
|
||||||
|
switchTheme(theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav">
|
||||||
|
<div class="logo">
|
||||||
|
<span class="logo-switches">
|
||||||
|
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||||
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||||
|
</svg>
|
||||||
|
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<circle cx="12" cy="12" r="5"></circle>
|
||||||
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||||
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||||
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||||
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||||
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||||
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||||
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||||
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<ul id="menu">
|
||||||
|
<li>
|
||||||
|
<a href="http://localhost:1313/" title="Home" class="active"
|
||||||
|
>Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://guide.hibbian.org/" title="Guide"
|
||||||
|
>Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.hibbian.org/" title="Git"
|
||||||
|
>Git
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="http://localhost:1313/posts/" title="Posts" class="active"
|
||||||
|
>Posts
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="main post">
|
||||||
|
|
||||||
|
<article class="post-single">
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">Introducing Hibbian Linux</h1>
|
||||||
|
<div class="post-meta"><span class="meta-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar" style="user-select: text;"><rect x="3" y="4" width="18" height="18" rx="2" ry="2" style="user-select: text;"></rect><line x1="16" y1="2" x2="16" y2="6" style="user-select: text;"></line><line x1="8" y1="2" x2="8" y2="6" style="user-select: text;"></line><line x1="3" y1="10" x2="21" y2="10" style="user-select: text;"></line></svg>
|
||||||
|
<span>August 26, 2024</span></span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<div class="post-content"><h1 id="introduction">Introduction<a hidden class="anchor" aria-hidden="true" href="#introduction">¶</a></h1>
|
||||||
|
<p>Finally, I’ve managed to pull together enough disparate components for the
|
||||||
|
project to come together!</p>
|
||||||
|
<p>Please welcome:</p>
|
||||||
|
<p><strong>Hibbian Linux</strong>, a distribution aimed at ham radio operators.</p>
|
||||||
|
<h1 id="another-one">Another one?<a hidden class="anchor" aria-hidden="true" href="#another-one">¶</a></h1>
|
||||||
|
<p>I know - there’s plenty of options for radio operators to choose from.
|
||||||
|
What makes this one different?</p>
|
||||||
|
<h2 id="strong-foundations--long-term-support">Strong Foundations & Long Term Support<a hidden class="anchor" aria-hidden="true" href="#strong-foundations--long-term-support">¶</a></h2>
|
||||||
|
<p>The system is built from the ground up on Debian Linux’s Stable release. This
|
||||||
|
provides a strong foundation backed with years of security and support.</p>
|
||||||
|
<h2 id="modern-software--fast-updates">Modern Software & Fast Updates<a hidden class="anchor" aria-hidden="true" href="#modern-software--fast-updates">¶</a></h2>
|
||||||
|
<p>Debian’s strength is in its stability, but for some of the software we want to
|
||||||
|
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
|
||||||
|
Hibbian offers the latest packages from our community to keep on top of shifting
|
||||||
|
standards and best practises.</p>
|
||||||
|
<p>Some packages I maintain aren’t in Debian, but still deserve to be distributed
|
||||||
|
easily to users. You’ll find them here!</p>
|
||||||
|
<h2 id="deep-experience--active-operation">Deep Experience & Active Operation<a hidden class="anchor" aria-hidden="true" href="#deep-experience--active-operation">¶</a></h2>
|
||||||
|
<p>Hibbian is the work of me - <a href="https://foxk.it">hibby</a>. I’m a core member of the
|
||||||
|
<a href="https://debian.org">Debian Hamradio</a> team, maintaining software to be
|
||||||
|
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I’ve
|
||||||
|
been running a repository of software for the <a href="https://ukpacketradio.network/">UK packet radio
|
||||||
|
network</a>, and the lessons, sore points and work
|
||||||
|
from this has naturally expanded into Hibbian.</p>
|
||||||
|
<p>I run the software I maintain, I run software maintained by others and I try to
|
||||||
|
make computers do interesting things over radio. In other words, I eat my own
|
||||||
|
dog food.</p>
|
||||||
|
<p>Where possible, contributions and modifications will go back to Debian and
|
||||||
|
software authors.</p>
|
||||||
|
<h2 id="stand-alone-principles">Stand-Alone Principles<a hidden class="anchor" aria-hidden="true" href="#stand-alone-principles">¶</a></h2>
|
||||||
|
<p>I don’t believe in trusting other companies to host the code, data or the packages on
|
||||||
|
my behalf - everything is owned and run as ‘Hibbian’.</p>
|
||||||
|
<ul>
|
||||||
|
<li>You will find the code on our own <a href="https://git.hibbian.org/Hibbian/">git
|
||||||
|
forge</a>, where bug reports and issues are
|
||||||
|
welcomed.</li>
|
||||||
|
<li>You’ll find email communication hosted on Hibbian infrastructure</li>
|
||||||
|
<li>You won’t find Hibbian on Discord - try JS8 or Packet.</li>
|
||||||
|
</ul>
|
||||||
|
<p>When all else fails, somehow I’ll still be able to continue and communicate.</p>
|
||||||
|
<h1 id="two-ways-to-install">Two Ways to Install<a hidden class="anchor" aria-hidden="true" href="#two-ways-to-install">¶</a></h1>
|
||||||
|
<p>There are two ways to run the Hibbian collection of software - as a repository
|
||||||
|
for your existing OS, or as a complete OS itself.</p>
|
||||||
|
<h2 id="repo">Repo<a hidden class="anchor" aria-hidden="true" href="#repo">¶</a></h2>
|
||||||
|
<p>Can’t run the whole thing or don’t want to commit? Don’t worry - I ship software
|
||||||
|
in the ‘repo’ for Debian & Raspberry Pi. You can pick and choose the latest
|
||||||
|
packages to be delivered straight to your computer and not have to reinstall
|
||||||
|
anything.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Bullseye - 11 - Oldstable</li>
|
||||||
|
<li>Bookworm - 12 - Stable</li>
|
||||||
|
<li>Trixie - 13 Testing</li>
|
||||||
|
</ul>
|
||||||
|
<p>To learn more, see the installation pages on the
|
||||||
|
<a href="https://guide.hibbian.org/repo/">guide</a>.</p>
|
||||||
|
<h2 id="full-distro">Full Distro<a hidden class="anchor" aria-hidden="true" href="#full-distro">¶</a></h2>
|
||||||
|
<p>For those who want a more convenient option, the full Hibbian distribution based
|
||||||
|
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="post-footer">
|
||||||
|
</footer>
|
||||||
|
<div class="comments-separator"></div>
|
||||||
|
</article>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<span>© 2024 <a href="http://localhost:1313/"></a></span><span style="display: inline-block; margin-left: 1em;">
|
||||||
|
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
|
||||||
|
</span>
|
||||||
|
<span style="display: inline-block; margin-left: 1em;">
|
||||||
|
Powered by
|
||||||
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
|
<a href="https://github.com/reorx/hugo-PaperModX/" rel="noopener" target="_blank">PaperModX</a>
|
||||||
|
</span>
|
||||||
|
</footer>
|
||||||
|
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||||
|
<path d="M12 6H0l6-6z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
const disableThemeToggle = '' == '1';
|
||||||
|
if (disableThemeToggle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let button = document.getElementById("theme-toggle")
|
||||||
|
|
||||||
|
button.removeEventListener('click', toggleThemeListener)
|
||||||
|
|
||||||
|
button.addEventListener('click', toggleThemeListener)
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
let menu = document.getElementById('menu')
|
||||||
|
if (menu) {
|
||||||
|
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||||
|
menu.onscroll = function () {
|
||||||
|
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const disableSmoothScroll = '' == '1';
|
||||||
|
const enableInstantClick = '' == '1';
|
||||||
|
|
||||||
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = this.getAttribute("href").substr(1);
|
||||||
|
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
if (id === "top") {
|
||||||
|
history.replaceState(null, null, " ");
|
||||||
|
} else {
|
||||||
|
history.pushState(null, null, `#${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var mybutton = document.getElementById("top-link");
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||||
|
mybutton.style.visibility = "visible";
|
||||||
|
mybutton.style.opacity = "1";
|
||||||
|
} else {
|
||||||
|
mybutton.style.visibility = "hidden";
|
||||||
|
mybutton.style.opacity = "0";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
if (window.scrollListeners) {
|
||||||
|
|
||||||
|
for (const listener of scrollListeners) {
|
||||||
|
window.removeEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.scrollListeners = []
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/medium-zoom.min.js" data-no-instant
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const enableTocScroll = '' == '1'
|
||||||
|
if (!enableTocScroll) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!document.querySelector('.toc')) {
|
||||||
|
console.log('no toc found, ignore toc scroll')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const scrollListeners = window.scrollListeners
|
||||||
|
const headings = document.querySelectorAll('h1[id],h2[id],h3[id],h4[id],h5[id]');
|
||||||
|
const activeClass = 'active';
|
||||||
|
|
||||||
|
|
||||||
|
let activeHeading = headings[0];
|
||||||
|
getLinkByHeading(activeHeading).classList.add(activeClass);
|
||||||
|
|
||||||
|
const onScroll = () => {
|
||||||
|
const passedHeadings = [];
|
||||||
|
for (const h of headings) {
|
||||||
|
|
||||||
|
if (getOffsetTop(h) < 5) {
|
||||||
|
passedHeadings.push(h)
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (passedHeadings.length > 0) {
|
||||||
|
newActiveHeading = passedHeadings[passedHeadings.length - 1];
|
||||||
|
} else {
|
||||||
|
newActiveHeading = headings[0];
|
||||||
|
}
|
||||||
|
if (activeHeading != newActiveHeading) {
|
||||||
|
getLinkByHeading(activeHeading).classList.remove(activeClass);
|
||||||
|
activeHeading = newActiveHeading;
|
||||||
|
getLinkByHeading(activeHeading).classList.add(activeClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let timer = null;
|
||||||
|
const scrollListener = () => {
|
||||||
|
if (timer !== null) {
|
||||||
|
clearTimeout(timer)
|
||||||
|
}
|
||||||
|
timer = setTimeout(onScroll, 50)
|
||||||
|
}
|
||||||
|
window.addEventListener('scroll', scrollListener, false);
|
||||||
|
scrollListeners.push(scrollListener)
|
||||||
|
|
||||||
|
function getLinkByHeading(heading) {
|
||||||
|
const id = encodeURI(heading.getAttribute('id')).toLowerCase();
|
||||||
|
return document.querySelector(`.toc ul li a[href="#${id}"]`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOffsetTop(heading) {
|
||||||
|
if (!heading.getClientRects().length) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
let rect = heading.getBoundingClientRect();
|
||||||
|
return rect.top
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
500
public/posts/hibbian-announce/index.html
Normal file
500
public/posts/hibbian-announce/index.html
Normal file
|
@ -0,0 +1,500 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head><meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<title>Introducing Hibbian Linux | </title>
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<meta name="description" content="Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support.">
|
||||||
|
<meta name="author" content="Hibby">
|
||||||
|
<link rel="canonical" href="https://hibbian.org/posts/hibbian-announce/">
|
||||||
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity="sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel="preload stylesheet" as="style">
|
||||||
|
<link rel="icon" href="https://hibbian.org/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="https://hibbian.org/apple-touch-icon.png">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://hibbian.org/posts/hibbian-announce/">
|
||||||
|
|
||||||
|
<meta name="twitter:title" content="Introducing Hibbian Linux | " />
|
||||||
|
<meta name="twitter:description" content="Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support." />
|
||||||
|
<meta property="og:title" content="Introducing Hibbian Linux | " />
|
||||||
|
<meta property="og:description" content="Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support." />
|
||||||
|
<meta property="og:type" content="article" />
|
||||||
|
<meta property="og:url" content="https://hibbian.org/posts/hibbian-announce/" />
|
||||||
|
<meta property="article:section" content="posts" />
|
||||||
|
<meta property="article:published_time" content="2024-08-26T23:34:26+01:00" />
|
||||||
|
<meta property="article:modified_time" content="2024-08-26T23:34:26+01:00" /><meta property="og:site_name" content="Hibbian Linux" />
|
||||||
|
|
||||||
|
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BreadcrumbList",
|
||||||
|
"itemListElement": [
|
||||||
|
{
|
||||||
|
"@type": "ListItem",
|
||||||
|
"position": 1 ,
|
||||||
|
"name": "Posts",
|
||||||
|
"item": "https://hibbian.org/posts/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "ListItem",
|
||||||
|
"position": 2 ,
|
||||||
|
"name": "Introducing Hibbian Linux",
|
||||||
|
"item": "https://hibbian.org/posts/hibbian-announce/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BlogPosting",
|
||||||
|
"headline": "Introducing Hibbian Linux | ",
|
||||||
|
"name": "Introducing Hibbian Linux",
|
||||||
|
"description": "Introduction Finally, I\u0026rsquo;ve managed to pull together enough disparate components for the project to come together!\nPlease welcome:\nHibbian Linux, a distribution aimed at ham radio operators.\nAnother one? I know - there\u0026rsquo;s plenty of options for radio operators to choose from. What makes this one different?\nStrong Foundations \u0026amp; Long Term Support The system is built from the ground up on Debian Linux\u0026rsquo;s Stable release. This provides a strong foundation backed with years of security and support.",
|
||||||
|
"keywords": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"wordCount" : "464",
|
||||||
|
"inLanguage": "en",
|
||||||
|
"datePublished": "2024-08-26T23:34:26+01:00",
|
||||||
|
"dateModified": "2024-08-26T23:34:26+01:00",
|
||||||
|
"author":{
|
||||||
|
"@type": "Person",
|
||||||
|
"name": "Hibby"
|
||||||
|
},
|
||||||
|
"mainEntityOfPage": {
|
||||||
|
"@type": "WebPage",
|
||||||
|
"@id": "https://hibbian.org/posts/hibbian-announce/"
|
||||||
|
},
|
||||||
|
"publisher": {
|
||||||
|
"@type": "Organization",
|
||||||
|
"name": "",
|
||||||
|
"logo": {
|
||||||
|
"@type": "ImageObject",
|
||||||
|
"url": "https://hibbian.org/favicon.ico"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
#theme-toggle,
|
||||||
|
.top-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary-bg: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-track {
|
||||||
|
background: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-thumb {
|
||||||
|
border-color: var(--theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class=" type-posts kind-page layout-" id="top"><script data-no-instant>
|
||||||
|
function switchTheme(theme) {
|
||||||
|
switch (theme) {
|
||||||
|
case 'light':
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
break;
|
||||||
|
case 'dark':
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDarkTheme() {
|
||||||
|
return document.body.className.includes("dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPrefTheme() {
|
||||||
|
return localStorage.getItem("pref-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPrefTheme(theme) {
|
||||||
|
switchTheme(theme)
|
||||||
|
localStorage.setItem("pref-theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleThemeCallbacks = {}
|
||||||
|
toggleThemeCallbacks['main'] = (isDark) => {
|
||||||
|
|
||||||
|
if (isDark) {
|
||||||
|
setPrefTheme('light');
|
||||||
|
} else {
|
||||||
|
setPrefTheme('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener('toggle-theme', function() {
|
||||||
|
|
||||||
|
const isDark = isDarkTheme()
|
||||||
|
for (const key in toggleThemeCallbacks) {
|
||||||
|
toggleThemeCallbacks[key](isDark)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function toggleThemeListener() {
|
||||||
|
|
||||||
|
window.dispatchEvent(new CustomEvent('toggle-theme'));
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const defaultTheme = 'auto';
|
||||||
|
const prefTheme = getPrefTheme();
|
||||||
|
const theme = prefTheme ? prefTheme : defaultTheme;
|
||||||
|
|
||||||
|
switchTheme(theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav">
|
||||||
|
<div class="logo">
|
||||||
|
<span class="logo-switches">
|
||||||
|
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||||
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||||
|
</svg>
|
||||||
|
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<circle cx="12" cy="12" r="5"></circle>
|
||||||
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||||
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||||
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||||
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||||
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||||
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||||
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||||
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<ul id="menu">
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/" title="Home" class="active"
|
||||||
|
>Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://guide.hibbian.org/" title="Guide"
|
||||||
|
>Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.hibbian.org/" title="Git"
|
||||||
|
>Git
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/posts/" title="Posts" class="active"
|
||||||
|
>Posts
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="main post">
|
||||||
|
|
||||||
|
<article class="post-single">
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">Introducing Hibbian Linux</h1>
|
||||||
|
<div class="post-meta"><span class="meta-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar" style="user-select: text;"><rect x="3" y="4" width="18" height="18" rx="2" ry="2" style="user-select: text;"></rect><line x1="16" y1="2" x2="16" y2="6" style="user-select: text;"></line><line x1="8" y1="2" x2="8" y2="6" style="user-select: text;"></line><line x1="3" y1="10" x2="21" y2="10" style="user-select: text;"></line></svg>
|
||||||
|
<span>August 26, 2024</span></span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<div class="post-content"><h1 id="introduction">Introduction<a hidden class="anchor" aria-hidden="true" href="#introduction">¶</a></h1>
|
||||||
|
<p>Finally, I’ve managed to pull together enough disparate components for the
|
||||||
|
project to come together!</p>
|
||||||
|
<p>Please welcome:</p>
|
||||||
|
<p><strong>Hibbian Linux</strong>, a distribution aimed at ham radio operators.</p>
|
||||||
|
<h1 id="another-one">Another one?<a hidden class="anchor" aria-hidden="true" href="#another-one">¶</a></h1>
|
||||||
|
<p>I know - there’s plenty of options for radio operators to choose from.
|
||||||
|
What makes this one different?</p>
|
||||||
|
<h2 id="strong-foundations--long-term-support">Strong Foundations & Long Term Support<a hidden class="anchor" aria-hidden="true" href="#strong-foundations--long-term-support">¶</a></h2>
|
||||||
|
<p>The system is built from the ground up on Debian Linux’s Stable release. This
|
||||||
|
provides a strong foundation backed with years of security and support.</p>
|
||||||
|
<h2 id="modern-software--fast-updates">Modern Software & Fast Updates<a hidden class="anchor" aria-hidden="true" href="#modern-software--fast-updates">¶</a></h2>
|
||||||
|
<p>Debian’s strength is in its stability, but for some of the software we want to
|
||||||
|
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
|
||||||
|
Hibbian offers the latest packages from our community to keep on top of shifting
|
||||||
|
standards and best practises.</p>
|
||||||
|
<p>Some packages I maintain aren’t in Debian, but still deserve to be distributed
|
||||||
|
easily to users. You’ll find them here!</p>
|
||||||
|
<h2 id="deep-experience--active-operation">Deep Experience & Active Operation<a hidden class="anchor" aria-hidden="true" href="#deep-experience--active-operation">¶</a></h2>
|
||||||
|
<p>Hibbian is the work of me - <a href="https://foxk.it">hibby</a>. I’m a core member of the
|
||||||
|
<a href="https://debian.org">Debian Hamradio</a> team, maintaining software to be
|
||||||
|
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I’ve
|
||||||
|
been running a repository of software for the <a href="https://ukpacketradio.network/">UK packet radio
|
||||||
|
network</a>, and the lessons, sore points and work
|
||||||
|
from this has naturally expanded into Hibbian.</p>
|
||||||
|
<p>I run the software I maintain, I run software maintained by others and I try to
|
||||||
|
make computers do interesting things over radio. In other words, I eat my own
|
||||||
|
dog food.</p>
|
||||||
|
<p>Where possible, contributions and modifications will go back to Debian and
|
||||||
|
software authors.</p>
|
||||||
|
<h2 id="stand-alone-principles">Stand-Alone Principles<a hidden class="anchor" aria-hidden="true" href="#stand-alone-principles">¶</a></h2>
|
||||||
|
<p>I don’t believe in trusting other companies to host the code, data or the packages on
|
||||||
|
my behalf - everything is owned and run as ‘Hibbian’.</p>
|
||||||
|
<ul>
|
||||||
|
<li>You will find the code on our own <a href="https://git.hibbian.org/Hibbian/">git
|
||||||
|
forge</a>, where bug reports and issues are
|
||||||
|
welcomed.</li>
|
||||||
|
<li>You’ll find email communication hosted on Hibbian infrastructure</li>
|
||||||
|
<li>You won’t find Hibbian on Discord - try JS8 or Packet.</li>
|
||||||
|
</ul>
|
||||||
|
<p>When all else fails, somehow I’ll still be able to continue and communicate.</p>
|
||||||
|
<h1 id="two-ways-to-install">Two Ways to Install<a hidden class="anchor" aria-hidden="true" href="#two-ways-to-install">¶</a></h1>
|
||||||
|
<p>There are two ways to run the Hibbian collection of software - as a repository
|
||||||
|
for your existing OS, or as a complete OS itself.</p>
|
||||||
|
<h2 id="repo">Repo<a hidden class="anchor" aria-hidden="true" href="#repo">¶</a></h2>
|
||||||
|
<p>Can’t run the whole thing or don’t want to commit? Don’t worry - I ship software
|
||||||
|
in the ‘repo’ for Debian & Raspberry Pi. You can pick and choose the latest
|
||||||
|
packages to be delivered straight to your computer and not have to reinstall
|
||||||
|
anything.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Bullseye - 11 - Oldstable</li>
|
||||||
|
<li>Bookworm - 12 - Stable</li>
|
||||||
|
<li>Trixie - 13 Testing</li>
|
||||||
|
</ul>
|
||||||
|
<p>To learn more, see the installation pages on the
|
||||||
|
<a href="https://guide.hibbian.org/repo/">guide</a>.</p>
|
||||||
|
<h2 id="full-distro">Full Distro<a hidden class="anchor" aria-hidden="true" href="#full-distro">¶</a></h2>
|
||||||
|
<p>For those who want a more convenient option, the full Hibbian distribution based
|
||||||
|
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.</p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="post-footer">
|
||||||
|
</footer>
|
||||||
|
<div class="comments-separator"></div>
|
||||||
|
</article>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<span>© 2024 <a href="https://hibbian.org/"></a></span><span style="display: inline-block; margin-left: 1em;">
|
||||||
|
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
|
||||||
|
</span>
|
||||||
|
<span style="display: inline-block; margin-left: 1em;">
|
||||||
|
Powered by
|
||||||
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
|
<a href="https://github.com/reorx/hugo-PaperModX/" rel="noopener" target="_blank">PaperModX</a>
|
||||||
|
</span>
|
||||||
|
</footer>
|
||||||
|
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||||
|
<path d="M12 6H0l6-6z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
const disableThemeToggle = '' == '1';
|
||||||
|
if (disableThemeToggle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let button = document.getElementById("theme-toggle")
|
||||||
|
|
||||||
|
button.removeEventListener('click', toggleThemeListener)
|
||||||
|
|
||||||
|
button.addEventListener('click', toggleThemeListener)
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
let menu = document.getElementById('menu')
|
||||||
|
if (menu) {
|
||||||
|
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||||
|
menu.onscroll = function () {
|
||||||
|
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const disableSmoothScroll = '' == '1';
|
||||||
|
const enableInstantClick = '' == '1';
|
||||||
|
|
||||||
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = this.getAttribute("href").substr(1);
|
||||||
|
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
if (id === "top") {
|
||||||
|
history.replaceState(null, null, " ");
|
||||||
|
} else {
|
||||||
|
history.pushState(null, null, `#${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var mybutton = document.getElementById("top-link");
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||||
|
mybutton.style.visibility = "visible";
|
||||||
|
mybutton.style.opacity = "1";
|
||||||
|
} else {
|
||||||
|
mybutton.style.visibility = "hidden";
|
||||||
|
mybutton.style.opacity = "0";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
if (window.scrollListeners) {
|
||||||
|
|
||||||
|
for (const listener of scrollListeners) {
|
||||||
|
window.removeEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.scrollListeners = []
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/medium-zoom.min.js" data-no-instant
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const enableTocScroll = '' == '1'
|
||||||
|
if (!enableTocScroll) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!document.querySelector('.toc')) {
|
||||||
|
console.log('no toc found, ignore toc scroll')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const scrollListeners = window.scrollListeners
|
||||||
|
const headings = document.querySelectorAll('h1[id],h2[id],h3[id],h4[id],h5[id]');
|
||||||
|
const activeClass = 'active';
|
||||||
|
|
||||||
|
|
||||||
|
let activeHeading = headings[0];
|
||||||
|
getLinkByHeading(activeHeading).classList.add(activeClass);
|
||||||
|
|
||||||
|
const onScroll = () => {
|
||||||
|
const passedHeadings = [];
|
||||||
|
for (const h of headings) {
|
||||||
|
|
||||||
|
if (getOffsetTop(h) < 5) {
|
||||||
|
passedHeadings.push(h)
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (passedHeadings.length > 0) {
|
||||||
|
newActiveHeading = passedHeadings[passedHeadings.length - 1];
|
||||||
|
} else {
|
||||||
|
newActiveHeading = headings[0];
|
||||||
|
}
|
||||||
|
if (activeHeading != newActiveHeading) {
|
||||||
|
getLinkByHeading(activeHeading).classList.remove(activeClass);
|
||||||
|
activeHeading = newActiveHeading;
|
||||||
|
getLinkByHeading(activeHeading).classList.add(activeClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let timer = null;
|
||||||
|
const scrollListener = () => {
|
||||||
|
if (timer !== null) {
|
||||||
|
clearTimeout(timer)
|
||||||
|
}
|
||||||
|
timer = setTimeout(onScroll, 50)
|
||||||
|
}
|
||||||
|
window.addEventListener('scroll', scrollListener, false);
|
||||||
|
scrollListeners.push(scrollListener)
|
||||||
|
|
||||||
|
function getLinkByHeading(heading) {
|
||||||
|
const id = encodeURI(heading.getAttribute('id')).toLowerCase();
|
||||||
|
return document.querySelector(`.toc ul li a[href="#${id}"]`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOffsetTop(heading) {
|
||||||
|
if (!heading.getClientRects().length) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
let rect = heading.getBoundingClientRect();
|
||||||
|
return rect.top
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
329
public/posts/index.html
Normal file
329
public/posts/index.html
Normal file
|
@ -0,0 +1,329 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head><meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<title>Posts | </title>
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<meta name="description" content="Posts - ">
|
||||||
|
<meta name="author" content="Hibby">
|
||||||
|
<link rel="canonical" href="https://hibbian.org/posts/">
|
||||||
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity="sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel="preload stylesheet" as="style">
|
||||||
|
<link rel="icon" href="https://hibbian.org/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="https://hibbian.org/apple-touch-icon.png">
|
||||||
|
<link rel="alternate" type="application/rss+xml" href="https://hibbian.org/posts/feed.xml">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://hibbian.org/posts/">
|
||||||
|
|
||||||
|
<meta name="twitter:title" content="Posts | " />
|
||||||
|
<meta name="twitter:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:title" content="Posts | " />
|
||||||
|
<meta property="og:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://hibbian.org/posts/" />
|
||||||
|
<meta property="og:site_name" content="Hibbian Linux" />
|
||||||
|
|
||||||
|
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BreadcrumbList",
|
||||||
|
"itemListElement": [
|
||||||
|
{
|
||||||
|
"@type": "ListItem",
|
||||||
|
"position": 1 ,
|
||||||
|
"name": "Posts",
|
||||||
|
"item": "https://hibbian.org/posts/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
#theme-toggle,
|
||||||
|
.top-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary-bg: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-track {
|
||||||
|
background: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-thumb {
|
||||||
|
border-color: var(--theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="list-page type-posts kind-section layout-" id="top"><script data-no-instant>
|
||||||
|
function switchTheme(theme) {
|
||||||
|
switch (theme) {
|
||||||
|
case 'light':
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
break;
|
||||||
|
case 'dark':
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDarkTheme() {
|
||||||
|
return document.body.className.includes("dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPrefTheme() {
|
||||||
|
return localStorage.getItem("pref-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPrefTheme(theme) {
|
||||||
|
switchTheme(theme)
|
||||||
|
localStorage.setItem("pref-theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleThemeCallbacks = {}
|
||||||
|
toggleThemeCallbacks['main'] = (isDark) => {
|
||||||
|
|
||||||
|
if (isDark) {
|
||||||
|
setPrefTheme('light');
|
||||||
|
} else {
|
||||||
|
setPrefTheme('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener('toggle-theme', function() {
|
||||||
|
|
||||||
|
const isDark = isDarkTheme()
|
||||||
|
for (const key in toggleThemeCallbacks) {
|
||||||
|
toggleThemeCallbacks[key](isDark)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function toggleThemeListener() {
|
||||||
|
|
||||||
|
window.dispatchEvent(new CustomEvent('toggle-theme'));
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const defaultTheme = 'auto';
|
||||||
|
const prefTheme = getPrefTheme();
|
||||||
|
const theme = prefTheme ? prefTheme : defaultTheme;
|
||||||
|
|
||||||
|
switchTheme(theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav">
|
||||||
|
<div class="logo">
|
||||||
|
<span class="logo-switches">
|
||||||
|
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||||
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||||
|
</svg>
|
||||||
|
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<circle cx="12" cy="12" r="5"></circle>
|
||||||
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||||
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||||
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||||
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||||
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||||
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||||
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||||
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<ul id="menu">
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/" title="Home" class="active"
|
||||||
|
>Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://guide.hibbian.org/" title="Guide"
|
||||||
|
>Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.hibbian.org/" title="Git"
|
||||||
|
>Git
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/posts/" title="Posts" class="active"
|
||||||
|
>Posts
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="main">
|
||||||
|
<header class="page-header">
|
||||||
|
<h1>
|
||||||
|
Posts</h1><div class="inline-links">
|
||||||
|
|
||||||
|
|
||||||
|
<span><a href="https://hibbian.org/posts/feed.xml" target="_blank">RSS</a></span></div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<article class="post-entry">
|
||||||
|
<header class="entry-header">
|
||||||
|
<h2>Introducing Hibbian Linux
|
||||||
|
</h2>
|
||||||
|
</header>
|
||||||
|
<section class="entry-content">
|
||||||
|
|
||||||
|
<p>Introduction Finally, I’ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there’s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’s Stable release. This provides a strong foundation backed with years of security and support....</p>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<footer class="entry-footer"><span class="meta-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar" style="user-select: text;"><rect x="3" y="4" width="18" height="18" rx="2" ry="2" style="user-select: text;"></rect><line x1="16" y1="2" x2="16" y2="6" style="user-select: text;"></line><line x1="8" y1="2" x2="8" y2="6" style="user-select: text;"></line><line x1="3" y1="10" x2="21" y2="10" style="user-select: text;"></line></svg>
|
||||||
|
<span>August 26, 2024</span></span>
|
||||||
|
</footer>
|
||||||
|
<a class="entry-link" aria-label="post link to Introducing Hibbian Linux" href="https://hibbian.org/posts/hibbian-announce/"></a>
|
||||||
|
</article>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<span>© 2024 <a href="https://hibbian.org/"></a></span><span style="display: inline-block; margin-left: 1em;">
|
||||||
|
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
|
||||||
|
</span>
|
||||||
|
<span style="display: inline-block; margin-left: 1em;">
|
||||||
|
Powered by
|
||||||
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
|
<a href="https://github.com/reorx/hugo-PaperModX/" rel="noopener" target="_blank">PaperModX</a>
|
||||||
|
</span>
|
||||||
|
</footer>
|
||||||
|
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||||
|
<path d="M12 6H0l6-6z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
const disableThemeToggle = '' == '1';
|
||||||
|
if (disableThemeToggle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let button = document.getElementById("theme-toggle")
|
||||||
|
|
||||||
|
button.removeEventListener('click', toggleThemeListener)
|
||||||
|
|
||||||
|
button.addEventListener('click', toggleThemeListener)
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
let menu = document.getElementById('menu')
|
||||||
|
if (menu) {
|
||||||
|
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||||
|
menu.onscroll = function () {
|
||||||
|
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const disableSmoothScroll = '' == '1';
|
||||||
|
const enableInstantClick = '' == '1';
|
||||||
|
|
||||||
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = this.getAttribute("href").substr(1);
|
||||||
|
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
if (id === "top") {
|
||||||
|
history.replaceState(null, null, " ");
|
||||||
|
} else {
|
||||||
|
history.pushState(null, null, `#${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var mybutton = document.getElementById("top-link");
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||||
|
mybutton.style.visibility = "visible";
|
||||||
|
mybutton.style.opacity = "1";
|
||||||
|
} else {
|
||||||
|
mybutton.style.visibility = "hidden";
|
||||||
|
mybutton.style.opacity = "0";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
if (window.scrollListeners) {
|
||||||
|
|
||||||
|
for (const listener of scrollListeners) {
|
||||||
|
window.removeEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.scrollListeners = []
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/medium-zoom.min.js" data-no-instant
|
||||||
|
></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
82
public/posts/index.xml
Normal file
82
public/posts/index.xml
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>Posts on </title>
|
||||||
|
<link>http://localhost:1313/posts/</link>
|
||||||
|
<description>Recent content in Posts on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-GB</language>
|
||||||
|
<lastBuildDate>Mon, 26 Aug 2024 23:34:26 +0100</lastBuildDate><atom:link href="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Hibbian Linux</title>
|
||||||
|
<link>http://localhost:1313/posts/first-post/</link>
|
||||||
|
<pubDate>Mon, 26 Aug 2024 23:34:26 +0100</pubDate>
|
||||||
|
|
||||||
|
<guid>http://localhost:1313/posts/first-post/</guid>
|
||||||
|
<description>Introduction Finally, I&rsquo;ve managed to pull together enough disparate components for the project to come together!
|
||||||
|
Please welcome:
|
||||||
|
Hibbian Linux, a distribution aimed at ham radio operators.
|
||||||
|
Another one? I know - there&rsquo;s plenty of options for radio operators to choose from. What makes this one different?
|
||||||
|
Strong Foundations &amp; Long Term Support The system is built from the ground up on Debian Linux&rsquo;s Stable release. This provides a strong foundation backed with years of security and support.</description>
|
||||||
|
<content:encoded><![CDATA[<h1 id="introduction">Introduction</h1>
|
||||||
|
<p>Finally, I’ve managed to pull together enough disparate components for the
|
||||||
|
project to come together!</p>
|
||||||
|
<p>Please welcome:</p>
|
||||||
|
<p><strong>Hibbian Linux</strong>, a distribution aimed at ham radio operators.</p>
|
||||||
|
<h1 id="another-one">Another one?</h1>
|
||||||
|
<p>I know - there’s plenty of options for radio operators to choose from.
|
||||||
|
What makes this one different?</p>
|
||||||
|
<h2 id="strong-foundations--long-term-support">Strong Foundations & Long Term Support</h2>
|
||||||
|
<p>The system is built from the ground up on Debian Linux’s Stable release. This
|
||||||
|
provides a strong foundation backed with years of security and support.</p>
|
||||||
|
<h2 id="modern-software--fast-updates">Modern Software & Fast Updates</h2>
|
||||||
|
<p>Debian’s strength is in its stability, but for some of the software we want to
|
||||||
|
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
|
||||||
|
Hibbian offers the latest packages from our community to keep on top of shifting
|
||||||
|
standards and best practises.</p>
|
||||||
|
<p>Some packages I maintain aren’t in Debian, but still deserve to be distributed
|
||||||
|
easily to users. You’ll find them here!</p>
|
||||||
|
<h2 id="deep-experience--active-operation">Deep Experience & Active Operation</h2>
|
||||||
|
<p>Hibbian is the work of me - <a href="https://foxk.it">hibby</a>. I’m a core member of the
|
||||||
|
<a href="https://debian.org">Debian Hamradio</a> team, maintaining software to be
|
||||||
|
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I’ve
|
||||||
|
been running a repository of software for the <a href="https://ukpacketradio.network/">UK packet radio
|
||||||
|
network</a>, and the lessons, sore points and work
|
||||||
|
from this has naturally expanded into Hibbian.</p>
|
||||||
|
<p>I run the software I maintain, I run software maintained by others and I try to
|
||||||
|
make computers do interesting things over radio. In other words, I eat my own
|
||||||
|
dog food.</p>
|
||||||
|
<p>Where possible, contributions and modifications will go back to Debian and
|
||||||
|
software authors.</p>
|
||||||
|
<h2 id="stand-alone-principles">Stand-Alone Principles</h2>
|
||||||
|
<p>I don’t believe in trusting other companies to host the code, data or the packages on
|
||||||
|
my behalf - everything is owned and run as ‘Hibbian’.</p>
|
||||||
|
<ul>
|
||||||
|
<li>You will find the code on our own <a href="https://git.hibbian.org/Hibbian/">git
|
||||||
|
forge</a>, where bug reports and issues are
|
||||||
|
welcomed.</li>
|
||||||
|
<li>You’ll find email communication hosted on Hibbian infrastructure</li>
|
||||||
|
<li>You won’t find Hibbian on Discord - try JS8 or Packet.</li>
|
||||||
|
</ul>
|
||||||
|
<p>When all else fails, somehow I’ll still be able to continue and communicate.</p>
|
||||||
|
<h1 id="two-ways-to-install">Two Ways to Install</h1>
|
||||||
|
<p>Can’t run the whole thing or don’t want to commit?</p>
|
||||||
|
<h2 id="repo">Repo</h2>
|
||||||
|
<p>Don’t worry - I ship software in the ‘repo’ for Debian & Raspberry Pi. You can
|
||||||
|
pick and choose the latest packages to be delivered straight to your computer
|
||||||
|
and not have to reinstall anything.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Bullseye - 11 - Oldstable</li>
|
||||||
|
<li>Bookworm - 12 - Stable</li>
|
||||||
|
<li>Trixie - 13 Testing</li>
|
||||||
|
</ul>
|
||||||
|
<p>To learn more, see the installation pages on the
|
||||||
|
<a href="https://guide.hibbian.org/repo/">guide</a>.</p>
|
||||||
|
<h2 id="full-distro">Full Distro</h2>
|
||||||
|
<p>For those who want a more convenient option, the full Hibbian distribution based
|
||||||
|
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.</p>
|
||||||
|
]]></content:encoded>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
10
public/posts/page/1/index.html
Normal file
10
public/posts/page/1/index.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>https://hibbian.org/posts/</title>
|
||||||
|
<link rel="canonical" href="https://hibbian.org/posts/">
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="refresh" content="0; url=https://hibbian.org/posts/">
|
||||||
|
</head>
|
||||||
|
</html>
|
3
public/robots.txt
Normal file
3
public/robots.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
User-agent: *
|
||||||
|
Disallow:
|
||||||
|
Sitemap: https://hibbian.org/sitemap.xml
|
18
public/sitemap.xml
Normal file
18
public/sitemap.xml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
|
<url>
|
||||||
|
<loc>https://hibbian.org/</loc>
|
||||||
|
<lastmod>2024-08-26T23:34:26+01:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://hibbian.org/posts/hibbian-announce/</loc>
|
||||||
|
<lastmod>2024-08-26T23:34:26+01:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://hibbian.org/posts/</loc>
|
||||||
|
<lastmod>2024-08-26T23:34:26+01:00</lastmod>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://hibbian.org/categories/</loc>
|
||||||
|
</url><url>
|
||||||
|
<loc>https://hibbian.org/tags/</loc>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
10
public/tags/feed.xml
Normal file
10
public/tags/feed.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>Tags on </title>
|
||||||
|
<link>https://hibbian.org/tags/</link>
|
||||||
|
<description>Recent content in Tags on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en</language><atom:link href="https://hibbian.org/tags/feed.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
287
public/tags/index.html
Normal file
287
public/tags/index.html
Normal file
|
@ -0,0 +1,287 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" dir="auto">
|
||||||
|
|
||||||
|
<head><meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<title>Tags | </title>
|
||||||
|
<meta name="keywords" content="">
|
||||||
|
<meta name="description" content="Debian, tailored for hams">
|
||||||
|
<meta name="author" content="Hibby">
|
||||||
|
<link rel="canonical" href="https://hibbian.org/tags/">
|
||||||
|
<link crossorigin="anonymous" href="/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity="sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel="preload stylesheet" as="style">
|
||||||
|
<link rel="icon" href="https://hibbian.org/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="https://hibbian.org/apple-touch-icon.png">
|
||||||
|
<link rel="alternate" type="application/rss+xml" href="https://hibbian.org/tags/feed.xml">
|
||||||
|
<link rel="alternate" hreflang="en" href="https://hibbian.org/tags/">
|
||||||
|
|
||||||
|
<meta name="twitter:title" content="Tags | " />
|
||||||
|
<meta name="twitter:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:title" content="Tags | " />
|
||||||
|
<meta property="og:description" content="Debian, tailored for hams" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="https://hibbian.org/tags/" />
|
||||||
|
<meta property="og:site_name" content="Hibbian Linux" />
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
<style>
|
||||||
|
#theme-toggle,
|
||||||
|
.top-link {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary-bg: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-track {
|
||||||
|
background: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-page:not(.dark)::-webkit-scrollbar-thumb {
|
||||||
|
border-color: var(--theme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="list-page type-tags kind-taxonomy layout-" id="top"><script data-no-instant>
|
||||||
|
function switchTheme(theme) {
|
||||||
|
switch (theme) {
|
||||||
|
case 'light':
|
||||||
|
document.body.classList.remove('dark');
|
||||||
|
break;
|
||||||
|
case 'dark':
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
document.body.classList.add('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isDarkTheme() {
|
||||||
|
return document.body.className.includes("dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPrefTheme() {
|
||||||
|
return localStorage.getItem("pref-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPrefTheme(theme) {
|
||||||
|
switchTheme(theme)
|
||||||
|
localStorage.setItem("pref-theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleThemeCallbacks = {}
|
||||||
|
toggleThemeCallbacks['main'] = (isDark) => {
|
||||||
|
|
||||||
|
if (isDark) {
|
||||||
|
setPrefTheme('light');
|
||||||
|
} else {
|
||||||
|
setPrefTheme('dark');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener('toggle-theme', function() {
|
||||||
|
|
||||||
|
const isDark = isDarkTheme()
|
||||||
|
for (const key in toggleThemeCallbacks) {
|
||||||
|
toggleThemeCallbacks[key](isDark)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function toggleThemeListener() {
|
||||||
|
|
||||||
|
window.dispatchEvent(new CustomEvent('toggle-theme'));
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const defaultTheme = 'auto';
|
||||||
|
const prefTheme = getPrefTheme();
|
||||||
|
const theme = prefTheme ? prefTheme : defaultTheme;
|
||||||
|
|
||||||
|
switchTheme(theme);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<header class="header">
|
||||||
|
<nav class="nav">
|
||||||
|
<div class="logo">
|
||||||
|
<span class="logo-switches">
|
||||||
|
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||||
|
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||||
|
</svg>
|
||||||
|
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
|
||||||
|
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||||
|
stroke-linejoin="round">
|
||||||
|
<circle cx="12" cy="12" r="5"></circle>
|
||||||
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||||
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||||
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||||
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||||
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||||
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||||
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||||
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<ul id="menu">
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/" title="Home" class="active"
|
||||||
|
>Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://guide.hibbian.org/" title="Guide"
|
||||||
|
>Guide
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://git.hibbian.org/" title="Git"
|
||||||
|
>Git
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://hibbian.org/posts/" title="Posts"
|
||||||
|
>Posts
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<main class="main">
|
||||||
|
<header class="page-header">
|
||||||
|
<h1>Tags</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<ul class="terms-tags">
|
||||||
|
</ul>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<span>© 2024 <a href="https://hibbian.org/"></a></span><span style="display: inline-block; margin-left: 1em;">
|
||||||
|
<a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a>
|
||||||
|
</span>
|
||||||
|
<span style="display: inline-block; margin-left: 1em;">
|
||||||
|
Powered by
|
||||||
|
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||||
|
<a href="https://github.com/reorx/hugo-PaperModX/" rel="noopener" target="_blank">PaperModX</a>
|
||||||
|
</span>
|
||||||
|
</footer>
|
||||||
|
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||||
|
<path d="M12 6H0l6-6z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
const disableThemeToggle = '' == '1';
|
||||||
|
if (disableThemeToggle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let button = document.getElementById("theme-toggle")
|
||||||
|
|
||||||
|
button.removeEventListener('click', toggleThemeListener)
|
||||||
|
|
||||||
|
button.addEventListener('click', toggleThemeListener)
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
let menu = document.getElementById('menu')
|
||||||
|
if (menu) {
|
||||||
|
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||||
|
menu.onscroll = function () {
|
||||||
|
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const disableSmoothScroll = '' == '1';
|
||||||
|
const enableInstantClick = '' == '1';
|
||||||
|
|
||||||
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var id = this.getAttribute("href").substr(1);
|
||||||
|
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
|
if (id === "top") {
|
||||||
|
history.replaceState(null, null, " ");
|
||||||
|
} else {
|
||||||
|
history.pushState(null, null, `#${id}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var mybutton = document.getElementById("top-link");
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||||
|
mybutton.style.visibility = "visible";
|
||||||
|
mybutton.style.opacity = "1";
|
||||||
|
} else {
|
||||||
|
mybutton.style.visibility = "hidden";
|
||||||
|
mybutton.style.opacity = "0";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
if (window.scrollListeners) {
|
||||||
|
|
||||||
|
for (const listener of scrollListeners) {
|
||||||
|
window.removeEventListener('scroll', listener)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
window.scrollListeners = []
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/medium-zoom.min.js" data-no-instant
|
||||||
|
></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
10
public/tags/index.xml
Normal file
10
public/tags/index.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||||
|
<channel>
|
||||||
|
<title>Tags on </title>
|
||||||
|
<link>http://localhost:1313/tags/</link>
|
||||||
|
<description>Recent content in Tags on </description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-GB</language><atom:link href="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
</channel>
|
||||||
|
</rss>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
||||||
|
{"Target":"/ananke/css/main.min.css","MediaType":"text/css","Data":{}}
|
|
@ -0,0 +1,296 @@
|
||||||
|
@charset "UTF-8";
|
||||||
|
/*
|
||||||
|
color candidates:
|
||||||
|
#48C0A3 青碧
|
||||||
|
#519A73 蒼黃
|
||||||
|
#1BD1A5 碧色
|
||||||
|
#7BCFA6 玉色
|
||||||
|
*/
|
||||||
|
body.type-essays {
|
||||||
|
--signature: #48C0A3;
|
||||||
|
--signature-bg: rgba(72, 192, 164, 0.427);
|
||||||
|
--siguature-bg-dim: rgba(72, 192, 164, 0.298);
|
||||||
|
--link-hover-color: var(--signature);
|
||||||
|
--link-hover-underline-color: var(--signature);
|
||||||
|
--link-hover-underline-shadow: 0 2px 0 var(--link-hover-underline-color);
|
||||||
|
--link-background-color: var(--siguature-bg-dim); }
|
||||||
|
body.type-essays .post-entry {
|
||||||
|
/* same as .post-header h2 */ }
|
||||||
|
body.type-essays .post-entry .entry-title {
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1.3;
|
||||||
|
margin-bottom: calc(var(--content-gap) / 2); }
|
||||||
|
body.type-essays .post-entry .entry-title a {
|
||||||
|
color: var(--primary);
|
||||||
|
transition: var(--link-transition); }
|
||||||
|
body.type-essays .post-entry .entry-title a:hover {
|
||||||
|
color: var(--link-hover-color);
|
||||||
|
box-shadow: var(--link-hover-underline-shadow); }
|
||||||
|
body.type-essays .post-entry .post-meta {
|
||||||
|
margin-bottom: var(--content-gap); }
|
||||||
|
|
||||||
|
/*
|
||||||
|
color candidates:
|
||||||
|
#CB3A56 茜色
|
||||||
|
#F05654 銀紅
|
||||||
|
#F20C00 石榴紅
|
||||||
|
#FF2D51 火紅
|
||||||
|
*/
|
||||||
|
body.type-newsletter {
|
||||||
|
--signature: #CB3A56;
|
||||||
|
--signature-bg: rgba(203, 58, 87, 0.239);
|
||||||
|
--signature-bg-dim: rgba(203, 58, 87, 0.147);
|
||||||
|
--signature-bg-dimmer: rgba(203, 58, 87, 0.084);
|
||||||
|
--main-border: 5px solid var(--signature);
|
||||||
|
--icon-length: 50px;
|
||||||
|
--icon-font-size: 32px;
|
||||||
|
--link-hover-color: var(--signature);
|
||||||
|
--link-hover-underline-color: var(--signature);
|
||||||
|
--link-hover-underline-shadow: 0 2px 0 var(--link-hover-underline-color);
|
||||||
|
--link-background-color: var(--signature-bg-dim);
|
||||||
|
/* a links in section/archives page content and regular page post-content */
|
||||||
|
/* shared */ }
|
||||||
|
@media screen and (max-width: 500px) {
|
||||||
|
body.type-newsletter {
|
||||||
|
--icon-length: 40px;
|
||||||
|
--icon-font-size: 24px; } }
|
||||||
|
body.type-newsletter.kind-section .main .content a, body.type-newsletter.layout-archives .main .content a, body.type-newsletter.kind-page .post-content a {
|
||||||
|
font-weight: 500;
|
||||||
|
color: var(--primary);
|
||||||
|
box-shadow: var(--link-underline-shadow); }
|
||||||
|
body.type-newsletter.kind-section .main .content a:hover, body.type-newsletter.layout-archives .main .content a:hover, body.type-newsletter.kind-page .post-content a:hover {
|
||||||
|
color: var(--link-hover-color);
|
||||||
|
box-shadow: var(--link-hover-underline-shadow); }
|
||||||
|
body.type-newsletter .subscribe-form {
|
||||||
|
margin: calc(var(--content-gap) * 2) 0; }
|
||||||
|
body.type-newsletter .subscribe-form form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
line-height: 1.2em;
|
||||||
|
flex-wrap: wrap; }
|
||||||
|
body.type-newsletter .subscribe-form .input-group {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap; }
|
||||||
|
body.type-newsletter .subscribe-form .subscribe-option {
|
||||||
|
margin-top: 8px; }
|
||||||
|
body.type-newsletter .subscribe-form input[type=text] {
|
||||||
|
border: 3px solid var(--signature-bg-dim);
|
||||||
|
color: var(--secondary);
|
||||||
|
border-radius: 0px;
|
||||||
|
border-color: var(--signature-bg);
|
||||||
|
appearance: none;
|
||||||
|
outline: none;
|
||||||
|
background-color: var(--theme);
|
||||||
|
flex-grow: 1;
|
||||||
|
padding: 9px 15px;
|
||||||
|
transition: var(--link-transition); }
|
||||||
|
body.type-newsletter .subscribe-form input[type=text]:focus {
|
||||||
|
color: var(--primary);
|
||||||
|
border-color: var(--signature); }
|
||||||
|
body.type-newsletter .subscribe-form button {
|
||||||
|
display: block;
|
||||||
|
background-color: var(--signature);
|
||||||
|
color: var(--theme);
|
||||||
|
padding: 12px 15px;
|
||||||
|
margin-left: var(--content-gap);
|
||||||
|
white-space: nowrap; }
|
||||||
|
body.type-newsletter .subscribe-form label, body.type-newsletter .subscribe-form .label {
|
||||||
|
font-size: .85em;
|
||||||
|
margin-right: 16px; }
|
||||||
|
body.type-newsletter .subscribe-form .label {
|
||||||
|
color: var(--secondary);
|
||||||
|
line-height: 1.2; }
|
||||||
|
body.type-newsletter .subscribe-form input[type=radio] {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-top: 0; }
|
||||||
|
@media screen and (max-width: 500px) {
|
||||||
|
body.type-newsletter .subscribe-form {
|
||||||
|
font-size: .9em; }
|
||||||
|
body.type-newsletter .subscribe-form input[type=text] {
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px; }
|
||||||
|
body.type-newsletter .subscribe-form button {
|
||||||
|
width: 96px;
|
||||||
|
margin-left: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0; }
|
||||||
|
body.type-newsletter .subscribe-form .hide-for-sm {
|
||||||
|
display: none; }
|
||||||
|
body.type-newsletter .subscribe-form .label {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 4px; } }
|
||||||
|
body.type-newsletter.kind-section,
|
||||||
|
body.type-newsletter.layout-archives {
|
||||||
|
/* section/archives page */ }
|
||||||
|
body.type-newsletter.kind-section .main,
|
||||||
|
body.type-newsletter.layout-archives .main {
|
||||||
|
border: var(--main-border);
|
||||||
|
background-color: var(--theme);
|
||||||
|
margin-top: var(--content-gap);
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: var(--icon-length);
|
||||||
|
min-height: calc(100vh - var(--header-height) - var(--footer-height) - var(--content-gap));
|
||||||
|
max-width: var(--nav-width); }
|
||||||
|
@media screen and (max-width: 960px) {
|
||||||
|
body.type-newsletter.kind-section .main,
|
||||||
|
body.type-newsletter.layout-archives .main {
|
||||||
|
margin-left: var(--gap);
|
||||||
|
margin-right: var(--gap); } }
|
||||||
|
body.type-newsletter.kind-section .main-icon,
|
||||||
|
body.type-newsletter.layout-archives .main-icon {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: var(--icon-length);
|
||||||
|
height: var(--icon-length);
|
||||||
|
line-height: calc(var(--icon-length) - 3px);
|
||||||
|
border-right: var(--main-border);
|
||||||
|
border-bottom: var(--main-border);
|
||||||
|
background-color: var(--signature);
|
||||||
|
color: var(--theme);
|
||||||
|
font-size: var(--icon-font-size);
|
||||||
|
text-align: center; }
|
||||||
|
body.type-newsletter.kind-section .main .content,
|
||||||
|
body.type-newsletter.layout-archives .main .content {
|
||||||
|
max-width: calc(var(--post-width));
|
||||||
|
margin: var(--icon-length) auto 0; }
|
||||||
|
body.type-newsletter.kind-section .main .first-entry,
|
||||||
|
body.type-newsletter.layout-archives .main .first-entry {
|
||||||
|
margin-bottom: 0; }
|
||||||
|
body.type-newsletter.kind-section .main h1,
|
||||||
|
body.type-newsletter.layout-archives .main h1 {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 10px; }
|
||||||
|
body.type-newsletter.kind-section .main .subtitle,
|
||||||
|
body.type-newsletter.layout-archives .main .subtitle {
|
||||||
|
text-align: center;
|
||||||
|
color: var(--secondary);
|
||||||
|
line-height: 1.2em;
|
||||||
|
margin-bottom: var(--content-gap); }
|
||||||
|
body.type-newsletter.kind-section .main h2,
|
||||||
|
body.type-newsletter.layout-archives .main h2 {
|
||||||
|
margin: 40px 0 20px; }
|
||||||
|
body.type-newsletter.kind-section .main .list,
|
||||||
|
body.type-newsletter.layout-archives .main .list {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-bottom: var(--content-gap); }
|
||||||
|
body.type-newsletter.kind-section .main .list .item,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item {
|
||||||
|
display: flex;
|
||||||
|
border-bottom: 1px solid var(--tertiary-bg);
|
||||||
|
padding: 8px 0; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .date, body.type-newsletter.kind-section .main .list .item .issueno,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .date,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .issueno {
|
||||||
|
font-size: .9em;
|
||||||
|
color: var(--secondary); }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .date,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .date {
|
||||||
|
width: 150px; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .title,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .title {
|
||||||
|
flex-grow: 1;
|
||||||
|
font-weight: 500; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .title a,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .title a {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
box-shadow: none; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .title a:hover,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .title a:hover {
|
||||||
|
color: var(--signature); }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .title em,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .title em {
|
||||||
|
color: var(--secondary);
|
||||||
|
font-style: normal;
|
||||||
|
font-size: .8em;
|
||||||
|
margin-inline-start: 1em;
|
||||||
|
vertical-align: top; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .issueno,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .issueno {
|
||||||
|
width: 50px;
|
||||||
|
text-align: right; }
|
||||||
|
@media screen and (max-width: 500px) {
|
||||||
|
body.type-newsletter.kind-section .main .list .item,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item {
|
||||||
|
flex-wrap: wrap; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .date,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .date {
|
||||||
|
flex-grow: 1;
|
||||||
|
order: 1; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .issueno,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .issueno {
|
||||||
|
order: 2; }
|
||||||
|
body.type-newsletter.kind-section .main .list .item .title,
|
||||||
|
body.type-newsletter.layout-archives .main .list .item .title {
|
||||||
|
order: 3;
|
||||||
|
flex-grow: 1; } }
|
||||||
|
/* regular page */
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand {
|
||||||
|
--icon-length: 50px;
|
||||||
|
--padding: 15px;
|
||||||
|
display: flex;
|
||||||
|
background-color: var(--signature-bg-dim);
|
||||||
|
transition: var(--link-transition);
|
||||||
|
font-size: 32px;
|
||||||
|
margin-bottom: var(--content-gap);
|
||||||
|
line-height: var(--icon-length);
|
||||||
|
box-shadow: none; }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand .icon, body.type-newsletter.kind-page .newsletter-brand .name {
|
||||||
|
height: var(--icon-length); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand .icon {
|
||||||
|
width: var(--icon-length);
|
||||||
|
color: var(--theme);
|
||||||
|
text-align: center;
|
||||||
|
background-color: var(--signature); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand .name {
|
||||||
|
padding: 0 var(--padding);
|
||||||
|
font-weight: bolder;
|
||||||
|
color: var(--signature); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand .remark {
|
||||||
|
color: var(--signature);
|
||||||
|
font-weight: 300;
|
||||||
|
transition: var(--link-transition); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand .arrow {
|
||||||
|
margin-left: auto;
|
||||||
|
color: transparent;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding-right: var(--padding);
|
||||||
|
transition: var(--link-transition); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand:hover, body.type-newsletter.kind-page .newsletter-brand:active {
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: var(--signature-bg); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand:hover .arrow, body.type-newsletter.kind-page .newsletter-brand:active .arrow {
|
||||||
|
color: var(--signature); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand:hover .remark, body.type-newsletter.kind-page .newsletter-brand:active .remark {
|
||||||
|
color: transparent; }
|
||||||
|
|
||||||
|
@media screen and (max-width: 500px) {
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand {
|
||||||
|
font-size: 24px; }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand .remark {
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: var(--padding); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-brand .arrow {
|
||||||
|
display: none; } }
|
||||||
|
|
||||||
|
body.type-newsletter.kind-page .post-title {
|
||||||
|
font-size: 36px; }
|
||||||
|
|
||||||
|
body.type-newsletter.kind-page .post-footer {
|
||||||
|
border-bottom-color: var(--signature); }
|
||||||
|
|
||||||
|
body.type-newsletter.kind-page .newsletter-sub {
|
||||||
|
margin-top: calc(var(--content-gap) * 1.5);
|
||||||
|
background-color: var(--signature-bg-dimmer);
|
||||||
|
padding: var(--content-gap) var(--gap); }
|
||||||
|
body.type-newsletter.kind-page .newsletter-sub .notice {
|
||||||
|
font-size: .9em;
|
||||||
|
font-weight: bold;
|
||||||
|
color: var(--signature);
|
||||||
|
line-height: 1.6; }
|
||||||
|
body.type-newsletter.kind-page .newsletter-sub .subscribe-form {
|
||||||
|
margin: var(--content-gap) 0 0; }
|
|
@ -0,0 +1 @@
|
||||||
|
{"Target":"/assets/css/extended.css","MediaType":"text/css","Data":{}}
|
|
@ -0,0 +1,571 @@
|
||||||
|
/* Background */
|
||||||
|
.chroma {
|
||||||
|
background-color: #ffffff; }
|
||||||
|
|
||||||
|
/* Other */
|
||||||
|
/* Error */
|
||||||
|
.chroma .err {
|
||||||
|
color: #a61717;
|
||||||
|
background-color: #e3d2d2; }
|
||||||
|
|
||||||
|
/* LineTableTD */
|
||||||
|
.chroma .lntd {
|
||||||
|
vertical-align: top;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0; }
|
||||||
|
|
||||||
|
/* LineTable */
|
||||||
|
.chroma .lntable {
|
||||||
|
border-spacing: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
width: auto;
|
||||||
|
overflow: auto;
|
||||||
|
display: block; }
|
||||||
|
|
||||||
|
/* LineHighlight */
|
||||||
|
.chroma .hl {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #ffffcc; }
|
||||||
|
|
||||||
|
/* LineNumbersTable */
|
||||||
|
.chroma .lnt {
|
||||||
|
margin-right: 0.4em;
|
||||||
|
padding: 0 0.4em 0 0.4em;
|
||||||
|
color: #7f7f7f; }
|
||||||
|
|
||||||
|
/* LineNumbers */
|
||||||
|
.chroma .ln {
|
||||||
|
margin-right: 0.4em;
|
||||||
|
padding: 0 0.4em 0 0.4em;
|
||||||
|
color: #7f7f7f; }
|
||||||
|
|
||||||
|
/* Keyword */
|
||||||
|
.chroma .k {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* KeywordConstant */
|
||||||
|
.chroma .kc {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* KeywordDeclaration */
|
||||||
|
.chroma .kd {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* KeywordNamespace */
|
||||||
|
.chroma .kn {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* KeywordPseudo */
|
||||||
|
.chroma .kp {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* KeywordReserved */
|
||||||
|
.chroma .kr {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* KeywordType */
|
||||||
|
.chroma .kt {
|
||||||
|
color: #445588;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Name */
|
||||||
|
/* NameAttribute */
|
||||||
|
.chroma .na {
|
||||||
|
color: #008080; }
|
||||||
|
|
||||||
|
/* NameBuiltin */
|
||||||
|
.chroma .nb {
|
||||||
|
color: #0086b3; }
|
||||||
|
|
||||||
|
/* NameBuiltinPseudo */
|
||||||
|
.chroma .bp {
|
||||||
|
color: #999999; }
|
||||||
|
|
||||||
|
/* NameClass */
|
||||||
|
.chroma .nc {
|
||||||
|
color: #445588;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* NameConstant */
|
||||||
|
.chroma .no {
|
||||||
|
color: #008080; }
|
||||||
|
|
||||||
|
/* NameDecorator */
|
||||||
|
.chroma .nd {
|
||||||
|
color: #3c5d5d;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* NameEntity */
|
||||||
|
.chroma .ni {
|
||||||
|
color: #800080; }
|
||||||
|
|
||||||
|
/* NameException */
|
||||||
|
.chroma .ne {
|
||||||
|
color: #990000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* NameFunction */
|
||||||
|
.chroma .nf {
|
||||||
|
color: #990000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* NameFunctionMagic */
|
||||||
|
/* NameLabel */
|
||||||
|
.chroma .nl {
|
||||||
|
color: #990000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* NameNamespace */
|
||||||
|
.chroma .nn {
|
||||||
|
color: #555555; }
|
||||||
|
|
||||||
|
/* NameOther */
|
||||||
|
/* NameProperty */
|
||||||
|
/* NameTag */
|
||||||
|
.chroma .nt {
|
||||||
|
color: #000080; }
|
||||||
|
|
||||||
|
/* NameVariable */
|
||||||
|
.chroma .nv {
|
||||||
|
color: #008080; }
|
||||||
|
|
||||||
|
/* NameVariableClass */
|
||||||
|
.chroma .vc {
|
||||||
|
color: #008080; }
|
||||||
|
|
||||||
|
/* NameVariableGlobal */
|
||||||
|
.chroma .vg {
|
||||||
|
color: #008080; }
|
||||||
|
|
||||||
|
/* NameVariableInstance */
|
||||||
|
.chroma .vi {
|
||||||
|
color: #008080; }
|
||||||
|
|
||||||
|
/* NameVariableMagic */
|
||||||
|
/* Literal */
|
||||||
|
/* LiteralDate */
|
||||||
|
/* LiteralString */
|
||||||
|
.chroma .s {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringAffix */
|
||||||
|
.chroma .sa {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringBacktick */
|
||||||
|
.chroma .sb {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringChar */
|
||||||
|
.chroma .sc {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringDelimiter */
|
||||||
|
.chroma .dl {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringDoc */
|
||||||
|
.chroma .sd {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringDouble */
|
||||||
|
.chroma .s2 {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringEscape */
|
||||||
|
.chroma .se {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringHeredoc */
|
||||||
|
.chroma .sh {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringInterpol */
|
||||||
|
.chroma .si {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringOther */
|
||||||
|
.chroma .sx {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringRegex */
|
||||||
|
.chroma .sr {
|
||||||
|
color: #009926; }
|
||||||
|
|
||||||
|
/* LiteralStringSingle */
|
||||||
|
.chroma .s1 {
|
||||||
|
color: #dd1144; }
|
||||||
|
|
||||||
|
/* LiteralStringSymbol */
|
||||||
|
.chroma .ss {
|
||||||
|
color: #990073; }
|
||||||
|
|
||||||
|
/* LiteralNumber */
|
||||||
|
.chroma .m {
|
||||||
|
color: #009999; }
|
||||||
|
|
||||||
|
/* LiteralNumberBin */
|
||||||
|
.chroma .mb {
|
||||||
|
color: #009999; }
|
||||||
|
|
||||||
|
/* LiteralNumberFloat */
|
||||||
|
.chroma .mf {
|
||||||
|
color: #009999; }
|
||||||
|
|
||||||
|
/* LiteralNumberHex */
|
||||||
|
.chroma .mh {
|
||||||
|
color: #009999; }
|
||||||
|
|
||||||
|
/* LiteralNumberInteger */
|
||||||
|
.chroma .mi {
|
||||||
|
color: #009999; }
|
||||||
|
|
||||||
|
/* LiteralNumberIntegerLong */
|
||||||
|
.chroma .il {
|
||||||
|
color: #009999; }
|
||||||
|
|
||||||
|
/* LiteralNumberOct */
|
||||||
|
.chroma .mo {
|
||||||
|
color: #009999; }
|
||||||
|
|
||||||
|
/* Operator */
|
||||||
|
.chroma .o {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* OperatorWord */
|
||||||
|
.chroma .ow {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* Punctuation */
|
||||||
|
/* Comment */
|
||||||
|
.chroma .c {
|
||||||
|
color: #999988;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* CommentHashbang */
|
||||||
|
.chroma .ch {
|
||||||
|
color: #999988;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* CommentMultiline */
|
||||||
|
.chroma .cm {
|
||||||
|
color: #999988;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* CommentSingle */
|
||||||
|
.chroma .c1 {
|
||||||
|
color: #999988;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* CommentSpecial */
|
||||||
|
.chroma .cs {
|
||||||
|
color: #999999;
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* CommentPreproc */
|
||||||
|
.chroma .cp {
|
||||||
|
color: #999999;
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* CommentPreprocFile */
|
||||||
|
.chroma .cpf {
|
||||||
|
color: #999999;
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* Generic */
|
||||||
|
/* GenericDeleted */
|
||||||
|
.chroma .gd {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ffdddd; }
|
||||||
|
|
||||||
|
/* GenericEmph */
|
||||||
|
.chroma .ge {
|
||||||
|
color: #000000;
|
||||||
|
font-style: italic; }
|
||||||
|
|
||||||
|
/* GenericError */
|
||||||
|
.chroma .gr {
|
||||||
|
color: #aa0000; }
|
||||||
|
|
||||||
|
/* GenericHeading */
|
||||||
|
.chroma .gh {
|
||||||
|
color: #999999; }
|
||||||
|
|
||||||
|
/* GenericInserted */
|
||||||
|
.chroma .gi {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #ddffdd; }
|
||||||
|
|
||||||
|
/* GenericOutput */
|
||||||
|
.chroma .go {
|
||||||
|
color: #888888; }
|
||||||
|
|
||||||
|
/* GenericPrompt */
|
||||||
|
.chroma .gp {
|
||||||
|
color: #555555; }
|
||||||
|
|
||||||
|
/* GenericStrong */
|
||||||
|
.chroma .gs {
|
||||||
|
font-weight: bold; }
|
||||||
|
|
||||||
|
/* GenericSubheading */
|
||||||
|
.chroma .gu {
|
||||||
|
color: #aaaaaa; }
|
||||||
|
|
||||||
|
/* GenericTraceback */
|
||||||
|
.chroma .gt {
|
||||||
|
color: #aa0000; }
|
||||||
|
|
||||||
|
/* GenericUnderline */
|
||||||
|
.chroma .gl {
|
||||||
|
text-decoration: underline; }
|
||||||
|
|
||||||
|
/* TextWhitespace */
|
||||||
|
.chroma .w {
|
||||||
|
color: #bbbbbb; }
|
||||||
|
|
||||||
|
.chroma {
|
||||||
|
background-color: #f6f8fa; }
|
||||||
|
|
||||||
|
.dark {
|
||||||
|
/* Background */
|
||||||
|
/* Other */
|
||||||
|
/* Error */
|
||||||
|
/* LineTableTD */
|
||||||
|
/* LineTable */
|
||||||
|
/* LineHighlight */
|
||||||
|
/* LineNumbersTable */
|
||||||
|
/* LineNumbers */
|
||||||
|
/* Keyword */
|
||||||
|
/* KeywordConstant */
|
||||||
|
/* KeywordDeclaration */
|
||||||
|
/* KeywordNamespace */
|
||||||
|
/* KeywordPseudo */
|
||||||
|
/* KeywordReserved */
|
||||||
|
/* KeywordType */
|
||||||
|
/* Name */
|
||||||
|
/* NameAttribute */
|
||||||
|
/* NameBuiltin */
|
||||||
|
/* NameBuiltinPseudo */
|
||||||
|
/* NameClass */
|
||||||
|
/* NameConstant */
|
||||||
|
/* NameDecorator */
|
||||||
|
/* NameEntity */
|
||||||
|
/* NameException */
|
||||||
|
/* NameFunction */
|
||||||
|
/* NameFunctionMagic */
|
||||||
|
/* NameLabel */
|
||||||
|
/* NameNamespace */
|
||||||
|
/* NameOther */
|
||||||
|
/* NameProperty */
|
||||||
|
/* NameTag */
|
||||||
|
/* NameVariable */
|
||||||
|
/* NameVariableClass */
|
||||||
|
/* NameVariableGlobal */
|
||||||
|
/* NameVariableInstance */
|
||||||
|
/* NameVariableMagic */
|
||||||
|
/* Literal */
|
||||||
|
/* LiteralDate */
|
||||||
|
/* LiteralString */
|
||||||
|
/* LiteralStringAffix */
|
||||||
|
/* LiteralStringBacktick */
|
||||||
|
/* LiteralStringChar */
|
||||||
|
/* LiteralStringDelimiter */
|
||||||
|
/* LiteralStringDoc */
|
||||||
|
/* LiteralStringDouble */
|
||||||
|
/* LiteralStringEscape */
|
||||||
|
/* LiteralStringHeredoc */
|
||||||
|
/* LiteralStringInterpol */
|
||||||
|
/* LiteralStringOther */
|
||||||
|
/* LiteralStringRegex */
|
||||||
|
/* LiteralStringSingle */
|
||||||
|
/* LiteralStringSymbol */
|
||||||
|
/* LiteralNumber */
|
||||||
|
/* LiteralNumberBin */
|
||||||
|
/* LiteralNumberFloat */
|
||||||
|
/* LiteralNumberHex */
|
||||||
|
/* LiteralNumberInteger */
|
||||||
|
/* LiteralNumberIntegerLong */
|
||||||
|
/* LiteralNumberOct */
|
||||||
|
/* Operator */
|
||||||
|
/* OperatorWord */
|
||||||
|
/* Punctuation */
|
||||||
|
/* Comment */
|
||||||
|
/* CommentHashbang */
|
||||||
|
/* CommentMultiline */
|
||||||
|
/* CommentSingle */
|
||||||
|
/* CommentSpecial */
|
||||||
|
/* CommentPreproc */
|
||||||
|
/* CommentPreprocFile */
|
||||||
|
/* Generic */
|
||||||
|
/* GenericDeleted */
|
||||||
|
/* GenericEmph */
|
||||||
|
/* GenericError */
|
||||||
|
/* GenericHeading */
|
||||||
|
/* GenericInserted */
|
||||||
|
/* GenericOutput */
|
||||||
|
/* GenericPrompt */
|
||||||
|
/* GenericStrong */
|
||||||
|
/* GenericSubheading */
|
||||||
|
/* GenericTraceback */
|
||||||
|
/* GenericUnderline */
|
||||||
|
/* TextWhitespace */ }
|
||||||
|
.dark .chroma {
|
||||||
|
color: #f8f8f2;
|
||||||
|
background-color: #282a36; }
|
||||||
|
.dark .chroma .lntd {
|
||||||
|
vertical-align: top;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0; }
|
||||||
|
.dark .chroma .lntable {
|
||||||
|
border-spacing: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
width: auto;
|
||||||
|
overflow: auto;
|
||||||
|
display: block; }
|
||||||
|
.dark .chroma .hl {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #ffffcc; }
|
||||||
|
.dark .chroma .lnt {
|
||||||
|
margin-right: 0.4em;
|
||||||
|
padding: 0 0.4em 0 0.4em;
|
||||||
|
color: #7f7f7f; }
|
||||||
|
.dark .chroma .ln {
|
||||||
|
margin-right: 0.4em;
|
||||||
|
padding: 0 0.4em 0 0.4em;
|
||||||
|
color: #7f7f7f; }
|
||||||
|
.dark .chroma .k {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .kc {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .kd {
|
||||||
|
color: #8be9fd;
|
||||||
|
font-style: italic; }
|
||||||
|
.dark .chroma .kn {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .kp {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .kr {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .kt {
|
||||||
|
color: #8be9fd; }
|
||||||
|
.dark .chroma .na {
|
||||||
|
color: #50fa7b; }
|
||||||
|
.dark .chroma .nb {
|
||||||
|
color: #8be9fd;
|
||||||
|
font-style: italic; }
|
||||||
|
.dark .chroma .nc {
|
||||||
|
color: #50fa7b; }
|
||||||
|
.dark .chroma .nf {
|
||||||
|
color: #50fa7b; }
|
||||||
|
.dark .chroma .nl {
|
||||||
|
color: #8be9fd;
|
||||||
|
font-style: italic; }
|
||||||
|
.dark .chroma .nt {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .nv {
|
||||||
|
color: #8be9fd;
|
||||||
|
font-style: italic; }
|
||||||
|
.dark .chroma .vc {
|
||||||
|
color: #8be9fd;
|
||||||
|
font-style: italic; }
|
||||||
|
.dark .chroma .vg {
|
||||||
|
color: #8be9fd;
|
||||||
|
font-style: italic; }
|
||||||
|
.dark .chroma .vi {
|
||||||
|
color: #8be9fd;
|
||||||
|
font-style: italic; }
|
||||||
|
.dark .chroma .s {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .sa {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .sb {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .sc {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .dl {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .sd {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .s2 {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .se {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .sh {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .si {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .sx {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .sr {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .s1 {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .ss {
|
||||||
|
color: #f1fa8c; }
|
||||||
|
.dark .chroma .m {
|
||||||
|
color: #bd93f9; }
|
||||||
|
.dark .chroma .mb {
|
||||||
|
color: #bd93f9; }
|
||||||
|
.dark .chroma .mf {
|
||||||
|
color: #bd93f9; }
|
||||||
|
.dark .chroma .mh {
|
||||||
|
color: #bd93f9; }
|
||||||
|
.dark .chroma .mi {
|
||||||
|
color: #bd93f9; }
|
||||||
|
.dark .chroma .il {
|
||||||
|
color: #bd93f9; }
|
||||||
|
.dark .chroma .mo {
|
||||||
|
color: #bd93f9; }
|
||||||
|
.dark .chroma .o {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .ow {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .c {
|
||||||
|
color: #6272a4; }
|
||||||
|
.dark .chroma .ch {
|
||||||
|
color: #6272a4; }
|
||||||
|
.dark .chroma .cm {
|
||||||
|
color: #6272a4; }
|
||||||
|
.dark .chroma .c1 {
|
||||||
|
color: #6272a4; }
|
||||||
|
.dark .chroma .cs {
|
||||||
|
color: #6272a4; }
|
||||||
|
.dark .chroma .cp {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .cpf {
|
||||||
|
color: #ff79c6; }
|
||||||
|
.dark .chroma .gd {
|
||||||
|
color: #ff5555; }
|
||||||
|
.dark .chroma .ge {
|
||||||
|
text-decoration: underline; }
|
||||||
|
.dark .chroma .gh {
|
||||||
|
font-weight: bold; }
|
||||||
|
.dark .chroma .gi {
|
||||||
|
color: #50fa7b;
|
||||||
|
font-weight: bold; }
|
||||||
|
.dark .chroma .go {
|
||||||
|
color: #44475a; }
|
||||||
|
.dark .chroma .gu {
|
||||||
|
font-weight: bold; }
|
||||||
|
.dark .chroma .gl {
|
||||||
|
text-decoration: underline; }
|
|
@ -0,0 +1 @@
|
||||||
|
{"Target":"/css/common/highlight.css","MediaType":"text/css","Data":{}}
|
1
themes/PaperModX
Submodule
1
themes/PaperModX
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit b787253f7b03d27c7939f919559d726eec90416f
|
1
themes/ananke
Submodule
1
themes/ananke
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 33fbda0e9d3e97c92af5d195be94e8eea8003239
|
Loading…
Reference in a new issue