commit b6d8497df5414b466f3ba7fde5e01ce1b78d6cfb Author: Grant <5445379+grantdhunter@users.noreply.github.com> Date: Sun Mar 16 11:20:59 2025 -0600 New site diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..419668e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "themes/kayal"] + path = themes/kayal + url = https://github.com/mnjm/kayal.git + branch = main diff --git a/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..25b6752 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/assets/icons/gitea.svg b/assets/icons/gitea.svg new file mode 100644 index 0000000..ed949e8 --- /dev/null +++ b/assets/icons/gitea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/incngrnt.webp b/assets/incngrnt.webp new file mode 100644 index 0000000..96b1928 Binary files /dev/null and b/assets/incngrnt.webp differ diff --git a/config/_default/hugo.toml b/config/_default/hugo.toml new file mode 100644 index 0000000..874e00b --- /dev/null +++ b/config/_default/hugo.toml @@ -0,0 +1,8 @@ +baseURL = 'https://incngrnt.ca/' +languageCode = 'en-ca' +title = 'incngrnt' +theme = 'kayal' + + +[outputs] + home = ["HTML","RSS","JSON"] diff --git a/config/_default/menus.toml b/config/_default/menus.toml new file mode 100644 index 0000000..924765e --- /dev/null +++ b/config/_default/menus.toml @@ -0,0 +1,11 @@ +[[main]] + name = "behind-icngrnt" + title = "Behind icngrnt" + url = "/behind-incngrnt/" + weight = 1 +[[main]] + name = "Gitea" + title = "" + pre = "gitea" + url = "https://git.incngrnt.ca/grant" + weight = 4 diff --git a/config/_default/params.toml b/config/_default/params.toml new file mode 100644 index 0000000..d254147 --- /dev/null +++ b/config/_default/params.toml @@ -0,0 +1,10 @@ +logo = "incngrnt.webp" +copyright = "Grant Hunter" +inhancedTitle = "incongruent" +enableSearch = false + +[homepage] +showRecent = false + +[homepage.profile] +headline = 'Just a little different' diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..8ecb9a4 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,16 @@ +Incngrnt is an experiment in host applications and services, usually run by huge +corporations, on a small community scale. Using cloud technologies to enhance +redundancy and maintainability while keeping as much as possible hosted locally. + +This project provides modern applications and services for friends and family, +offering the convenience of cloud-based tools without sacrificing data privacy. + + +The current instance, cheekily names Fog, is a [Kubernetes](https://kubernetes.io/) +cluster of 3 [Talos Linux](https://www.talos.dev/) nodes. It uses [Ceph](https://ceph.io/en/) +as the storage layer and [Metallb](https://metallb.io/) and +[Traefik](https://traefik.io/traefik/) for networking. The whole cluster has a has backup +[batteries](https://www.ecoflow.com/ca) in the event of a power failure. All configuration +and setup docs live in a self-hosted [git repo](https://git.incngrnt.ca/grant/fog) +running directly on Fog. + diff --git a/content/behind-incngrnt.md b/content/behind-incngrnt.md new file mode 100644 index 0000000..e69de29 diff --git a/content/behind-incngrnt/_index.md b/content/behind-incngrnt/_index.md new file mode 100644 index 0000000..12e424a --- /dev/null +++ b/content/behind-incngrnt/_index.md @@ -0,0 +1,6 @@ +--- +title: 'Grant Hunter' +showToC: false +--- + + diff --git a/layouts/partials/extend-head.html b/layouts/partials/extend-head.html new file mode 100644 index 0000000..3f0ab1a --- /dev/null +++ b/layouts/partials/extend-head.html @@ -0,0 +1,21 @@ + diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..ff17ce9 --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,82 @@ +
+ {{ if .Site.Params.logo }} + + {{ $imgData := dict "Page" . "URL" .Site.Params.logo "Alt" "Site Logo" "Size" "64x64" }} + {{ partial "image-renderer.html" $imgData }} + + {{ end }} +
+ + {{ .Site.Params.InhancedTitle | emojify }} + + + + {{ if .Site.Params.highlightCurrentMenu }} + + {{ end }} +
+
diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..28d4e3c --- /dev/null +++ b/public/404.html @@ -0,0 +1,359 @@ + + + + + + + + + + + 404 Page not found · incngrnt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + Site Logo + + + + + + + +
+ + incongruent + + + + + + +
+
+ +
+ +

404 Not Found 🙁

+

It seems the page you're looking for has been moved or, in rare cases, removed.

+

+ + Return to the home page? + +

+ +
+ + +
+ + diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000..7c128af Binary files /dev/null and b/public/android-chrome-192x192.png differ diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000..01ccc4e Binary files /dev/null and b/public/android-chrome-512x512.png differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..e8faa86 Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/behind-incngrnt/index.html b/public/behind-incngrnt/index.html new file mode 100644 index 0000000..02235d5 --- /dev/null +++ b/public/behind-incngrnt/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + Grant Hunter · incngrnt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + Site Logo + + + + + + + +
+ + incongruent + + + + + + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +

+ Grant Hunter + +

+ +
+ +
    + +
