update to use .md's instead of static generated html

This commit is contained in:
2025-01-29 10:20:12 +11:00
parent d0c0475e9c
commit c457f0986d
53 changed files with 732 additions and 1578 deletions

View File

@@ -1,430 +1,48 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<title>Documentation Home</title>
<base href="https://lit.ruv.wtf/docs/">
<meta id="root-path" root-path="https://lit.ruv.wtf/docs/">
<meta name="viewport"
content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=5.0">
<meta charset="UTF-8">
<meta name="description" content="lit.ruv.wtf - Docs - Documentation Home">
<meta property="og:title" content="Documentation Home">
<meta property="og:description" content="lit.ruv.wtf - Docs - Documentation Home">
<meta property="og:type" content="website">
<meta property="og:url" content="https://lit.ruv.wtf/docs/index.html">
<meta property="og:image" content="undefined">
<meta property="og:site_name" content="lit.ruv.wtf - Docs">
<meta name="author" content="Litruv">
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="https://lit.ruv.wtf/docs/lib/rss.xml">
<script async="" id="webpage-script" src="lib/scripts/webpage.js"
onload="this.onload=null;this.setAttribute('loaded', 'true')"></script>
<script async="" id="minisearch-script" src="https://cdn.jsdelivr.net/npm/minisearch@6.3.0/dist/umd/index.min.js"
onload="this.onload=null;this.setAttribute('loaded', 'true')"></script>
<link rel="icon" href="lib/media/favicon.png">
<style>
body {
--line-width: 40em;
--line-width-adaptive: 40em;
--file-line-width: 40em;
--sidebar-width: min(20em, 80vw);
--collapse-arrow-size: 11px;
--tree-horizontal-spacing: 0.6em;
--tree-vertical-spacing: 0.6em;
--sidebar-margin: 12px
}
.sidebar {
height: 100%;
min-width: calc(var(--sidebar-width) + var(--divider-width-hover));
max-width: calc(var(--sidebar-width) + var(--divider-width-hover));
font-size: 14px;
z-index: 10;
position: relative;
overflow: hidden;
transition: min-width ease-in-out, max-width ease-in-out;
transition-duration: .2s;
contain: size
}
.sidebar-left {
left: 0
}
.sidebar-right {
right: 0
}
.sidebar.is-collapsed {
min-width: 0;
max-width: 0
}
body.floating-sidebars .sidebar {
position: absolute
}
.sidebar-content {
height: 100%;
min-width: calc(var(--sidebar-width) - var(--divider-width-hover));
top: 0;
padding: var(--sidebar-margin);
padding-top: 4em;
line-height: var(--line-height-tight);
background-color: var(--background-secondary);
transition: background-color, border-right, border-left, box-shadow;
transition-duration: var(--color-fade-speed);
transition-timing-function: ease-in-out;
position: absolute;
display: flex;
flex-direction: column
}
.sidebar:not(.is-collapsed) .sidebar-content {
min-width: calc(max(100%, var(--sidebar-width)) - 3px);
max-width: calc(max(100%, var(--sidebar-width)) - 3px)
}
.sidebar-left .sidebar-content {
left: 0;
border-top-right-radius: var(--radius-l);
border-bottom-right-radius: var(--radius-l)
}
.sidebar-right .sidebar-content {
right: 0;
border-top-left-radius: var(--radius-l);
border-bottom-left-radius: var(--radius-l)
}
.sidebar:has(.sidebar-content:empty):has(.topbar-content:empty) {
display: none
}
.sidebar-topbar {
height: 2em;
width: var(--sidebar-width);
top: var(--sidebar-margin);
padding-inline: var(--sidebar-margin);
z-index: 1;
position: fixed;
display: flex;
align-items: center;
transition: width ease-in-out;
transition-duration: inherit
}
.sidebar.is-collapsed .sidebar-topbar {
width: calc(2.3em + var(--sidebar-margin) * 2)
}
.sidebar .sidebar-topbar.is-collapsed {
width: 0
}
.sidebar-left .sidebar-topbar {
left: 0
}
.sidebar-right .sidebar-topbar {
right: 0
}
.topbar-content {
overflow: hidden;
overflow: clip;
width: 100%;
height: 100%;
display: flex;
align-items: center;
transition: inherit
}
.sidebar.is-collapsed .topbar-content {
width: 0;
transition: inherit
}
.clickable-icon.sidebar-collapse-icon {
background-color: transparent;
color: var(--icon-color-focused);
padding: 0 !important;
margin: 0 !important;
height: 100% !important;
width: 2.3em !important;
margin-inline: 0.14em !important;
position: absolute
}
.sidebar-left .clickable-icon.sidebar-collapse-icon {
transform: rotateY(180deg);
right: var(--sidebar-margin)
}
.sidebar-right .clickable-icon.sidebar-collapse-icon {
transform: rotateY(180deg);
left: var(--sidebar-margin)
}
.clickable-icon.sidebar-collapse-icon svg.svg-icon {
width: 100%;
height: 100%
}
.sidebar-section-header {
margin: 0 0 1em 0;
text-transform: uppercase;
letter-spacing: .06em;
font-weight: 600
}
body {
transition: background-color var(--color-fade-speed) ease-in-out
}
.webpage-container {
display: flex;
flex-direction: row;
height: 100%;
width: 100%;
align-items: stretch;
justify-content: center
}
.document-container {
opacity: 1;
flex-basis: 100%;
max-width: 100%;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
transition: opacity .2s ease-in-out;
contain: inline-size
}
.hide {
opacity: 0;
transition: opacity .2s ease-in-out
}
.document-container>.markdown-preview-view {
margin: var(--sidebar-margin);
margin-bottom: 0;
width: 100%;
width: -webkit-fill-available;
width: -moz-available;
width: fill-available;
background-color: var(--background-primary);
transition: background-color var(--color-fade-speed) ease-in-out;
border-top-right-radius: var(--window-radius, var(--radius-m));
border-top-left-radius: var(--window-radius, var(--radius-m));
overflow-x: hidden !important;
overflow-y: auto !important;
display: flex !important;
flex-direction: column !important;
align-items: center !important;
contain: inline-size
}
.document-container>.markdown-preview-view>.markdown-preview-sizer {
padding-bottom: 80vh !important;
width: 100% !important;
max-width: var(--line-width) !important;
flex-basis: var(--line-width) !important;
transition: background-color var(--color-fade-speed) ease-in-out;
contain: inline-size
}
.markdown-rendered img:not([width]),
.view-content img:not([width]) {
max-width: 100%;
outline: 0
}
.document-container>.view-content.embed {
display: flex;
padding: 1em;
height: 100%;
width: 100%;
align-items: center;
justify-content: center
}
.document-container>.view-content.embed>* {
max-width: 100%;
max-height: 100%;
object-fit: contain
}
:has(> :is(.math, table)) {
overflow-x: auto !important
}
.document-container>.view-content {
overflow-x: auto;
contain: content;
padding: 0;
margin: 0;
height: 100%
}
.scroll-highlight {
position: absolute;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 1000;
background-color: hsla(var(--color-accent-hsl), .25);
opacity: 0;
padding: 1em;
inset: 50%;
translate: -50% -50%;
border-radius: var(--radius-s)
}
</style>
<script
defer="">async function loadIncludes() { if ("file:" != location.protocol) { let e = document.querySelectorAll("include"); for (let t = 0; t < e.length; t++) { let o = e[t], l = o.getAttribute("src"); try { const e = await fetch(l); if (!e.ok) { console.log("Could not include file: " + l), o?.remove(); continue } let t = await e.text(), n = document.createRange().createContextualFragment(t), i = Array.from(n.children); for (let e of i) e.classList.add("hide"), e.style.transition = "opacity 0.5s ease-in-out", setTimeout((() => { e.classList.remove("hide") }), 10); o.before(n), o.remove(), console.log("Included file: " + l) } catch (e) { o?.remove(), console.log("Could not include file: " + l, e); continue } } } else { if (document.querySelectorAll("include").length > 0) { var e = document.createElement("div"); e.id = "error", e.textContent = "Web server exports must be hosted on an http / web server to be viewed correctly.", e.style.position = "fixed", e.style.top = "50%", e.style.left = "50%", e.style.transform = "translate(-50%, -50%)", e.style.fontSize = "1.5em", e.style.fontWeight = "bold", e.style.textAlign = "center", document.body.appendChild(e), document.querySelector(".document-container")?.classList.remove("hide") } } } document.addEventListener("DOMContentLoaded", (() => { loadIncludes() })); let isFileProtocol = "file:" == location.protocol; function waitLoadScripts(e, t) { let o = e.map((e => document.getElementById(e + "-script"))), l = 0; !function e() { let n = o[l]; l++, n && "true" != n.getAttribute("loaded") || l < o.length && e(), l < o.length ? n.addEventListener("load", e) : t() }() }</script>
<link rel="stylesheet" href="lib/styles/obsidian.css">
<link rel="preload" href="lib/styles/global-variable-styles.css" as="style"
onload="this.onload=null;this.rel='stylesheet'"><noscript>
<link rel="stylesheet" href="lib/styles/global-variable-styles.css">
</noscript>
<link rel="preload" href="lib/styles/main-styles.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link rel="stylesheet" href="lib/styles/main-styles.css">
</noscript>
<link rel="preload" href="lib/styles/snippets.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript>
<link rel="stylesheet" href="lib/styles/snippets.css">
</noscript>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documentation Viewer</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/themes/prism-tomorrow.min.css">
<link rel="stylesheet" href="styles.css">
</head>
<body class="publish css-settings-manager theme-dark show-inline-title show-ribbon">
<script
defer="">let theme = localStorage.getItem("theme") || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"); "dark" == theme ? (document.body.classList.add("theme-dark"), document.body.classList.remove("theme-light")) : (document.body.classList.add("theme-light"), document.body.classList.remove("theme-dark")), window.innerWidth < 480 ? document.body.classList.add("is-phone") : window.innerWidth < 768 ? document.body.classList.add("is-tablet") : window.innerWidth < 1024 ? document.body.classList.add("is-small-screen") : document.body.classList.add("is-large-screen")</script>
<div class="webpage-container workspace">
<div class="sidebar-left sidebar">
<div class="sidebar-topbar">
<div class="topbar-content"></div>
<div class="clickable-icon sidebar-collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="100%"
height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"
stroke-linecap="round" stroke-linejoin="round" class="svg-icon">
<path
d="M21 3H3C1.89543 3 1 3.89543 1 5V19C1 20.1046 1.89543 21 3 21H21C22.1046 21 23 20.1046 23 19V5C23 3.89543 22.1046 3 21 3Z">
</path>
<path d="M10 4V20"></path>
<path d="M4 7H7"></path>
<path d="M4 10H7"></path>
<path d="M4 13H7"></path>
</svg></div>
</div>
<div class="sidebar-content">
<div class="search-input-container"><input enterkeyhint="search" type="search" spellcheck="false"
placeholder="Search...">
<div class="search-input-clear-button" aria-label="Clear search"></div>
</div>
<include src="lib/html/file-tree.html"></include>
</div>
<script
defer="">let ls = document.querySelector(".sidebar-left"); ls.classList.add("is-collapsed"); if (window.innerWidth > 768) ls.classList.remove("is-collapsed"); ls.style.setProperty("--sidebar-width", localStorage.getItem("sidebar-left-width"));</script>
</div>
<div class="document-container markdown-reading-view hide">
<div class="markdown-preview-view markdown-rendered is-readable-line-width">
<style id="MJX-CHTML-styles"></style>
<pre class="frontmatter language-yaml" tabindex="0"
style="display: none;"><code class="language-yaml is-loaded"><span class="token key atrule">title</span><span class="token punctuation">:</span> Documentation Home</code><button class="copy-code-button"><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="svg-icon lucide-copy"><rect x="8" y="8" width="14" height="14" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button></pre>
<div class="markdown-preview-sizer markdown-preview-section">
<h1 class="page-title heading inline-title" id="Documentation Home">Documentation Home</h1>
<div class="el-p">
<p dir="auto">Welcome to the docs, I make blueprint plugins, many are in the works, but they'll
come out here as I go</p>
</div>
<div class="el-h2 heading-wrapper">
<h2 data-heading="[[Blueprint Penetration Trace]]" dir="auto" class="heading"
id="[[Blueprint_Penetration_Trace]]">
<div class="heading-collapse-indicator collapse-indicator collapse-icon"><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="svg-icon right-triangle">
<path d="M3 8L12 17L21 8"></path>
</svg></div><a data-href="Blueprint Penetration Trace"
href="blueprint-penetration-trace.html" class="internal-link" target="_self"
rel="noopener nofollow">Blueprint Penetration Trace</a>
</h2>
<div class="heading-children">
<div class="el-p">
<p dir="auto"><span alt="TraceExample.mp4" src="TraceExample.mp4"
class="internal-embed media-embed video-embed is-loaded"><video controls=""
preload="metadata" src="images/traceexample.mp4"></video></span>
</p>
</div>
<div class="el-p">
<p dir="auto">If you require more support, come say hi on my <a
data-tooltip-position="top" aria-label="https://discord.gg/b8ctQBaaax"
rel="noopener nofollow" class="external-link"
href="https://discord.gg/b8ctQBaaax" target="_blank">discord</a>. <a
rel="noopener nofollow" class="external-link"
href="https://discord.gg/b8ctQBaaax"
target="_blank">https://discord.gg/b8ctQBaaax</a></p>
</div>
<div class="mod-footer mod-ui"></div>
</div>
</div>
</div>
</div>
</div>
<div class="sidebar-right sidebar">
<div class="sidebar-topbar">
<div class="topbar-content"></div>
<div class="clickable-icon sidebar-collapse-icon"><svg xmlns="http://www.w3.org/2000/svg" width="100%"
height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"
stroke-linecap="round" stroke-linejoin="round" class="svg-icon">
<path
d="M21 3H3C1.89543 3 1 3.89543 1 5V19C1 20.1046 1.89543 21 3 21H21C22.1046 21 23 20.1046 23 19V5C23 3.89543 22.1046 3 21 3Z">
</path>
<path d="M10 4V20"></path>
<path d="M4 7H7"></path>
<path d="M4 10H7"></path>
<path d="M4 13H7"></path>
</svg></div>
</div>
<div class="sidebar-content">
<div class="tree-container mod-root nav-folder tree-item outline-tree" data-depth="0">
<div class="tree-header"><span class="sidebar-section-header">Table Of Contents</span><button
class="clickable-icon collapse-tree-button" aria-label="Collapse All"><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"></svg></button></div>
<div class="tree-scroll-area tree-item-children nav-folder-children">
<div class="tree-item mod-tree-folder nav-folder mod-collapsible is-collapsed"
style="display: none;"></div>
<div class="tree-item" data-depth="1"><a class="tree-link" href="index.html#Documentation Home">
<div class="tree-item-contents heading-link" heading-name="Documentation Home"><span
class="tree-item-title">Documentation Home</span></div>
</a>
<div class="tree-item-children nav-folder-children">
<div class="tree-item" data-depth="2"><a class="tree-link"
href="index.html#[[Blueprint_Penetration_Trace]]">
<div class="tree-item-contents heading-link"
heading-name="[[Blueprint Penetration Trace]]"><span
class="tree-item-title"><a data-href="Blueprint Penetration Trace"
href="Blueprint Penetration Trace" class="internal-link"
target="_blank" rel="noopener nofollow">Blueprint Penetration
Trace</a></span></div>
</a>
<div class="tree-item-children nav-folder-children"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script
defer="">let rs = document.querySelector(".sidebar-right"); rs.classList.add("is-collapsed"); if (window.innerWidth > 768) rs.classList.remove("is-collapsed"); rs.style.setProperty("--sidebar-width", localStorage.getItem("sidebar-right-width"));</script>
</div>
</div>
<body>
<div class="container">
<div class="title-bar">
<button class="menu-button"></button>
<div class="title-text">
<span class="brand">Litruv</span>
<span class="divider">/</span>
<span class="page-title">Documentation</span>
</div>
<span style="width: 24px;"></span><!-- Spacer for alignment -->
</div>
<div class="content-container">
<nav class="sidebar left-sidebar">
<div id="file-index"></div>
</nav>
<main class="content">
<div id="document-content"></div>
</main>
<nav class="sidebar right-sidebar">
<div id="document-outline"></div>
</nav>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/marked@4.3.0/marked.min.js"></script>
<script>
// Fallback in case CDN fails
window.addEventListener('error', function(e) {
if (e.target.src && e.target.src.includes('marked.min.js')) {
const script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/marked/4.3.0/marked.min.js';
document.body.appendChild(script);
}
}, true);
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/components/prism-core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.24.1/plugins/autoloader/prism-autoloader.min.js"></script>
<script src="index.js"></script>
</body>
</html>
</html>