mirror of
https://github.com/litruv/Docs-Viewer.git
synced 2026-07-24 02:36:07 +10:00
430 lines
17 KiB
HTML
430 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<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>
|
|
</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>
|
|
|
|
</html> |