First Commit
6
src/archetypes/default.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
||||
3
src/build.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rm -Rf public/ build/
|
||||
hugo --destination build/
|
||||
71
src/build/404.html
Normal file
@@ -0,0 +1,71 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>404 Page not found // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="404 Page not found"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="404 Page not found" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/404.html" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<div class="error-404">
|
||||
<h1 class="error-404-title">O<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="icon icon-frown">
|
||||
<title>frown</title>
|
||||
<circle cx="12" cy="12" r="10"></circle><path d="M16 16s-1.5-2-4-2-4 2-4 2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line>
|
||||
</svg>ps... </h1>
|
||||
<p>The link you followed may be broken, or the page may have been removed.</p>
|
||||
<a href="/">Go home <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="icon icon-arrow-right">
|
||||
<title>arrow-right</title>
|
||||
<line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
|
||||
</svg></a>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
BIN
src/build/avatar.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
68
src/build/categories/index.html
Normal file
@@ -0,0 +1,68 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Categories // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Categories"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Categories" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/categories/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
|
||||
<article>
|
||||
<h1>Categories</h1>
|
||||
<ul class="tags-list">
|
||||
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
10
src/build/categories/index.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Categories on Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/categories/</link>
|
||||
<description>Recent content in Categories on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language><atom:link href="https://blog.fluttershub.com/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
</channel>
|
||||
</rss>
|
||||
@@ -0,0 +1 @@
|
||||
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{font-size:1rem;line-height:1.2em;margin:0;overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{width:15rem;height:15rem}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}@media(max-width:940px){h2{font-size:large}.app-container{padding:.5rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content>pre,.post-content .highlight{margin:1em 0}.post-content>pre,.post-content .highlight>pre,.post-content .highlight>div{border-left:.4em solid rgba(87,204,138,.8);padding:.5em 1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}.gradient-border{margin:auto;--border-width:0.35rem;border-radius:.35rem;position:relative;display:flex;justify-content:center;align-items:center;font-family:Lato,sans-serif;font-size:2.5rem;text-transform:uppercase;color:#fff;background:#222;border-radius:var(--border-width)}.gradient-border::after{position:absolute;content:"";top:calc(-1 * var(--border-width));left:calc(-1 * var(--border-width));z-index:-1;width:calc(100% + var(--border-width) * 2);height:calc(100% + var(--border-width) * 2);background:linear-gradient(60deg,#5f86f2,#a65ff2,#f25fd0,#f25f61,#f2cb5f,#abf25f,#5ff281,#5ff2f0);background-size:300% 300%;background-position:0;border-radius:calc(2 * var(--border-width));animation:moveGradient 4s alternate infinite}@keyframes moveGradient{50%{background-position:100%}}.gradient-border img{margin:auto;width:100%;border-radius:1.5%}
|
||||
90
src/build/index.html
Normal file
@@ -0,0 +1,90 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="Land of random projects i do." />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Phoenix's Personal Blog"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Phoenix's Personal Blog" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>Phoenix's Personal Blog</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
38
src/build/index.xml
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/</link>
|
||||
<description>Recent content on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
|
||||
<description>Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</guid>
|
||||
<description>#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Service</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</guid>
|
||||
<description># /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target </description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/build/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/</title><link rel="canonical" href="https://blog.fluttershub.com/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/" /></head></html>
|
||||
90
src/build/posts/index.html
Normal file
@@ -0,0 +1,90 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Posts // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Posts"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Posts" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/posts/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>Posts</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
38
src/build/posts/index.xml
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Posts on Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/posts/</link>
|
||||
<description>Recent content in Posts on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
|
||||
<description>Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</guid>
|
||||
<description>#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Service</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</guid>
|
||||
<description># /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target </description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/build/posts/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/posts/</title><link rel="canonical" href="https://blog.fluttershub.com/posts/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/posts/" /></head></html>
|
||||
BIN
src/build/posts/windows10-kvm/images/hardware-overview.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
src/build/posts/windows10-kvm/images/network.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
176
src/build/posts/windows10-kvm/index.html
Normal file
@@ -0,0 +1,176 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough"/>
|
||||
<meta name="twitter:description" content="Note: This is here as notes and shouldn’t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5."/>
|
||||
|
||||
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough" />
|
||||
<meta property="og:description" content="Note: This is here as notes and shouldn’t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5." />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2020-05-18T00:00:00+00:00" />
|
||||
<meta property="article:modified_time" content="2020-05-18T00:00:00+00:00" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article class="post">
|
||||
<header class="post-header">
|
||||
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough</h1>
|
||||
<div class="post-meta">
|
||||
<div>
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tag" href="https://blog.fluttershub.com/tags/virtualization/">virtualization</a>
|
||||
<a class="tag" href="https://blog.fluttershub.com/tags/kvm/">kvm</a>
|
||||
<a class="tag" href="https://blog.fluttershub.com/tags/windows/">windows</a>
|
||||
<a class="tag" href="https://blog.fluttershub.com/tags/linux/">linux</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content">
|
||||
<h2 id="note-this-is-here-as-notes-and-shouldnt-be-taken-as-a-direct-guide">Note: This is here as notes and shouldn’t be taken as a direct guide.</h2>
|
||||
<h1 id="table-of-contents">Table of Contents</h1>
|
||||
<div class="toc" class="well col-md-4 col-sm-6">
|
||||
<nav id="TableOfContents">
|
||||
<ul>
|
||||
<li><a href="#host-specs">Host Specs</a></li>
|
||||
<li><a href="#final-vm-configuration">Final VM Configuration</a></li>
|
||||
<li><a href="#extra-kernal-arguements">Extra Kernal Arguements</a></li>
|
||||
<li><a href="#nvidia-gpu-vfio-patch-this-is-required-on-10xx-series">Nvidia GPU VFIO patch (This is required on 10XX Series)</a></li>
|
||||
<li><a href="#vm-networking">VM Networking</a></li>
|
||||
<li><a href="#cpu-settings">CPU Settings</a></li>
|
||||
<li><a href="#sata-passthrough">Sata Passthrough</a></li>
|
||||
<li><a href="#virt-manager-hardware-overview">Virt-Manager Hardware Overview</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<h3 id="host-specs">Host Specs</h3>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-txt" data-lang="txt">CPU: AMD Ryzen 5 3600
|
||||
GPU: NVIDIA GeForce GTX 1060 6GB
|
||||
Motherboard: MSI B450 Tomahawk Max
|
||||
OS: Garuda Linux: Spotted-Eagle
|
||||
Kernel: 5.12.3-zen1-1-zen
|
||||
Memory: 16GB </code></pre></div>
|
||||
<h3 id="final-vm-configuration">Final VM Configuration</h3>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-txt" data-lang="txt">CPU: 4 Cores, 8 Threads
|
||||
GPU: NVIDIA GeForce GTX 1060 6GB
|
||||
Memory: 10GB
|
||||
Chipset: Q35
|
||||
Firmware: OVMF
|
||||
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 XHCI Controller
|
||||
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller</code></pre></div>
|
||||
<h3 id="extra-kernal-arguements">Extra Kernal Arguements</h3>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-txt" data-lang="txt">video:vesafb=off video:efifb=off amd_iommu=on iommu=pt iommu=1 pcie_acs_override=downstream,multifunction</code></pre></div>
|
||||
<h3 id="nvidia-gpu-vfio-patch-this-is-required-on-10xx-series">Nvidia GPU VFIO patch (This is required on 10XX Series)</h3>
|
||||
<p>Original bios downloaded from: <a href="https://www.techpowerup.com/vgabios/">https://www.techpowerup.com/vgabios/</a><br>
|
||||
<a href="https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher">NVIDIA vBIOS VFIO Patcher</a>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash">git clone https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher
|
||||
<span style="color:#8be9fd;font-style:italic">cd</span> NVIDIA-vBIOS-VFIO-Patcher
|
||||
python nvidia_vbios_vfio_patcher.py -i /home/phoenix/download/gtx1060.rom -o ./gtx1060-patched.rom
|
||||
cp ./gtx1060-patched.rom /usr/share/vgabios/gtx1060-patched.rom</code></pre></div></p>
|
||||
<h4 id="make-sure-bar-is-toggled-pass-the-file-for-the-rom-and-the-second-address-contains-multifunctionon">Make sure Bar is toggled, Pass the file for the rom, and the second address contains multifunction=‘on’</h4>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"><span style="color:#ff79c6"><hostdev</span> <span style="color:#50fa7b">mode=</span><span style="color:#f1fa8c">'subsystem'</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">'pci'</span> <span style="color:#50fa7b">managed=</span><span style="color:#f1fa8c">'yes'</span><span style="color:#ff79c6">></span>
|
||||
<span style="color:#ff79c6"><source></span>
|
||||
<span style="color:#ff79c6"><address</span> <span style="color:#50fa7b">domain=</span><span style="color:#f1fa8c">'0x0000'</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">'0x26'</span> <span style="color:#50fa7b">slot=</span><span style="color:#f1fa8c">'0x00'</span> <span style="color:#50fa7b">function=</span><span style="color:#f1fa8c">'0x0'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"></source></span>
|
||||
<span style="color:#ff79c6"><rom</span> <span style="color:#50fa7b">bar=</span><span style="color:#f1fa8c">'on'</span> <span style="color:#50fa7b">file=</span><span style="color:#f1fa8c">'/usr/share/vgabios/gtx1060-patched.rom'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><address</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">'pci'</span> <span style="color:#50fa7b">domain=</span><span style="color:#f1fa8c">'0x0000'</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">'0x03'</span> <span style="color:#50fa7b">slot=</span><span style="color:#f1fa8c">'0x00'</span> <span style="color:#50fa7b">function=</span><span style="color:#f1fa8c">'0x0'</span> <span style="color:#50fa7b">multifunction=</span><span style="color:#f1fa8c">'on'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"></hostdev></span></code></pre></div>
|
||||
<h3 id="vm-networking">VM Networking</h3>
|
||||
<p><strong>Scripts</strong><br>
|
||||
<a href="/posts/windows10-kvm/macvlan/">macvlan.sh</a><br>
|
||||
<a href="/posts/windows10-kvm/macvlan-service/">macvlan.service</a></p>
|
||||
<p><strong>Virt-Manager Settings</strong><br>
|
||||
<img src="/posts/windows10-kvm/images/network.png" alt="Virt-Manager-Networking"></p>
|
||||
<h3 id="cpu-settings">CPU Settings</h3>
|
||||
<p><div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"><span style="color:#ff79c6"><cputune></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'0'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'2'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'1'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'8'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'2'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'3'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'3'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'9'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'4'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'4'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'5'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'10'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'6'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'5'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">'7'</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'11'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><emulatorpin</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">'0-1,6-7'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"></cputune></span></code></pre></div>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"> <span style="color:#ff79c6"><cpu</span> <span style="color:#50fa7b">mode=</span><span style="color:#f1fa8c">'host-passthrough'</span> <span style="color:#50fa7b">check=</span><span style="color:#f1fa8c">'none'</span> <span style="color:#50fa7b">migratable=</span><span style="color:#f1fa8c">'off'</span><span style="color:#ff79c6">></span>
|
||||
<span style="color:#ff79c6"><topology</span> <span style="color:#50fa7b">sockets=</span><span style="color:#f1fa8c">'1'</span> <span style="color:#50fa7b">dies=</span><span style="color:#f1fa8c">'1'</span> <span style="color:#50fa7b">cores=</span><span style="color:#f1fa8c">'4'</span> <span style="color:#50fa7b">threads=</span><span style="color:#f1fa8c">'2'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><cache</span> <span style="color:#50fa7b">mode=</span><span style="color:#f1fa8c">'passthrough'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><feature</span> <span style="color:#50fa7b">policy=</span><span style="color:#f1fa8c">'require'</span> <span style="color:#50fa7b">name=</span><span style="color:#f1fa8c">'topoext'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"></cpu></span></code></pre></div></p>
|
||||
<h3 id="sata-passthrough">Sata Passthrough</h3>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"><span style="color:#ff79c6"><disk</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">'block'</span> <span style="color:#50fa7b">device=</span><span style="color:#f1fa8c">'disk'</span><span style="color:#ff79c6">></span>
|
||||
<span style="color:#ff79c6"><driver</span> <span style="color:#50fa7b">name=</span><span style="color:#f1fa8c">'qemu'</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">'raw'</span> <span style="color:#50fa7b">cache=</span><span style="color:#f1fa8c">'none'</span> <span style="color:#50fa7b">io=</span><span style="color:#f1fa8c">'native'</span> <span style="color:#50fa7b">discard=</span><span style="color:#f1fa8c">'unmap'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><source</span> <span style="color:#50fa7b">dev=</span><span style="color:#f1fa8c">'/dev/disk/by-id/ata-....'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><target</span> <span style="color:#50fa7b">dev=</span><span style="color:#f1fa8c">'sda'</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">'sata'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><boot</span> <span style="color:#50fa7b">order=</span><span style="color:#f1fa8c">'1'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"><address</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">'drive'</span> <span style="color:#50fa7b">controller=</span><span style="color:#f1fa8c">'0'</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">'0'</span> <span style="color:#50fa7b">target=</span><span style="color:#f1fa8c">'0'</span> <span style="color:#50fa7b">unit=</span><span style="color:#f1fa8c">'0'</span><span style="color:#ff79c6">/></span>
|
||||
<span style="color:#ff79c6"></disk></span></code></pre></div>
|
||||
<h3 id="virt-manager-hardware-overview">Virt-Manager Hardware Overview</h3>
|
||||
<p><img src="/posts/windows10-kvm/images/hardware-overview.png" alt="Virt-Manager-Overview"></p>
|
||||
|
||||
</div>
|
||||
<div class="post-footer">
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
99
src/build/posts/windows10-kvm/macvlan-service/index.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Service // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Service"/>
|
||||
<meta name="twitter:description" content="# /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target "/>
|
||||
|
||||
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Service" />
|
||||
<meta property="og:description" content="# /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target " />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2020-05-18T00:00:00+00:00" />
|
||||
<meta property="article:modified_time" content="2020-05-18T00:00:00+00:00" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article class="post">
|
||||
<header class="post-header">
|
||||
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough - macvlan Service</h1>
|
||||
<div class="post-meta">
|
||||
<div>
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content">
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash"><span style="color:#6272a4"># /etc/systemd/system/macvlan.service</span>
|
||||
|
||||
<span style="color:#ff79c6">[</span>Unit<span style="color:#ff79c6">]</span>
|
||||
<span style="color:#8be9fd;font-style:italic">Description</span><span style="color:#ff79c6">=</span>MACVLAN bridge to share a physical network interface with KVM/QEMU hosts.
|
||||
<span style="color:#8be9fd;font-style:italic">Documentation</span><span style="color:#ff79c6">=</span>https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/
|
||||
<span style="color:#8be9fd;font-style:italic">After</span><span style="color:#ff79c6">=</span>network-online.target
|
||||
<span style="color:#8be9fd;font-style:italic">Wants</span><span style="color:#ff79c6">=</span>network-online.target
|
||||
<span style="color:#8be9fd;font-style:italic">Before</span><span style="color:#ff79c6">=</span>libvirt-guests.service
|
||||
|
||||
<span style="color:#ff79c6">[</span>Service<span style="color:#ff79c6">]</span>
|
||||
<span style="color:#8be9fd;font-style:italic">Type</span><span style="color:#ff79c6">=</span>oneshot
|
||||
<span style="color:#8be9fd;font-style:italic">RemainAfterExit</span><span style="color:#ff79c6">=</span>yes
|
||||
<span style="color:#8be9fd;font-style:italic">ExecStart</span><span style="color:#ff79c6">=</span>/home/phoenix/macvlan/macvlan.sh
|
||||
|
||||
<span style="color:#ff79c6">[</span>Install<span style="color:#ff79c6">]</span>
|
||||
<span style="color:#8be9fd;font-style:italic">WantedBy</span><span style="color:#ff79c6">=</span>multi-user.target</code></pre></div>
|
||||
|
||||
</div>
|
||||
<div class="post-footer">
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
147
src/build/posts/windows10-kvm/macvlan/index.html
Normal file
@@ -0,0 +1,147 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script"/>
|
||||
<meta name="twitter:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www."/>
|
||||
|
||||
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script" />
|
||||
<meta property="og:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www." />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/macvlan/" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2020-05-18T00:00:00+00:00" />
|
||||
<meta property="article:modified_time" content="2020-05-18T00:00:00+00:00" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article class="post">
|
||||
<header class="post-header">
|
||||
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough - macvlan Script</h1>
|
||||
<div class="post-meta">
|
||||
<div>
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content">
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash"><span style="color:#ff79c6">#!/bin/sh
|
||||
</span><span style="color:#ff79c6"></span><span style="color:#6272a4"># Last Edited: 2020-05-18</span>
|
||||
<span style="color:#6272a4"># From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/</span>
|
||||
|
||||
<span style="color:#6272a4"># Let host and guests talk to each other over macvlan.</span>
|
||||
<span style="color:#6272a4"># Configures a macvlan interface on the hypervisor.</span>
|
||||
<span style="color:#6272a4"># Run this on the hypervisor (e.g. in /etc/rc.local)</span>
|
||||
<span style="color:#6272a4"># Made for IPv4; need modification for IPv6.</span>
|
||||
<span style="color:#6272a4"># Meant for a simple network setup with only eth0,</span>
|
||||
<span style="color:#6272a4"># and a static (manual) ip config.</span>
|
||||
<span style="color:#6272a4"># Evert Mouw, 2013. Slightly modified in 2020.</span>
|
||||
|
||||
<span style="color:#8be9fd;font-style:italic">HWLINK</span><span style="color:#ff79c6">=</span>enp34s0
|
||||
<span style="color:#8be9fd;font-style:italic">MACVLN</span><span style="color:#ff79c6">=</span>macvlan0
|
||||
<span style="color:#8be9fd;font-style:italic">TESTHOST</span><span style="color:#ff79c6">=</span>www.google.com
|
||||
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
<span style="color:#6272a4"># test if interface already exists</span>
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
<span style="color:#ff79c6">if</span> ip link show | grep <span style="color:#f1fa8c">"</span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c">@</span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">"</span> > /dev/null
|
||||
<span style="color:#ff79c6">then</span>
|
||||
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">"Link </span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c"> already exists on </span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">."</span>
|
||||
<span style="color:#8be9fd;font-style:italic">exit</span>
|
||||
<span style="color:#ff79c6">fi</span>
|
||||
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
<span style="color:#6272a4"># wait for network availability</span>
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
|
||||
<span style="color:#ff79c6">while</span> ! ping -q -c <span style="color:#bd93f9">1</span> <span style="color:#8be9fd;font-style:italic">$TESTHOST</span> > /dev/null
|
||||
<span style="color:#ff79c6">do</span>
|
||||
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">"</span><span style="color:#8be9fd;font-style:italic">$0</span><span style="color:#f1fa8c">: Cannot ping </span><span style="color:#8be9fd;font-style:italic">$TESTHOST</span><span style="color:#f1fa8c">, waiting another 5 seconds."</span>
|
||||
sleep <span style="color:#bd93f9">5</span>
|
||||
<span style="color:#ff79c6">done</span>
|
||||
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
<span style="color:#6272a4"># get network config</span>
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
|
||||
<span style="color:#8be9fd;font-style:italic">IP</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip address show dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep <span style="color:#f1fa8c">"inet "</span> | awk <span style="color:#f1fa8c">'{print $2}'</span><span style="color:#ff79c6">)</span>
|
||||
<span style="color:#8be9fd;font-style:italic">NETWORK</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep -v default | awk <span style="color:#f1fa8c">'{print $1}'</span><span style="color:#ff79c6">)</span>
|
||||
<span style="color:#8be9fd;font-style:italic">GATEWAY</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep default | awk <span style="color:#f1fa8c">'{print $3}'</span><span style="color:#ff79c6">)</span>
|
||||
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
<span style="color:#6272a4"># setting up $MACVLN interface</span>
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
|
||||
ip link add <span style="color:#8be9fd;font-style:italic">$MACVLN</span> link <span style="color:#8be9fd;font-style:italic">$HWLINK</span> <span style="color:#8be9fd;font-style:italic">type</span> macvlan mode bridge
|
||||
ip address add <span style="color:#8be9fd;font-style:italic">$IP</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
|
||||
ip link <span style="color:#8be9fd;font-style:italic">set</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> up
|
||||
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
<span style="color:#6272a4"># routing table</span>
|
||||
<span style="color:#6272a4"># ------------</span>
|
||||
|
||||
<span style="color:#6272a4"># empty routes</span>
|
||||
ip route flush dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span>
|
||||
ip route flush dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
|
||||
|
||||
<span style="color:#6272a4"># add routes</span>
|
||||
ip route add <span style="color:#8be9fd;font-style:italic">$NETWORK</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> metric <span style="color:#bd93f9">0</span>
|
||||
|
||||
<span style="color:#6272a4"># add the default gateway</span>
|
||||
ip route add default via <span style="color:#8be9fd;font-style:italic">$GATEWAY</span></code></pre></div>
|
||||
|
||||
</div>
|
||||
<div class="post-footer">
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
37
src/build/sitemap.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>https://blog.fluttershub.com/tags/kvm/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/tags/linux/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/posts/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/tags/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/tags/virtualization/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/tags/windows/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/posts/windows10-kvm/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>https://blog.fluttershub.com/categories/</loc>
|
||||
</url>
|
||||
</urlset>
|
||||
112
src/build/tags/index.html
Normal file
@@ -0,0 +1,112 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>Tags // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Tags"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Tags" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/tags/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
|
||||
<article>
|
||||
<h1>Tags</h1>
|
||||
<ul class="tags-list">
|
||||
|
||||
<li class="tags-list-item">
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/kvm/">
|
||||
(1)
|
||||
kvm
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="tags-list-item">
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/linux/">
|
||||
(1)
|
||||
linux
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="tags-list-item">
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/virtualization/">
|
||||
(1)
|
||||
virtualization
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="tags-list-item">
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/windows/">
|
||||
(1)
|
||||
windows
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
47
src/build/tags/index.xml
Normal file
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Tags on Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/tags/</link>
|
||||
<description>Recent content in Tags on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>kvm</title>
|
||||
<link>https://blog.fluttershub.com/tags/kvm/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/tags/kvm/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>linux</title>
|
||||
<link>https://blog.fluttershub.com/tags/linux/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/tags/linux/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>virtualization</title>
|
||||
<link>https://blog.fluttershub.com/tags/virtualization/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/tags/virtualization/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>windows</title>
|
||||
<link>https://blog.fluttershub.com/tags/windows/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/tags/windows/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
84
src/build/tags/kvm/index.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>kvm // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="kvm"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="kvm" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/tags/kvm/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>kvm</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/build/tags/kvm/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>kvm on Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/tags/kvm/</link>
|
||||
<description>Recent content in kvm on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/kvm/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
|
||||
<description>Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/build/tags/kvm/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/kvm/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/kvm/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/kvm/" /></head></html>
|
||||
84
src/build/tags/linux/index.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>linux // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="linux"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="linux" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/tags/linux/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>linux</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/build/tags/linux/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>linux on Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/tags/linux/</link>
|
||||
<description>Recent content in linux on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/linux/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
|
||||
<description>Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/build/tags/linux/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/linux/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/linux/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/linux/" /></head></html>
|
||||
84
src/build/tags/virtualization/index.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>virtualization // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="virtualization"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="virtualization" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/tags/virtualization/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>virtualization</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/build/tags/virtualization/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>virtualization on Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/tags/virtualization/</link>
|
||||
<description>Recent content in virtualization on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/virtualization/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
|
||||
<description>Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/build/tags/virtualization/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/virtualization/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/virtualization/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/virtualization/" /></head></html>
|
||||
84
src/build/tags/windows/index.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>windows // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="windows"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="windows" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://blog.fluttershub.com/tags/windows/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
|
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>windows</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
|
||||
</span>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/build/tags/windows/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>windows on Phoenix's Personal Blog</title>
|
||||
<link>https://blog.fluttershub.com/tags/windows/</link>
|
||||
<description>Recent content in windows on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/windows/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Windows 10 KVM Single-GPU Passthrough</title>
|
||||
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
|
||||
<description>Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/build/tags/windows/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/windows/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/windows/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/windows/" /></head></html>
|
||||
63
src/config.toml
Normal file
@@ -0,0 +1,63 @@
|
||||
baseURL = "https://blog.fluttershub.com/"
|
||||
theme = "m10c"
|
||||
languageCode = "en-us"
|
||||
title = "Phoenix's Personal Blog"
|
||||
homepage = "https://fluttershub.com"
|
||||
tags = ["blog","personal","coding"]
|
||||
|
||||
|
||||
[menu]
|
||||
[[menu.main]]
|
||||
identifier = "home"
|
||||
name = "Home"
|
||||
url = "/"
|
||||
weight = 1
|
||||
[[menu.main]]
|
||||
identifier = "tags"
|
||||
name = "Tags"
|
||||
url = "/tags/"
|
||||
weight = 2
|
||||
# [[menu.main]]
|
||||
# identifier = "about"
|
||||
# name = "About Me"
|
||||
# url = "/about/"
|
||||
# weight = 3
|
||||
|
||||
[params]
|
||||
author = "Phoenix"
|
||||
description="Land of random projects i do."
|
||||
menu_item_separator = " | "
|
||||
noreadingtime = true
|
||||
[[params.social]]
|
||||
icon = "github"
|
||||
name = "Github"
|
||||
url = "https://github.com/HotaruBlaze"
|
||||
[[params.social]]
|
||||
icon = "twitter"
|
||||
name = "Twitter"
|
||||
url = "https://twitter.com/hotarublaze"
|
||||
# [style]
|
||||
# darkestColor = "#d35050"
|
||||
# darkColor = "#212121"
|
||||
# lightColor = "#f5e3e0"
|
||||
# lightestColor = "#f5f5f5"
|
||||
# primaryColor = "#e12f"
|
||||
|
||||
[markup]
|
||||
[markup.highlight]
|
||||
anchorLineNos = false
|
||||
codeFences = true
|
||||
guessSyntax = false
|
||||
hl_Lines = ""
|
||||
lineAnchors = ""
|
||||
lineNoStart = 1
|
||||
lineNos = false
|
||||
lineNumbersInTable = true
|
||||
noClasses = true
|
||||
style = "dracula"
|
||||
tabWidth = 1
|
||||
|
||||
[markup.tableOfContents]
|
||||
endLevel = 3
|
||||
ordered = false
|
||||
startLevel = 3
|
||||
102
src/content/posts/windows10-kvm.md
Normal file
@@ -0,0 +1,102 @@
|
||||
+++
|
||||
title = "Windows 10 KVM Single-GPU Passthrough"
|
||||
tags = ["virtualization","kvm","windows","linux"]
|
||||
date = "2020-05-18"
|
||||
+++
|
||||
## Note: This is here as notes and shouldn't be taken as a direct guide.
|
||||
|
||||
# Table of Contents
|
||||
{{< table_of_contents >}}
|
||||
|
||||
---
|
||||
### Host Specs
|
||||
{{< highlight txt >}}
|
||||
CPU: AMD Ryzen 5 3600
|
||||
GPU: NVIDIA GeForce GTX 1060 6GB
|
||||
Motherboard: MSI B450 Tomahawk Max
|
||||
OS: Garuda Linux: Spotted-Eagle
|
||||
Kernel: 5.12.3-zen1-1-zen
|
||||
Memory: 16GB
|
||||
{{< /highlight >}}
|
||||
|
||||
### Final VM Configuration
|
||||
{{< highlight txt >}}
|
||||
CPU: 4 Cores, 8 Threads
|
||||
GPU: NVIDIA GeForce GTX 1060 6GB
|
||||
Memory: 10GB
|
||||
Chipset: Q35
|
||||
Firmware: OVMF
|
||||
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 XHCI Controller
|
||||
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
|
||||
{{< /highlight >}}
|
||||
|
||||
### Extra Kernal Arguements
|
||||
{{< highlight txt >}}
|
||||
video:vesafb=off video:efifb=off amd_iommu=on iommu=pt iommu=1 pcie_acs_override=downstream,multifunction
|
||||
{{< /highlight >}}
|
||||
|
||||
### Nvidia GPU VFIO patch (This is required on 10XX Series)
|
||||
Original bios downloaded from: https://www.techpowerup.com/vgabios/
|
||||
[NVIDIA vBIOS VFIO Patcher](https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher)
|
||||
{{< highlight bash >}}
|
||||
git clone https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher
|
||||
cd NVIDIA-vBIOS-VFIO-Patcher
|
||||
python nvidia_vbios_vfio_patcher.py -i /home/phoenix/download/gtx1060.rom -o ./gtx1060-patched.rom
|
||||
cp ./gtx1060-patched.rom /usr/share/vgabios/gtx1060-patched.rom
|
||||
{{< /highlight >}}
|
||||
|
||||
#### Make sure Bar is toggled, Pass the file for the rom, and the second address contains multifunction='on'
|
||||
{{< highlight xml >}}
|
||||
<hostdev mode='subsystem' type='pci' managed='yes'>
|
||||
<source>
|
||||
<address domain='0x0000' bus='0x26' slot='0x00' function='0x0'/>
|
||||
</source>
|
||||
<rom bar='on' file='/usr/share/vgabios/gtx1060-patched.rom'/>
|
||||
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/>
|
||||
</hostdev>
|
||||
{{< /highlight >}}
|
||||
|
||||
### VM Networking
|
||||
**Scripts**
|
||||
[macvlan.sh](/posts/windows10-kvm/macvlan/)
|
||||
[macvlan.service](/posts/windows10-kvm/macvlan-service/)
|
||||
|
||||
**Virt-Manager Settings**
|
||||

