Update to latest

This commit is contained in:
Simeon "Waldo" Wallrath 2025-08-19 11:46:30 +02:00
parent a1edd79fb0
commit bd911e53e9
59 changed files with 4899 additions and 4073 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -36,8 +36,8 @@ website:
theme: theme:
dark: [darkly, theme.scss] dark: [darkly, themedark.scss]
light: [flatly, theme.scss] light: [flatly, themedark.scss]
# Set the logo for the header # Set the logo for the header

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -37,101 +37,11 @@
--quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
} }
code span.al { /* syntax highlight based on Pandoc's rules */
background-color: #2a0f15;
font-weight: bold;
color: #f07178;
}
code span.an {
color: #d4d0ab;
}
code span.at {
color: #00e0e0;
}
code span.bn {
color: #d4d0ab;
}
code span.bu {
color: #abe338;
}
code span.ch {
color: #abe338;
}
code span.co {
font-style: italic;
color: #f8f8f2;
}
code span.cv {
color: #ffd700;
}
code span.cn {
color: #ffd700;
}
code span.cf {
font-weight: bold;
color: #ffa07a;
}
code span.dt {
color: #ffa07a;
}
code span.dv {
color: #d4d0ab;
}
code span.do {
color: #f8f8f2;
}
code span.er {
color: #f07178;
text-decoration: underline;
}
code span.ex {
font-weight: bold;
color: #00e0e0;
}
code span.fl {
color: #d4d0ab;
}
code span.fu {
color: #ffa07a;
}
code span.im {
color: #abe338;
}
code span.in {
color: #d4d0ab;
}
code span.kw {
font-weight: bold;
color: #ffa07a;
}
pre > code.sourceCode > span { pre > code.sourceCode > span {
color: #f8f8f2; color: #f8f8f2;
} }
code span {
color: #f8f8f2;
}
code.sourceCode > span { code.sourceCode > span {
color: #f8f8f2; color: #f8f8f2;
} }
@ -141,43 +51,163 @@ div.sourceCode pre.sourceCode {
color: #f8f8f2; color: #f8f8f2;
} }
/* Normal */
code span {
color: #f8f8f2;
}
/* Alert */
code span.al {
color: #f07178;
}
/* Annotation */
code span.an {
color: #d4d0ab;
}
/* Attribute */
code span.at {
color: #00e0e0;
}
/* BaseN */
code span.bn {
color: #d4d0ab;
}
/* BuiltIn */
code span.bu {
color: #abe338;
}
/* ControlFlow */
code span.cf {
font-weight: bold;
color: #ffa07a;
}
/* Char */
code span.ch {
color: #abe338;
}
/* Constant */
code span.cn {
color: #ffd700;
}
/* Comment */
code span.co {
font-style: italic;
color: #f8f8f2;
}
/* CommentVar */
code span.cv {
color: #ffd700;
}
/* Documentation */
code span.do {
color: #f8f8f2;
}
/* DataType */
code span.dt {
color: #ffa07a;
}
/* DecVal */
code span.dv {
color: #d4d0ab;
}
/* Error */
code span.er {
color: #f07178;
text-decoration: underline;
}
/* Extension */
code span.ex {
font-weight: bold;
color: #00e0e0;
}
/* Float */
code span.fl {
color: #d4d0ab;
}
/* Function */
code span.fu {
color: #ffa07a;
}
/* Import */
code span.im {
color: #abe338;
}
/* Information */
code span.in {
color: #d4d0ab;
}
/* Keyword */
code span.kw {
font-weight: bold;
color: #ffa07a;
}
/* Operator */
code span.op { code span.op {
color: #ffa07a; color: #ffa07a;
} }
/* Other */
code span.ot { code span.ot {
color: #00e0e0; color: #00e0e0;
} }
/* Preprocessor */
code span.pp { code span.pp {
color: #dcc6e0; color: #dcc6e0;
} }
/* RegionMarker */
code span.re { code span.re {
background-color: #f8f8f2; background-color: #f8f8f2;
color: #00e0e0; color: #00e0e0;
} }
/* SpecialChar */
code span.sc { code span.sc {
color: #abe338; color: #abe338;
} }
/* SpecialString */
code span.ss { code span.ss {
color: #abe338; color: #abe338;
} }
/* String */
code span.st { code span.st {
color: #abe338; color: #abe338;
} }
/* Variable */
code span.va { code span.va {
color: #00e0e0; color: #00e0e0;
} }
/* VerbatimString */
code span.vs { code span.vs {
color: #abe338; color: #abe338;
} }
/* Warning */
code span.wa { code span.wa {
color: #dcc6e0; color: #dcc6e0;
} }
@ -186,4 +216,4 @@ code span.wa {
content: "</"; content: "</";
} }
/*# sourceMappingURL=358cf41e74b1efa21c8e6dcd38cd2fd6.css.map */ /*# sourceMappingURL=9510e8932c082882303fe901a8ba9f6d.css.map */