+ + +
+ + + +
+ + +
+ + diff --git a/public/behind-incngrnt/index.xml b/public/behind-incngrnt/index.xml new file mode 100644 index 0000000..6d7c73d --- /dev/null +++ b/public/behind-incngrnt/index.xml @@ -0,0 +1,11 @@ + + + + Grant Hunter on incngrnt + http://localhost:1313/behind-incngrnt/ + Recent content in Grant Hunter on incngrnt + Hugo -- 0.145.0 + en-ca + + + diff --git a/public/behind-incngrnt/page/1/index.html b/public/behind-incngrnt/page/1/index.html new file mode 100644 index 0000000..59b86ab --- /dev/null +++ b/public/behind-incngrnt/page/1/index.html @@ -0,0 +1,10 @@ + + + + http://localhost:1313/behind-incngrnt/ + + + + + + diff --git a/public/categories/index.html b/public/categories/index.html new file mode 100644 index 0000000..597847b --- /dev/null +++ b/public/categories/index.html @@ -0,0 +1,365 @@ + + + + + + + + + + + Categories · incngrnt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + Site Logo + + + + + + + +
+ + incongruent + + + + + + +
+
+ +
+ + + + + +

Categories

+ +
+ +
+ + + +
+ + +
+ + diff --git a/public/categories/index.xml b/public/categories/index.xml new file mode 100644 index 0000000..bbc1a9d --- /dev/null +++ b/public/categories/index.xml @@ -0,0 +1,11 @@ + + + + Categories on incngrnt + http://localhost:1313/categories/ + Recent content in Categories on incngrnt + Hugo -- 0.145.0 + en-ca + + + diff --git a/public/css/main.css b/public/css/main.css new file mode 100644 index 0000000..8e63bd4 --- /dev/null +++ b/public/css/main.css @@ -0,0 +1,1000 @@ +@import url("theme.css"); + +html { + line-height: 1.5rem; + scroll-behavior:smooth +} + +body { + font-family: var(--ff); + background: var(--secondary-color); + color: var(--primary-color); + margin: 0 8px; + padding: 0; + transition: background 50ms ease-in-out, color 50ms ease-in-out; +} + +header { + display: flex; + align-items:center; + line-height: 2.5em; + margin: 1rem 0 1rem 0rem; + padding-bottom: 1rem; + border-bottom: 1px solid var(--secondary-color-dark); +} + +a { + color: var(--primary-color); + text-decoration: none; + border-bottom: 2px solid var(--tertiary-color); + word-break: break-word; + word-wrap: break-word; + overflow: break-word; +} + +a:hover { + color: var(--link-color); +} + +mark { + background-color: var(--tertiary-color-light); + color: var(--primary-color); +} + +footer { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + border-top: 1px solid var(--secondary-color-dark); + margin-top: 1rem; + padding-top: 1rem; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 1.2rem; + line-height: normal; +} + +h1::before { content: '# '; } +h2::before { content: '## '; } +h3::before { content: '### '; } +h4::before { content: '#### '; } +h5::before { content: '##### '; } +h6::before { content: '###### '; } + +ul { + list-style-type: none; + padding-left: 20px; +} + +ul li:before { + content: "-"; + display: inline-block; + width: 1em; + margin-left: -1em; +} + +img { + max-width: 100%; + height: auto; + display: block; + margin: auto; + border-radius: var(--radius); +} + +figcaption { + text-align: center; +} + +figure h4::before { + content: '↳ '; +} + +/* Code blocks */ +code { + background-color: var(--secondary-color-dark); + padding: 0 .2em; + word-break: break-word; + word-wrap: break-word; + overflow: break-word; +} + +/*a code {*/ +/* border-bottom: 2px solid var(--tertiary-color);*/ +/*}*/ + +pre { + line-height: 1.5; + padding: 0.5em; +} + +pre code { + background-color: transparent; + color: inherit; + font-size: 100%; + padding: 0; + display: block; + overflow-x: auto; +} + +.highlight pre code { + overflow-x: unset; +} + +pre:has(code) { + color: var(--code-fg); + background-color: var(--code-bg); + border-radius: var(--radius); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); +} + +.highlight>pre, +.highlight>div { + border-radius: var(--radius); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); + overflow-x: auto; +} + +.highlight tbody pre { + margin: 0; +} + +.highlight pre ::selection { + background: rgba(255, 255, 255, 0.2); + color: inherit; +} + +/* table */ +table { + border-spacing: 0; + border-collapse: collapse; +} + +table th{ + padding: 6px; + border-bottom: 2px solid var(--tertiary-color); + font-size: large; +} + +table td{ + padding: 6px; + border-top: 1px solid var(--secondary-color-dark); +} + +blockquote { + border-left: 4px solid var(--tertiary-color); + margin: 0; + padding-left: 2rem; + background: var(--secondary-color-dark); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); + border-radius: 0 var(--radius) var(--radius) 0; +} + +details { + border-left: 4px solid var(--tertiary-color); + margin: 0; + padding: 0.25rem 0.5rem; + background: var(--secondary-color-dark); + border-radius: 0 var(--radius) var(--radius) 0; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); +} + +/* Custom animation */ +@keyframes revealContent { +0% { opacity: 0; } +100% { opacity: 1; } +} + +details[open] div { + animation: revealContent 0.5s ease-out forwards; +} + +::selection { + background: var(--tertiary-color); + color: #fff; +} + +.header-cntr { + display: flex; + justify-content:space-between; + width: 100% +} + +.content { + margin: 0 auto; + max-width: 900px; +} + +/* Header */ +.title { + display: inline-flex; + align-items: center; + color: var(--tertiary-color); + font-size: 1.5rem; + font-weight: bold; + border-bottom: none; +} + +.title img { + margin-right: 0.2em; + display: inline; + width: 32px; + height: auto; +} + +.title:hover { + color: var(--link-color); +} + +.menu { + display: flex; + align-items: center; + justify-content: center; +} + +#main-menu ul { + margin: 0; +} + +#main-menu li { + display: inline; +} + +#main-menu li:before { + content: none; +} + +#main-menu a { + margin: 0.7em 0.5em; + font-size: 1rem; + font-weight: 600; + border-bottom: none; +} + +#main-menu a:hover { + border-bottom: 2px solid var(--tertiary-color); +} + +#main-menu a svg { + height: 1.1em; + width: 1.1em; + vertical-align: text-top; +} + +#main-menu a.active { + border-bottom: 2px solid var(--tertiary-color); +} + +.mm-normal { + display: inline +} + +.mm-mobile-open ul { + position: fixed; + padding: 0; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background-color: rgba(var(--secondary-color), 0.7); + z-index: 30; + transition: transform 0.3s ease-in-out; + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); +} + +#mob-hb-icon, #mob-x-icon { + display: none; + background-color: inherit; +} + +@media (max-width: 800px) { + #mob-hb-icon { + display: block; + } + .mm-normal { + display: none; + } +} + +.main-menu a.lnk:hover, .socials-icon svg:hover { + color: var(--link-color); + border-bottom: 2px solid var(--tertiary-color); +} + +.menu-btn svg, +.copy-button svg{ + height: 1.1em; + width: 1.1em; + vertical-align: text-top; +} + +.menu-btn:hover { + color: var(--tertiary-color); +} + +body.dark #moon { + display: none; +} + +body:not(.dark) #sun { + display: none; +} + +.menu-btn { + color: var(--primary-color); + background-color: var(--secondary-color); + border: none; + display: flex; + align-items: center; + justify-content: center; +} + +#theme-switcher div { + display: inline; +} + +.avatar img { + height: 100px; + width: 100px; + padding: 8px; + border-radius: 50%; +} + +.avatar.top { + text-align: center; +} + +.avatar.left { + margin-top: 16px; + position: relative; + float: left; +} + +.avatar.right { + margin-top: 16px; + position: relative; + float: right; +} + +.featured { + margin-top: 0.2rem; + clear: both; +} + +.socials span { + font-size: 1.5rem; +} + +.socials ul { + text-align: center; + padding: 0; +} + +.socials li::before { + content: none; +} + +.socials a { + border-bottom: none; +} + +.socials li { + display: inline; + margin: 0.2em; +} + +.icon { + position: relative; +} + +.socials-icon svg { + height:1.5em; + width:1.5em; + border-bottom: 2px solid var(--secondary-color); +} + +/* List */ +.lst-content { + margin-top: 2rem; +} + +.lst-type { + margin-bottom: 0.2em; + margin-top: 1.2em; +} + +.lst-basic, +.lst-card { + margin-top: .2em; +} + +.lst-card { + padding-left: 0; +} + +.lst-basic li { + display: flex; +} + +.lst-basic li div { + flex-grow: 1; + overflow: hidden; + text-overflow: ellipsis; +} + +.lst time { + white-space: nowrap; +} + +.lst-card li::before { + content: none; +} + +.lst-card li { + padding: 0.2em 1em; + margin-block: 1em; + padding-block: 1em; + background-color: var(--secondary-color-dark); + border-radius: var(--radius); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); +} + +.lst-card li h2, +.lst-card li h3 { + margin: 0; +} + +.lst-card li p { + margin: 0; +} + +/* Page */ +.artile-ttl::before { + content: none; +} + +.pg-title { + padding: 0; + margin: 0px; +} + +/* Meta */ +.meta p, .meta a { + margin: 0; + color: var(--primary-color); +} + +.meta-icon { + display: inline-block; + vertical-align: bottom; +} + +.meta-icon svg { + /*margin-left: 0.2em;*/ + padding-top: 0.25em; + height: 0.9em; + width: 0.9em; +} + +.meta a { + border: 1px solid var(--tertiary-color); + padding: 2px; + border-radius: var(--radius); + background: var(--tertiary-color-light ); + margin: 0 2px; +} + +.meta a:hover { + background: var(--link-color); + color: black; +} + +.draft-lbl { + background-color: var(--tertiary-color); + color: var(--black); + padding: 2px 4px; + border-radius: var(--radius); +} + +.highlight-wrapper { + display:block; + border-radius: var(--radius); +} + +pre, .highlight { + position:relative; +} + +div.highlight:hover .copy-button, +pre:hover .copy-button { + display: block; +} + +.copy-button { + opacity: 0.8; + display: none; + position:absolute; + top:2px; + right:2px; + z-index:10; + /*padding: 0.25rem 0.5rem;*/ + cursor:pointer; + background-color: inherit; + color: var(--code-fg); + border: none; +} + +.copy-button svg { + color: var(--tertiary-color-light); +} + +.copy-textarea { + position:absolute; + z-index:-10; + opacity:0.05 +} + +.showmore { + text-align: center; +} + +.showmore button { + border: 2px solid var(--tertiary-color); + color: var(--primary-color); + background-color: var(--secondary-color); + font-size: 1em; + padding: .2em .4em; + border-radius: var(--radius); +} + +.showmore button:hover { + border: 2px solid var(--link-color); +} + +.pagenav { + margin-top: 2rem; + display: flex; + background-color: var(--secondary-color-dark); + border-radius: var(--radius); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); +} + +.pagenav .prev, .pagenav .next { + width: 50%; + border: none; + padding: 10px 20px; +} + +.pagenav .prev { + text-align: left; + padding-right: 0; + border-radius: var(--radius) 0 0 var(--radius); +} + +.pagenav .next { + padding-left: 0; + margin-inline-start: auto; + text-align: right; + border-radius: 0 var(--radius) var(--radius) 0; +} + +.pagenav .direction { + font-size: small; + font-weight: bold; + opacity: 0.5; +} + +.pagenav .prev:hover, .pagenav .next:hover { + background-color: var(--tertiary-color-light); + color: var(--primary-color); +} + +.toc { + background-color: var(--secondary-color-dark); + min-width: 40%; + margin-top: 10px; + padding: 0.4em; + border-radius: var(--radius); + display: inline-block; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); +} + +.toc details { + box-shadow: none; +} + +.toc summary { + font-weight: bold; + font-size: 1.05rem; +} + +.toc-innr { + padding-right: 2em; +} + +.toc-innr ul { + margin: 0; +} + +.toc-innr a, .toc-innr a code { + border-bottom: none; +} + +.toc li:before { + content: none; +} + +.callout { + padding: .75rem; + margin: 1em 0; + background: var(--secondary-color-dark); + border-radius: var(--radius); + display: flex; + align-items: center; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); +} + +.callout svg { + padding-top: 0.3em; + width: 1em; + height: 1em; + margin-right: 0.5em; +} + +.icon { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.icon svg { + width: 1em; + height: 1em; +} + +.pagination { + display: flex; + justify-content: center; + margin-top: 2em; + margin-bottom: 2em; +} + +.pagination li { + margin-left: 1em; + margin-right: 1em; +} + +.pagination li:before { + content: none; +} + +.pagination a { + background-color: inherit; + color: inherit; + padding-left: 0.5em; + padding-right: 0.5em; + border: none; +} + +.page-item { + background-color: var(--tertiary-color); + color: var(--black); + border-radius: var(--radius); +} + +.page-item:not(.disabled):not(.active):hover { + background-color: var(--link-color); + border: none; +} + +.page-item.active { + background-color: var(--link-color); +} + +.page-item.disabled { + opacity: 0.5; +} + +.gist a { + color: initial; + background-color: initial; + text-decoration: initial; + border: initial; +} + +.taxny-card-container { + display: flex; + flex-wrap: wrap; +} + +.taxny-card { + flex: 1 0 200px; + margin: 10px; + background-color: var(--secondary-color-dark); + padding: 10px; + border-radius: var(--radius); +} + +.comment { + margin-top: 1rem; +} + +.anchor svg { + width: 0.75em; + height: auto; +} + +h1:hover .anchor, +h2:hover .anchor, +h3:hover .anchor, +h4:hover .anchor, +h5:hover .anchor, +h6:hover .anchor { + display: inline; + opacity: .7; + color: var(--primary-color); + user-select: none; + text-decoration: none; + border: none; +} + +.katex > .katex-html { + white-space: normal; +} + +.katex .base { + margin-top: 2px; + margin-bottom: 2px; +} + +.gist .markdown-body .highlight pre, .gist .markdown-body pre { + box-shadow: none; +} + +.mermaid { + background-color: var(--black); + max-width: 100%; + overflow-x: auto; +} + +::-webkit-scrollbar { + width: 0.5vw; + height: 8px; +} + +::-webkit-scrollbar-track { + background: var(--scrollbar-track); + border-radius: var(--radius); +} + +::-webkit-scrollbar-thumb { + background: var(--scrollbar-thumb); + border-radius: var(--radius); +} + +.highlight pre::-webkit-scrollbar-track, +.highlight>div::-webkit-scrollbar-track, +pre code::-webkit-scrollbar-track { + background: var(--code-bg) !important; +} + +.highlight pre::-webkit-scrollbar-thumb, +.highlight>div::-webkit-scrollbar-thumb, +pre code::-webkit-scrollbar-thumb { + background: var(--code-scroll-thumb) !important; +} + +::-webkit-scrollbar-thumb:hover, +.highlight pre::-webkit-scrollbar-thumb:hover, +.highlight>div::-webkit-scrollbar-thumb:hover, +pre code::-webkit-scrollbar-thumb:hover { + background: var(--tertiary-color-light) !important; +} + +.breadcrumbs { + padding: 0; + margin: 0; + opacity: 0.5; + display: inline-flex; + font-size: 0.98em; + align-items: center; +} + +.breadcrumbs li::before { + content: none; +} + +.breadcrumbs li::after { + content: "»"; + width: 1em; + text-align: center; + display: inline-block; +} + +.breadcrumbs a { + border: none; + display: inline-flex; + align-items: center; +} + +.breadcrumbs a svg { + width: 0.94em; + height: auto; + text-align: center; + vertical-align: text-top; + opacity: inherit; +} + +.cover-img { + width: 100%; + height: auto; +} + +.pg-title svg { + height: 1.5rem; + width: auto; +} + +.pg-title a { + border: none; + opacity: 0.6; +} + +.headline { + font-weight: bold; + font-size: 1.05em; +} + +.side-menu { + display: flex; +} + +#search-container { + position: fixed; + padding-top: 2em; + padding-bottom: 2em; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; + background-color: rgba(var(--secondary-color), 0.7); + z-index: 30; + transition: transform 0.3s ease-in-out; + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + display: none; /* TODO: Make this nun */ +} + +#search-query::-webkit-search-cancel-button, +#search-query::-webkit-search-decoration, +#search-query::-webkit-search-results-button, +#search-query::-webkit-search-results-decoration { + display:none +} + +.search { + flex-grow: 1; + max-width: 700px; + margin: 0 auto; + display: flex; + flex-direction: column; +} + +.search .panel { + padding: 10px; + margin: 0 10px; + border-radius: var(--radius); + background-color: var(--secondary-color-dark); +} + +.search .panel form { + display: flex; + justify-content: center; +} + +.search .panel form svg { + flex-grow: 0; + width: 1.1em; + height: auto; + color: inherit; +} + +.search .panel form input { + flex-grow: 1; + font-size: 1.1rem; + margin-left: 0.5em; + margin-right: 0.5em; + background-color: transparent; + appearance: none; + border: none; + outline: 2px solid var(--primary-color); + color: var(--primary-color); +} + +.search .panel form input:focus { + outline: 2px solid var(--tertiary-color); +} + +.search .panel form button { + flex-grow: 0; + background: transparent; + border: none; + display: flex; + align-items: center; + color: var(--primary-color); +} + +#search-results { + background-color: var(--secondary-color-dark); + flex-grow: 0; + margin: 10px .5em; + padding: 0; + border-radius: var(--radius); + overflow: auto; +} + +.search .close-btn-ctr { + display: flex; + justify-content: center; +} + +#search-close:hover { + color: var(--tertiary-color); +} + +#search-results li { + line-height: 1.1em; +} + +#search-results li:before { + content: ""; + display: none; + width: 0; + margin-left: 0; +} + +#search-results li a { + display: block; + position: relative; + margin: 10px; + padding: 10px; + background-color: var(--secondary-color); + border: none; + border-radius: var(--radius); +} + +#search-results li a:focus, +#search-results li a:hover { + outline: 1px solid var(--tertiary-color); +} + +#search-results li a p { + margin: 0px; +} + +#search-results a:hover { + color: inherit; +} + + +.srch-title { + font-size: 1.1em; + font-weight: bold; +} + +.srch-meta { + opacity: 0.5; +} + +.srch-link { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} diff --git a/public/css/theme.css b/public/css/theme.css new file mode 100644 index 0000000..381b71e --- /dev/null +++ b/public/css/theme.css @@ -0,0 +1,34 @@ +:root{ + --ff: 'Ubuntu'; + --radius: 6px; + --primary-color: #292929; + --secondary-color: #EFEFE6; + --tertiary-color: #E0002D; + --link-color: #449DD1; + --tertiary-color-light: #FFB370; + --secondary-color-dark: #DFDFCD; + --black: #292929; + --code-bg: #272822; /*Monokai*/ + --code-fg: #f8f8f2; /*Monokai*/ + --code-scroll-thumb: #525252; + --scrollbar-track: #EFEFE6; + --scrollbar-thumb: #B7B78F; +} + +.dark { + --primary-color: #EFEFE6; + --secondary-color: #292929; + --tertiary-color: #FF7F11; + --tertiary-color-light: #A34C00; + --secondary-color-dark: #3D3D29; + --scrollbar-track: #292929; + --scrollbar-thumb: #525252; +} + +@font-face { + font-display: swap; + font-family: 'Ubuntu'; + font-style: normal; + font-weight: 400; + src: url('../fonts/Ubuntu-Regular.woff2') format('woff2'); +} diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..41b089a Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..ce16752 Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..e0ceb3b Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/fonts/Ubuntu-Regular.woff2 b/public/fonts/Ubuntu-Regular.woff2 new file mode 100644 index 0000000..9bc87e2 Binary files /dev/null and b/public/fonts/Ubuntu-Regular.woff2 differ diff --git a/public/incngrnt.webp b/public/incngrnt.webp new file mode 100644 index 0000000..96b1928 Binary files /dev/null and b/public/incngrnt.webp differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..e95a2cf --- /dev/null +++ b/public/index.html @@ -0,0 +1,405 @@ + + + + + + + + + + + + incngrnt · Home + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + Site Logo + + + + + + + +
+ + incongruent + + + + + + +
+
+ +
+ + + + + Just a little different + + + + + + + + +