|
||||
|
||||
### CPU Settings
|
||||
{{< highlight xml >}}
|
||||
<cputune>
|
||||
<vcpupin vcpu='0' cpuset='2'/>
|
||||
<vcpupin vcpu='1' cpuset='8'/>
|
||||
<vcpupin vcpu='2' cpuset='3'/>
|
||||
<vcpupin vcpu='3' cpuset='9'/>
|
||||
<vcpupin vcpu='4' cpuset='4'/>
|
||||
<vcpupin vcpu='5' cpuset='10'/>
|
||||
<vcpupin vcpu='6' cpuset='5'/>
|
||||
<vcpupin vcpu='7' cpuset='11'/>
|
||||
<emulatorpin cpuset='0-1,6-7'/>
|
||||
</cputune>
|
||||
{{< /highlight >}}
|
||||
{{< highlight xml >}}
|
||||
<cpu mode='host-passthrough' check='none' migratable='off'>
|
||||
<topology sockets='1' dies='1' cores='4' threads='2'/>
|
||||
<cache mode='passthrough'/>
|
||||
<feature policy='require' name='topoext'/>
|
||||
</cpu>
|
||||
{{< /highlight >}}
|
||||
|
||||
### Sata Passthrough
|
||||
|
||||
{{< highlight xml >}}
|
||||
<disk type='block' device='disk'>
|
||||
<driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
|
||||
<source dev='/dev/disk/by-id/ata-....'/>
|
||||
<target dev='sda' bus='sata'/>
|
||||
<boot order='1'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
{{< /highlight >}}
|
||||
|
||||
### Virt-Manager Hardware Overview
|
||||