View file

@ -36,14 +36,11 @@
--quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
} }
/* syntax highlight based on Pandoc's rules */
pre > code.sourceCode > span { pre > code.sourceCode > span {
color: #003B4F; color: #003B4F;
} }
code span {
color: #003B4F;
}
code.sourceCode > span { code.sourceCode > span {
color: #003B4F; color: #003B4F;
} }
@ -53,153 +50,187 @@ div.sourceCode pre.sourceCode {
color: #003B4F; color: #003B4F;
} }
code span.ot { /* Normal */
code span {
color: #003B4F; color: #003B4F;
}
/* Alert */
code span.al {
color: #AD0000;
font-style: inherit; font-style: inherit;
} }
code span.at { /* Annotation */
color: #657422;
font-style: inherit;
}
code span.ss {
color: #20794D;
font-style: inherit;
}
code span.an { code span.an {
color: #5E5E5E; color: #5E5E5E;
font-style: inherit; font-style: inherit;
} }
code span.fu { /* Attribute */
color: #4758AB; code span.at {
color: #657422;
font-style: inherit; font-style: inherit;
} }
code span.st { /* BaseN */
color: #20794D; code span.bn {
color: #AD0000;
font-style: inherit; font-style: inherit;
} }
/* BuiltIn */
code span.bu {
font-style: inherit;
}
/* ControlFlow */
code span.cf { code span.cf {
color: #003B4F; color: #003B4F;
font-weight: bold; font-weight: bold;
font-style: inherit; font-style: inherit;
} }
code span.op { /* Char */
color: #5E5E5E;
font-style: inherit;
}
code span.er {
color: #AD0000;
font-style: inherit;
}
code span.bn {
color: #AD0000;
font-style: inherit;
}
code span.al {
color: #AD0000;
font-style: inherit;
}
code span.va {
color: #111111;
font-style: inherit;
}
code span.bu {
font-style: inherit;
}
code span.ex {
font-style: inherit;
}
code span.pp {
color: #AD0000;
font-style: inherit;
}
code span.in {
color: #5E5E5E;
font-style: inherit;
}
code span.vs {
color: #20794D;
font-style: inherit;
}
code span.wa {
color: #5E5E5E;
font-style: italic;
}
code span.do {
color: #5E5E5E;
font-style: italic;
}
code span.im {
color: #00769E;
font-style: inherit;
}
code span.ch { code span.ch {
color: #20794D; color: #20794D;
font-style: inherit; font-style: inherit;
} }
code span.dt { /* Constant */
color: #AD0000;
font-style: inherit;
}
code span.fl {
color: #AD0000;
font-style: inherit;
}
code span.co {
color: #5E5E5E;
font-style: inherit;
}
code span.cv {
color: #5E5E5E;
font-style: italic;
}
code span.cn { code span.cn {
color: #8f5902; color: #8f5902;
font-style: inherit; font-style: inherit;
} }
code span.sc { /* Comment */
code span.co {
color: #5E5E5E; color: #5E5E5E;
font-style: inherit; font-style: inherit;
} }
/* CommentVar */
code span.cv {
color: #5E5E5E;
font-style: italic;
}
/* Documentation */
code span.do {
color: #5E5E5E;
font-style: italic;
}
/* DataType */
code span.dt {
color: #AD0000;
font-style: inherit;
}
/* DecVal */
code span.dv { code span.dv {
color: #AD0000; color: #AD0000;
font-style: inherit; font-style: inherit;
} }
/* Error */
code span.er {
color: #AD0000;
font-style: inherit;
}
/* Extension */
code span.ex {
font-style: inherit;
}
/* Float */
code span.fl {
color: #AD0000;
font-style: inherit;
}
/* Function */
code span.fu {
color: #4758AB;
font-style: inherit;
}
/* Import */
code span.im {
color: #00769E;
font-style: inherit;
}
/* Information */
code span.in {
color: #5E5E5E;
font-style: inherit;
}
/* Keyword */
code span.kw { code span.kw {
color: #003B4F; color: #003B4F;
font-weight: bold; font-weight: bold;
font-style: inherit; font-style: inherit;
} }
/* Operator */
code span.op {
color: #5E5E5E;
font-style: inherit;
}
/* Other */
code span.ot {
color: #003B4F;
font-style: inherit;
}
/* Preprocessor */
code span.pp {
color: #AD0000;
font-style: inherit;
}
/* SpecialChar */
code span.sc {
color: #5E5E5E;
font-style: inherit;
}
/* SpecialString */
code span.ss {
color: #20794D;
font-style: inherit;
}
/* String */
code span.st {
color: #20794D;
font-style: inherit;
}
/* Variable */
code span.va {
color: #111111;
font-style: inherit;
}
/* VerbatimString */
code span.vs {
color: #20794D;
font-style: inherit;
}
/* Warning */
code span.wa {
color: #5E5E5E;
font-style: italic;
}
.prevent-inlining { .prevent-inlining {
content: "</"; content: "</";
} }
/*# sourceMappingURL=c9c5d451c23b744f9cb2c98992a0aef2.css.map */ /*# sourceMappingURL=538754cbb4183396a2435bcb80637e05.css.map */