Incngrnt is an experiment in host applications and services, usually run by huge +corporations, on a small community scale. Using cloud technologies to enhance +redundancy and maintainability while keeping as much as possible hosted locally.

+

This project provides modern applications and services for friends and family, +offering the convenience of cloud-based tools without sacrificing data privacy.

+

The current instance, cheekily names Fog, is a Kubernetes + +cluster of 3 Talos Linux + nodes. It uses Ceph + +as the storage layer and Metallb + and +Traefik + for networking. The whole cluster has a has backup +batteries + in the event of a power failure. All configuration +and setup docs live in a self-hosted git repo + +running directly on Fog.

+ + + + + + + + + + + + + + + +
+ + +
+ + diff --git a/public/index.json b/public/index.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/public/index.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/public/index.xml b/public/index.xml new file mode 100644 index 0000000..22a03f0 --- /dev/null +++ b/public/index.xml @@ -0,0 +1,11 @@ + + + + incngrnt + http://localhost:1313/ + Recent content on incngrnt + Hugo -- 0.145.0 + en-ca + + + diff --git a/public/js/codecopy.js b/public/js/codecopy.js new file mode 100644 index 0000000..11c4cff --- /dev/null +++ b/public/js/codecopy.js @@ -0,0 +1,47 @@ +(() => { + // + var copyText = ''; + var copiedText = 'Copied! '; + function createCopyButton(codeblock) { + const container = codeblock.parentNode.parentNode; + const copybutton = document.createElement("button"); + copybutton.classList.add("copy-button"); + copybutton.innerHTML = copyText; + function copyingDone() { + copybutton.innerHTML = copiedText; + setTimeout(() => { + copybutton.innerHTML = copyText; + }, 500); + } + copybutton.addEventListener("click", (cb) => { + if ("clipboard" in navigator) { + navigator.clipboard.writeText(codeblock.textContent); + copyingDone(); + return; + } + const range = document.createRange(); + range.selectNodeContents(codeblock); + const selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange(range); + try { + document.execCommand("copy"); + copyingDone(); + } catch (e) { + } + ; + selection.removeRange(range); + }); + if (container.classList.contains("highlight")) { + container.appendChild(copybutton); + } else if (container.parentNode.firstChild == container) { + } else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") { + codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton); + } else { + codeblock.parentNode.appendChild(copybutton); + } + } + window.addEventListener("DOMContentLoaded", (event) => { + document.querySelectorAll("pre > code").forEach((codeblock) => createCopyButton(codeblock)); + }); +})(); diff --git a/public/js/search.js b/public/js/search.js new file mode 100644 index 0000000..a8d2a07 --- /dev/null +++ b/public/js/search.js @@ -0,0 +1,134 @@ +(() => { + // + var seachOpnBtn = null; + var closeBtn = null; + var searchCntr = null; + var resultCntr = null; + var searchBtn = null; + var searchTxt = null; + var isSearchOpen = false; + var isJsonIndexed = false; + var isResEmpty = true; + var fuse; + function fetchJSON(path, callback) { + var httpRequest = new XMLHttpRequest(); + httpRequest.onreadystatechange = function() { + if (httpRequest.readyState === 4) { + if (httpRequest.status === 200) { + var data = JSON.parse(httpRequest.responseText); + if (callback) callback(data); + } + } + }; + httpRequest.open("GET", path); + httpRequest.send(); + } + function buildIndex() { + var baseURL = searchCntr.getAttribute("data-url"); + baseURL = baseURL.replace(/\/?$/, "/"); + fetchJSON(baseURL + "index.json", function(data) { + var options = { + shouldSort: true, + ignoreLocation: true, + threshold: 0, + includeMatches: true, + keys: [ + { name: "title", weight: 0.8 }, + { name: "section", weight: 0.2 }, + { name: "summary", weight: 0.6 }, + { name: "content", weight: 0.4 } + ] + }; + fuse = new Fuse(data, options); + isJsonIndexed = true; + }); + } + function openSearch() { + if (!isJsonIndexed) { + buildIndex(); + } + if (!isSearchOpen) { + searchCntr.style.display = "flex"; + document.body.style.overflow = "hidden"; + isSearchOpen = true; + searchTxt.focus(); + } + } + function closeSearch() { + if (isSearchOpen) { + searchCntr.style.display = "none"; + document.body.style.overflow = ""; + isSearchOpen = false; + } + } + function executeQuery(query) { + let results = fuse.search(query); + let resultsHtml = ""; + if (results.length > 1) { + results.forEach(function(value, key) { + var meta = value.item.section + " | "; + meta = meta + value.item.date ? value.item.date + " | " : ""; + meta = meta + `${value.item.permalink}`; + resultsHtml = resultsHtml + `
  • +

    ${value.item.title}

    +

    ${meta}

    +

    ${value.item.summary}

    +
  • `; + }); + isResEmpty = false; + } else { + resultsHtml = ""; + isResEmpty = true; + } + resultCntr.innerHTML = resultsHtml; + } + window.addEventListener("DOMContentLoaded", (event) => { + seachOpnBtn = document.getElementById("search-open"); + searchBtn = document.getElementById("search-btn"); + closeBtn = document.getElementById("search-close"); + searchCntr = document.getElementById("search-container"); + resultCntr = document.getElementById("search-results"); + searchTxt = document.getElementById("search-query"); + seachOpnBtn.addEventListener("click", openSearch); + closeBtn.addEventListener("click", closeSearch); + searchTxt.onkeyup = function(event2) { + executeQuery(this.value); + }; + searchTxt.onkeydown = function(event2) { + if (event2.key == "Enter" && !isResEmpty) { + resultCntr.firstChild.firstElementChild.focus(); + event2.preventDefault(); + } + }; + }); + document.addEventListener("keydown", function(event) { + if (event.key == "/") { + event.preventDefault(); + openSearch(); + } + if (isSearchOpen) { + if (event.key == "Escape") { + event.preventDefault(); + closeSearch(); + } else if (event.key == "ArrowDown" && !isResEmpty) { + if (document.activeElement == searchTxt) { + resultCntr.firstChild.firstElementChild.focus(); + } else if (document.activeElement == resultCntr.lastChild.firstElementChild) { + searchTxt.focus(); + } else { + document.activeElement.parentElement.nextSibling.firstElementChild.focus(); + } + event.preventDefault(); + } else if (event.key == "ArrowUp" && !isResEmpty) { + if (document.activeElement == searchTxt) { + resultCntr.lastChild.firstElementChild.focus(); + } else if (document.activeElement == resultCntr.firstChild.firstElementChild) { + searchTxt.focus(); + } else { + document.activeElement.parentElement.previousSibling.firstElementChild.focus(); + } + event.preventDefault(); + } + } + }); +})(); diff --git a/public/js/theme.js b/public/js/theme.js new file mode 100644 index 0000000..9d9d472 --- /dev/null +++ b/public/js/theme.js @@ -0,0 +1,25 @@ +(() => { + // + function toggleTheme() { + if (document.body.className.includes("dark")) { + document.body.classList.remove("dark"); + localStorage.setItem("theme", "light"); + } else { + document.body.classList.add("dark"); + localStorage.setItem("theme", "dark"); + } + } + window.addEventListener("DOMContentLoaded", (event) => { + const switcher = document.getElementById("theme-switcher"); + if (switcher) { + switcher.addEventListener("click", () => { + toggleTheme(); + }); + } + window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (event2) => { + if (event2.matches && localStorage.getItem("theme") === "light") { + toggleTheme(); + } + }); + }); +})(); diff --git a/public/lib/fuse/fuse.min.1f56d60a7738743270762a2aa4e0a453be99c4476f06f3b2f51f4377d12a7ed973420f76a308d7e4855d88ec34d25940c9015464934faf30e7599fe566d7f6e4.js b/public/lib/fuse/fuse.min.1f56d60a7738743270762a2aa4e0a453be99c4476f06f3b2f51f4377d12a7ed973420f76a308d7e4855d88ec34d25940c9015464934faf30e7599fe566d7f6e4.js new file mode 100644 index 0000000..0d509f3 --- /dev/null +++ b/public/lib/fuse/fuse.min.1f56d60a7738743270762a2aa4e0a453be99c4476f06f3b2f51f4377d12a7ed973420f76a308d7e4855d88ec34d25940c9015464934faf30e7599fe566d7f6e4.js @@ -0,0 +1,9 @@ +/** + * Fuse.js v7.1.0 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2025 Kiro Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?O.getFn:n,u=t.fieldNormWeight,o=void 0===u?O.fieldNormWeight:u;r(this,e),this.norm=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(j).length;if(n.has(i))return n.get(i);var u=1/Math.pow(i,.5*e),o=parseFloat(Math.round(u*r)/r);return n.set(i,o),o},clear:function(){n.clear()}}}(o,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return u(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,A(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();A(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?O.getFn:r,u=n.fieldNormWeight,o=void 0===u?O.fieldNormWeight:u,c=new I({getFn:i,fieldNormWeight:o});return c.setKeys(e.map(w)),c.setSources(t),c.create(),c}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,u=void 0===i?0:i,o=t.expectedLocation,c=void 0===o?0:o,a=t.distance,s=void 0===a?O.distance:a,h=t.ignoreLocation,l=void 0===h?O.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(c-u);return s?f+d/s:d?1:f}var N=32;function P(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,u=void 0===i?O.location:i,o=r.distance,c=void 0===o?O.distance:o,a=r.threshold,s=void 0===a?O.threshold:a,h=r.findAllMatches,l=void 0===h?O.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?O.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?O.includeMatches:v,y=r.ignoreLocation,p=void 0===y?O.ignoreLocation:y;if(t.length>N)throw new Error("Pattern length exceeds max of ".concat(N,"."));for(var A,m=t.length,C=e.length,k=Math.max(0,Math.min(u,C)),E=s,F=k,M=d>1||g,b=M?Array(C):[];(A=e.indexOf(t,F))>-1;){var D=R(t,{currentLocation:A,expectedLocation:k,distance:c,ignoreLocation:p});if(E=Math.min(D,E),F=A+m,M)for(var B=0;B=$;z-=1){var T=z-1,K=n[e.charAt(T)];if(M&&(b[T]=+!!K),W[z]=(W[z+1]<<1|1)&K,_&&(W[z]|=(x[z+1]|x[z])<<1|1|x[z+1]),W[z]&L&&(w=R(t,{errors:_,currentLocation:T,expectedLocation:k,distance:c,ignoreLocation:p}))<=E){if(E=w,(F=T)<=k)break;$=Math.max(1,2*k-F)}}if(R(t,{errors:_+1,currentLocation:k,expectedLocation:k,distance:c,ignoreLocation:p})>E)break;x=W}var q={isMatch:F>=0,score:Math.max(.001,w)};if(M){var J=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.minMatchCharLength,n=[],r=-1,i=-1,u=0,o=e.length;u=t&&n.push([r,i]),r=-1)}return e[u-1]&&u-r>=t&&n.push([r,u-1]),n}(b,d);J.length?g&&(q.indices=J):q.isMatch=!1}return q}function W(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},u=i.location,o=void 0===u?O.location:u,c=i.threshold,a=void 0===c?O.threshold:c,s=i.distance,h=void 0===s?O.distance:s,l=i.includeMatches,f=void 0===l?O.includeMatches:l,d=i.findAllMatches,v=void 0===d?O.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?O.minMatchCharLength:g,p=i.isCaseSensitive,A=void 0===p?O.isCaseSensitive:p,m=i.ignoreDiacritics,C=void 0===m?O.ignoreDiacritics:m,k=i.ignoreLocation,E=void 0===k?O.ignoreLocation:k;if(r(this,e),this.options={location:o,threshold:a,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:A,ignoreDiacritics:C,ignoreLocation:E},t=A?t:t.toLowerCase(),t=C?z(t):t,this.pattern=t,this.chunks=[],this.pattern.length){var F=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},M=this.pattern.length;if(M>N){for(var b=0,D=M%N,B=M-D;b1&&void 0!==arguments[1]?arguments[1]:{},o=u.location,c=void 0===o?O.location:o,a=u.threshold,s=void 0===a?O.threshold:a,h=u.distance,l=void 0===h?O.distance:h,f=u.includeMatches,d=void 0===f?O.includeMatches:f,v=u.findAllMatches,g=void 0===v?O.findAllMatches:v,y=u.minMatchCharLength,p=void 0===y?O.minMatchCharLength:y,A=u.isCaseSensitive,m=void 0===A?O.isCaseSensitive:A,C=u.ignoreDiacritics,k=void 0===C?O.ignoreDiacritics:C,E=u.ignoreLocation,F=void 0===E?O.ignoreLocation:E;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:c,threshold:s,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:m,ignoreDiacritics:k,ignoreLocation:F}),i}return u(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(K),Y=function(e){c(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return u(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var u=!!r.length;return{isMatch:u,score:u?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(K),Z=[J,Y,V,G,Q,H,U,X],ee=Z.length,te=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,ne=new Set([X.type,Y.type]),re=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,u=void 0===i?O.isCaseSensitive:i,o=n.ignoreDiacritics,c=void 0===o?O.ignoreDiacritics:o,a=n.includeMatches,s=void 0===a?O.includeMatches:a,h=n.minMatchCharLength,l=void 0===h?O.minMatchCharLength:h,f=n.ignoreLocation,d=void 0===f?O.ignoreLocation:f,v=n.findAllMatches,g=void 0===v?O.findAllMatches:v,y=n.location,p=void 0===y?O.location:y,A=n.threshold,m=void 0===A?O.threshold:A,C=n.distance,k=void 0===C?O.distance:C;r(this,e),this.query=null,this.options={isCaseSensitive:u,ignoreDiacritics:c,includeMatches:s,minMatchCharLength:l,findAllMatches:g,ignoreLocation:d,location:p,threshold:m,distance:k},t=u?t:t.toLowerCase(),t=c?z(t):t,this.pattern=t,this.query=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(te).filter((function(e){return e&&!!e.trim()})),r=[],i=0,u=n.length;i2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n;return he(e)||(e=le(e)),function e(n){var i=Object.keys(n),u=function(e){return!!e[ae]}(n);if(!u&&i.length>1&&!he(n))return e(le(n));if(function(e){return!g(e)&&k(e)&&!he(e)}(n)){var o=u?n[ae]:i[0],c=u?n[se]:n[o];if(!A(c))throw new Error(function(e){return"Invalid value for key ".concat(e)}(o));var a={keyId:L(o),pattern:c};return r&&(a.searcher=ue(c,t)),a}var s={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];g(r)&&r.forEach((function(t){s.children.push(e(t))}))})),s}(e)}function de(e,t){var n=e.matches;t.matches=[],E(n)&&n.forEach((function(e){if(E(e.indices)&&e.indices.length){var n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}var ge=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},O),i),this.options.useExtendedSearch,this._keyStore=new x(this.options.keys),this.setCollection(n,u)}return u(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof I))throw new Error("Incorrect 'index' type");this._myIndex=t||$(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){E(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{}).limit,n=void 0===t?-1:t,r=this.options,i=r.includeMatches,u=r.includeScore,o=r.shouldSort,c=r.sortFn,a=r.ignoreFieldNorm,s=A(e)?A(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return function(e,t){var n=t.ignoreFieldNorm,r=void 0===n?O.ignoreFieldNorm:n;e.forEach((function(e){var t=1;e.matches.forEach((function(e){var n=e.key,i=e.norm,u=e.score,o=n?n.weight:null;t*=Math.pow(0===u&&o?Number.EPSILON:u,(o||1)*(r?1:i))})),e.score=t}))}(s,{ignoreFieldNorm:a}),o&&s.sort(c),m(n)&&n>-1&&(s=s.slice(0,n)),function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?O.includeMatches:r,u=n.includeScore,o=void 0===u?O.includeScore:u,c=[];return i&&c.push(de),o&&c.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return c.length&&c.forEach((function(t){t(e,r)})),r}))}(s,this._docs,{includeMatches:i,includeScore:u})}},{key:"_searchStringList",value:function(e){var t=ue(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,u=e.n;if(E(n)){var o=t.searchIn(n),c=o.isMatch,a=o.score,s=o.indices;c&&r.push({item:n,idx:i,matches:[{score:a,value:n,norm:u,indices:s}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=fe(e,this.options),r=function e(n,r,i){if(!n.children){var u=n.keyId,o=n.searcher,c=t._findMatches({key:t._keyStore.get(u),value:t._myIndex.getValueForItemAtKeyId(r,u),searcher:o});return c&&c.length?[{idx:i,item:r,matches:c}]:[]}for(var a=[],s=0,h=n.children.length;s1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?O.getFn:n,i=t.fieldNormWeight,u=void 0===i?O.fieldNormWeight:i,o=e.keys,c=e.records,a=new I({getFn:r,fieldNormWeight:u});return a.setKeys(o),a.setIndexRecords(c),a},ge.config=O,function(){ie.push.apply(ie,arguments)}(re),ge},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); \ No newline at end of file diff --git a/public/page/1/index.html b/public/page/1/index.html new file mode 100644 index 0000000..d1e752d --- /dev/null +++ b/public/page/1/index.html @@ -0,0 +1,10 @@ + + + + http://localhost:1313/ + + + + + + diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..eb1511e --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,12 @@ + + + + http://localhost:1313/ + + + http://localhost:1313/categories/ + + + http://localhost:1313/tags/ + + diff --git a/public/tags/index.html b/public/tags/index.html new file mode 100644 index 0000000..cc271e1 --- /dev/null +++ b/public/tags/index.html @@ -0,0 +1,365 @@ + + + + + + + + + + + Tags · incngrnt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + Site Logo + + + + + + + +
    + + incongruent + + + + + + +
    +
    + +
    + + + + + +

    Tags

    + +
    + +
    + + + +
    +
    + + +
    + Built with Hugo & Kayal +
    + +
    + +
    + + diff --git a/public/tags/index.xml b/public/tags/index.xml new file mode 100644 index 0000000..09a75b2 --- /dev/null +++ b/public/tags/index.xml @@ -0,0 +1,11 @@ + + + + Tags on incngrnt + http://localhost:1313/tags/ + Recent content in Tags on incngrnt + Hugo -- 0.145.0 + en-ca + + + diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png new file mode 100644 index 0000000..7c128af Binary files /dev/null and b/static/android-chrome-192x192.png differ diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png new file mode 100644 index 0000000..01ccc4e Binary files /dev/null and b/static/android-chrome-512x512.png differ diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000..e8faa86 Binary files /dev/null and b/static/apple-touch-icon.png differ diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png new file mode 100644 index 0000000..41b089a Binary files /dev/null and b/static/favicon-16x16.png differ diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png new file mode 100644 index 0000000..ce16752 Binary files /dev/null and b/static/favicon-32x32.png differ diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..e0ceb3b Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/site.webmanifest b/static/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/static/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/themes/kayal b/themes/kayal new file mode 160000 index 0000000..0a715a1 --- /dev/null +++ b/themes/kayal @@ -0,0 +1 @@ +Subproject commit 0a715a1e1ecd6443cdef88cf773f354d85f7aff0