diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2022-12-20 20:33:57 +0100 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2022-12-20 20:33:57 +0100 |
| commit | 1ac073cc30a23b68371e819c77422b4906dd4f20 (patch) | |
| tree | 52469a6067a714dc93fb5a971ab620dd4a1c6c46 /themes | |
| parent | 6342c2d1cc08bf6edb7f0ffdbdb69ce5b8be62dd (diff) | |
| download | mitjafelicijan.com-1ac073cc30a23b68371e819c77422b4906dd4f20.tar.gz | |
Move to bare theme.
Diffstat (limited to 'themes')
| -rwxr-xr-x | themes/bare/LICENSE | 20 | ||||
| -rwxr-xr-x | themes/bare/archetypes/default.md | 2 | ||||
| -rwxr-xr-x | themes/bare/layouts/404.html | 0 | ||||
| -rwxr-xr-x | themes/bare/layouts/_default/baseof.html | 14 | ||||
| -rwxr-xr-x | themes/bare/layouts/_default/list.html | 21 | ||||
| -rwxr-xr-x | themes/bare/layouts/_default/rss.xml | 27 | ||||
| -rwxr-xr-x | themes/bare/layouts/_default/single.html | 20 | ||||
| -rwxr-xr-x | themes/bare/layouts/partials/comments.html | 21 | ||||
| -rwxr-xr-x | themes/bare/layouts/partials/footer.html | 54 | ||||
| -rwxr-xr-x | themes/bare/layouts/partials/head.html | 31 | ||||
| -rwxr-xr-x | themes/bare/layouts/partials/navigation.html | 16 | ||||
| -rwxr-xr-x | themes/bare/layouts/partials/openring.html | 64 | ||||
| -rw-r--r-- | themes/bare/layouts/partials/read-more.html | 16 | ||||
| -rw-r--r-- | themes/bare/layouts/partials/side-projects.html | 10 | ||||
| -rwxr-xr-x | themes/bare/openring/openring.html | 19 | ||||
| -rwxr-xr-x | themes/bare/static/css/.gitkeep | 0 | ||||
| -rw-r--r-- | themes/bare/static/css/tailwind.css | 235 | ||||
| -rwxr-xr-x | themes/bare/static/js/.gitkeep | 0 | ||||
| -rwxr-xr-x | themes/bare/theme.toml | 16 |
19 files changed, 586 insertions, 0 deletions
diff --git a/themes/bare/LICENSE b/themes/bare/LICENSE new file mode 100755 index 0000000..90c27d7 --- /dev/null +++ b/themes/bare/LICENSE | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | The MIT License (MIT) | ||
| 2 | |||
| 3 | Copyright (c) 2022 Mitja Felicijan | ||
| 4 | |||
| 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of | ||
| 6 | this software and associated documentation files (the "Software"), to deal in | ||
| 7 | the Software without restriction, including without limitation the rights to | ||
| 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||
| 9 | the Software, and to permit persons to whom the Software is furnished to do so, | ||
| 10 | subject to the following conditions: | ||
| 11 | |||
| 12 | The above copyright notice and this permission notice shall be included in all | ||
| 13 | copies or substantial portions of the Software. | ||
| 14 | |||
| 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||
| 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
| 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
| 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
| 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
diff --git a/themes/bare/archetypes/default.md b/themes/bare/archetypes/default.md new file mode 100755 index 0000000..ac36e06 --- /dev/null +++ b/themes/bare/archetypes/default.md | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | +++ | ||
| 2 | +++ | ||
diff --git a/themes/bare/layouts/404.html b/themes/bare/layouts/404.html new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/themes/bare/layouts/404.html | |||
diff --git a/themes/bare/layouts/_default/baseof.html b/themes/bare/layouts/_default/baseof.html new file mode 100755 index 0000000..79c7684 --- /dev/null +++ b/themes/bare/layouts/_default/baseof.html | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html lang="en"> | ||
| 3 | |||
| 4 | {{ partial "head.html" . }} | ||
| 5 | |||
| 6 | <body> | ||
| 7 | {{ partial "navigation.html" . }} | ||
| 8 | <div id="content"> | ||
| 9 | {{ block "main" . }}{{ end }} | ||
| 10 | </div> | ||
| 11 | {{ partial "footer.html" . }} | ||
| 12 | </body> | ||
| 13 | |||
| 14 | </html> \ No newline at end of file | ||
diff --git a/themes/bare/layouts/_default/list.html b/themes/bare/layouts/_default/list.html new file mode 100755 index 0000000..73952eb --- /dev/null +++ b/themes/bare/layouts/_default/list.html | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | {{ define "main" }} | ||
| 2 | <main role="main"> | ||
| 3 | |||
| 4 | <!-- List of all blog posts --> | ||
| 5 | <nav itemscope itemtype="https://schema.org/SiteNavigationElement" role="feed"> | ||
| 6 | <meta itemprop="name" content="Article list"> | ||
| 7 | {{ range (where .Site.RegularPages "Section" "posts") }} | ||
| 8 | <article itemscope itemtype="http://schema.org/Article" style="padding-bottom:10px;"> | ||
| 9 | <time style="display:inline-block;width:70px">{{ .Date.Format "Jan 2006" }}</time> | ||
| 10 | <a href="/{{ .Params.url }}" itemprop="url" rel="bookmark noopener" aria-label="Opens URL"> | ||
| 11 | {{ if .Params.draft }} | ||
| 12 | <span style="background:orange">Draft</span> | ||
| 13 | {{ end }} | ||
| 14 | {{.Title}} | ||
| 15 | </a> | ||
| 16 | </article> | ||
| 17 | {{ end }} | ||
| 18 | </nav> | ||
| 19 | |||
| 20 | </main> | ||
| 21 | {{ end }} | ||
diff --git a/themes/bare/layouts/_default/rss.xml b/themes/bare/layouts/_default/rss.xml new file mode 100755 index 0000000..6a35b96 --- /dev/null +++ b/themes/bare/layouts/_default/rss.xml | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"> | ||
| 2 | |||
| 3 | <channel> | ||
| 4 | |||
| 5 | <title>{{ .Site.Author.name }}</title> | ||
| 6 | <link>{{ .Permalink }}</link> | ||
| 7 | <description>{{ .Site.Params.description }}</description> | ||
| 8 | <language>en-us</language> | ||
| 9 | |||
| 10 | {{ range (where .Site.RegularPages "Section" "posts") }} | ||
| 11 | <item> | ||
| 12 | |||
| 13 | <title>{{ .Title }}</title> | ||
| 14 | <link>{{ .Permalink }}</link> | ||
| 15 | <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate> | ||
| 16 | {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}} | ||
| 17 | <guid>{{ .Permalink }}</guid> | ||
| 18 | |||
| 19 | <description>{{ "<![CDATA[" | safeHTML }} {{ .Summary }}]]></description> | ||
| 20 | <content:encoded>{{ "<![CDATA[" | safeHTML }} {{ .Content }}]]></content:encoded> | ||
| 21 | |||
| 22 | </item> | ||
| 23 | {{end}} | ||
| 24 | |||
| 25 | </channel> | ||
| 26 | |||
| 27 | </rss> | ||
diff --git a/themes/bare/layouts/_default/single.html b/themes/bare/layouts/_default/single.html new file mode 100755 index 0000000..23a60a9 --- /dev/null +++ b/themes/bare/layouts/_default/single.html | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | {{ define "main" }} | ||
| 2 | <main role="main"> | ||
| 3 | |||
| 4 | <!-- Single article --> | ||
| 5 | <article itemtype="http://schema.org/Article"> | ||
| 6 | <header> | ||
| 7 | <h1 itemtype="headline">{{ .Title }}</h1> | ||
| 8 | |||
| 9 | {{ if in .Type "posts" }} | ||
| 10 | <time>Published on {{ .Date.Format "Monday Jan 2, 2006" }}</time> | ||
| 11 | {{ end }} | ||
| 12 | </header> | ||
| 13 | |||
| 14 | <div> | ||
| 15 | {{.Content}} | ||
| 16 | </div> | ||
| 17 | </article> | ||
| 18 | |||
| 19 | </main> | ||
| 20 | {{ end }} | ||
diff --git a/themes/bare/layouts/partials/comments.html b/themes/bare/layouts/partials/comments.html new file mode 100755 index 0000000..b905967 --- /dev/null +++ b/themes/bare/layouts/partials/comments.html | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | <section class="comments"> | ||
| 2 | <h2 class="text-xl font-bold mb-2">Leave a comment</h2> | ||
| 3 | <p class="mb-4">You can write me an email at <a href="mailto:m@mitjafelicijan.com" class="underline hover:bg-yellow-100">m@mitjafelicijan.com</a> or comment bellow.</p> | ||
| 4 | <div id="comment-section"></div> | ||
| 5 | |||
| 6 | <script type="text/javascript" src="https://latest.cactus.chat/cactus.js"></script> | ||
| 7 | |||
| 8 | <script> | ||
| 9 | window.addEventListener('load', () => { | ||
| 10 | initComments({ | ||
| 11 | node: document.getElementById("comment-section"), | ||
| 12 | defaultHomeserverUrl: "https://matrix.cactus.chat:8448", | ||
| 13 | serverName: "cactus.chat", | ||
| 14 | siteName: "mitjafelicijan.com", | ||
| 15 | commentSectionId: "{{ .File }}", | ||
| 16 | pageSize: 50, | ||
| 17 | updateInterval: 10, | ||
| 18 | }); | ||
| 19 | }); | ||
| 20 | </script> | ||
| 21 | </section> | ||
diff --git a/themes/bare/layouts/partials/footer.html b/themes/bare/layouts/partials/footer.html new file mode 100755 index 0000000..ced622d --- /dev/null +++ b/themes/bare/layouts/partials/footer.html | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | <footer style="margin-top:20px"> | ||
| 2 | <small> | ||
| 3 | This website does not track you. | ||
| 4 | Content is made available under the <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank" rel="noreferrer" class="underline hover:text-gray-800">CC BY 4.0 license</a> unless specified otherwise. | ||
| 5 | Blog feed is available as <a href="/index.xml" target="_blank" class="underline hover:text-gray-800">RSS</a> feed. | ||
| 6 | </small> | ||
| 7 | </footer> | ||
| 8 | |||
| 9 | <!-- Fathom - beautiful, simple website analytics --> | ||
| 10 | <script src="https://cdn.usefathom.com/script.js" data-site="XHQARKXP" defer></script> | ||
| 11 | |||
| 12 | {{ if ne .IsHome true }} | ||
| 13 | <!-- KaTeX math library --> | ||
| 14 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.css" integrity="sha384-RZU/ijkSsFbcmivfdRBQDtwuwVqK7GMOw6IMvKyeWL2K5UAlyp6WonmB8m7Jd0Hn" crossorigin="anonymous"> | ||
| 15 | <script defer src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/katex.min.js" integrity="sha384-pK1WpvzWVBQiP0/GjnvRxV4mOb0oxFuyRxJlk6vVw146n3egcN5C925NCP7a7BY8" crossorigin="anonymous"></script> | ||
| 16 | <script defer src="https://cdn.jsdelivr.net/npm/katex@0.13.13/dist/contrib/auto-render.min.js" integrity="sha384-vZTG03m+2yp6N6BNi5iM4rW4oIwk5DfcNdFfxkk9ZWpDriOkXX8voJBFrAO7MpVl" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script> | ||
| 17 | {{ end }} | ||
| 18 | |||
| 19 | {{ if ne .IsHome true }} | ||
| 20 | <!-- Lazy loading of iframes --> | ||
| 21 | <script> | ||
| 22 | window.addEventListener('load', () => { | ||
| 23 | const iframes = document.querySelectorAll('.ll-iframe'); | ||
| 24 | |||
| 25 | if (iframes) { | ||
| 26 | iframes.forEach(iframe => { | ||
| 27 | iframe.addEventListener('click', (evt) => { | ||
| 28 | // If there are no elements yet in the target element add iframe. | ||
| 29 | if (!evt.target.dataset.alreadyLoaded) { | ||
| 30 | // Setting this element as already loaded so it doesn't | ||
| 31 | // attempt to load it again. | ||
| 32 | evt.target.dataset.alreadyLoaded = true; | ||
| 33 | |||
| 34 | // Clearing up all existing elements inside of the target one. | ||
| 35 | evt.target.innerHTML = ''; | ||
| 36 | evt.target.classList.add('empty'); | ||
| 37 | evt.target.classList.add('border-0'); | ||
| 38 | |||
| 39 | // Creating iframe DOM element. | ||
| 40 | const iframeElement = document.createElement('iframe'); | ||
| 41 | iframeElement.classList.add('w-full'); | ||
| 42 | iframeElement.classList.add('h-full'); | ||
| 43 | iframeElement.classList.add('rounded'); | ||
| 44 | iframeElement.src = evt.target.dataset.src; | ||
| 45 | |||
| 46 | // Appending iframe as a child of current element. | ||
| 47 | evt.target.appendChild(iframeElement); | ||
| 48 | } | ||
| 49 | }); | ||
| 50 | }); | ||
| 51 | } | ||
| 52 | }); | ||
| 53 | </script> | ||
| 54 | {{ end }} | ||
diff --git a/themes/bare/layouts/partials/head.html b/themes/bare/layouts/partials/head.html new file mode 100755 index 0000000..14ec02e --- /dev/null +++ b/themes/bare/layouts/partials/head.html | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | <meta charset="UTF-8"> | ||
| 2 | <meta name="theme-color" content="#ffffff"> | ||
| 3 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| 4 | |||
| 5 | <link rel="alternate" type="application/rss+xml" href="/index.xml" title="{{ .Site.Author.name }}"> | ||
| 6 | |||
| 7 | <style> | ||
| 8 | body{padding:10px;line-height:1.3em;font-family:serif;} | ||
| 9 | h1,h2,h3,h4,h5,h6{line-height:110%;} | ||
| 10 | h1{font-size:190%} | ||
| 11 | video,img{max-width:700px;} | ||
| 12 | code{background:#ddd;white-space:nowrap;} | ||
| 13 | pre code{background:transparent;white-space:pre;} | ||
| 14 | pre{border:1px solid #000;padding:5px;overflow:auto;} | ||
| 15 | table {border-collapse: collapse;border: 1px solid #000;} | ||
| 16 | td,th {border:1px solid #000;padding:3px 10px;} | ||
| 17 | @media only screen and (max-width: 740px){video,img{max-width:100%;}time{display:block!important}} | ||
| 18 | </style> | ||
| 19 | |||
| 20 | <link | ||
| 21 | href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA==" | ||
| 22 | rel="icon" type="image/x-icon" /> | ||
| 23 | |||
| 24 | <title>{{ .Title }}</title> | ||
| 25 | <meta name="description" content="{{ .Site.Params.description }}" /> | ||
| 26 | |||
| 27 | <meta property="og:type" content="article"> | ||
| 28 | <meta property="og:title" content="{{ .Title }}"> | ||
| 29 | <meta property="og:description" content="{{ if .Summary }}{{ .Summary }}{{ else }}{{ .Site.Params.Description }}{{ end }}"> | ||
| 30 | <meta property="og:url" content="https://mitjafelicijan.com/{{ .Params.url }}"> | ||
| 31 | <meta property="og:image" content="https://mitjafelicijan.com/general/og-big.jpg"> | ||
diff --git a/themes/bare/layouts/partials/navigation.html b/themes/bare/layouts/partials/navigation.html new file mode 100755 index 0000000..5797b78 --- /dev/null +++ b/themes/bare/layouts/partials/navigation.html | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | <div style="margin-bottom:20px;"> | ||
| 2 | <header style="display:flex;gap:10px;"> | ||
| 3 | <div> | ||
| 4 | <a href="/" itemprop="url" style="color:firebrick">Mitja Felicijan</a> | ||
| 5 | </div> | ||
| 6 | |||
| 7 | <nav itemscope itemtype="http://schema.org/SiteNavigationElement" role="toolbar" style="display:flex;gap:10px;"> | ||
| 8 | <meta itemprop="name" content="Main Menu"> | ||
| 9 | |||
| 10 | <a href="https://git.mitjafelicijan.com" target="_blank" rel="noopener nofollow" itemprop="url" style="color:darkgoldenrod">Git</a> | ||
| 11 | <a href="https://files.mitjafelicijan.com" target="_blank" rel="noopener nofollow" itemprop="url" style="color:dodgerblue">Files</a> | ||
| 12 | <a href="/curriculum-vitae.html" style="color:tomato">CV</a> | ||
| 13 | <a href="/index.xml" itemprop="url" style="color:teal">RSS</a> | ||
| 14 | </nav> | ||
| 15 | </header> | ||
| 16 | </div> | ||
diff --git a/themes/bare/layouts/partials/openring.html b/themes/bare/layouts/partials/openring.html new file mode 100755 index 0000000..0407b34 --- /dev/null +++ b/themes/bare/layouts/partials/openring.html | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | <section class="mb-10"> | ||
| 2 | <h2 class="text-2xl font-bold mb-6">Articles from blogs I follow around the net</h2> | ||
| 3 | |||
| 4 | <section> | ||
| 5 | |||
| 6 | <article class="mb-6"> | ||
| 7 | <a href="https://serokell.io/blog/haskell-in-production-e-bot7" target="_blank" rel="noopener" class="font-medium mb-1 hover:bg-yellow-100">Haskell in Production: e-bot7</a> | ||
| 8 | <p class="mb-1 text-sm text-gray-600">In this edition of our Haskell in Production series, we feature e-bot7 – a low-code conversational AI platform designed for customer service and support. Read the i…</p> | ||
| 9 | <div class="text-gray-500 font-medium text-xs"> | ||
| 10 | Via <a href="https://serokell.io/blog" class="underline">Serokell Blog</a> on December 12, 2022 | ||
| 11 | </div> | ||
| 12 | </article> | ||
| 13 | |||
| 14 | <article class="mb-6"> | ||
| 15 | <a href="https://danluu.com/elon-dave-chappelle/" target="_blank" rel="noopener" class="font-medium mb-1 hover:bg-yellow-100">Transcript of Elon Musk on stage with Dave Chapelle</a> | ||
| 16 | <p class="mb-1 text-sm text-gray-600">This is a transcription of videos Elon Musk's appearance on stage with Dave Chapelle using OpenAI's Whisper model with some manual error corrections and ann…</p> | ||
| 17 | <div class="text-gray-500 font-medium text-xs"> | ||
| 18 | Via <a href="https://danluu.com/atom/index.xml" class="underline">danluu.com</a> on December 11, 2022 | ||
| 19 | </div> | ||
| 20 | </article> | ||
| 21 | |||
| 22 | <article class="mb-6"> | ||
| 23 | <a href="https://www.jeffgeerling.com/blog/2022/1-million-watts-rf-how-fm-supertower-works" target="_blank" rel="noopener" class="font-medium mb-1 hover:bg-yellow-100">1 Million Watts of RF - how the FM Supertower works</a> | ||
| 24 | <p class="mb-1 text-sm text-gray-600">1 Million Watts of RF - how the FM Supertower works | ||
| 25 | |||
| 26 | As the son of a radio engineer, I've seen my share of radio towers. From small, rural AM and FM t…</p> | ||
| 27 | <div class="text-gray-500 font-medium text-xs"> | ||
| 28 | Via <a href="https://www.jeffgeerling.com/" class="underline">Jeff Geerling's Blog</a> on December 7, 2022 | ||
| 29 | </div> | ||
| 30 | </article> | ||
| 31 | |||
| 32 | <article class="mb-6"> | ||
| 33 | <a href="https://drewdevault.com/2022/12/01/I-shall-toil-quietly.html" target="_blank" rel="noopener" class="font-medium mb-1 hover:bg-yellow-100">I shall toil at a reduced volume</a> | ||
| 34 | <p class="mb-1 text-sm text-gray-600">Over the last nine years I have written 300,000 words for this blog on the | ||
| 35 | topics which are important to me. I am not certain that I have much left to say. | ||
| 36 | I can keep…</p> | ||
| 37 | <div class="text-gray-500 font-medium text-xs"> | ||
| 38 | Via <a href="https://drewdevault.com" class="underline">Drew DeVault's blog</a> on December 1, 2022 | ||
| 39 | </div> | ||
| 40 | </article> | ||
| 41 | |||
| 42 | <article class="mb-6"> | ||
| 43 | <a href="https://mirzapandzo.com/posts/elasticbeanstalk-php-settings-and-the-frustratingly-confusing-guide-to-eb-deploy/" target="_blank" rel="noopener" class="font-medium mb-1 hover:bg-yellow-100">ElasticBeanstalk, PHP settings and the frustratingly confusing guide to eb deploy</a> | ||
| 44 | <p class="mb-1 text-sm text-gray-600">I'll be honest. I love using AWS. eb deploy is my go to command. The ElasticBeanstalk cloud ecosystem is amazing and I would find it hard to do my day job witho…</p> | ||
| 45 | <div class="text-gray-500 font-medium text-xs"> | ||
| 46 | Via <a href="https://mirzapandzo.com/" class="underline">Mirza Pandzo</a> on November 1, 2022 | ||
| 47 | </div> | ||
| 48 | </article> | ||
| 49 | |||
| 50 | <article class="mb-6"> | ||
| 51 | <a href="https://cronokirby.com/posts/2022/10/dkgs-in-groups/" target="_blank" rel="noopener" class="font-medium mb-1 hover:bg-yellow-100">DKGs in Groups</a> | ||
| 52 | <p class="mb-1 text-sm text-gray-600">This is a short post on distributed key generation (DKG) | ||
| 53 | in the context of cryptographic groups, such as elliptic curves.</p> | ||
| 54 | <div class="text-gray-500 font-medium text-xs"> | ||
| 55 | Via <a href="https://cronokirby.com/posts/" class="underline">Posts on Cronokirby's Blog</a> on October 9, 2022 | ||
| 56 | </div> | ||
| 57 | </article> | ||
| 58 | |||
| 59 | </section> | ||
| 60 | |||
| 61 | <p class="text-sm text-gray-500"> | ||
| 62 | <a href="https://git.sr.ht/~sircmpwn/openring" class="no-underline hover:underline">Generated with openring.</a> | ||
| 63 | </p> | ||
| 64 | </section> | ||
diff --git a/themes/bare/layouts/partials/read-more.html b/themes/bare/layouts/partials/read-more.html new file mode 100644 index 0000000..d604bfc --- /dev/null +++ b/themes/bare/layouts/partials/read-more.html | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | <section> | ||
| 2 | <h2 class="text-2xl font-bold mb-6">Read more from this site</h2> | ||
| 3 | <nav itemscope itemtype="https://schema.org/SiteNavigationElement" class="mb-12"> | ||
| 4 | <meta itemprop="name" content="Article list"> | ||
| 5 | <ul> | ||
| 6 | {{ $randomPosts := shuffle (where .Site.RegularPages "Type" "posts") | first 5 }} | ||
| 7 | {{ range $randomPosts }} | ||
| 8 | <li class="mb-6"> | ||
| 9 | <time class="block text-gray-400 font-medium text-xs">{{ .Date.Format "Mon Jan 2, 2006" }}</time> | ||
| 10 | <a href="/{{ .Params.url }}" itemprop="url" class="hover:bg-yellow-100 font-medium">{{ .Title }}</a> | ||
| 11 | <p class="text-gray-600 text-sm">{{ .Summary }}</p> | ||
| 12 | </li> | ||
| 13 | {{ end }} | ||
| 14 | </ul> | ||
| 15 | </nav> | ||
| 16 | </section> | ||
diff --git a/themes/bare/layouts/partials/side-projects.html b/themes/bare/layouts/partials/side-projects.html new file mode 100644 index 0000000..5cca9b6 --- /dev/null +++ b/themes/bare/layouts/partials/side-projects.html | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | <section class="mb-12"> | ||
| 2 | <h2 class="text-2xl font-bold mb-6">Side projects I worked on</h2> | ||
| 3 | <ul class="list-disc ml-6"> | ||
| 4 | <li><a href="https://git.mitjafelicijan.com/journalctl-proxy.git/" target="_blank" rel="noopener nofollow" class="hover:bg-yellow-100">journalctl-proxy - Exposes your systemd logs to web via web interface</a></li> | ||
| 5 | <li><a href="https://git.mitjafelicijan.com/redis-marshal.git/" target="_blank" rel="noopener nofollow" class="hover:bg-yellow-100">redis-marshal - Lightweight Redis data exploration tool</a></li> | ||
| 6 | <li><a href="https://git.mitjafelicijan.com/dna-encoding.git/" target="_blank" rel="noopener nofollow" class="hover:bg-yellow-100">dna-encoding - Tools for encoding files to DNA sequence</a></li> | ||
| 7 | <li><a href="https://git.mitjafelicijan.com/vertex.git/" target="_blank" rel="noopener nofollow" class="hover:bg-yellow-100">vertex - Create mock API's and add basic logic to simplify prototyping</a></li> | ||
| 8 | <li><a href="https://git.mitjafelicijan.com/scarecrow.git/" target="_blank" rel="noopener nofollow" class="hover:bg-yellow-100">scarecrow - Minimal configuration reverse proxy</a></li> | ||
| 9 | </ul> | ||
| 10 | </section> | ||
diff --git a/themes/bare/openring/openring.html b/themes/bare/openring/openring.html new file mode 100755 index 0000000..bd9ac55 --- /dev/null +++ b/themes/bare/openring/openring.html | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | <section class="mb-10"> | ||
| 2 | <h2 class="text-2xl font-bold mb-6">Articles from blogs I follow around the net</h2> | ||
| 3 | |||
| 4 | <section> | ||
| 5 | {{ range .Articles }} | ||
| 6 | <article class="mb-6"> | ||
| 7 | <a href="{{ .Link }}" target="_blank" rel="noopener" class="font-medium mb-1 hover:bg-yellow-100">{{ .Title }}</a> | ||
| 8 | <p class="mb-1 text-sm text-gray-600">{{ .Summary }}</p> | ||
| 9 | <div class="text-gray-500 font-medium text-xs"> | ||
| 10 | Via <a href="{{ .SourceLink }}" class="underline">{{ .SourceTitle }}</a> on {{ .Date | datef "January 2, 2006" }} | ||
| 11 | </div> | ||
| 12 | </article> | ||
| 13 | {{ end }} | ||
| 14 | </section> | ||
| 15 | |||
| 16 | <p class="text-sm text-gray-500"> | ||
| 17 | <a href="https://git.sr.ht/~sircmpwn/openring" class="no-underline hover:underline">Generated with openring.</a> | ||
| 18 | </p> | ||
| 19 | </section> | ||
diff --git a/themes/bare/static/css/.gitkeep b/themes/bare/static/css/.gitkeep new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/themes/bare/static/css/.gitkeep | |||
diff --git a/themes/bare/static/css/tailwind.css b/themes/bare/static/css/tailwind.css new file mode 100644 index 0000000..edbb0ab --- /dev/null +++ b/themes/bare/static/css/tailwind.css | |||
| @@ -0,0 +1,235 @@ | |||
| 1 | @tailwind base; | ||
| 2 | @tailwind components; | ||
| 3 | @tailwind utilities; | ||
| 4 | |||
| 5 | * { cursor: url(/general/9front-cursor.png), auto; } | ||
| 6 | |||
| 7 | /* Container */ | ||
| 8 | .container-blog { | ||
| 9 | max-width: 700px; | ||
| 10 | } | ||
| 11 | |||
| 12 | /* User text selection */ | ||
| 13 | ::selection { | ||
| 14 | @apply bg-yellow-100 text-black; | ||
| 15 | } | ||
| 16 | |||
| 17 | ::-moz-selection { | ||
| 18 | @apply bg-yellow-100 text-black; | ||
| 19 | } | ||
| 20 | |||
| 21 | /* Headings */ | ||
| 22 | article.single h2 { | ||
| 23 | @apply text-2xl font-bold mb-4 mt-8; | ||
| 24 | } | ||
| 25 | |||
| 26 | article.single h3 { | ||
| 27 | @apply text-xl font-bold mb-4 mt-8; | ||
| 28 | } | ||
| 29 | |||
| 30 | article.single h4 { | ||
| 31 | @apply text-lg font-bold mb-4 mt-8; | ||
| 32 | } | ||
| 33 | |||
| 34 | /* Paragraph */ | ||
| 35 | article.single p { | ||
| 36 | @apply mb-5; | ||
| 37 | } | ||
| 38 | |||
| 39 | /* Links */ | ||
| 40 | article.single a { | ||
| 41 | @apply underline hover:bg-yellow-100; | ||
| 42 | } | ||
| 43 | |||
| 44 | /* Blockquote */ | ||
| 45 | article.single blockquote { | ||
| 46 | background-image: url('/general/alert-light.svg'); | ||
| 47 | background-size: 30px 30px; | ||
| 48 | background-repeat: no-repeat; | ||
| 49 | background-position: 0 5px; | ||
| 50 | @apply pl-12 my-8; | ||
| 51 | } | ||
| 52 | |||
| 53 | /* Media: Images, audio, video */ | ||
| 54 | article.single img { | ||
| 55 | @apply rounded w-full !bg-gray-50 my-8; | ||
| 56 | } | ||
| 57 | |||
| 58 | article.single video { | ||
| 59 | @apply rounded w-full !bg-gray-50; | ||
| 60 | } | ||
| 61 | |||
| 62 | article.single audio { | ||
| 63 | @apply w-full mb-6; | ||
| 64 | } | ||
| 65 | |||
| 66 | /* Code */ | ||
| 67 | article.single code { | ||
| 68 | @apply bg-yellow-100 rounded px-2 py-1 text-xs font-medium; | ||
| 69 | } | ||
| 70 | |||
| 71 | article.single pre { | ||
| 72 | @apply !bg-gray-50 rounded text-xs p-4 mb-6 overflow-x-auto; | ||
| 73 | } | ||
| 74 | |||
| 75 | article.single pre code { | ||
| 76 | background: unset; | ||
| 77 | padding: unset; | ||
| 78 | @apply leading-relaxed; | ||
| 79 | } | ||
| 80 | |||
| 81 | /* Tables */ | ||
| 82 | article.single table { | ||
| 83 | @apply w-full border border-black border-collapse mb-4; | ||
| 84 | } | ||
| 85 | |||
| 86 | article.single table tr, | ||
| 87 | article.single table td, | ||
| 88 | article.single table th { | ||
| 89 | @apply px-4 py-2 border text-left; | ||
| 90 | } | ||
| 91 | |||
| 92 | /* Unordered list */ | ||
| 93 | article.single ul { | ||
| 94 | @apply list-disc pl-6 md:pl-10 mb-6; | ||
| 95 | } | ||
| 96 | |||
| 97 | /* Ordered list */ | ||
| 98 | article.single ol { | ||
| 99 | @apply list-decimal pl-8 md:pl-10; | ||
| 100 | } | ||
| 101 | |||
| 102 | /* Katex */ | ||
| 103 | article.single .katex-display { | ||
| 104 | @apply my-10; | ||
| 105 | } | ||
| 106 | |||
| 107 | /* Lazy loading of iframes */ | ||
| 108 | article.single .ll-iframe { | ||
| 109 | @apply bg-gray-100 rounded; | ||
| 110 | } | ||
| 111 | |||
| 112 | article.single .ll-iframe::before { | ||
| 113 | @apply h-full flex border-2 border-gray-300 rounded justify-center items-center font-medium text-sm cursor-pointer animate-pulse; | ||
| 114 | content: 'Click here to load resource…'; | ||
| 115 | } | ||
| 116 | |||
| 117 | article.single .ll-iframe.empty::before { | ||
| 118 | content: none; | ||
| 119 | } | ||
| 120 | |||
| 121 | /* Cactus Comments */ | ||
| 122 | .comments img { | ||
| 123 | max-width: auto !important; | ||
| 124 | max-width: unset !important; | ||
| 125 | max-width: inherit !important; | ||
| 126 | } | ||
| 127 | |||
| 128 | .cactus-container .cactus-editor-textarea { | ||
| 129 | @apply border w-full h-32 px-3 py-2 outline-none rounded mb-2; | ||
| 130 | } | ||
| 131 | |||
| 132 | .cactus-container .cactus-editor-name input { | ||
| 133 | @apply border w-full px-3 py-2 mb-2 outline-none rounded; | ||
| 134 | } | ||
| 135 | |||
| 136 | .cactus-container .cactus-editor-name { | ||
| 137 | @apply mb-1; | ||
| 138 | } | ||
| 139 | |||
| 140 | /* Cactus: Buttons */ | ||
| 141 | .cactus-editor-buttons { | ||
| 142 | @apply flex gap-2; | ||
| 143 | } | ||
| 144 | |||
| 145 | .cactus-container .cactus-button { | ||
| 146 | @apply text-base bg-gray-200 hover:bg-gray-300 font-medium px-6 py-2 rounded; | ||
| 147 | } | ||
| 148 | |||
| 149 | .cactus-container .cactus-editor { | ||
| 150 | @apply mb-10; | ||
| 151 | } | ||
| 152 | |||
| 153 | /* Cactus: Comment List */ | ||
| 154 | .cactus-container .cactus-comments-list { | ||
| 155 | @apply flex flex-col gap-8; | ||
| 156 | } | ||
| 157 | |||
| 158 | .cactus-container .cactus-comment { | ||
| 159 | @apply flex gap-4; | ||
| 160 | } | ||
| 161 | |||
| 162 | .cactus-container .cactus-comment .cactus-comment-avatar img { | ||
| 163 | @apply w-8 h-8 rounded-full; | ||
| 164 | } | ||
| 165 | |||
| 166 | .cactus-container .cactus-comment .cactus-comment-avatar-placeholder { | ||
| 167 | @apply w-8 h-8 rounded-full bg-gray-300; | ||
| 168 | } | ||
| 169 | |||
| 170 | .cactus-container .cactus-comment .cactus-comment-header { | ||
| 171 | @apply flex gap-2 items-center; | ||
| 172 | } | ||
| 173 | |||
| 174 | .cactus-container .cactus-comment .cactus-comment-header .cactus-comment-displayname { | ||
| 175 | @apply font-semibold; | ||
| 176 | } | ||
| 177 | |||
| 178 | .cactus-container .cactus-comment .cactus-comment-header .cactus-comment-time { | ||
| 179 | @apply text-gray-400 text-sm; | ||
| 180 | } | ||
| 181 | |||
| 182 | .cactus-container .cactus-comment .cactus-message-text code { | ||
| 183 | @apply bg-yellow-100 rounded px-2 py-1 text-xs font-medium; | ||
| 184 | } | ||
| 185 | |||
| 186 | /* Unordered list */ | ||
| 187 | .cactus-container .cactus-comment .cactus-message-text ul { | ||
| 188 | @apply list-disc pl-2 md:pl-6; | ||
| 189 | } | ||
| 190 | |||
| 191 | /* Ordered list */ | ||
| 192 | .cactus-container .cactus-comment .cactus-message-text ol { | ||
| 193 | @apply list-decimal pl-2 md:pl-6; | ||
| 194 | } | ||
| 195 | |||
| 196 | /* Cactus: Login */ | ||
| 197 | .cactus-container .cactus-login-form-wrapper { | ||
| 198 | @apply border mb-6 p-3 relative rounded; | ||
| 199 | } | ||
| 200 | |||
| 201 | .cactus-container .cactus-login-form .cactus-login-close { | ||
| 202 | @apply absolute right-3 top-3 w-4 h-4; | ||
| 203 | } | ||
| 204 | |||
| 205 | .cactus-container .cactus-login-form .cactus-login-title { | ||
| 206 | @apply font-bold mb-4 mt-0 pt-0; | ||
| 207 | } | ||
| 208 | |||
| 209 | /* Cactus: Login with a button */ | ||
| 210 | .cactus-container .cactus-login-form .cactus-login-client { | ||
| 211 | @apply mb-6; | ||
| 212 | } | ||
| 213 | |||
| 214 | .cactus-container .cactus-login-form .cactus-login-client-title { | ||
| 215 | @apply font-semibold mb-2; | ||
| 216 | } | ||
| 217 | |||
| 218 | /* Cactus: Login with credentials */ | ||
| 219 | .cactus-container .cactus-login-form .cactus-login-credentials {} | ||
| 220 | |||
| 221 | .cactus-container .cactus-login-form .cactus-login-credentials-title { | ||
| 222 | @apply font-semibold mb-1; | ||
| 223 | } | ||
| 224 | |||
| 225 | .cactus-container .cactus-login-form .cactus-login-field { | ||
| 226 | @apply flex gap-4 mb-2 items-center; | ||
| 227 | } | ||
| 228 | |||
| 229 | .cactus-container .cactus-login-form .cactus-login-label { | ||
| 230 | @apply w-20; | ||
| 231 | } | ||
| 232 | |||
| 233 | .cactus-container .cactus-login-form input { | ||
| 234 | @apply border px-2 py-1 rounded; | ||
| 235 | } | ||
diff --git a/themes/bare/static/js/.gitkeep b/themes/bare/static/js/.gitkeep new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/themes/bare/static/js/.gitkeep | |||
diff --git a/themes/bare/theme.toml b/themes/bare/theme.toml new file mode 100755 index 0000000..bf6fd7f --- /dev/null +++ b/themes/bare/theme.toml | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | # theme.toml template for a Hugo theme | ||
| 2 | # See https://github.com/gohugoio/hugoThemes#themetoml for an example | ||
| 3 | |||
| 4 | name = "Simple" | ||
| 5 | license = "MIT" | ||
| 6 | licenselink = "https://github.com/mitjafelicijan/hugo-simple/blob/master/LICENSE" | ||
| 7 | description = "Simlistic theme" | ||
| 8 | homepage = "http://mitjafelicijan.com/" | ||
| 9 | tags = [] | ||
| 10 | features = [] | ||
| 11 | min_version = "0.41.0" | ||
| 12 | |||
| 13 | [author] | ||
| 14 | name = "Mitja Felicijan" | ||
| 15 | homepage = "https://mitjafelicijan.com" | ||
| 16 | |||