|
||||
BIN
src/content/posts/windows10-kvm/images/hardware-overview.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
src/content/posts/windows10-kvm/images/network.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
24
src/content/posts/windows10-kvm/macvlan-service.md
Normal file
@@ -0,0 +1,24 @@
|
||||
+++
|
||||
title = "Windows 10 KVM Single-GPU Passthrough - macvlan Service"
|
||||
date = "2020-05-18"
|
||||
hidden = true
|
||||
+++
|
||||
|
||||
{{< highlight bash >}}
|
||||
# /etc/systemd/system/macvlan.service
|
||||
|
||||
[Unit]
|
||||
Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts.
|
||||
Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
Before=libvirt-guests.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/home/phoenix/macvlan/macvlan.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
{{< /highlight >}}
|
||||
72
src/content/posts/windows10-kvm/macvlan.md
Normal file
@@ -0,0 +1,72 @@
|
||||
+++
|
||||
title = "Windows 10 KVM Single-GPU Passthrough - macvlan Script"
|
||||
date = "2020-05-18"
|
||||
hidden = true
|
||||
+++
|
||||
|
||||
{{< highlight bash >}}
|
||||
#!/bin/sh
|
||||
# Last Edited: 2020-05-18
|
||||
# From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/
|
||||
|
||||
# Let host and guests talk to each other over macvlan.
|
||||
# Configures a macvlan interface on the hypervisor.
|
||||
# Run this on the hypervisor (e.g. in /etc/rc.local)
|
||||
# Made for IPv4; need modification for IPv6.
|
||||
# Meant for a simple network setup with only eth0,
|
||||
# and a static (manual) ip config.
|
||||
# Evert Mouw, 2013. Slightly modified in 2020.
|
||||
|
||||
HWLINK=enp34s0
|
||||
MACVLN=macvlan0
|
||||
TESTHOST=www.google.com
|
||||
|
||||
# ------------
|
||||
# test if interface already exists
|
||||
# ------------
|
||||
if ip link show | grep "$MACVLN@$HWLINK" > /dev/null
|
||||
then
|
||||
echo "Link $MACVLN already exists on $HWLINK."
|
||||
exit
|
||||
fi
|
||||
|
||||
# ------------
|
||||
# wait for network availability
|
||||
# ------------
|
||||
|
||||
while ! ping -q -c 1 $TESTHOST > /dev/null
|
||||
do
|
||||
echo "$0: Cannot ping $TESTHOST, waiting another 5 seconds."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
# ------------
|
||||
# get network config
|
||||
# ------------
|
||||
|
||||
IP=$(ip address show dev $HWLINK | grep "inet " | awk '{print $2}')
|
||||
NETWORK=$(ip -o route | grep $HWLINK | grep -v default | awk '{print $1}')
|
||||
GATEWAY=$(ip -o route | grep default | awk '{print $3}')
|
||||
|
||||
# ------------
|
||||
# setting up $MACVLN interface
|
||||
# ------------
|
||||
|
||||
ip link add $MACVLN link $HWLINK type macvlan mode bridge
|
||||
ip address add $IP dev $MACVLN
|
||||
ip link set dev $MACVLN up
|
||||
|
||||
# ------------
|
||||
# routing table
|
||||
# ------------
|
||||
|
||||
# empty routes
|
||||
ip route flush dev $HWLINK
|
||||
ip route flush dev $MACVLN
|
||||
|
||||
# add routes
|
||||
ip route add $NETWORK dev $MACVLN metric 0
|
||||
|
||||
# add the default gateway
|
||||
ip route add default via $GATEWAY
|
||||
{{< /highlight >}}
|
||||
71
src/isableFastRender/404.html
Normal file
@@ -0,0 +1,71 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>404 Page not found // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="404 Page not found"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="404 Page not found" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://localhost:1313/404.html" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<div class="error-404">
|
||||
<h1 class="error-404-title">O<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="icon icon-frown">
|
||||
<title>frown</title>
|
||||
<circle cx="12" cy="12" r="10"></circle><path d="M16 16s-1.5-2-4-2-4 2-4 2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line>
|
||||
</svg>ps... </h1>
|
||||
<p>The link you followed may be broken, or the page may have been removed.</p>
|
||||
<a href="/">Go home <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="icon icon-arrow-right">
|
||||
<title>arrow-right</title>
|
||||
<line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
|
||||
</svg></a>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
BIN
src/isableFastRender/avatar.jpg
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
src/isableFastRender/avatar.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
66
src/isableFastRender/categories/index.html
Normal file
@@ -0,0 +1,66 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>Categories // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Categories"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Categories" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://localhost:1313/categories/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>Categories</h1>
|
||||
<ul class="tags-list">
|
||||
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
10
src/isableFastRender/categories/index.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Categories on Phoenix's Personal Blog</title>
|
||||
<link>http://localhost:1313/categories/</link>
|
||||
<description>Recent content in Categories on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language><atom:link href="http://localhost:1313/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
</channel>
|
||||
</rss>
|
||||
@@ -0,0 +1 @@
|
||||
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{font-size:1rem;line-height:1.2em;margin:0;overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{width:15rem;height:15rem}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}@media(max-width:940px){h2{font-size:large}.app-container{padding:.5rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content>pre,.post-content .highlight{margin:1em 0}.post-content>pre,.post-content .highlight>pre,.post-content .highlight>div{border-left:.4em solid rgba(87,204,138,.8);padding:.5em 1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}.gradient-border{margin:auto;--border-width:0.35rem;border-radius:.35rem;position:relative;display:flex;justify-content:center;align-items:center;font-family:Lato,sans-serif;font-size:2.5rem;text-transform:uppercase;color:#fff;background:#222;border-radius:var(--border-width)}.gradient-border::after{position:absolute;content:"";top:calc(-1 * var(--border-width));left:calc(-1 * var(--border-width));z-index:-1;width:calc(100% + var(--border-width) * 2);height:calc(100% + var(--border-width) * 2);background:linear-gradient(60deg,#5f86f2,#a65ff2,#f25fd0,#f25f61,#f2cb5f,#abf25f,#5ff281,#5ff2f0);background-size:300% 300%;background-position:0;border-radius:calc(2 * var(--border-width));animation:moveGradient 4s alternate infinite}@keyframes moveGradient{50%{background-position:100%}}.gradient-border img{margin:auto;width:100%;border-radius:1.5%}
|
||||
87
src/isableFastRender/index.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="Land of random projects i do." />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Phoenix's Personal Blog"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Phoenix's Personal Blog" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://localhost:1313/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>Phoenix's Personal Blog</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
-
|
||||
<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="icon icon-clock">
|
||||
<title>clock</title>
|
||||
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
|
||||
</svg>
|
||||
1 min read
|
||||
</span>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/isableFastRender/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Phoenix's Personal Blog</title>
|
||||
<link>http://localhost:1313/</link>
|
||||
<description>Recent content on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Test Post</title>
|
||||
<link>http://localhost:1313/posts/test/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>http://localhost:1313/posts/test/</guid>
|
||||
<description>This is a test HTML &lt;section id=&#34;main&#34;&gt; &lt;div&gt; &lt;h1 id=&#34;title&#34;&gt;{{ .Title }}&lt;/h1&gt; {{ range .Pages }} {{ .Render &#34;summary&#34;}} {{ end }} &lt;/div&gt; &lt;/section&gt; Golang package main import &#34;fmt&#34; func main() { fmt.Println(&#34;hello world&#34;) } </description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/isableFastRender/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>http://localhost:1313/</title><link rel="canonical" href="http://localhost:1313/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/" /></head></html>
|
||||
87
src/isableFastRender/posts/index.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>Posts // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Posts"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Posts" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://localhost:1313/posts/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>Posts</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
-
|
||||
<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="icon icon-clock">
|
||||
<title>clock</title>
|
||||
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
|
||||
</svg>
|
||||
1 min read
|
||||
</span>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/isableFastRender/posts/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Posts on Phoenix's Personal Blog</title>
|
||||
<link>http://localhost:1313/posts/</link>
|
||||
<description>Recent content in Posts on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Test Post</title>
|
||||
<link>http://localhost:1313/posts/test/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>http://localhost:1313/posts/test/</guid>
|
||||
<description>This is a test HTML &lt;section id=&#34;main&#34;&gt; &lt;div&gt; &lt;h1 id=&#34;title&#34;&gt;{{ .Title }}&lt;/h1&gt; {{ range .Pages }} {{ .Render &#34;summary&#34;}} {{ end }} &lt;/div&gt; &lt;/section&gt; Golang package main import &#34;fmt&#34; func main() { fmt.Println(&#34;hello world&#34;) } </description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/isableFastRender/posts/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>http://localhost:1313/posts/</title><link rel="canonical" href="http://localhost:1313/posts/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/posts/" /></head></html>
|
||||
116
src/isableFastRender/posts/test/index.html
Normal file
@@ -0,0 +1,116 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>Test Post // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Test Post"/>
|
||||
<meta name="twitter:description" content="This is a test HTML <section id="main"> <div> <h1 id="title">{{ .Title }}</h1> {{ range .Pages }} {{ .Render "summary"}} {{ end }} </div> </section> Golang package main import "fmt" func main() { fmt.Println("hello world") } "/>
|
||||
|
||||
<meta property="og:title" content="Test Post" />
|
||||
<meta property="og:description" content="This is a test HTML <section id="main"> <div> <h1 id="title">{{ .Title }}</h1> {{ range .Pages }} {{ .Render "summary"}} {{ end }} </div> </section> Golang package main import "fmt" func main() { fmt.Println("hello world") } " />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="http://localhost:1313/posts/test/" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2020-05-18T00:00:00+00:00" />
|
||||
<meta property="article:modified_time" content="2020-05-18T00:00:00+00:00" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article class="post">
|
||||
<header class="post-header">
|
||||
<h1 class ="post-title">Test Post</h1>
|
||||
<div class="post-meta">
|
||||
<div>
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
</div>
|
||||
<div>
|
||||
<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="icon icon-clock">
|
||||
<title>clock</title>
|
||||
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
|
||||
</svg>
|
||||
1 min read
|
||||
</div>
|
||||
<div>
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tag" href="http://localhost:1313/tags/development/">development</a>
|
||||
<a class="tag" href="http://localhost:1313/tags/test/">Test</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content">
|
||||
<h1 id="this-is-a-test">This is a test</h1>
|
||||
<!-- raw HTML omitted -->
|
||||
<h4 id="html">HTML</h4>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-html" data-lang="html"><<span style="color:#ff79c6">section</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"main"</span>>
|
||||
<<span style="color:#ff79c6">div</span>>
|
||||
<<span style="color:#ff79c6">h1</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"title"</span>>{{ .Title }}</<span style="color:#ff79c6">h1</span>>
|
||||
{{ range .Pages }}
|
||||
{{ .Render "summary"}}
|
||||
{{ end }}
|
||||
</<span style="color:#ff79c6">div</span>>
|
||||
</<span style="color:#ff79c6">section</span>></code></pre></div>
|
||||
<h4 id="golang">Golang</h4>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-go" data-lang="go"><span style="color:#ff79c6">package</span> main
|
||||
|
||||
<span style="color:#ff79c6">import</span> <span style="color:#f1fa8c">"fmt"</span>
|
||||
|
||||
<span style="color:#8be9fd;font-style:italic">func</span> <span style="color:#50fa7b">main</span>() {
|
||||
fmt.<span style="color:#50fa7b">Println</span>(<span style="color:#f1fa8c">"hello world"</span>)
|
||||
}</code></pre></div>
|
||||
|
||||
</div>
|
||||
<div class="post-footer">
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
25
src/isableFastRender/sitemap.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>http://localhost:1313/tags/development/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/posts/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/tags/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/tags/test/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/posts/test/</loc>
|
||||
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
|
||||
</url><url>
|
||||
<loc>http://localhost:1313/categories/</loc>
|
||||
</url>
|
||||
</urlset>
|
||||
87
src/isableFastRender/tags/development/index.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>development // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="development"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="development" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://localhost:1313/tags/development/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>development</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
-
|
||||
<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="icon icon-clock">
|
||||
<title>clock</title>
|
||||
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
|
||||
</svg>
|
||||
1 min read
|
||||
</span>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/isableFastRender/tags/development/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>development on Phoenix's Personal Blog</title>
|
||||
<link>http://localhost:1313/tags/development/</link>
|
||||
<description>Recent content in development on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/tags/development/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Test Post</title>
|
||||
<link>http://localhost:1313/posts/test/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>http://localhost:1313/posts/test/</guid>
|
||||
<description>This is a test HTML &lt;section id=&#34;main&#34;&gt; &lt;div&gt; &lt;h1 id=&#34;title&#34;&gt;{{ .Title }}&lt;/h1&gt; {{ range .Pages }} {{ .Render &#34;summary&#34;}} {{ end }} &lt;/div&gt; &lt;/section&gt; Golang package main import &#34;fmt&#34; func main() { fmt.Println(&#34;hello world&#34;) } </description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/isableFastRender/tags/development/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>http://localhost:1313/tags/development/</title><link rel="canonical" href="http://localhost:1313/tags/development/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/development/" /></head></html>
|
||||
88
src/isableFastRender/tags/index.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>Tags // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Tags"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Tags" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://localhost:1313/tags/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>Tags</h1>
|
||||
<ul class="tags-list">
|
||||
|
||||
<li class="tags-list-item">
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tags-list-item-title" href="http://localhost:1313/tags/development/">
|
||||
(1)
|
||||
development
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="tags-list-item">
|
||||
<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="icon icon-tag">
|
||||
<title>tag</title>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
|
||||
</svg>
|
||||
<a class="tags-list-item-title" href="http://localhost:1313/tags/test/">
|
||||
(1)
|
||||
Test
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
29
src/isableFastRender/tags/index.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Tags on Phoenix's Personal Blog</title>
|
||||
<link>http://localhost:1313/tags/</link>
|
||||
<description>Recent content in Tags on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>development</title>
|
||||
<link>http://localhost:1313/tags/development/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>http://localhost:1313/tags/development/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Test</title>
|
||||
<link>http://localhost:1313/tags/test/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>http://localhost:1313/tags/test/</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
87
src/isableFastRender/tags/test/index.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||||
<title>Test // Phoenix's Personal Blog</title>
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="Hugo 0.83.0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="Phoenix" />
|
||||
<meta name="description" content="" />
|
||||
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Test"/>
|
||||
<meta name="twitter:description" content="Land of random projects i do."/>
|
||||
|
||||
<meta property="og:title" content="Test" />
|
||||
<meta property="og:description" content="Land of random projects i do." />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://localhost:1313/tags/test/" />
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
|
||||
<h2>Phoenix's Personal Blog</h2>
|
||||
<nav class="app-header-menu">
|
||||
<a class="app-header-menu-item" href="/">Home</a>
|
||||
-
|
||||
|
||||
<a class="app-header-menu-item" href="/tags/">Tags</a>
|
||||
</nav>
|
||||
<p>Land of random projects i do.</p>
|
||||
<div class="app-header-social">
|
||||
|
||||
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-github">
|
||||
<title>Github</title>
|
||||
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
|
||||
<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="icon icon-twitter">
|
||||
<title>Twitter</title>
|
||||
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<main class="app-container">
|
||||
|
||||
<article>
|
||||
<h1>Test</h1>
|
||||
<ul class="posts-list">
|
||||
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
|
||||
<span class="posts-list-item-description">
|
||||
<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="icon icon-calendar">
|
||||
<title>calendar</title>
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
May 18, 2020
|
||||
-
|
||||
<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="icon icon-clock">
|
||||
<title>clock</title>
|
||||
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
|
||||
</svg>
|
||||
1 min read
|
||||
</span>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
20
src/isableFastRender/tags/test/index.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>Test on Phoenix's Personal Blog</title>
|
||||
<link>http://localhost:1313/tags/test/</link>
|
||||
<description>Recent content in Test on Phoenix's Personal Blog</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/tags/test/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Test Post</title>
|
||||
<link>http://localhost:1313/posts/test/</link>
|
||||
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>http://localhost:1313/posts/test/</guid>
|
||||
<description>This is a test HTML &lt;section id=&#34;main&#34;&gt; &lt;div&gt; &lt;h1 id=&#34;title&#34;&gt;{{ .Title }}&lt;/h1&gt; {{ range .Pages }} {{ .Render &#34;summary&#34;}} {{ end }} &lt;/div&gt; &lt;/section&gt; Golang package main import &#34;fmt&#34; func main() { fmt.Println(&#34;hello world&#34;) } </description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
1
src/isableFastRender/tags/test/page/1/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html><head><title>http://localhost:1313/tags/test/</title><link rel="canonical" href="http://localhost:1313/tags/test/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/test/" /></head></html>
|
||||
12
src/m10c/.editorconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
2
src/m10c/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
public/
|
||||
exampleSite/resources/
|
||||
21
src/m10c/LICENSE.md
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 Fabien Casters
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
93
src/m10c/README.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# m10c theme
|
||||
|
||||

|
||||
|
||||
A Hugo minimalistic theme for bloggers
|
||||
|
||||
Main features:
|
||||
|
||||
- Fully responsive
|
||||
- Twitter Cards, Open Graph, Disqus and Google Analytics supported (see Hugo docs)
|
||||
- Customizable colors
|
||||
- Customizable picture and description
|
||||
- Customizable menu on sidebar
|
||||
- Customizable social media links on sidebar
|
||||
- Optimized for performance 100/100 on Lighthouse
|
||||
- All feather icons included
|
||||
|
||||
## Getting started
|
||||
|
||||
### Installation
|
||||
|
||||
Create a new Hugo site:
|
||||
```bash
|
||||
$ hugo new site [path]
|
||||
```
|
||||
|
||||
Clone this repository into `themes/` directory:
|
||||
```bash
|
||||
$ cd [path]
|
||||
$ git clone https://github.com/vaga/hugo-theme-m10c.git themes/m10c
|
||||
```
|
||||
|
||||
Add this line in the `config.toml` file:
|
||||
```toml
|
||||
theme = "m10c"
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
In your `config.toml` file, define the following variables in `params`:
|
||||
|
||||
- `author`: Name of the author
|
||||
- `description`: Short description of the author
|
||||
- `avatar`: Path of file containing the author avatar image
|
||||
- `menu_item_separator`: Separator between each menu item. HTML allowed (default: " - ")
|
||||
- `favicon`: Absolute path of your favicon.ico file (default: "/favicon.ico")
|
||||
|
||||
To add a menu item, add the following lines in `menu`:
|
||||
|
||||
```
|
||||
[[menu.main]]
|
||||
identifier = "tags"
|
||||
name = "Tags"
|
||||
url = "/tags/"
|
||||
```
|
||||
|
||||
[Read Hugo documentations](https://gohugo.io/content-management/menus/#readout) for more informations about menu
|
||||
|
||||
To add a social link, add the following lines in `params`:
|
||||
|
||||
```
|
||||
[[params.social]]
|
||||
icon = "github"
|
||||
name = "My Github"
|
||||
url = "https://github.com/vaga"
|
||||
```
|
||||
|
||||
To change theme colors, add the following lines in `params`:
|
||||
|
||||
```
|
||||
[params.style]
|
||||
darkestColor = "#d35050"
|
||||
darkColor = "#212121"
|
||||
lightColor = "#f5e3e0"
|
||||
lightestColor = "#f5f5f5"
|
||||
primaryColor = "#ffffff"
|
||||
```
|
||||
|
||||
If you want the above theme colors, you can see the [exampleSite/config.toml](/exampleSite/config.toml) file.
|
||||
|
||||
### Styling
|
||||
|
||||
To override styles using scss, add a file called `_extra.scss` to `[path]/assets/css/`
|
||||
|
||||
**Note:** Hugo releases come in two versions, `hugo` and `hugo_extended`. You need `hugo_extended` to automatically compile your scss.
|
||||
|
||||
## License
|
||||
|
||||
This theme is released under the [**MIT**](/LICENSE.md) License.
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
- [feather](https://feathericons.com/) - [MIT](https://github.com/feathericons/feather/blob/master/LICENSE)
|
||||
59
src/m10c/assets/css/_base.scss
Normal file
@@ -0,0 +1,59 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: sans-serif;
|
||||
background: $dark-color;
|
||||
color: $light-color;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: $lightest-color;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $primary-color;
|
||||
transition: color 0.35s;
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
color: $lightest-color;
|
||||
}
|
||||
}
|
||||
|
||||
// Browsers seem to use a smaller default font-size with monospaced code
|
||||
// blocks (like 80% of the size of normal text) and that looks pretty bad with
|
||||
// small inline code-blocks in the middle of normal text (mainly because of
|
||||
// the very noticeable difference in x-height). This CSS corrects that problem.
|
||||
code {
|
||||
font-family: monospace,monospace;
|
||||
font-size: 1em;
|
||||
color: rgba($light-color, .8);
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 1rem;
|
||||
line-height: 1.2em;
|
||||
margin: 0;
|
||||
overflow: auto;
|
||||
|
||||
// A larger monospaced block of text (that isn't mixed with normal text)
|
||||
// generally looks heavier than normal text with the same font size. For this
|
||||
// reason using a smaller monospaced font size makes sense in this situation.
|
||||
code {
|
||||
font-size: .8em;
|
||||
}
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: rgba($light-color, .25);
|
||||
}
|
||||
::-moz-selection {
|
||||
background: rgba($light-color, .25);
|
||||
}
|
||||
2
src/m10c/assets/css/_extra.scss
Normal file
@@ -0,0 +1,2 @@
|
||||
// Do not add any CSS to this file in the theme sources.
|
||||
// This file can be overridden to add project-specific CSS.
|
||||
64
src/m10c/assets/css/components/_app.scss
Normal file
@@ -0,0 +1,64 @@
|
||||
.app-header {
|
||||
padding: 2.5em;
|
||||
background: $darkest-color;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.app-header-avatar {
|
||||
width: 15rem;
|
||||
height: 15rem;
|
||||
// border-radius: 100%;
|
||||
// border: 0.5rem solid $primary-color;
|
||||
}
|
||||
|
||||
.app-container {
|
||||
padding: 2.5rem;
|
||||
}
|
||||
|
||||
.app-header-social {
|
||||
font-size: 2em;
|
||||
color: $lightest-color;
|
||||
|
||||
a {
|
||||
margin: 0 0.1em;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 940px) {
|
||||
.app-header {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 20rem;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.app-container {
|
||||
max-width: 65rem;
|
||||
margin-left: 20rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 940px) {
|
||||
h2 {
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
// p {
|
||||
// clear: both;
|
||||
// text-align: left;
|
||||
// }
|
||||
// }
|
||||
|
||||
// .app-header-avatar {
|
||||
// max-width: 8rem;
|
||||
// max-height: 8rem;
|
||||
// border-radius: 100%;
|
||||
// border: .25rem solid $primary-color;
|
||||
// float: left;
|
||||
// }
|
||||
|
||||
.app-container {
|
||||
padding: 0.5rem;
|
||||
}
|
||||
}
|
||||
57
src/m10c/assets/css/components/_border_animation.scss
Normal file
@@ -0,0 +1,57 @@
|
||||
.gradient-border {
|
||||
|
||||
margin: auto;
|
||||
// width: 50%;
|
||||
|
||||
--border-width: 0.35rem;
|
||||
|
||||
border-radius: 0.35rem;
|
||||
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-family: Lato, sans-serif;
|
||||
font-size: 2.5rem;
|
||||
text-transform: uppercase;
|
||||
color: white;
|
||||
background: #222;
|
||||
border-radius: var(--border-width);
|
||||
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
top: calc(-1 * var(--border-width));
|
||||
left: calc(-1 * var(--border-width));
|
||||
z-index: -1;
|
||||
width: calc(100% + var(--border-width) * 2);
|
||||
height: calc(100% + var(--border-width) * 2);
|
||||
background: linear-gradient(
|
||||
60deg,
|
||||
hsl(224, 85%, 66%),
|
||||
hsl(269, 85%, 66%),
|
||||
hsl(314, 85%, 66%),
|
||||
hsl(359, 85%, 66%),
|
||||
hsl(44, 85%, 66%),
|
||||
hsl(89, 85%, 66%),
|
||||
hsl(134, 85%, 66%),
|
||||
hsl(179, 85%, 66%)
|
||||
);
|
||||
background-size: 300% 300%;
|
||||
background-position: 0 50%;
|
||||
border-radius: calc(2 * var(--border-width));
|
||||
animation: moveGradient 4s alternate infinite;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes moveGradient {
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
}
|
||||
.gradient-border img {
|
||||
margin: auto;
|
||||
width: 100%;
|
||||
border-radius: 1.5%;
|
||||
// border-radius: 50%;
|
||||
}
|
||||
7
src/m10c/assets/css/components/_error_404.scss
Normal file
@@ -0,0 +1,7 @@
|
||||
.error-404 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error-404-title {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
6
src/m10c/assets/css/components/_icon.scss
Normal file
@@ -0,0 +1,6 @@
|
||||
.icon {
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
vertical-align: -0.125em;
|
||||
}
|
||||
24
src/m10c/assets/css/components/_pagination.scss
Normal file
@@ -0,0 +1,24 @@
|
||||
.pagination {
|
||||
display: block;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
font-size: 0.8em;
|
||||
text-align: center;
|
||||
margin: 3em 0;
|
||||
}
|
||||
|
||||
.page-item {
|
||||
display: inline-block;
|
||||
.page-link {
|
||||
display: block;
|
||||
padding: 0.285em 0.8em;
|
||||
}
|
||||
|
||||
&.active {
|
||||
.page-link {
|
||||
color: $lightest-color;
|
||||
border-radius: 2em;
|
||||
background: $primary-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
25
src/m10c/assets/css/components/_post.scss
Normal file
@@ -0,0 +1,25 @@
|
||||
.post-title {
|
||||
color: $lightest-color;
|
||||
}
|
||||
|
||||
.post-content {
|
||||
& > pre,
|
||||
.highlight {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
& > pre,
|
||||
.highlight > pre,
|
||||
.highlight > div {
|
||||
border-left: 0.4em solid rgba($primary-color, .8);
|
||||
padding: .5em 1em;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.post-meta {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
17
src/m10c/assets/css/components/_posts_list.scss
Normal file
@@ -0,0 +1,17 @@
|
||||
.posts-list {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.posts-list-item {
|
||||
list-style: none;
|
||||
padding: 0.4em 0;
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
.posts-list-item-description {
|
||||
display: block;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
15
src/m10c/assets/css/components/_tag.scss
Normal file
@@ -0,0 +1,15 @@
|
||||
.tag {
|
||||
display: inline-block;
|
||||
margin-right: 0.2em;
|
||||
padding: 0 0.6em;
|
||||
font-size: 0.9em;
|
||||
border-radius: 0.2em;
|
||||
white-space: nowrap;
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
transition: color 0.35s, background 0.35s;
|
||||
|
||||
&:hover {
|
||||
transition: color 0.25s, background 0.05s;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
}
|
||||
28
src/m10c/assets/css/components/_tags_list.scss
Normal file
@@ -0,0 +1,28 @@
|
||||
.tags-list {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.tags-list-item {
|
||||
list-style: none;
|
||||
padding: 0.4em 0;
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 450px) {
|
||||
.tags-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.tags-list-item {
|
||||
width: calc(50% - 1em);
|
||||
&:nth-child(even) {
|
||||
margin-left: 1em;
|
||||
}
|
||||
&:nth-last-child(2) {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
22
src/m10c/assets/css/main.scss
Normal file
@@ -0,0 +1,22 @@
|
||||
$darkest-color: {{ .Site.Params.style.darkestColor | default "#242930" }};
|
||||
$dark-color: {{ .Site.Params.style.darkColor | default "#353b43" }};
|
||||
$light-color: {{ .Site.Params.style.lightColor | default "#afbac4" }};
|
||||
$lightest-color: {{ .Site.Params.style.lightestColor | default "#ffffff" }};
|
||||
$primary-color: {{ .Site.Params.style.primaryColor | default "#57cc8a" }};
|
||||
|
||||
@import 'base';
|
||||
|
||||
@import 'components/app';
|
||||
@import 'components/error_404';
|
||||
@import 'components/icon';
|
||||
@import 'components/pagination';
|
||||
@import 'components/post';
|
||||
@import 'components/posts_list';
|
||||
@import 'components/tag';
|
||||
@import 'components/tags_list';
|
||||
@import 'components/border_animation';
|
||||
|
||||
|
||||
// The last 'extra' import can optionally be overridden on a per project
|
||||
// basis by creating a <HUGO_PROJECT>/assets/css/_extra.scss file.
|
||||
@import 'extra';
|
||||
1
src/m10c/data/m10c/icons.json
Normal file
7
src/m10c/layouts/404.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{{ define "main" }}
|
||||
<div class="error-404">
|
||||
<h1 class="error-404-title">O{{ partial "icon.html" (dict "ctx" $ "name" "frown") }}ps... </h1>
|
||||
<p>The link you followed may be broken, or the page may have been removed.</p>
|
||||
<a href="{{ "/" | relURL }}">Go home {{ partial "icon.html" (dict "ctx" $ "name" "arrow-right") }}</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
50
src/m10c/layouts/_default/baseof.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ .Site.LanguageCode | default "en-us" }}">
|
||||
<head>
|
||||
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} // {{ .Site.Title }}{{ end }}</title>
|
||||
<link rel="shortcut icon" href="{{ .Site.Params.favicon | default "/favicon.ico" }}" />
|
||||
<meta charset="utf-8" />
|
||||
{{ hugo.Generator }}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="author" content="{{ .Site.Params.author | default "John Doe" }}" />
|
||||
<meta name="description" content="{{ if .IsHome }}{{ .Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />
|
||||
{{ $style := resources.Get "css/main.scss" | resources.ExecuteAsTemplate "css/main.scss" . | resources.ToCSS | resources.Minify | resources.Fingerprint -}}
|
||||
<link rel="stylesheet" href="{{ $style.Permalink }}" />
|
||||
|
||||
{{ template "_internal/google_analytics.html" . }}
|
||||
{{ template "_internal/twitter_cards.html" . }}
|
||||
{{ template "_internal/opengraph.html" . }}
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header class="app-header">
|
||||
<a class="gradient-border" href="{{ .Site.BaseURL }}"><img class="app-header-avatar" src="{{ .Site.Params.avatar | default "avatar.png" | relURL }}" alt="{{ .Site.Params.author | default "John Doe" }}" /></a>
|
||||
<h2>{{ .Site.Title }}</h2>
|
||||
{{- with .Site.Menus.main }}
|
||||
<nav class="app-header-menu">
|
||||
{{- range $key, $item := . }}
|
||||
{{- if ne $key 0 }}
|
||||
{{ $.Site.Params.menu_item_separator | default " - " | safeHTML }}
|
||||
{{ end }}
|
||||
<a class="app-header-menu-item" href="{{ $item.URL }}">{{ $item.Name }}</a>
|
||||
{{- end }}
|
||||
</nav>
|
||||
{{- end }}
|
||||
<p>{{ .Site.Params.description | default "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vehicula turpis sit amet elit pretium." }}</p>
|
||||
{{- with .Site.Params.social }}
|
||||
<div class="app-header-social">
|
||||
{{ range . }}
|
||||
<a href="{{ .url }}" target="_blank" rel="noreferrer noopener">
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" .icon "title" .name) }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
<main class="app-container">
|
||||
{{ block "main" . }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
24
src/m10c/layouts/_default/list.html
Normal file
@@ -0,0 +1,24 @@
|
||||
{{ define "main" }}
|
||||
<article>
|
||||
<h1>{{ .Title }}</h1>
|
||||
<ul class="posts-list">
|
||||
{{ range where .Paginator.Pages "Type" "!=" "page" }}
|
||||
{{ if not .Params.hidden }}
|
||||
<li class="posts-list-item">
|
||||
<a class="posts-list-item-title" href="{{ .Permalink }}">{{ .Title }}</a>
|
||||
<span class="posts-list-item-description">
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "calendar") }}
|
||||
{{ .PublishDate.Format "Jan 2, 2006" }}
|
||||
{{ if not .Site.Params.noreadingtime }}
|
||||
-
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "clock") }}
|
||||
{{ .ReadingTime }} min read
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ partial "pagination.html" $ }}
|
||||
</article>
|
||||
{{ end }}
|
||||
37
src/m10c/layouts/_default/single.html
Normal file
@@ -0,0 +1,37 @@
|
||||
{{ define "main" }}
|
||||
<article class="post">
|
||||
<header class="post-header">
|
||||
<h1 class ="post-title">{{ .Title }}</h1>
|
||||
{{- if ne .Type "page" }}
|
||||
<div class="post-meta">
|
||||
<div>
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "calendar") }}
|
||||
{{ .PublishDate.Format "Jan 2, 2006" }}
|
||||
</div>
|
||||
{{ if not .Site.Params.noreadingtime }}
|
||||
<div>
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "clock") }}
|
||||
{{ .ReadingTime }} min read
|
||||
</div>
|
||||
{{ end }}
|
||||
{{- with .Params.tags }}
|
||||
<div>
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "tag") }}
|
||||
{{- range . -}}
|
||||
{{ with $.Site.GetPage (printf "/%s/%s" "tags" . ) }}
|
||||
<a class="tag" href="{{ .Permalink }}">{{ .Title }}</a>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
<div class="post-content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
<div class="post-footer">
|
||||
{{ template "_internal/disqus.html" . }}
|
||||
</div>
|
||||
</article>
|
||||
{{ end }}
|
||||
18
src/m10c/layouts/_default/terms.html
Normal file
@@ -0,0 +1,18 @@
|
||||
{{ define "main" }}
|
||||
{{if not .Page.Params.hidden}}
|
||||
<article>
|
||||
<h1>{{ .Title }}</h1>
|
||||
<ul class="tags-list">
|
||||
{{ range .Data.Terms.ByCount }}
|
||||
<li class="tags-list-item">
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "tag") }}
|
||||
<a class="tags-list-item-title" href="{{ .Page.Permalink }}">
|
||||
({{ .Count }})
|
||||
{{ .Page.Title }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
11
src/m10c/layouts/partials/icon.html
Normal file
@@ -0,0 +1,11 @@
|
||||
{{- if isset .ctx.Site.Data.m10c.icons .name -}}
|
||||
<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="icon icon-{{ .name }}">
|
||||
<title>{{ .title | default .name }}</title>
|
||||
{{ safeHTML (index .ctx.Site.Data.m10c.icons .name) }}
|
||||
</svg>
|
||||
{{- else -}}
|
||||
<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="icon icon-link">
|
||||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path>
|
||||
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
|
||||
</svg>
|
||||
{{- end -}}
|
||||
27
src/m10c/layouts/partials/pagination.html
Normal file
@@ -0,0 +1,27 @@
|
||||
{{ with $.Paginator }}
|
||||
{{ if gt .TotalPages 1 }}
|
||||
<ul class="pagination">
|
||||
{{ with .Prev }}
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ .URL }}">
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "arrow-left") }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ range .Pagers }}
|
||||
<li class="page-item{{ if eq .PageNumber $.Paginator.PageNumber }} active{{ end }}">
|
||||
<a class="page-link" href="{{ .URL }}">
|
||||
{{ .PageNumber }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ with .Next }}
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ .URL }}">
|
||||
{{ partial "icon.html" (dict "ctx" $ "name" "arrow-right") }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
3
src/m10c/layouts/shortcodes/table_of_contents.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<div class="toc" class="well col-md-4 col-sm-6">
|
||||
{{ .Page.TableOfContents }}
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{max-width:15rem;max-height:15rem;border-radius:100%;border:.5rem solid #57cc8a}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content pre{border-left:.4em solid rgba(87,204,138,.8);padding-left:1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Target":"css/main.min.88e7083eff65effb7485b6e6f38d10afbec25093a6fac42d734ce9024d3defbd.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOcIPv9l7/t0hbbm840Qr77CUJOm+sQtc0zpAk09770="}}
|
||||
24
src/m10c/scripts/update_feather_icons.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
FEATHER_PATH=`dirname "$0"`/feather
|
||||
|
||||
# Clone feather repository
|
||||
git clone --depth=1 git@github.com:feathericons/feather.git $FEATHER_PATH
|
||||
|
||||
pushd $FEATHER_PATH
|
||||
|
||||
# Install dependencies
|
||||
yarn
|
||||
|
||||
mkdir dist
|
||||
|
||||
# Generate icons.json
|
||||
npx babel-node bin/build-icons-json.js
|
||||
|
||||
# Copy icons.json into theme data
|
||||
cp dist/icons.json ../../data/m10c/icons.json
|
||||
|
||||
popd
|
||||
|
||||
# Remove the repository
|
||||
rm -rf $FEATHER_PATH
|
||||
BIN
src/m10c/static/avatar.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
17
src/m10c/theme.toml
Normal file
@@ -0,0 +1,17 @@
|
||||
name = "m10c"
|
||||
license = "MIT"
|
||||
licenselink = "https://github.com/vaga/hugo-theme-m10c/blob/master/LICENSE.md"
|
||||
description = "A minimalistic (m10c) theme for bloggers"
|
||||
homepage = "https://"
|
||||
tags = ["blog","personal","blog", "dark"]
|
||||
features = [
|
||||
"minimalistic blog",
|
||||
"social icons",
|
||||
"editable colors"
|
||||
]
|
||||
min_version = 0.55
|
||||
|
||||
[author]
|
||||
name = "vaga"
|
||||
homepage = "https://vaga.io"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{font-size:1rem;line-height:1.2em;margin:0;overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{width:15rem;height:15rem}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}@media(max-width:940px){h2{font-size:large}.app-container{padding:.5rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content>pre,.post-content .highlight{margin:1em 0}.post-content>pre,.post-content .highlight>pre,.post-content .highlight>div{border-left:.4em solid rgba(87,204,138,.8);padding:.5em 1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}.gradient-border{margin:auto;--border-width:0.35rem;border-radius:.35rem;position:relative;display:flex;justify-content:center;align-items:center;font-family:Lato,sans-serif;font-size:2.5rem;text-transform:uppercase;color:#fff;background:#222;border-radius:var(--border-width)}.gradient-border::after{position:absolute;content:"";top:calc(-1 * var(--border-width));left:calc(-1 * var(--border-width));z-index:-1;width:calc(100% + var(--border-width) * 2);height:calc(100% + var(--border-width) * 2);background:linear-gradient(60deg,#5f86f2,#a65ff2,#f25fd0,#f25f61,#f2cb5f,#abf25f,#5ff281,#5ff2f0);background-size:300% 300%;background-position:0;border-radius:calc(2 * var(--border-width));animation:moveGradient 4s alternate infinite}@keyframes moveGradient{50%{background-position:100%}}.gradient-border img{margin:auto;width:100%;border-radius:1.5%}
|
||||
@@ -0,0 +1 @@
|
||||
{"Target":"css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css","MediaType":"text/css","Data":{"Integrity":"sha256-THDLSJe6FdLAn52r7Wsmt1HwY40qFqKOw4z83i/8TeY="}}
|
||||