View file

@ -1,3 +1,5 @@
import * as tabsets from "./tabsets/tabsets.js";
const sectionChanged = new CustomEvent("quarto-sectionChanged", { const sectionChanged = new CustomEvent("quarto-sectionChanged", {
detail: {}, detail: {},
bubbles: true, bubbles: true,
@ -64,19 +66,41 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
} }
}; };
// fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior) // dispatch for htmlwidgets
function fireSlideEnter(e) { // they use slideenter event to trigger resize
function fireSlideEnter() {
const event = window.document.createEvent("Event"); const event = window.document.createEvent("Event");
event.initEvent("slideenter", true, true); event.initEvent("slideenter", true, true);
window.document.dispatchEvent(event); window.document.dispatchEvent(event);
} }
const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]'); const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
tabs.forEach((tab) => { tabs.forEach((tab) => {
tab.addEventListener("shown.bs.tab", fireSlideEnter); tab.addEventListener("shown.bs.tab", fireSlideEnter);
}); });
// fire slideEnter for tabby tab activations (for htmlwidget resize behavior) // dispatch for shiny
document.addEventListener("tabby", fireSlideEnter, false); // they use BS shown and hidden events to trigger rendering
function distpatchShinyEvents(previous, current) {
if (window.jQuery) {
if (previous) {
window.jQuery(previous).trigger("hidden");
}
if (current) {
window.jQuery(current).trigger("shown");
}
}
}
// tabby.js listener: Trigger event for htmlwidget and shiny
document.addEventListener(
"tabby",
function (event) {
fireSlideEnter();
distpatchShinyEvents(event.detail.previousTab, event.detail.tab);
},
false
);
// Track scrolling and mark TOC links as active // Track scrolling and mark TOC links as active
// get table of contents and sidebar (bail if we don't have at least one) // get table of contents and sidebar (bail if we don't have at least one)
@ -236,9 +260,10 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
for (const listingPath of listingPaths) { for (const listingPath of listingPaths) {
const pathWithoutLeadingSlash = listingPath.listing.substring(1); const pathWithoutLeadingSlash = listingPath.listing.substring(1);
for (const item of listingPath.items) { for (const item of listingPath.items) {
const encodedItem = encodeURI(item);
if ( if (
item === currentPagePath || encodedItem === currentPagePath ||
item === currentPagePath + "index.html" encodedItem === currentPagePath + "index.html"
) { ) {
// Resolve this path against the offset to be sure // Resolve this path against the offset to be sure
// we already are using the correct path to the listing // we already are using the correct path to the listing
@ -740,7 +765,7 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
// See if there is an active child to this element // See if there is an active child to this element
let hasActiveChild = false; let hasActiveChild = false;
for (child of el.children) { for (const child of el.children) {
hasActiveChild = walk(child, depth) || hasActiveChild; hasActiveChild = walk(child, depth) || hasActiveChild;
} }
@ -800,98 +825,7 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
highlightReaderToggle(isReaderMode()); highlightReaderToggle(isReaderMode());
}); });
// grouped tabsets tabsets.init();
window.addEventListener("pageshow", (_event) => {
function getTabSettings() {
const data = localStorage.getItem("quarto-persistent-tabsets-data");
if (!data) {
localStorage.setItem("quarto-persistent-tabsets-data", "{}");
return {};
}
if (data) {
return JSON.parse(data);
}
}
function setTabSettings(data) {
localStorage.setItem(
"quarto-persistent-tabsets-data",
JSON.stringify(data)
);
}
function setTabState(groupName, groupValue) {
const data = getTabSettings();
data[groupName] = groupValue;
setTabSettings(data);
}
function toggleTab(tab, active) {
const tabPanelId = tab.getAttribute("aria-controls");
const tabPanel = document.getElementById(tabPanelId);
if (active) {
tab.classList.add("active");
tabPanel.classList.add("active");
} else {
tab.classList.remove("active");
tabPanel.classList.remove("active");
}
}
function toggleAll(selectedGroup, selectorsToSync) {
for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
const active = selectedGroup === thisGroup;
for (const tab of tabs) {
toggleTab(tab, active);
}
}
}
function findSelectorsToSyncByLanguage() {
const result = {};
const tabs = Array.from(
document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
);
for (const item of tabs) {
const div = item.parentElement.parentElement.parentElement;
const group = div.getAttribute("data-group");
if (!result[group]) {
result[group] = {};
}
const selectorsToSync = result[group];
const value = item.innerHTML;
if (!selectorsToSync[value]) {
selectorsToSync[value] = [];
}
selectorsToSync[value].push(item);
}
return result;
}
function setupSelectorSync() {
const selectorsToSync = findSelectorsToSyncByLanguage();
Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
Object.entries(tabSetsByValue).forEach(([value, items]) => {
items.forEach((item) => {
item.addEventListener("click", (_event) => {
setTabState(group, value);
toggleAll(value, selectorsToSync[group]);
});
});
});
});
return selectorsToSync;
}
const selectorsToSync = setupSelectorSync();
for (const [group, selectedName] of Object.entries(getTabSettings())) {
const selectors = selectorsToSync[group];
// it's possible that stale state gives us empty selections, so we explicitly check here.
if (selectors) {
toggleAll(selectedName, selectors);
}
}
});
function throttle(func, wait) { function throttle(func, wait) {
let waiting = false; let waiting = false;

View file

@ -0,0 +1,95 @@
// grouped tabsets
export function init() {
window.addEventListener("pageshow", (_event) => {
function getTabSettings() {
const data = localStorage.getItem("quarto-persistent-tabsets-data");
if (!data) {
localStorage.setItem("quarto-persistent-tabsets-data", "{}");
return {};
}
if (data) {
return JSON.parse(data);
}
}
function setTabSettings(data) {
localStorage.setItem(
"quarto-persistent-tabsets-data",
JSON.stringify(data)
);
}
function setTabState(groupName, groupValue) {
const data = getTabSettings();
data[groupName] = groupValue;
setTabSettings(data);
}
function toggleTab(tab, active) {
const tabPanelId = tab.getAttribute("aria-controls");
const tabPanel = document.getElementById(tabPanelId);
if (active) {
tab.classList.add("active");
tabPanel.classList.add("active");
} else {
tab.classList.remove("active");
tabPanel.classList.remove("active");
}
}
function toggleAll(selectedGroup, selectorsToSync) {
for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
const active = selectedGroup === thisGroup;
for (const tab of tabs) {
toggleTab(tab, active);
}
}
}
function findSelectorsToSyncByLanguage() {
const result = {};
const tabs = Array.from(
document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
);
for (const item of tabs) {
const div = item.parentElement.parentElement.parentElement;
const group = div.getAttribute("data-group");
if (!result[group]) {
result[group] = {};
}
const selectorsToSync = result[group];
const value = item.innerHTML;
if (!selectorsToSync[value]) {
selectorsToSync[value] = [];
}
selectorsToSync[value].push(item);
}
return result;
}
function setupSelectorSync() {
const selectorsToSync = findSelectorsToSyncByLanguage();
Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
Object.entries(tabSetsByValue).forEach(([value, items]) => {
items.forEach((item) => {
item.addEventListener("click", (_event) => {
setTabState(group, value);
toggleAll(value, selectorsToSync[group]);
});
});
});
});
return selectorsToSync;
}
const selectorsToSync = setupSelectorSync();
for (const [group, selectedName] of Object.entries(getTabSettings())) {
const selectors = selectorsToSync[group];
// it's possible that stale state gives us empty selections, so we explicitly check here.
if (selectors) {
toggleAll(selectedName, selectors);
}
}
});
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -313,6 +313,8 @@ Wordpress updates itself. Plugins may need manual updating via the Wordpress Int
# Wiki.js # Wiki.js
Wiki.js was dumped in favour of Quarto.
Wiki.js is an open source Wiki software. The Wiki.js instance is hosted on Uberspace.de and you are currently accessing it on [https://docs.virtuos.world](https://docs.virtuos.world). Wiki.js is an open source Wiki software. The Wiki.js instance is hosted on Uberspace.de and you are currently accessing it on [https://docs.virtuos.world](https://docs.virtuos.world).
## Installation on Uberspace ## Installation on Uberspace
@ -331,3 +333,8 @@ An update script is available at the same location:
Pretix is an open source ticketing system. It's currently not in use. This installation is not as easy, but well documented here: Pretix is an open source ticketing system. It's currently not in use. This installation is not as easy, but well documented here:
[https://docs.pretix.eu/en/latest/admin/installation/docker_smallscale.html](https://docs.pretix.eu/en/latest/admin/installation/docker_smallscale.html) [https://docs.pretix.eu/en/latest/admin/installation/docker_smallscale.html](https://docs.pretix.eu/en/latest/admin/installation/docker_smallscale.html)
# BlueprintUE
I failed to host BlueprintUE multiple times (I don't know.=). I gave up and use the official page at https://blueprintue.com/profile/waldo/.

View file

@ -1,3 +1,4 @@
/*-- scss:defaults --*/ /*-- scss:defaults --*/
/* Define any default settings for the theme */ /* Define any default settings for the theme */
@ -8,6 +9,8 @@ $link-color: #009fe3;
/*-- scss:rules --*/ /*-- scss:rules --*/
/* Add custom rules for sidebar items and sections */ /* Add custom rules for sidebar items and sections */
/* Top-level items: bold and with padding */ /* Top-level items: bold and with padding */
.sidebar-menu-container > ul > li.sidebar-item > .sidebar-item-container > a.sidebar-item-text { .sidebar-menu-container > ul > li.sidebar-item > .sidebar-item-container > a.sidebar-item-text {
font-weight: bold; font-weight: bold;
padding-top: 20px; padding-top: 20px;
@ -51,7 +54,7 @@ $link-color: #009fe3;
.navbar-logo{ .navbar-logo{
height: 35px !important; height: 30px !important;
margin: 0 !important; margin: 0 !important;
padding: 0 !important; padding: 0 !important;

110
themedark.scss Normal file
View file

@ -0,0 +1,110 @@
/*-- scss:defaults --*/
/* Define any default settings for the theme */
$primary: #151515;
$linkcolor: #009fe3;
$link-color: #009fe3;
/*-- scss:rules --*/
/* Add custom rules for sidebar items and sections */
/* Top-level items: bold and with padding */
.navbar-expand-lg {
padding: 8px !important;
}
body {
line-height: 1.8; /* controls line spacing */
}
p {
margin-bottom: 1.3em; /* controls paragraph spacing */
margin-top: 1.3em;
}
.quarto-page-breadcrumbs {
padding-bottom: 15px;
}
.sidebar-menu-container > ul > li.sidebar-item > .sidebar-item-container > a.sidebar-item-text {
font-weight: bold;
padding-top: 20px;
display: block;
}
/* Subitems: normal weight and no bold */
.sidebar-menu-container .sidebar-section .sidebar-item-text {
font-weight: normal;
}
/* Align and apply padding to .sidebar-item-toggle arrows to match subitems */
.sidebar-menu-container .sidebar-item-toggle {
font-weight: normal; /* Ensure arrow is not bold */
padding-top: 20px; /* Match top-level padding */
display: inline-block; /* Ensure proper alignment */
margin-left: 15px; /* Optional: indent to align with subitems */
}
/* Optional: additional spacing for non-first items */
.sidebar-menu-container > ul > li.sidebar-item:not(:first-child) > .sidebar-item-container > a.sidebar-item-text {
margin-top: 10px;
padding-top: 10px;
}
.sidebar-menu-container, .mt-2 {
margin-top: 0 !important;
padding-top: 0 !important;
}
.quarto-sidebar-section-1 {
padding-top: 2px
}
.sidebar-section .sidebar-item-text {
font-weight: normal;
}
.navbar-logo{
height: 35px !important;
margin: 0 !important;
padding: 0 !important;
border-radius: 5px;
margin-right: 20px !important;
max-height: none !important;
-webkit-filter: invert(1);
filter: invert(1);
}
.sidebar-item-text {
font-weight: bold
}
.quarto-container {
max-width: 1200px; /* Optional: limit max width */
margin: 0 auto; /* Optional: center horizontally */
}
/*-- scss:mixins --*/
/* Add any reusable mixins if necessary */
/*-- scss:functions --*/
/* Define any helper functions */
/*-- scss:uses --*/
/* Any specific imports or additional styles */

91
themelight.scss Normal file
View file

@ -0,0 +1,91 @@
/*-- scss:defaults --*/
/* Define any default settings for the theme */
$primary: #151515;
$linkcolor: #009fe3;
$link-color: #009fe3;
/*-- scss:rules --*/
/* Add custom rules for sidebar items and sections */
/* Top-level items: bold and with padding */
.sidebar-menu-container > ul > li.sidebar-item > .sidebar-item-container > a.sidebar-item-text {
font-weight: bold;
padding-top: 20px;
display: block;
}
/* Subitems: normal weight and no bold */
.sidebar-menu-container .sidebar-section .sidebar-item-text {
font-weight: normal;
}
/* Align and apply padding to .sidebar-item-toggle arrows to match subitems */
.sidebar-menu-container .sidebar-item-toggle {
font-weight: normal; /* Ensure arrow is not bold */
padding-top: 20px; /* Match top-level padding */
display: inline-block; /* Ensure proper alignment */
margin-left: 15px; /* Optional: indent to align with subitems */
}
/* Optional: additional spacing for non-first items */
.sidebar-menu-container > ul > li.sidebar-item:not(:first-child) > .sidebar-item-container > a.sidebar-item-text {
margin-top: 10px;
padding-top: 10px;
}
.sidebar-menu-container, .mt-2 {
margin-top: 0 !important;
padding-top: 0 !important;
}
.quarto-sidebar-section-1 {
padding-top: 2px
}
.sidebar-section .sidebar-item-text {
font-weight: normal;
}
.navbar-logo{
height: 35px !important;
margin: 0 !important;
padding: 0 !important;
border-radius: 5px;
margin-right: 20px !important;
max-height: none !important;
-webkit-filter: invert(1);
filter: invert(1);
}
.sidebar-item-text {
font-weight: bold
}
.quarto-container {
max-width: 1200px; /* Optional: limit max width */
margin: 0 auto; /* Optional: center horizontally */
}
/*-- scss:mixins --*/
/* Add any reusable mixins if necessary */
/*-- scss:functions --*/
/* Define any helper functions */
/*-- scss:uses --*/
/* Any specific imports or additional styles */