99 lines
34 KiB
HTML
99 lines
34 KiB
HTML
<!DOCTYPE html><html lang="en"> <head><!-- favicon --><link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png"><link rel="sitemap" href="/sitemap-index.xml"><meta name="theme-name" content="pages"><meta name="msapplication-TileColor" content="#000000"><meta name="theme-color" media="(prefers-color-scheme: light)" content="#fff"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#000"><meta name="generator" content="Astro v5.13.2"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"><title>
|
|
Search
|
|
|
|
</title><meta name="description" content="Search for content on this site
|
|
"><meta name="author" content="Jane Doe"><meta property="og:title" content="Search
|
|
"><meta property="og:description" content="Search for content on this site
|
|
"><meta property="og:type" content="website"><meta property="og:url" content="https://janedoe.com/search/"><meta property="og:image" content="https://janedoe.com@assets/og-image.png"><meta name="twitter:title" content="Search
|
|
"><meta name="twitter:description" content="Search for content on this site
|
|
"><meta name="twitter:image" content="https://janedoe.com@assets/og-image.png"><meta name="twitter:card" content="summary_large_image"><!-- Katex --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.css" integrity="sha384-zh0CIslj+VczCZtlzBcjt5ppRcsAmDnRem7ESsYwWwg3m/OaJ2l4x7YBZl9Kxxib" crossorigin="anonymous"><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.js" integrity="sha384-Rma6DA2IPUwhNxmrB/7S3Tno0YY7sFu9WSYMCuulLhIqYSGZ2gKCJWIqhBWqMQfh" crossorigin="anonymous"></script><script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/contrib/auto-render.min.js" integrity="sha384-hCXGrW6PitJEwbkoStFjeJxv+fSOOQKOPbJxSfM6G5sWZjAyWhXiTIIAmQqnlLlh" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script><!-- https://docs.astro.build/en/guides/view-transitions --><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="swap"><script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.DXDO1ZkE.js"></script><script type="application/json" data-tooltips-options>{"interactive":false,"delay":[333,0]}</script><script type="module" src="/_astro/Tooltips.astro_astro_type_script_index_0_lang.Bx2cGmPu.js"></script><link rel="stylesheet" href="/_astro/about.DDk7dmDO.css">
|
|
<link rel="stylesheet" href="/_astro/about.D07_NNuH.css"><script type="module" src="/_astro/page.DlXkxCA4.js"></script></head> <body> <!-- ---
|
|
// Twinkling Star Background
|
|
const numStars = 1600;
|
|
const stars = Array.from({ length: numStars }).map(() => ({
|
|
left: `${Math.random() * 100}%`,
|
|
top: `${Math.random() * 100}%`,
|
|
size: `${Math.random() * 2 + 1}px`,
|
|
delay: `${7 * Math.random()}s`,
|
|
// hsl: `hsl(${Math.random() * 360}, 100%, 50%)`, // background: ${hsl};
|
|
}));
|
|
---
|
|
<div
|
|
class="fixed top-0 left-0 w-full h-full pointer-events-none overflow-hidden"
|
|
>
|
|
{
|
|
stars.map(({ left, top, size, delay }) => (
|
|
<div
|
|
class="absolute bg-none dark:bg-yellow-50 rounded-full animate-twinkle"
|
|
style={`
|
|
left: ${left};
|
|
top: ${top};
|
|
width: ${size};
|
|
height: ${size};
|
|
animation-delay: ${delay};
|
|
`}
|
|
/>
|
|
))
|
|
}
|
|
</div> --><!-- Gradient Cycle Background --><!-- <div
|
|
class="gradient animate-cycleBg fixed top-0 left-0 w-full h-full -z-1 pointer-events-none overflow-hidden"
|
|
/>
|
|
<style>
|
|
.gradient {
|
|
background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
|
|
background-size: 400% 400%;
|
|
}
|
|
</style> --><!-- Single Image Background --><!-- <style>
|
|
html::before {
|
|
content: "";
|
|
position: fixed;
|
|
top: 0; left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: url(/src/assets/backgrounds/bwca-dusk.png) no-repeat center center;
|
|
background-size: cover;
|
|
z-index: -1;
|
|
pointer-events: none;
|
|
}
|
|
</style> --><!-- Dual Image Background --> <header class="container glass py-2 z-30 mb-4 lg:mt-4 lg:rounded-lg sticky top-0" data-astro-transition-persist="astro-zg46k4mb-1"> <nav class="relative flex flex-wrap items-center justify-between"> <!-- navbar toggler --> <input id="nav-toggle" type="checkbox" class="hidden"> <label for="nav-toggle" class="order-0 cursor-pointer flex items-center md:hidden text-txt-p dark:text-darkmode-txt-p lg:order-1"> <svg id="show-button" class="h-6 fill-current block" viewBox="0 0 20 20"> <title>Menu Open</title> <path d="M0 3h20v2H0V3z m0 6h20v2H0V9z m0 6h20v2H0V0z"></path> </svg> <svg id="hide-button" class="h-6 fill-current hidden" viewBox="0 0 20 20"> <title>Menu Close</title> <polygon points="11 9 22 9 22 11 11 11 11 22 9 22 9 11 -2 11 -2 9 9 9 9 -2 11 -2" transform="rotate(45 10 10)"></polygon> </svg> </label> <!-- /navbar toggler --> <ul id="nav-menu" class="text-center lg:text-left order-3 hidden w-full pb-6 md:order-1 md:flex md:w-auto md:space-x-2 md:pb-0 lg:space-x-4"> <li class=""> <a href="/" class="block p-2 font-secondary font-semibold text-txt-p transition dark:text-darkmode-txt-p lg:px-2 lg:py-3 false"> Home </a> </li><li class=""> <a href="/about" class="block p-2 font-secondary font-semibold text-txt-p transition dark:text-darkmode-txt-p lg:px-2 lg:py-3 false"> About </a> </li><li class=""> <a href="/docs" class="block p-2 font-secondary font-semibold text-txt-p transition dark:text-darkmode-txt-p lg:px-2 lg:py-3 false"> Docs </a> </li><li class=""> <a href="/blog" class="block p-2 font-secondary font-semibold text-txt-p transition dark:text-darkmode-txt-p lg:px-2 lg:py-3 false"> Blog </a> </li><li class=""> <a href="/portfolio" class="block p-2 font-secondary font-semibold text-txt-p transition dark:text-darkmode-txt-p lg:px-2 lg:py-3 false"> Portfolio </a> </li> </ul> <div class="order-1 ml-auto flex items-center md:order-2 lg:ml-0"> <a class="mr-4 inline-block border-border text-xl text-txt-p dark:border-darkmode-border dark:text-darkmode-txt-p" href="/search" aria-label="search"> <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M456.69 421.39 362.6 327.3a173.81 173.81 0 0 0 34.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 0 0 327.3 362.6l94.09 94.09a25 25 0 0 0 35.3-35.3zM97.92 222.72a124.8 124.8 0 1 1 124.8 124.8 124.95 124.95 0 0 1-124.8-124.8z"></path></svg> </a> <div class="inline-flex a mr-2"> <input class="absolute opacity-0" id="theme-switcher" data-theme-switcher type="checkbox"> <label class="relative inline-block h-4 w-6 cursor-pointer" for="theme-switcher"> <span class="sr-only">theme switcher</span> <span class="absolute -top-1 left-0 flex h-6 w-6 items-center justify-center rounded-full"> <svg class="absolute z-10 opacity-100 dark:opacity-0" viewBox="0 0 24 24" height="21" width="21"> <path fill="#000" d="M20.742 13.045a8.088 8.088 0 0 1-2.077.271c-2.135 0-4.14-.83-5.646-2.336a8.025 8.025 0 0 1-2.064-7.723A1 1 0 0 0 9.73 2.034a10.014 10.014 0 0 0-4.489 2.582c-3.898 3.898-3.898 10.243 0 14.143a9.937 9.937 0 0 0 7.072 2.93 9.93 9.93 0 0 0 7.07-2.929 10.007 10.007 0 0 0 2.583-4.491 1.001 1.001 0 0 0-1.224-1.224zm-2.772 4.301a7.947 7.947 0 0 1-5.656 2.343 7.953 7.953 0 0 1-5.658-2.344c-3.118-3.119-3.118-8.195 0-11.314a7.923 7.923 0 0 1 2.06-1.483 10.027 10.027 0 0 0 2.89 7.848 9.972 9.972 0 0 0 7.848 2.891 8.036 8.036 0 0 1-1.484 2.059z"></path> </svg> <svg class="absolute z-10 opacity-0 dark:opacity-100" viewBox="0 0 24 24" height="21" width="21"> <path fill="#fff" d="M6.993 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007S14.761 6.993 12 6.993 6.993 9.239 6.993 12zM12 8.993c1.658 0 3.007 1.349 3.007 3.007S13.658 15.007 12 15.007 8.993 13.658 8.993 12 10.342 8.993 12 8.993zM10.998 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2h-3zm17 0h3v2h-3zM4.219 18.363l2.12-2.122 1.415 1.414-2.12 2.122zM16.24 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.342 7.759 4.22 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z"></path> </svg> </span> </label> </div> <script data-astro-rerun>
|
|
const defaultTheme = "system";
|
|
|
|
function getTheme(defaultTheme) {
|
|
var darkMode = defaultTheme === "dark" ? true : false;
|
|
if (localStorage.getItem("theme") === "system") {
|
|
if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
|
darkMode = true;
|
|
}
|
|
} else if (localStorage.getItem("theme") === "dark") {
|
|
darkMode = true;
|
|
} else if (localStorage.getItem("theme") === "light") {
|
|
darkMode = false;
|
|
}
|
|
return darkMode;
|
|
}
|
|
|
|
function setTheme(darkMode) {
|
|
// Update DOM
|
|
darkMode
|
|
? document.documentElement.classList.add("dark")
|
|
: document.documentElement.classList.remove("dark");
|
|
// Update localStorage
|
|
localStorage.setItem("theme", darkMode ? "dark" : "light");
|
|
}
|
|
|
|
// This prevents flickering back to default theme before the page is fully loaded
|
|
setTheme(getTheme(defaultTheme));
|
|
|
|
document.addEventListener("astro:page-load", () => {
|
|
setTheme(getTheme(defaultTheme));
|
|
// Theme switcher
|
|
var themeSwitch = document.querySelectorAll("[data-theme-switcher]");
|
|
themeSwitch.forEach((el) => {
|
|
el.addEventListener("change", (e) => {
|
|
setTheme(e.target.checked);
|
|
});
|
|
});
|
|
});
|
|
</script> </div> </nav> </header> <main id="main-content" class="flex-1"> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();</script><script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="ZTNX2B" prefix="r4" component-url="/_astro/Search.CdC7TZqo.js" component-export="default" renderer-url="/_astro/client.DPSb9UvF.js" props="{"searchList":[1,[[0,{"id":[0,"-index"],"data":[0,{"title":[0,"Welcome!"],"description":[0,"this is meta description"],"autodescription":[0,true],"draft":[0,false],"image":[0,{"src":[0,"/_astro/john-doe.Cur90ukb.jpg"],"width":[0,1242],"height":[0,1019],"format":[0,"png"]}],"imageAlt":[0,""]}],"body":[0,"Thank you for stopping by this lonely site in this vast digital ocean we call the internet. Here I will upload my adventures in the exciting realm of programming and developing. Perhaps some alternative creative endeavours will be featured here as well. Hopefully you do find this an inspiring website, and not super cringe! I would hate to be **that** guy. Anyway, have a great day!\n\n<br>Yours truly,</br>\n\n#### Kristian Takvam"],"filePath":[0,"src/content/about/-index.md"],"assetImports":[1,[[0,"@assets/profile/john-doe.jpg"]]],"digest":[0,"68487d063716b159"],"rendered":[0,{"html":[0,"<p>Thank you for stopping by this lonely site in this vast digital ocean we call the internet. Here I will upload my adventures in the exciting realm of programming and developing. Perhaps some alternative creative endeavours will be featured here as well. Hopefully you do find this an inspiring website, and not super cringe! I would hate to be <strong>that</strong> guy. Anyway, have a great day!</p>\n<p><br>Yours truly,<br></p>\n<h4 id=\"kristian-takvam\">Kristian Takvam</h4>"],"metadata":[0,{"headings":[1,[[0,{"depth":[0,4],"slug":[0,"kristian-takvam"],"text":[0,"Kristian Takvam"]}]]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Welcome!"],"description":[0,"this is meta description"],"image":[0,"@assets/profile/john-doe.jpg"],"draft":[0,false]}],"imagePaths":[1,[]]}]}],"collection":[0,"about"]}],[0,{"id":[0,"-index"],"data":[0,{"title":[0,"Blog Posts"],"description":[0,"The blog of Jane and John Doe"],"autodescription":[0,true],"draft":[0,false],"imageAlt":[0,""],"complexity":[0,1],"hideToc":[0,false]}],"filePath":[0,"src/content/blog/-index.md"],"digest":[0,"2ad6ced65cb9df7e"],"rendered":[0,{"html":[0,""],"metadata":[0,{"headings":[1,[]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Blog Posts"],"description":[0,"The blog of Jane and John Doe"]}],"imagePaths":[1,[]]}]}],"collection":[0,"blog"]}],[0,{"id":[0,"tutorials/elements"],"data":[0,{"title":[0,"Elements"],"autodescription":[0,true],"draft":[0,false],"image":[0,{"src":[0,"/_astro/john-doe.Cur90ukb.jpg"],"width":[0,1242],"height":[0,1019],"format":[0,"png"]}],"imageAlt":[0,""],"hideToc":[0,false],"hideNav":[0,false]}],"body":[0,"# Heading 1\n\n## Heading 2\n\n### Heading 3\n\n#### Heading 4\n\n##### Heading 5\n\n###### Heading 6\n\n---\n\n### Emphasis\n\n- *Everyone's* a slave to something\n- Everyone's <ins>a slave</ins> to something\n- Everyone's a slave to **something**\n- Everyone's ***a slave*** to something\n- Everyone's ~~a slave~~ to something\n\n---\n\n### Link\n\n[An inline-style link](https://reednel.com)\n\n[An inline-style link with tooltip](https://reednel.com \"Reed Nelson's website\")\n\n[A reference-style link][arbitrary case-insensitive reference text]\n\n[You can use numbers for reference-style link definitions][1]\n\n[reference text]: https://reednel.com\n[1]: https://reednel.com\n\n---\n\n### Ordered List\n\n1. List item\n2. List item\n3. List item\n\n---\n\n### Unordered List\n\n- List item\n- List item\n- List item\n\n---\n\n### Code and Syntax Highlighting\n\n#### SQL\n\n```sql\nSELECT\n p.personID,\n id.firstName,\n id.lastName\nFROM\n dbo.Person AS p\nINNER JOIN dbo.Identity AS id ON id.identityID = p.currentIdentityID\nWHERE\n p.age > 30 AND p.eyeColor = 'grn'\n```\n---\n\n### LaTeX\n\nIn the middle of this sentance $$\\int_0^\\infty x^2 dx = \\frac{1}{3}$$ is an inline expression. And after that is a block expression:\n\n$$$\n\\int_0^\\infty x^2 dx = \\frac{1}{3}\n$$$\n\nBefore this is a block expression.\n\n---\n\n### Button\n\n<Button\n label=\"Button\"\n link=\"/\"\n type=\"primary\"\n color='bg-gradient-to-br from-blue-500 to-pink-500'\n newtab\n hoverInvert\n/>\n\n---\n\n### Quote\n\n> When I saw my devil, I found him serious, thorough, profound, solemn. He was the spirit of gravity, through which all things fall.\n\n---\n\n### Notice\n\n<Notice type=\"note\">This is a simple note.</Notice>\n\n<Notice type=\"tip\">This is a simple note.</Notice>\n\n<Notice type=\"info\">This is a simple note.</Notice>\n\n<Notice type=\"warning\">This is a simple note.</Notice>\n\n---\n\n### Tab\n\n<Tabs client:load>\n\n<Tab name=\"Tab 1\">\n\n#### On Gambling\n\nIf we focus on making the best moves, we will never get the better of our opponent. When necessary, we must be willing to take the big risks and be prepared to lose everything.\n\n</Tab>\n\n<Tab name=\"Tab 2\">\n\n#### On Soldiering\n\nYou should give up on becoming a soldier. Throwing your life away is not the only way to fight.\n\n</Tab>\n\n<Tab name=\"Tab 3\">\n\n#### On Soldering\n\nMaintain a coating of solder on working area of soldering iron tip. Protects the tip from oxidation.\n\n</Tab>\n\n</Tabs>\n\n---\n\n### Table\n\n| # | First | Last | Handle |\n| :-- | :----------: | :----------: | -----------: |\n| 1 | Row:1 Cell:1 | Row:1 Cell:2 | Row:1 Cell:3 |\n| 2 | Row:2 Cell:1 | Row:2 Cell:2 | Row:2 Cell:3 |\n| 3 | Row:3 Cell:1 | Row:3 Cell:2 | Row:3 Cell:3 |\n\n---\n\n### Accordion\n\n<Accordion client:load title=\"Why would you use an accordion?\">\n\nMaybe you don't need to see everything all the time geez.\n\n</Accordion>\n\n---\n\n### Youtube video\n\n<Youtube client:load id=\"9Kfv1WeoAvk\" title=\"Riebeck's Banjo\"/>\n\n---\n\n### Image\n\n"],"filePath":[0,"src/content/docs/tutorials/elements.mdx"],"assetImports":[1,[[0,"@assets/backgrounds/bwca-dusk.png"]]],"digest":[0,"73083654f4439271"],"deferredRender":[0,true],"collection":[0,"docs"]}],[0,{"id":[0,"tutorials/-index"],"data":[0,{"title":[0,"Tutorials"],"description":[0,"This is the docs"],"autodescription":[0,true],"draft":[0,false],"image":[0,{"src":[0,"/_astro/john-doe.Cur90ukb.jpg"],"width":[0,1242],"height":[0,1019],"format":[0,"png"]}],"imageAlt":[0,""],"hideToc":[0,false],"hideNav":[0,false]}],"filePath":[0,"src/content/docs/tutorials/-index.md"],"assetImports":[1,[[0,"@assets/backgrounds/bwca-dusk.png"]]],"digest":[0,"9a091645d142e8c4"],"rendered":[0,{"html":[0,""],"metadata":[0,{"headings":[1,[]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Tutorials"],"description":[0,"This is the docs"],"image":[0,"@assets/backgrounds/bwca-dusk.png"],"draft":[0,false]}],"imagePaths":[1,[]]}]}],"collection":[0,"docs"]}],[0,{"id":[0,"-index"],"data":[0,{"title":[0,"Documentation"],"description":[0,"This is the docs"],"autodescription":[0,true],"draft":[0,false],"imageAlt":[0,""],"hideToc":[0,false],"hideNav":[0,false]}],"filePath":[0,"src/content/docs/-index.md"],"digest":[0,"1ac072f69400d2fa"],"rendered":[0,{"html":[0,""],"metadata":[0,{"headings":[1,[]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Documentation"],"description":[0,"This is the docs"],"draft":[0,false]}],"imagePaths":[1,[]]}]}],"collection":[0,"docs"]}],[0,{"id":[0,"-index"],"data":[0,{"title":[0,"Poetry"],"description":[0,"Jane's poems"],"autodescription":[0,true],"draft":[0,false],"imageAlt":[0,""]}],"filePath":[0,"src/content/poetry/-index.md"],"digest":[0,"0f228577dec20148"],"rendered":[0,{"html":[0,""],"metadata":[0,{"headings":[1,[]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Poetry"],"description":[0,"Jane's poems"]}],"imagePaths":[1,[]]}]}],"collection":[0,"poetry"]}],[0,{"id":[0,"-index"],"data":[0,{"title":[0,"Portfolio"],"description":[0,"Kristian's projects and programs."],"autodescription":[0,true],"draft":[0,false],"projects":[1,[[0,{"title":[0,"Portal Room"],"github":[0,"https://github.com/Kremtastic/PortalRoom"],"technologies":[1,[[0,"Unity"],[0,"VR"],[0,"C#"]]],"content":[1,[[0,"Hub area with portals connecting to other rooms. Has multiplayer functionality and interactivity. Developed in the Unity Game Engine as part of the course DAT259 at HVL."]]]}],[0,{"title":[0,"Raytracer Unity"],"github":[0,"https://github.com/Kremtastic/RaytracerUnity"],"technologies":[1,[[0,"Unity"],[0,"HLSL"],[0,"C#"]]],"content":[1,[[0,"Ray tracing implemented in the Unity Game Engine by following the 'Ray Tracing in One Weekend' guide."]]]}],[0,{"title":[0,"DAT250 (HVL Course) - FeedApp"],"technologies":[1,[[0,"Java"],[0,"Svelte"],[0,"Vite"],[0,"PostgreSQL"]]],"content":[1,[[0,"A FeedApp project that focuses on creating a functional prototype of a web application where users can create, manage, and participate in surveys and polls. The main goal of the project is to provide users with an easy-to-use interface for voting on polls and managing surveys. At the same time, the project explores and evaluates different authentication methods to determine the best fit for this kind of application."]]]}]]]}],"filePath":[0,"src/content/portfolio/-index.md"],"digest":[0,"9c383aadaeda3738"],"rendered":[0,{"html":[0,""],"metadata":[0,{"headings":[1,[]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Portfolio"],"description":[0,"Kristian's projects and programs."],"projects":[1,[[0,{"title":[0,"Portal Room"],"technologies":[1,[[0,"Unity"],[0,"VR"],[0,"C#"]]],"github":[0,"https://github.com/Kremtastic/PortalRoom"],"content":[1,[[0,"Hub area with portals connecting to other rooms. Has multiplayer functionality and interactivity. Developed in the Unity Game Engine as part of the course DAT259 at HVL."]]]}],[0,{"title":[0,"Raytracer Unity"],"technologies":[1,[[0,"Unity"],[0,"HLSL"],[0,"C#"]]],"github":[0,"https://github.com/Kremtastic/RaytracerUnity"],"content":[1,[[0,"Ray tracing implemented in the Unity Game Engine by following the 'Ray Tracing in One Weekend' guide."]]]}],[0,{"title":[0,"DAT250 (HVL Course) - FeedApp"],"technologies":[1,[[0,"Java"],[0,"Svelte"],[0,"Vite"],[0,"PostgreSQL"]]],"content":[1,[[0,"A FeedApp project that focuses on creating a functional prototype of a web application where users can create, manage, and participate in surveys and polls. The main goal of the project is to provide users with an easy-to-use interface for voting on polls and managing surveys. At the same time, the project explores and evaluates different authentication methods to determine the best fit for this kind of application."]]]}]]]}],"imagePaths":[1,[]]}]}],"collection":[0,"portfolio"]}],[0,{"id":[0,"-index"],"data":[0,{"title":[0,"Recipes"],"description":[0,"A modest recipe book."],"autodescription":[0,true],"draft":[0,false],"imageAlt":[0,""]}],"filePath":[0,"src/content/recipes/-index.md"],"digest":[0,"fc090bc4e00e5a36"],"rendered":[0,{"html":[0,""],"metadata":[0,{"headings":[1,[]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Recipes"],"description":[0,"A modest recipe book."]}],"imagePaths":[1,[]]}]}],"collection":[0,"recipes"]}],[0,{"id":[0,"-index"],"data":[0,{"title":[0,"Terms & Conditions"],"autodescription":[0,true],"draft":[0,false]}],"body":[0,"## Copyright\n\n&copy; 2025 Kristian Emil Takvam. All rights reserved.\n\nThis site is built using the open-source <a href=\"https://github.com/astrogon/astrogon\" target=\"_blank\"> **Astrogon**</a> theme by <a href=\"https://reednel.com/\" target=\"_blank\">**Reed Nelson**</a>, available under the MIT License.\n\nYou are free to view and share this site. However, please do not copy or republish my original content (text or images) without permission."],"filePath":[0,"src/content/terms/-index.md"],"digest":[0,"c80e8b0ac818cf74"],"rendered":[0,{"html":[0,"<h2 id=\"copyright\">Copyright</h2>\n<p>© 2025 Kristian Emil Takvam. All rights reserved.</p>\n<p>This site is built using the open-source <a href=\"https://github.com/astrogon/astrogon\" target=\"_blank\"> <strong>Astrogon</strong></a> theme by <a href=\"https://reednel.com/\" target=\"_blank\"><strong>Reed Nelson</strong></a>, available under the MIT License.</p>\n<p>You are free to view and share this site. However, please do not copy or republish my original content (text or images) without permission.</p>"],"metadata":[0,{"headings":[1,[[0,{"depth":[0,2],"slug":[0,"copyright"],"text":[0,"Copyright"]}]]],"localImagePaths":[1,[]],"remoteImagePaths":[1,[]],"frontmatter":[0,{"title":[0,"Terms & Conditions"]}],"imagePaths":[1,[]]}]}],"collection":[0,"terms"]}]]]}" ssr client="load" opts="{"name":"Search","value":true}" await-children><section class="section-sm"><div class="container"><div class="row mb-10 justify-center"><div class="col-10 lg:col-8 px-0"><div class="flex flex-nowrap"><input class="w-full glass rounded-lg px-6 py-4 text-txt-p placeholder:text-txt-light dark:placeholder:text-darkmode-txt-light focus:border-darkmode-border focus:ring-transparent dark:text-darkmode-txt-light intersect:animate-fadeDown opacity-0 intersect-no-queue" placeholder="search posts" type="search" name="search" autoComplete="off" autofocus="" value=""/></div></div></div><div class="row"><div class="col-10 lg:col-8 mx-auto p-2 text-center glass rounded-lg intersect:animate-fadeUp opacity-0"><p>Looking for something?</p></div></div></div></section><!--astro:end--></astro-island> </main> <footer class="glass container lg:my-4 lg:rounded-lg intersect:animate-fadeUp opacity-0"> <div class="row py-2 lg:py-0 items-center flex-wrap-reverse"> <div class="text-center lg:col-6 lg:mb-0 lg:text-left"> <ul> <li class="m-2 inline-block"> <a href="/terms">© Kristian Emil Takvam 2025</a> |
|
|
<a href="https://github.com/astrogon/astrogon" target="_blank"> <strong>Astrogon</strong></a> theme by
|
|
<a href="https://reednel.com/" target="_blank"> <strong>Reed Nelson</strong></a> </li> </ul> </div> <div class="text-center lg:col-6 lg:my-0 flex items-center justify-center lg:justify-end"> <ul class="py-2 flex items-center"><li class="inline-block px-1 intersect:animate-fade opacity-0"><a class="glass-t rounded text-txt-p dark:text-darkmode-txt-p flex h-9 w-9 items-center justify-center text-center" aria-label="GitHub" href="https://www.github.com/Kremtastic" target="_blank" rel="noopener noreferrer nofollow"><span class="sr-only">GitHub</span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" class="w-6 h-6" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a></li><li class="inline-block px-1 intersect:animate-fade opacity-0"><a class="glass-t rounded text-txt-p dark:text-darkmode-txt-p flex h-9 w-9 items-center justify-center text-center" aria-label="LinkedIn" href="https://www.linkedin.com/in/kristian-emil-takvam-70a475215/" target="_blank" rel="noopener noreferrer nofollow"><span class="sr-only">LinkedIn</span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" class="w-6 h-6" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg></a></li></ul> </div> </div> </footer> <!-- <ObserverScript /> --> </body></html> |