diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..8374486
Binary files /dev/null and b/.DS_Store differ
diff --git a/README.md b/README.md
index 3e3feba..b1cbd0d 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,10 @@
-# typo
-A dead simple Hugo theme for your blogs.
+
+
+## Installation
+...
+
+## Features
+...
+
+## Configuration
+...
\ No newline at end of file
diff --git a/archetypes/default.md b/archetypes/default.md
new file mode 100644
index 0000000..c6f3fce
--- /dev/null
+++ b/archetypes/default.md
@@ -0,0 +1,5 @@
++++
+title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+date = {{ .Date }}
+draft = true
++++
diff --git a/assets/.DS_Store b/assets/.DS_Store
new file mode 100644
index 0000000..94393c3
Binary files /dev/null and b/assets/.DS_Store differ
diff --git a/assets/css/fonts.css b/assets/css/fonts.css
new file mode 100644
index 0000000..ece20ea
--- /dev/null
+++ b/assets/css/fonts.css
@@ -0,0 +1,41 @@
+@font-face {
+ font-family: 'Literata';
+ src: url('/fonts/Literata/Literata-Light.woff') format('woff');
+ font-weight: light;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Literata';
+ src: url('/fonts/Literata/Literata-LightItalic.woff') format('woff');
+ font-weight: light;
+ font-style: italic;
+}
+
+@font-face {
+ font-family: 'Literata';
+ src: url('/fonts/Literata/Literata-SemiBold.woff') format('woff');
+ font-weight: bold;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Literata';
+ src: url('/fonts/Literata/Literata-SemiBoldItalic.woff') format('woff');
+ font-weight: bold;
+ font-style: italic;
+}
+
+@font-face {
+ font-family: 'Monaspace';
+ src: url('/fonts/Monaspace/MonaspaceArgon-Regular.woff') format('woff');
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Monaspace';
+ src: url('/fonts/Monaspace/MonaspaceArgon-SemiBold.woff') format('woff');
+ font-weight: bold;
+ font-style: normal;
+}
\ No newline at end of file
diff --git a/assets/css/main.css b/assets/css/main.css
new file mode 100644
index 0000000..0dc0584
--- /dev/null
+++ b/assets/css/main.css
@@ -0,0 +1,251 @@
+/* BASE */
+
+html {
+ scroll-behavior: smooth;
+ padding: 0;
+}
+
+body {
+ font-family: "Literata";
+ font-size: 1rem;
+ color: #222;
+ line-height: 1.3rem;
+ margin: auto;
+ max-width: var(--main-width);
+ padding-left: var(--main-padding);
+ padding-right: var(--main-padding);
+}
+
+.content {
+ min-height: var(--content-height) !important;
+}
+
+h1 {
+ margin-top: var(--h1-margin-top);
+ margin-bottom: var(--h1-margin-bottom);
+ font-size: 2em;
+}
+
+h2 {
+ margin-top: var(--h2-margin-top);
+ margin-bottom: var(--h2-margin-bottom);
+ font-size: 1.5em;
+}
+
+h3,
+h4,
+h5,
+h6 {
+ font-size: 1.2em;
+ margin-top: var(--hx-margin-top);
+ margin-bottom: var(--hx-margin-bottom);
+}
+
+p {
+ margin-top: var(--p-margin-top);
+ margin-bottom: var(--p-margin-bottom);
+}
+
+ul {
+ margin-top: var(--ul-margin-top);
+ margin-bottom: var(--ul-margin-bottom);
+}
+
+li {
+ margin-left: var(--li-indent);
+}
+
+a {
+ text-decoration: underline;
+}
+
+/* Code blocks */
+
+pre {
+ padding: var(--code-padding);
+ overflow: scroll;
+ border-radius: var(--code-border-radius);
+ margin-top: var(--code-margin-top);
+ margin-bottom: var(--code-margin-bottom);
+}
+
+code {
+ -webkit-font-smoothing: antialiased;
+ -moz-font-feature-settings: "liga=1, dlig=1";
+ -ms-font-feature-settings: "liga", "dlig";
+ -webkit-font-feature-settings: "liga", "dlig";
+ -o-font-feature-settings: "liga", "dlig";
+ font-feature-settings: "liga", "dlig";
+ font-variant-ligatures: contextual;
+ font-family: "Monaspace";
+ font-size: .9em;
+}
+
+/* Latex Overflow */
+
+.MathJax {
+ overflow-x: auto;
+ overflow-y: hidden;
+}
+
+/* Footnotes */
+
+.footnotes {
+ margin-top: 3rem;
+ border-style: none;
+}
+
+hr {
+ border: 1px solid black;
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
+
+
+/* Header */
+
+.header {
+ padding-top: var(--header-top-gap);
+ margin-bottom: var(--header-bottom-gap);
+}
+
+.header p {
+ font-family: monospace;
+ margin-top: var(--header-menu-top-gap);
+ margin-right: var(--header-menu-side-gap);
+}
+
+.header h1 {
+ font-size: 2.6em;
+ margin-bottom: 0;
+ margin-top: 0;
+}
+
+/* Footer */
+
+footer {
+ font-size: small;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ max-height: var(--footer-height);
+}
+
+footer a {
+ font-family: "Monaspace";
+ margin-left: .2rem;
+ margin-right: .2rem;
+}
+
+/* Posts list */
+
+.post-list-container {
+ margin-bottom: 2rem;
+}
+
+.post-line {
+ margin-bottom: .5rem;
+ display: flex;
+ align-items: baseline;
+}
+
+.post-line p {
+ margin-top: 0rem;
+ margin-bottom: 0rem;
+}
+
+.post-date {
+ font-size: small;
+ font-family: "Monaspace";
+ width: 110px;
+ text-align: right;
+ padding-right: 1rem;
+}
+
+.post-title {
+ margin: 0;
+}
+
+.pagination {
+ display: flex;
+ align-items: center;
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ justify-content: center;
+}
+
+.pagination-control {
+ min-width: 3rem;
+ margin-left: .5rem;
+ margin-right: .5rem;
+ text-align: center;
+ align-items: center;
+}
+
+.page-number {
+ min-width: 3rem;
+ margin-left: .5rem;
+ margin-right: .5rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ align-items: center;
+ font-weight: bold;
+}
+
+/* Social Icons */
+
+.social-icons {
+ padding: 12px 0;
+ margin-bottom: 3rem;
+}
+
+.social-icons a {
+ text-decoration: none;
+}
+
+.social-icons a:not(:last-of-type) {
+ margin-inline-end: 12px;
+}
+
+.social-icons a svg {
+ height: 20px;
+ width: 20px;
+}
+
+/* Single post page */
+
+.single-intro-container {
+ margin-top: 1rem;
+ margin-bottom: 2rem;
+}
+
+.single-title {
+ margin-top: 1rem;
+ margin-bottom: .5rem;
+}
+
+.single-readtime {
+ margin-top: .5rem;
+}
+
+.single-summary {
+ font-style: italic;
+ margin-bottom: 0;
+}
+
+.single-content {
+ margin-bottom: 6rem;
+}
+
+/* Table of contents */
+
+.toc {
+ margin-top: var(--toc-margin-top);
+ margin-bottom: var(--toc-margin-bottom);
+}
+
+.toc ul {
+ margin-top: 0;
+ margin-bottom: .5rem;
+}
\ No newline at end of file
diff --git a/assets/css/reset.css b/assets/css/reset.css
new file mode 100644
index 0000000..a2c9a46
--- /dev/null
+++ b/assets/css/reset.css
@@ -0,0 +1,117 @@
+*,
+::after,
+::before {
+ box-sizing: border-box;
+}
+
+html {
+ -webkit-tap-highlight-color: transparent;
+ overflow-y: scroll;
+ -webkit-text-size-adjust: 100%;
+ text-size-adjust: 100%;
+}
+
+a,
+button,
+body,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ color: var(--primary);
+}
+
+body {
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ font-size: 18px;
+ line-height: 1.6;
+ word-break: break-word;
+ background: var(--theme);
+}
+
+article,
+aside,
+figcaption,
+figure,
+header,
+hgroup,
+main,
+nav,
+section,
+table {
+ display: block;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ line-height: 1.2;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+ul {
+ padding: 0;
+}
+
+a {
+ text-decoration: none;
+}
+
+body,
+figure,
+ul {
+ margin: 0;
+}
+
+table {
+ width: 100%;
+ border-collapse: collapse;
+ border-spacing: 0;
+ overflow-x: auto;
+ word-break: keep-all;
+}
+
+button,
+input,
+textarea {
+ padding: 0;
+ font: inherit;
+ background: 0 0;
+ border: 0;
+}
+
+input,
+textarea {
+ outline: 0;
+}
+
+button,
+input[type=button],
+input[type=submit] {
+ cursor: pointer;
+}
+
+input:-webkit-autofill,
+textarea:-webkit-autofill {
+ box-shadow: 0 0 0 50px var(--theme) inset;
+}
+
+img {
+ display: block;
+ max-width: 100%;
+}
\ No newline at end of file
diff --git a/assets/css/utils.css b/assets/css/utils.css
new file mode 100644
index 0000000..d6ab544
--- /dev/null
+++ b/assets/css/utils.css
@@ -0,0 +1,19 @@
+.flex {
+ display: flex;
+}
+
+.bold {
+ font-weight: bold;
+}
+
+.italic {
+ font-style: italic;
+}
+
+.small {
+ font-size: medium;
+}
+
+.monospace {
+ font-family: "Monaspace";
+}
\ No newline at end of file
diff --git a/assets/css/vars.css b/assets/css/vars.css
new file mode 100644
index 0000000..1ec2afd
--- /dev/null
+++ b/assets/css/vars.css
@@ -0,0 +1,54 @@
+:root {
+ --main-width: 900px;
+ --main-padding: 1rem;
+ --main-padding-bottom: 3rem;
+
+ /* header settings */
+ --header-top-gap: 1.5rem;
+ --header-bottom-gap: 2rem;
+ --header-menu-side-gap: .5rem;
+ --header-menu-top-gap: 1rem;
+
+ /* Typography */
+ --h1-margin-top: 2rem;
+ --h1-margin-bottom: 2rem;
+ --h2-margin-top: 2rem;
+ --h2-margin-bottom: 2rem;
+ --hx-margin-top: 1rem;
+ --hx-margin-bottom: 1rem;
+ --p-margin-top: 1rem;
+ --p-margin-bottom: 1rem;
+ --code-margin-top: 2rem;
+ --code-margin-bottom: 2rem;
+
+ /* List indentation */
+ --li-indent: 1.5rem;
+ --ul-margin-top: 1rem;
+ --ul-margin-bottom: 1rem;
+
+ --toc-margin-top: 2rem;
+ --toc-margin-bottom: 3rem;
+
+ /* code */
+ --code-padding: 1.5rem;
+ --code-border-radius: 20px;
+
+ /* Footer */
+ --footer-height: 3rem;
+
+ /* Content */
+ --content-height: calc(100vh - var(--footer-height));
+}
+
+@media screen and (max-width: 1024px) {
+ :root {
+ --main-width: 750px;
+ --header-top-gap: 1rem;
+ }
+}
+
+@media screen and (max-width: 640px) {
+ :root {
+ --header-top-gap: .5rem;
+ }
+}
\ No newline at end of file
diff --git a/assets/js/main.js b/assets/js/main.js
new file mode 100644
index 0000000..e2aac52
--- /dev/null
+++ b/assets/js/main.js
@@ -0,0 +1 @@
+console.log('This site was generated by Hugo.');
diff --git a/content/_index.md b/content/_index.md
new file mode 100644
index 0000000..2f99648
--- /dev/null
+++ b/content/_index.md
@@ -0,0 +1,4 @@
++++
+title = 'Home'
+draft = false
++++
diff --git a/hugo.toml b/hugo.toml
new file mode 100644
index 0000000..0456687
--- /dev/null
+++ b/hugo.toml
@@ -0,0 +1,8 @@
+baseURL = 'https://example.org/'
+languageCode = 'en-us'
+title = 'typo'
+
+[module]
+[module.hugoVersion]
+extended = false
+min = "0.116.0"
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
new file mode 100644
index 0000000..eef7b25
--- /dev/null
+++ b/layouts/_default/baseof.html
@@ -0,0 +1,31 @@
+
+
+
+
+ {{ partial "head.html" . }}
+ {{ if .Param "math" }}
+ {{ partialCached "math.html" . }}
+ {{ end }}
+
+
+
+
+
+
+ {{ partial "header.html" . }}
+
+
+
+ {{ block "main" . }}{{ end }}
+
+
+
+
+ {{ partial "footer.html" . }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/layouts/_default/home.html b/layouts/_default/home.html
new file mode 100644
index 0000000..bc3aad8
--- /dev/null
+++ b/layouts/_default/home.html
@@ -0,0 +1,58 @@
+{{ define "main" }}
+
+{{ .Content }}
+
+{{/* Intro summary section */}}
+{{ if .Site.Params.homeIntro }}
+
+
+ {{ if .Site.Params.homeIntroTitle }}
+
{{ .Site.Params.homeIntroTitle }}
+ {{ end }}
+
+ {{ if .Site.Params.homeIntroContent }}
+
{{ .Site.Params.homeIntroContent | markdownify }}
+ {{ end }}
+
+
+{{ end }}
+
+{{/* Social Icons */}}
+
+{{ with site.Params.social }}
+
+{{ end }}
+
+{{/* Collection Section */}}
+
+{{ if .Site.Params.homeCollection }}
+
+{{ with .Site.Params.homeCollectionTitle}}
+ {{ . }}
+{{ end }}
+
+{{ $pages := where .Site.RegularPages "Section" .Site.Params.homeCollection }}
+
+{{ $paginationSize := 1}}
+{{ if (gt .Site.Params.paginationSize 0) }}
+{{ $paginationSize = .Site.Params.paginationSize }}
+{{ end }}
+
+{{ $paginator := .Paginate $pages $paginationSize }}
+
+{{ range $index, $page := $paginator.Pages }}
+{{ partial "post-entry.html" $page}}
+{{ end }}
+
+{{ partial "pagination-controls.html" $paginator}}
+
+{{ end }}
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
new file mode 100644
index 0000000..8c52a86
--- /dev/null
+++ b/layouts/_default/list.html
@@ -0,0 +1,18 @@
+{{ define "main" }}
+{{ .Title }}
+{{ .Content }}
+
+{{ $paginationSize := 1}}
+{{ if (gt .Site.Params.paginationSize 0) }}
+{{ $paginationSize = .Site.Params.paginationSize }}
+{{ end }}
+
+{{ $paginator := .Paginate (.Pages) $paginationSize }}
+
+{{ range $index, $page := $paginator.Pages }}
+{{ partial "post-entry.html" $page}}
+{{ end }}
+
+{{ partial "pagination-controls.html" $paginator}}
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..b68da6c
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,45 @@
+{{ define "main" }}
+
+{{/* Intro */}}
+
+
+
+ {{/* Title and Summary */}}
+
+
{{ .Title }}
+ {{if .Param "summary" }}
+
{{ .Summary }}
+ {{ end }}
+
+ {{/* Reading Time */}}
+
+
+ {{if .Date }}
+ {{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
+ {{ $dateHuman := .Date | time.Format ":date_long" }}
+ {{ $dateHuman }}
+ -
+ {{end}}
+ {{if (.Param "readTime")}}
+ {{.ReadingTime}} min
+ {{end }}
+
+
+
+
+{{/* Table of Content */}}
+
+{{if .Param "toc" }}
+
+ Table of contents
+ {{ .TableOfContents }}
+
+{{ end }}
+
+{{/* Actual document content */}}
+
+
+ {{ .Content }}
+
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 0000000..65f97aa
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,5 @@
+Powered by
+ Hugo
+ {{/* and
+ tomfran/typo */}}
+
\ No newline at end of file
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
new file mode 100644
index 0000000..a16d7ea
--- /dev/null
+++ b/layouts/partials/head.html
@@ -0,0 +1,10 @@
+
+
+{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}
+{{ partialCached "head/css.html" . }}
+{{ partialCached "head/js.html" . }}
+
+
+{{ if hugo.IsProduction }}
+{{ template "_internal/google_analytics.html" . }}
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/head/css.html b/layouts/partials/head/css.html
new file mode 100644
index 0000000..abca3b8
--- /dev/null
+++ b/layouts/partials/head/css.html
@@ -0,0 +1,11 @@
+{{- $CSS := slice
+(resources.Get "css/reset.css")
+(resources.Get "css/vars.css")
+(resources.Get "css/utils.css")
+(resources.Get "css/fonts.css")
+(resources.Get "css/main.css") |
+resources.Concat "assets/combined.css" |
+minify |
+fingerprint }}
+
+
\ No newline at end of file
diff --git a/layouts/partials/head/js.html b/layouts/partials/head/js.html
new file mode 100644
index 0000000..18fe842
--- /dev/null
+++ b/layouts/partials/head/js.html
@@ -0,0 +1,12 @@
+{{- with resources.Get "js/main.js" }}
+ {{- if eq hugo.Environment "development" }}
+ {{- with . | js.Build }}
+
+ {{- end }}
+ {{- else }}
+ {{- $opts := dict "minify" true }}
+ {{- with . | js.Build $opts | fingerprint }}
+
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
new file mode 100644
index 0000000..92da9a7
--- /dev/null
+++ b/layouts/partials/header.html
@@ -0,0 +1,20 @@
+{{/* Header */}}
+
+
\ No newline at end of file
diff --git a/layouts/partials/math.html b/layouts/partials/math.html
new file mode 100644
index 0000000..59a0b2d
--- /dev/null
+++ b/layouts/partials/math.html
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/layouts/partials/pagination-controls.html b/layouts/partials/pagination-controls.html
new file mode 100644
index 0000000..b26d609
--- /dev/null
+++ b/layouts/partials/pagination-controls.html
@@ -0,0 +1,23 @@
+{{ if gt .TotalPages 1 }}
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/post-entry.html b/layouts/partials/post-entry.html
new file mode 100644
index 0000000..f3f2a23
--- /dev/null
+++ b/layouts/partials/post-entry.html
@@ -0,0 +1,4 @@
+
+
{{ .Date.Format "2 Jan 2006" }}
+
{{ .Title }}
+
\ No newline at end of file
diff --git a/layouts/partials/svg.html b/layouts/partials/svg.html
new file mode 100644
index 0000000..579aab3
--- /dev/null
+++ b/layouts/partials/svg.html
@@ -0,0 +1,801 @@
+{{- $icon_name := ( trim .name " " | lower )}}
+{{- if (eq $icon_name "123rf") -}}
+
+
+
+
+{{- else if (eq $icon_name "adobestock") -}}
+
+
+
+
+{{- else if (eq $icon_name "anilist") -}}
+
+
+
+{{- else if (eq $icon_name "applemusic") -}}
+
+
+
+{{- else if (eq $icon_name "applepodcasts") -}}
+
+
+
+{{- else if (eq $icon_name "behance") -}}
+
+
+
+{{- else if (eq $icon_name "bilibili") -}}
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "bitcoin") -}}
+
+
+
+{{- else if (eq $icon_name "bugcrowd") -}}
+
+
+
+{{- else if (eq $icon_name "buymeacoffee") -}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "codeberg") -}}
+
+
+
+{{- else if (eq $icon_name "codepen") -}}
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "codeforces") -}}
+
+
+
+{{- else if (eq $icon_name "cryptohack") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "ctftime") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "cv") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "dev") -}}
+
+
+
+{{- else if (eq $icon_name "deviantart") -}}
+
+
+
+{{- else if (eq $icon_name "deezer") -}}
+
+
+
+{{- else if (eq $icon_name "discogs") -}}
+
+
+
+{{- else if (eq $icon_name "discord") -}}
+
+
+
+
+{{- else if (eq $icon_name "douban") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "dreamstime") -}}
+
+
+
+{{- else if (eq $icon_name "dribbble") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "email") -}}
+
+
+
+
+{{- else if (eq $icon_name "facebook") -}}
+
+
+
+{{- else if (eq $icon_name "firefish") -}}
+
+
+
+{{- else if (eq $icon_name "flickr") -}}
+
+
+
+{{- else if (eq $icon_name "freepik") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "gitea") -}}
+
+
+
+{{- else if (eq $icon_name "github") -}}
+
+
+
+
+{{- else if (eq $icon_name "gitlab") -}}
+
+
+
+
+{{- else if (eq $icon_name "goodreads") -}}
+
+
+
+{{- else if (eq $icon_name "googleplaystore") -}}
+
+
+
+{{- else if (eq $icon_name "googlepodcasts") -}}
+
+
+
+{{- else if (eq $icon_name "googlescholar") -}}
+
+
+
+{{- else if (eq $icon_name "gurushots") -}}
+
+
+
+
+
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "hackerone") -}}
+
+
+
+{{- else if (eq $icon_name "hackerrank") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "hackthebox") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "instagram") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "intigriti") -}}
+
+
+
+{{- else if (eq $icon_name "itchio") -}}
+
+
+
+{{- else if (eq $icon_name "kaggle") -}}
+
+
+
+{{- else if (eq $icon_name "kakaotalk") -}}
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "keybase") -}}
+
+
+
+{{- else if (eq $icon_name "kofi") -}}
+
+
+
+{{- else if (eq $icon_name "komoot") -}}
+
+
+
+{{- else if (eq $icon_name "lastfm") -}}
+
+
+
+{{- else if (eq $icon_name "leetcode") -}}
+
+
+
+{{- else if (eq $icon_name "letterboxd") -}}
+
+
+
+{{- else if (eq $icon_name "liberapay") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "lichess" ) -}}
+
+
+
+{{- else if (eq $icon_name "linkedin") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "mastodon") -}}
+
+
+
+
+{{- else if (eq $icon_name "matrix") -}}
+
+
+
+{{- else if (eq $icon_name "medium") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "microblog") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "mixcloud") -}}
+
+
+
+{{- else if (eq $icon_name "monero") -}}
+
+
+
+{{- else if (eq $icon_name "neteasecloudmusic") -}}
+
+
+
+{{- else if (eq $icon_name "nuget") -}}
+
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "orcid") -}}
+
+
+
+{{- else if (eq $icon_name "osu!") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "overcast") -}}
+
+
+
+{{- else if (eq $icon_name "patreon") -}}
+
+
+
+
+
+
+{{- else if (eq $icon_name "paypal") -}}
+
+
+
+{{- else if (eq $icon_name "peertube") -}}
+
+
+
+{{- else if or (eq $icon_name "pgpkey") (eq $icon_name "key") -}}
+
+
+
+
+{{- else if (eq $icon_name "phone") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "pocketcasts") -}}
+
+
+
+{{- else if (eq $icon_name "polywork") -}}
+
+
+
+{{- else if (eq $icon_name "printables") -}}
+
+
+
+{{- else if (eq $icon_name "pixelfed") -}}
+
+
+
+{{- else if (eq $icon_name "pleroma") -}}
+
+
+
+{{- else if (eq $icon_name "qq") -}}
+
+
+
+
+{{- else if (eq $icon_name "reddit") -}}
+
+
+
+{{- else if (eq $icon_name "researchgate") -}}
+
+
+
+{{- else if (eq $icon_name "rootme") -}}
+
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "rss") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "serverfault") -}}
+
+
+
+{{- else if (eq $icon_name "sessionmessenger") -}}
+
+
+
+
+{{- else if (eq $icon_name "soundcloud") -}}
+
+
+
+{{- else if (eq $icon_name "shutterstock") -}}
+
+
+
+
+{{- else if (eq $icon_name "sketchfab") -}}
+
+
+
+{{- else if (eq $icon_name "slack") -}}
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "snapchat") -}}
+
+
+
+{{- else if (eq $icon_name "sourcehut") -}}
+
+
+
+
+{{- else if (eq $icon_name "spotify") -}}
+
+
+
+{{- else if (eq $icon_name "stackoverflow") -}}
+
+
+
+{{- else if (eq $icon_name "steam") -}}
+
+
+
+
+
+
+
+
+
+{{- else if (eq $icon_name "strava") -}}
+
+
+
+
+{{- else if (eq $icon_name "substack") -}}
+
+
+
+{{- else if (eq $icon_name "telegram") -}}
+
+
+
+{{- else if (eq $icon_name "thingiverse") -}}
+
+
+
+{{- else if (eq $icon_name "threads") -}}
+
+
+
+
+{{- else if (eq $icon_name "threema") -}}
+
+
+
+
+{{- else if (eq $icon_name "tidal") -}}
+
+
+
+{{- else if (eq $icon_name "tiktok") -}}
+
+
+
+{{- else if (eq $icon_name "tryhackme") -}}
+
+
+
+{{- else if (eq $icon_name "tumblr") -}}
+
+
+
+{{- else if (eq $icon_name "twitch") -}}
+
+
+
+{{- else if (eq $icon_name "twitter") -}}
+
+
+
+
+{{- else if (eq $icon_name "unsplash") -}}
+
+
+
+
+{{- else if (eq $icon_name "vimeo") -}}
+
+
+
+{{- else if or (eq $icon_name "vk") (eq $icon_name "vkontakte") -}}
+
+
+
+{{- else if (eq $icon_name "wechat") -}}
+
+
+
+
+{{- else if (eq $icon_name "x") -}}
+
+
+
+
+{{- else if (eq $icon_name "xda") -}}
+
+
+
+{{- else if (eq $icon_name "xing") -}}
+
+
+
+
+{{- else if (eq $icon_name "xmpp") -}}
+
+
+
+
+{{- else if (eq $icon_name "ycombinator") -}}
+
+
+
+{{- else if (eq $icon_name "youtube") -}}
+
+
+
+
+
+{{- else if (eq $icon_name "zhihu") -}}
+
+
+
+{{- else if $icon_name -}}
+
+
+
+
+{{- end -}}
\ No newline at end of file
diff --git a/misc/readme.png b/misc/readme.png
new file mode 100644
index 0000000..1073e9f
Binary files /dev/null and b/misc/readme.png differ
diff --git a/static/.DS_Store b/static/.DS_Store
new file mode 100644
index 0000000..e1b066b
Binary files /dev/null and b/static/.DS_Store differ
diff --git a/static/favicon.ico b/static/favicon.ico
new file mode 100644
index 0000000..67f8b77
Binary files /dev/null and b/static/favicon.ico differ
diff --git a/static/fonts/.DS_Store b/static/fonts/.DS_Store
new file mode 100644
index 0000000..3c6e5dd
Binary files /dev/null and b/static/fonts/.DS_Store differ
diff --git a/static/fonts/Literata/Literata-Light.woff b/static/fonts/Literata/Literata-Light.woff
new file mode 100644
index 0000000..bfc63d9
Binary files /dev/null and b/static/fonts/Literata/Literata-Light.woff differ
diff --git a/static/fonts/Literata/Literata-LightItalic.woff b/static/fonts/Literata/Literata-LightItalic.woff
new file mode 100644
index 0000000..0699d5a
Binary files /dev/null and b/static/fonts/Literata/Literata-LightItalic.woff differ
diff --git a/static/fonts/Literata/Literata-SemiBold.woff b/static/fonts/Literata/Literata-SemiBold.woff
new file mode 100644
index 0000000..0fa567d
Binary files /dev/null and b/static/fonts/Literata/Literata-SemiBold.woff differ
diff --git a/static/fonts/Literata/Literata-SemiBoldItalic.woff b/static/fonts/Literata/Literata-SemiBoldItalic.woff
new file mode 100644
index 0000000..a596fde
Binary files /dev/null and b/static/fonts/Literata/Literata-SemiBoldItalic.woff differ
diff --git a/static/fonts/Monaspace/MonaspaceArgon-Regular.woff b/static/fonts/Monaspace/MonaspaceArgon-Regular.woff
new file mode 100644
index 0000000..adcd7ba
Binary files /dev/null and b/static/fonts/Monaspace/MonaspaceArgon-Regular.woff differ
diff --git a/static/fonts/Monaspace/MonaspaceArgon-SemiBold.woff b/static/fonts/Monaspace/MonaspaceArgon-SemiBold.woff
new file mode 100644
index 0000000..26b60db
Binary files /dev/null and b/static/fonts/Monaspace/MonaspaceArgon-SemiBold.woff differ
diff --git a/theme.toml b/theme.toml
new file mode 100644
index 0000000..416f7a5
--- /dev/null
+++ b/theme.toml
@@ -0,0 +1,14 @@
+name = 'Typo'
+license = 'MIT'
+licenselink = 'https://github.com/tomfran/typo/LICENSE'
+description = 'A simple Hugo theme'
+
+homepage = 'https://github.com/tomfran/typo'
+
+demosite = 'https://tomfran.github.io/'
+
+tags = ['blog']
+
+[author]
+name = 'Francesco Tomaselli'
+homepage = 'https://tomfran.github.io/'